Simplifica el proceso de guardado y rechazo de un trafico, generar el txt de facturación en el sevidor

feature/TxtFacturacion_SendMailOnError_20240119
Felix Morales 8 months ago
parent c5077576fc
commit e493bef165
  1. 150
      src/Components/Corresponsales/TraficoCorresponsales.tsx

@ -524,9 +524,6 @@ export default function TraficoCorresponsales (props:IProps) {
setHeader('Informativo')
setMsg('La informacion se guardo correctamente')
setShowMsg(true)
setTimeout(() => {
setIsDisabled(false)
}, 5000);
}
return
} else if (response.data.estatusCode === 409.1) {
@ -549,7 +546,6 @@ export default function TraficoCorresponsales (props:IProps) {
})
.catch((e: Error) => {
setTimeout(() => {
setIsDisabled(false)
}, 5000);
setHeader('Error')
setMsg('Ocurrio un error: ' + e)
@ -1162,74 +1158,30 @@ export default function TraficoCorresponsales (props:IProps) {
)
}
const saveCurrentStep = () => {
if(Depto === 'Corresponsalias') saveCorresponsaliasStep()
else if(Depto === 'Contabilidad') saveContabilidadAndFacturacionSteps()
}
const saveFinalStep = async (data: DTOTraficoCompleto) => {
CTrafDataService.ValidateComplete(data)
.then((response) => {
if (response.status === 200) {
setHeader('Informativo')
setMsg('La informacion se guardo correctamente')
setShowMsg(true)
return
}
})
.catch((e: Error) => {
setHeader('Error')
setMsg('Ocurrio un error: ' + e)
setShowMsg(true)
return
})
}
const saveCorresponsaliasStep = () => {
if(ComentariosRechazo === ''){
let data: DTOTraficoCompleto = {
id: IDTrafico,
idUsuario: UserId,
estatus: TerminaProceso,
comentarios: 'Todo Correcto'
}
saveFinalStep(data)
}else{
let data: ICorresponsalesTraficoContabilidad = {
id: 0,
idUsuario: UserId,
idTrafico: IDTrafico,
statusProceso: 0,
fechaRegistro: '',
razonRechazo: ComentariosRechazo,
tipo: 0
}
rejectCurrentStep(data)
let data: DTOTraficoCompleto = {
id: IDTrafico,
idUsuario: UserId,
estatus: TerminaProceso,
comentarios: 'Todo Correcto'
}
updateProceso(data)
}
const saveContabilidadAndFacturacionSteps = async () => {
const validateSelectedRejectOption = async () => {
if(IDRazonRechazo === 0){
setHeader('Informativo')
setMsg('Debe aceptar el tráfico o seleccionar un motivo de rechazo.')
setMsg('Debe autorizar el tráfico o seleccionar un motivo de rechazo.')
setShowMsg(true)
return
}
let arrStatus = mCCCEstatus.filter((a) => {
let selectedOption = mCCCEstatus.filter((a) => {
if (a.id === IDRazonRechazo) {
return a
}
});
if(IDRazonRechazo === 7){
let data: DTOTraficoCompleto = {
id: IDTrafico,
idUsuario: UserId,
estatus: Proceso === 2 ? 3 : 4,
comentarios: arrStatus[0].estatus
}
await saveFinalStep(data).then(async (r) => {
if(Proceso === 2) await generateFacturacionTxt();
setIsDisabled(false)
});
if(IDRazonRechazo === 7){//Si el trafico se autoriza
generateFacturacionTxt(selectedOption[0].estatus);
}else{
let data: ICorresponsalesTraficoContabilidad = {
id: 0,
@ -1237,18 +1189,47 @@ export default function TraficoCorresponsales (props:IProps) {
idTrafico: IDTrafico,
statusProceso: 0,
fechaRegistro: '',
razonRechazo: arrStatus[0].estatus,
razonRechazo: selectedOption[0].estatus,
tipo: Proceso === 2 ? 2 : 3
}
rejectCurrentStep(data)
}
}
const updateProceso = (dto: DTOTraficoCompleto) => {
//Aqui va la peticion al servidor para actualizar el proceso
CTrafDataService.ValidateComplete(dto)
.then((response)=>{
//Aqui se actualiza el estado del proceso del trafico
setHeader('Informativo')
if(Proceso === 1){
setMsg('Tráfico guardado correctamente.')
setProceso(2)
}else if(Proceso === 2){
setMsg('Tráfico autorizado correctamente.')
setProceso(3)
}else if(Proceso === 3){
setMsg('Cuenta Cerrada correctamente.')
setProceso(4)
}else{
return
}
setShowMsg(true)
}).catch((error) => {
//Aqui se muestra un mensaje en caso de error
setHeader('Error')
setMsg('Ocurrió un error. Favor de revisar la información e intentarlo nuevamente.')
setShowMsg(true)
return
})
}
const rejectCurrentStep = (data:ICorresponsalesTraficoContabilidad) => {
CContaDataService.Append(data)
.then( () => {
setHeader('Informativo')
setMsg('Tráfico rechazado con éxito')
setProceso(Proceso-1)
setShowMsg(true)
return
})
@ -1315,8 +1296,8 @@ export default function TraficoCorresponsales (props:IProps) {
})
}
const generateFacturacionTxt = async () => {
let cliente = Clientes?.filter(x => x.sClave === IDCliente)[0];
const generateFacturacionTxt = async (comentarios: string) => {
/* let cliente = Clientes?.filter(x => x.sClave === IDCliente)[0];
let tipoMercancia = TiposMercancia.filter(x => x.id === IDTipoMercancia)[0];
let facturas = mCFacturas.filter(factura => factura.id > 0);
let nombreProveedor = "";
@ -1350,13 +1331,29 @@ export default function TraficoCorresponsales (props:IProps) {
headers:{
'Authorization': 'Bearer ' + token
}
} */
await axios.get(URL.get() + `/FileManager/CreateFacturacionTxt?folioTrafico=${FolioTrafico}&idTrafico=${IDTrafico}&idUsuario=${UserId}`,{
headers:{
'Authorization': 'Bearer ' + token
}
);
/*const url = URL.createObjectURL(blob);
const link = document.createElement("a");
link.download = `${FolioTrafico}_${Date.now()}.txt`;
link.href = url;
link.click();*/
}
).then(resp => {
console.log(resp);
//Si se crea exitosamente el archivo de texto se manda a actualizar el proceso
let data: DTOTraficoCompleto = {
id: IDTrafico,
idUsuario: UserId,
estatus: 3,
comentarios: comentarios
}
updateProceso(data)
}).catch((error) => {
//Si hay algun error aquí se mostrará un mensaje indicando que algo no ocurrió como se esperaba.
setHeader('Error')
setMsg('Ocurrió un error favor de revisar la información del tráfico e intentarlo de nuevo.')
setShowMsg(true)
return
});
}
const concatFacturasPedidos = (facturas: ICorresponsalFacturas[]) => {
@ -1411,7 +1408,8 @@ export default function TraficoCorresponsales (props:IProps) {
saveForm();
FileManagerServices.GetClientesZip(IDTrafico)
.then(response => {
CTrafDataService.ValidateComplete({id: IDTrafico, idUsuario:UserId, estatus: 4, comentarios:'Todo Correcto'})
updateProceso({id: IDTrafico, idUsuario:UserId, estatus: 4, comentarios:'Todo Correcto'})
/* CTrafDataService.ValidateComplete({id: IDTrafico, idUsuario:UserId, estatus: 4, comentarios:'Todo Correcto'})
.then(resp => {
setProceso(4);
setHeader('Informativo')
@ -1421,7 +1419,7 @@ export default function TraficoCorresponsales (props:IProps) {
setHeader('Error')
setMsg('Ocurrio un error al cerrar la cuenta. Favor de intentarlo nuevamente')
setShowMsg(true)
});
}); */
}).catch(error => {
setHeader('Error')
setMsg('No se han encontrado uno o más de los archivos obligatorios para cerrar la cuenta.')
@ -1781,7 +1779,7 @@ export default function TraficoCorresponsales (props:IProps) {
</Row>
<Row style={{padding: "5px 0"}}>
<Col sm={11} md={11} lg={11}
style={{ visibility: Proceso < 2 ? 'visible' : 'hidden', textAlign: 'end'}}
style={{ visibility: Proceso < 2 && Depto === 'Corresponsalias' ? 'visible' : 'hidden', textAlign: 'end'}}
>
{IDTrafico > 0 && IDCliente === 1896? (
<>
@ -1810,7 +1808,6 @@ export default function TraficoCorresponsales (props:IProps) {
size="sm"
style={{ paddingLeft: '20px', paddingRight: '20px' }}
onClick={() => {
setIsDisabled(true)
saveForm()
}}
disabled = {IsDisabled}
@ -2819,7 +2816,6 @@ export default function TraficoCorresponsales (props:IProps) {
}}
disabled = {IsDisabled}
onClick={() => {
setIsDisabled(true);
saveForm()
}}
>
@ -2851,9 +2847,10 @@ export default function TraficoCorresponsales (props:IProps) {
{mCCCEstatus
? mCCCEstatus.map((item, index) => {
return (
Depto === 'Contabilidad' || item.id < 7 ?
<option key={item.id} value={item.id}>
{item.estatus}
</option>
</option> : ''
)
})
: ''}
@ -2869,8 +2866,7 @@ export default function TraficoCorresponsales (props:IProps) {
paddingRight: '25px'
}}
onClick={() => {
setIsDisabled(true)
saveContabilidadAndFacturacionSteps()
validateSelectedRejectOption()
}}
disabled = {IsDisabled}
>
@ -4315,7 +4311,7 @@ export default function TraficoCorresponsales (props:IProps) {
<Modal.Body>{nextStepModalBody}</Modal.Body>
<Modal.Footer>
<Button variant='danger' onClick={() => {setShowNexStepModal(false); props.onClose(true)}}>Cancelar</Button>
<Button variant='primary' onClick={() => {saveCurrentStep(); setShowNexStepModal(false); props.onClose(true)}}>Continuar</Button>
<Button variant='primary' onClick={() => {saveCorresponsaliasStep(); setShowNexStepModal(false); props.onClose(true)}}>Continuar</Button>
</Modal.Footer>
</Modal>
</div>

Loading…
Cancel
Save