Crear referencias sin pedimento para generar cargos tipo OT

feature/Creacion_Referencias_Sin_Pedimento_20240229
Felix Morales 7 months ago
parent 4516a632da
commit b506b818bb
  1. 9
      src/Classes/Corresponsales/CCorresponsalesTrafico.ts
  2. 30
      src/Components/Clientes/Traficos/TraficoCliente.tsx
  3. 130
      src/Components/Corresponsales/TraficoCorresponsales.tsx
  4. 2
      src/DTO/Corresponsales/DTOTraficoCompleto.ts
  5. 1
      src/Interfaces/Corresponsales/ICorresponsalTrafico.ts
  6. 3
      src/store/features/Corresponsales/CorresponsalesTraficoSlice.ts

@ -48,7 +48,7 @@ export default class CCorresponsalesTrafico implements ICorresponsalTrafico {
totalHonorariosAA: number; totalHonorariosAA: number;
totalGastosTerceros: number; totalGastosTerceros: number;
tieneSolicitud: number; tieneSolicitud: number;
pedimentoObligatorio: number;
constructor() { constructor() {
this.id=0 this.id=0
this.folioGemco='' this.folioGemco=''
@ -97,6 +97,7 @@ export default class CCorresponsalesTrafico implements ICorresponsalTrafico {
this.totalHonorariosAA = 0 this.totalHonorariosAA = 0
this.totalGastosTerceros = 0 this.totalGastosTerceros = 0
this.tieneSolicitud = 0 this.tieneSolicitud = 0
this.pedimentoObligatorio = 1
} }
public getEmptyObject(): ICorresponsalTrafico { public getEmptyObject(): ICorresponsalTrafico {
@ -147,7 +148,8 @@ export default class CCorresponsalesTrafico implements ICorresponsalTrafico {
causaRectificacion: '', causaRectificacion: '',
totalHonorariosAA: 0, totalHonorariosAA: 0,
totalGastosTerceros: 0, totalGastosTerceros: 0,
tieneSolicitud: 0 tieneSolicitud: 0,
pedimentoObligatorio: 1
} }
} }
@ -199,7 +201,8 @@ export default class CCorresponsalesTrafico implements ICorresponsalTrafico {
causaRectificacion: data.causaRectificacion, causaRectificacion: data.causaRectificacion,
totalHonorariosAA: data.totalHonorariosAA, totalHonorariosAA: data.totalHonorariosAA,
totalGastosTerceros: data.totalGastosTerceros, totalGastosTerceros: data.totalGastosTerceros,
tieneSolicitud: data.tieneSolicitud tieneSolicitud: data.tieneSolicitud,
pedimentoObligatorio: data.pedimentoObligatorio
} }
} }
} }

@ -1151,36 +1151,6 @@ export default function TraficoCliente(props:IProps){
//} //}
} }
const cerrarTrafico = () => {
if(TotalHonorariosAA == 0){
setHeader('Error')
setMsg('Para cerrar la cuenta debe capturar el total de horarios')
setShowMsg(true)
return;
}
saveForm();
FileManagerServices.GetClientesZip(IDTrafico)
.then(response => {
CTrafDataService.ValidateComplete({id: IDTrafico, idUsuario:UserId, estatus: 4, comentarios:'Todo Correcto'})
.then(resp => {
setProceso(4);
setHeader('Informativo')
setMsg('Cuenta cerrada con éxito.')
setShowMsg(true)
}).catch(e => {
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.')
setShowMsg(true)
return
})
}
const GetClientesZip = () => { const GetClientesZip = () => {
FileManagerServices.GetClientesZip(IDTrafico) FileManagerServices.GetClientesZip(IDTrafico)
.then(response => { .then(response => {

@ -349,8 +349,6 @@ export default function TraficoCorresponsales (props:IProps) {
const [EncabezadoPedimento1, setEncabezadoPedimento1] = useState("Pedimentos"); const [EncabezadoPedimento1, setEncabezadoPedimento1] = useState("Pedimentos");
const [CentroCostos, setCentroCostos] = useState<string>(''); const [CentroCostos, setCentroCostos] = useState<string>('');
const [ClaveClienteFacturacion, setClaveClienteFacturacion] = useState(0); const [ClaveClienteFacturacion, setClaveClienteFacturacion] = useState(0);
const [NombreClienteFacturacion, setNombreClienteFacturacion] = useState('')
const [RfcClienteFacturacion, setRfcClienteFacturacion] = useState('')
const [ClavesPedimentos, setClavesPedimentos] = useState<ICatClavesPedimentos[]>([]) const [ClavesPedimentos, setClavesPedimentos] = useState<ICatClavesPedimentos[]>([])
const [FechaRegistro, setFechaRegistro] = useState(currentDate()); const [FechaRegistro, setFechaRegistro] = useState(currentDate());
const msgColor = 'primary' const msgColor = 'primary'
@ -366,6 +364,7 @@ export default function TraficoCorresponsales (props:IProps) {
fechaSolicita: '', fechaSolicita: '',
estado: 0 estado: 0
}) })
const [PedimentoObligatorio, setPedimentoObligatorio] = useState(1)
var txtContenedores: ICorresponsalContenedores[] = []; var txtContenedores: ICorresponsalContenedores[] = [];
var txtFacturas: ICorresponsalFacturas[] = []; var txtFacturas: ICorresponsalFacturas[] = [];
const itemsTrafico = [ const itemsTrafico = [
@ -462,6 +461,7 @@ export default function TraficoCorresponsales (props:IProps) {
data.causaRectificacion = CausaRectificacion data.causaRectificacion = CausaRectificacion
data.totalHonorariosAA = TotalHonorariosAA data.totalHonorariosAA = TotalHonorariosAA
data.totalGastosTerceros = TotalGastosTerceros data.totalGastosTerceros = TotalGastosTerceros
data.pedimentoObligatorio = PedimentoObligatorio
CTrafDataService.Append(data) CTrafDataService.Append(data)
.then((response) => { .then((response) => {
if (response.data.estatusCode === 0) { if (response.data.estatusCode === 0) {
@ -625,16 +625,18 @@ export default function TraficoCorresponsales (props:IProps) {
} }
const LoadEverything = async () => { const LoadEverything = async () => {
let clientes: IClientes[] = []; //Cargar Clientes
await GetSolicitudes(); await ClientesDataService.getAllClientes(0)
await ClavesPedimentosService.getAllClavesPedimentos() .then((response) => {
.then(response => setClavesPedimentos(response.data)) setClientes(response.data)
})
.catch((e: Error) => { .catch((e: Error) => {
setHeader('Error') setHeader('Error')
setMsg('Ocurrio un error: ' + e) setMsg('Ocurrio un error: ' + e)
setShowMsg(true) setShowMsg(true)
return return
}) })
//Cargar Corresponsales
await CorresponsalesDataService.getAll() await CorresponsalesDataService.getAll()
.then((response) => { .then((response) => {
dispatch(populateCatCorresponsales(response.data)) dispatch(populateCatCorresponsales(response.data))
@ -645,6 +647,16 @@ export default function TraficoCorresponsales (props:IProps) {
setShowMsg(true) setShowMsg(true)
return return
}) })
if(IDTrafico > 0){
await GetSolicitudes();
await ClavesPedimentosService.getAllClavesPedimentos()
.then(response => setClavesPedimentos(response.data))
.catch((e: Error) => {
setHeader('Error')
setMsg('Ocurrio un error: ' + e)
setShowMsg(true)
return
})
await CTrafDataService.GetCorresponsalesTraficoEstatus() await CTrafDataService.GetCorresponsalesTraficoEstatus()
.then((response) => { .then((response) => {
setDataCatEstatus(response.data) setDataCatEstatus(response.data)
@ -655,7 +667,6 @@ export default function TraficoCorresponsales (props:IProps) {
setShowMsg(true) setShowMsg(true)
return return
}) })
await TiposMercanciaService.GetAll() await TiposMercanciaService.GetAll()
.then((response) => { .then((response) => {
setTiposMercancia(response.data); setTiposMercancia(response.data);
@ -666,7 +677,6 @@ export default function TraficoCorresponsales (props:IProps) {
setShowMsg(true) setShowMsg(true)
return return
}); });
await CFacDataService.getAll(IDTrafico) await CFacDataService.getAll(IDTrafico)
.then((response) => { .then((response) => {
dispatch(InitCorresponsalesFacturas(IDTrafico)) dispatch(InitCorresponsalesFacturas(IDTrafico))
@ -706,17 +716,6 @@ export default function TraficoCorresponsales (props:IProps) {
setShowMsg(true) setShowMsg(true)
return return
}) })
await ClientesDataService.getAllClientes(0)
.then((response) => {
clientes = response.data;
setClientes(response.data)
})
.catch((e: Error) => {
setHeader('Error')
setMsg('Ocurrio un error: ' + e)
setShowMsg(true)
return
})
await CAntDataService.getAll(IDTrafico) await CAntDataService.getAll(IDTrafico)
.then((response) => { .then((response) => {
dispatch(populateCorresponsalesAnticipos(response.data)) dispatch(populateCorresponsalesAnticipos(response.data))
@ -784,7 +783,7 @@ export default function TraficoCorresponsales (props:IProps) {
setFolioTrafico(response.data.folioGemco) setFolioTrafico(response.data.folioGemco)
setProceso(response.data.proceso) setProceso(response.data.proceso)
setIDCliente(response.data.idCliente) setIDCliente(response.data.idCliente)
getCentroCostos(response.data.idCliente, clientes); //getCentroCostos(response.data.idCliente, clientes);
setIDTabulador(response.data.idTabulador) setIDTabulador(response.data.idTabulador)
setTipoOperacion(response.data.tipoOperacion) setTipoOperacion(response.data.tipoOperacion)
setOpEntrada(response.data.opEntrada) setOpEntrada(response.data.opEntrada)
@ -818,6 +817,7 @@ export default function TraficoCorresponsales (props:IProps) {
setTotalHonorariosAA(response.data.totalHonorariosAA) setTotalHonorariosAA(response.data.totalHonorariosAA)
setTotalGastosTerceros(response.data.totalGastosTerceros) setTotalGastosTerceros(response.data.totalGastosTerceros)
setFechaRegistro(setDate(response.data.fechaRegistro)) setFechaRegistro(setDate(response.data.fechaRegistro))
setPedimentoObligatorio(response.data.pedimentoObligatorio)
}) })
.catch((e: Error) => { .catch((e: Error) => {
setHeader('Error') setHeader('Error')
@ -853,6 +853,7 @@ export default function TraficoCorresponsales (props:IProps) {
loadRectificacionHistorico() loadRectificacionHistorico()
DoesThe2ZipFileExists() DoesThe2ZipFileExists()
} }
}
const loadRectificacionHistorico = () => { const loadRectificacionHistorico = () => {
CTrafDataService.GetRectificacionHistorico(IDTrafico) CTrafDataService.GetRectificacionHistorico(IDTrafico)
@ -987,6 +988,7 @@ export default function TraficoCorresponsales (props:IProps) {
}, [IDTrafico]) }, [IDTrafico])
useEffect(() => { useEffect(() => {
if(PedimentoObligatorio){
if ( if (
IDCorresponsal !== 0 && IDCorresponsal !== 0 &&
Aduana !== 0 && Aduana !== 0 &&
@ -1014,6 +1016,25 @@ export default function TraficoCorresponsales (props:IProps) {
setStatusColor('pendingColor') setStatusColor('pendingColor')
setReady4NextProcess(false) setReady4NextProcess(false)
} }
}else{
if (
IDCorresponsal !== 0 &&
Aduana !== 0 &&
Patente !== 0 &&
NoCuenta !== null &&
TieneArchivoZIPCorresponsal &&
DescripcionMercancia !== '' && DescripcionMercancia !== undefined && DescripcionMercancia !== null && DescripcionMercancia !== " " &&
CentroCostos !== ''
){
setStatusTrafico(2)
setTerminaProceso(0)
setStatusColor('readyColor')
setReady4NextProcess(true)
}else{
setStatusColor('pendingColor')
setReady4NextProcess(false)
}
}
}, [ }, [
IDCorresponsal, IDCorresponsal,
Aduana, Aduana,
@ -1026,7 +1047,8 @@ export default function TraficoCorresponsales (props:IProps) {
TieneArchivoZIPCorresponsal, TieneArchivoZIPCorresponsal,
DescripcionMercancia, DescripcionMercancia,
CentroCostos, CentroCostos,
IDTipoMercancia IDTipoMercancia,
PedimentoObligatorio
]) ])
useEffect(() => { useEffect(() => {
@ -1079,6 +1101,19 @@ export default function TraficoCorresponsales (props:IProps) {
setShowMsg(true) setShowMsg(true)
return return
}) })
CentrosCostosService.get(IDCliente)
.then(response => {
setCentroCostos(response.data.centroCostos)
setClaveClienteFacturacion(response.data.clienteFacturacion);
return
})
.catch((e: Error) => {
setCentroCostos(''); setClaveClienteFacturacion(0);
setHeader('Error')
setMsg('Centro de costos no asignado. Solicitar a servicios administrativos la asignacion del centro de costos del cliente.')
setShowMsg(true)
return
});
} }
if (Clientes) { if (Clientes) {
let tmpArray: ItemList[] = [] let tmpArray: ItemList[] = []
@ -1221,7 +1256,7 @@ export default function TraficoCorresponsales (props:IProps) {
let data: DTOTraficoCompleto = { let data: DTOTraficoCompleto = {
id: IDTrafico, id: IDTrafico,
idUsuario: UserId, idUsuario: UserId,
estatus: TerminaProceso, pedimentoObligatorio: PedimentoObligatorio,
comentarios: 'Todo Correcto' comentarios: 'Todo Correcto'
} }
updateProceso(data) updateProceso(data)
@ -1403,7 +1438,7 @@ export default function TraficoCorresponsales (props:IProps) {
let data: DTOTraficoCompleto = { let data: DTOTraficoCompleto = {
id: IDTrafico, id: IDTrafico,
idUsuario: UserId, idUsuario: UserId,
estatus: 3, pedimentoObligatorio: PedimentoObligatorio,
comentarios: comentarios comentarios: comentarios
} }
updateProceso(data) updateProceso(data)
@ -1430,33 +1465,6 @@ export default function TraficoCorresponsales (props:IProps) {
return pedidos; return pedidos;
} }
const getCentroCostos = (idCliente: number, clientes: IClientes[]) => {
//if(Perfil === "Corresponsales"){
if(idCliente > 0){
CentrosCostosService.get(idCliente)
.then(response => {
setCentroCostos(response.data.centroCostos)
setClaveClienteFacturacion(response.data.clienteFacturacion);
if(response.data.clienteFacturacion !== 0 && response.data.clienteFacturacion !== idCliente){
let cliente = clientes!.filter(x => x.sClave === response.data.clienteFacturacion)[0];
let nombreCliente = cliente.sRazonSocial.split('|')[0].trim()
setNombreClienteFacturacion(nombreCliente);
setRfcClienteFacturacion(cliente.sRFC);
}
return
})
.catch((e: Error) => {
setCentroCostos(''); setClaveClienteFacturacion(0); setNombreClienteFacturacion(''); setRfcClienteFacturacion('');
setHeader('Error')
setMsg('Centro de costos no asignado. Solicitar a servicios administrativos la asignacion del centro de costos del cliente.')
setShowMsg(true)
return
});
}
//}
}
const cerrarTrafico = () => { const cerrarTrafico = () => {
if(TotalHonorariosAA == 0){ if(TotalHonorariosAA == 0){
setHeader('Error') setHeader('Error')
@ -1468,7 +1476,7 @@ export default function TraficoCorresponsales (props:IProps) {
saveForm(); saveForm();
FileManagerServices.GetClientesZip(IDTrafico) FileManagerServices.GetClientesZip(IDTrafico)
.then(response => { .then(response => {
updateProceso({id: IDTrafico, idUsuario:UserId, estatus: 4, comentarios:'Todo Correcto'}) updateProceso({id: IDTrafico, idUsuario:UserId, pedimentoObligatorio: PedimentoObligatorio, comentarios:'Todo Correcto'})
/* CTrafDataService.ValidateComplete({id: IDTrafico, idUsuario:UserId, estatus: 4, comentarios:'Todo Correcto'}) /* CTrafDataService.ValidateComplete({id: IDTrafico, idUsuario:UserId, estatus: 4, comentarios:'Todo Correcto'})
.then(resp => { .then(resp => {
setProceso(4); setProceso(4);
@ -1521,6 +1529,13 @@ export default function TraficoCorresponsales (props:IProps) {
}) })
} }
const PrepararOT = () => {
setPedimentoObligatorio(PedimentoObligatorio === 0 ? 1 : 0)
setPedimento(0)
setClavePedimento('')
setFechaPago('')
}
return ( return (
<div style={{height:'100%', overflowY:'scroll'}}> <div style={{height:'100%', overflowY:'scroll'}}>
<Card className="labelSize13px" style={{borderStyle:'none', height:'100%'}}> <Card className="labelSize13px" style={{borderStyle:'none', height:'100%'}}>
@ -1626,7 +1641,6 @@ export default function TraficoCorresponsales (props:IProps) {
disabled={(Depto !== 'Corresponsalias' && Depto !== 'Sistemas')} disabled={(Depto !== 'Corresponsalias' && Depto !== 'Sistemas')}
onChange={(e) => { onChange={(e) => {
setIDCliente(parseInt(e.target.value)) setIDCliente(parseInt(e.target.value))
getCentroCostos(+e.target.value, Clientes!);
}} }}
value={IDCliente} value={IDCliente}
className="form-select form-select-sm" className="form-select form-select-sm"
@ -2020,6 +2034,18 @@ export default function TraficoCorresponsales (props:IProps) {
<Col sm={12} md={12} lg={6}> <Col sm={12} md={12} lg={6}>
<fieldset className='border p-2'> <fieldset className='border p-2'>
<legend className='w-auto' style={{float:'none', fontSize:'1rem'}}>{EncabezadoPedimento1}</legend> <legend className='w-auto' style={{float:'none', fontSize:'1rem'}}>{EncabezadoPedimento1}</legend>
<Row className="justify-content-end">
<Col xs={4}>
<Form.Check
type='checkbox'
id='check-isOT'
label='¿Referencia sin pedimento?'
checked={!PedimentoObligatorio}
onChange={() => PrepararOT()}
disabled={Depto !== 'Corresponsalias'}
/>
</Col>
</Row>
<Row className='justify-content-between' style={{alignItems:'center'}}> <Row className='justify-content-between' style={{alignItems:'center'}}>
<Col sm={5} md={5} lg={5}> <Col sm={5} md={5} lg={5}>
<Button variant="success" <Button variant="success"

@ -1,6 +1,6 @@
export default interface DTOTraficoCompleto { export default interface DTOTraficoCompleto {
id: number, id: number,
idUsuario: number, idUsuario: number,
estatus: number, pedimentoObligatorio: number,
comentarios: string comentarios: string
} }

@ -46,4 +46,5 @@ export default interface ICorresponsalTrafico {
totalHonorariosAA: number; totalHonorariosAA: number;
totalGastosTerceros: number; totalGastosTerceros: number;
tieneSolicitud: number; tieneSolicitud: number;
pedimentoObligatorio: number;
} }

@ -47,7 +47,8 @@ const CorresponsalesTrafico: ICorresponsalTrafico[] = [{
causaRectificacion: '', causaRectificacion: '',
totalHonorariosAA: 0, totalHonorariosAA: 0,
totalGastosTerceros: 0, totalGastosTerceros: 0,
tieneSolicitud: 0 tieneSolicitud: 0,
pedimentoObligatorio: 1
}] }]
const initialState = { CorresponsalesTrafico } const initialState = { CorresponsalesTrafico }

Loading…
Cancel
Save