diff --git a/src/Components/Corresponsales/TraficoCorresponsales.tsx b/src/Components/Corresponsales/TraficoCorresponsales.tsx index 494a21e..3cf13ed 100644 --- a/src/Components/Corresponsales/TraficoCorresponsales.tsx +++ b/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) { {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 ? + : '' ) }) : ''} @@ -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) { {nextStepModalBody} - +