feature ocultar calendario, asignar fecha de desaduanamiento y semaforo fiscal en base a fechas y semaforos capturados en contenedores

feature/ConsolidarPedimentos_20231229
Felix Morales 1 year ago
parent d9f83a58b0
commit fb172985c6
  1. 45
      src/Components/Corresponsales/Contenedores/SelectContainer.tsx
  2. 3
      src/Components/Corresponsales/TraficoCorresponsales.tsx

@ -19,6 +19,8 @@ import clean from '../../../images/Clean.png';
interface IProps {
IDTrafico: number
Editable: boolean
setFechaDesaduanamiento: any
setSemaforoFiscal: any
}
export const SelectContainer: FC<IProps> = (props) => {
@ -35,6 +37,15 @@ export const SelectContainer: FC<IProps> = (props) => {
useEffect(() => {
setPlaceholder('(' + mCContenedores.filter((item) => item.id > 0).length + ') Contenedores')
if(mCContenedores.length > 1){
setTimeout(() => {
setFechaDesaduanamiento();
setSemaforoFiscal();
}, 1000);
}else{
props.setFechaDesaduanamiento(null)
props.setSemaforoFiscal(0)
}
}, [mCContenedores])
const loadInfo = (data: ICorresponsalContenedores) => {
@ -88,7 +99,10 @@ export const SelectContainer: FC<IProps> = (props) => {
setIDContenedor(0)
setContenedor('')
setDialogTabs(false)
setFSemaforo(null)
setSemaforo(0)
dispatch(updateCorresponsalesContenedores(response.data))
setDialogAddDate(false)
return
}
})
@ -101,10 +115,11 @@ export const SelectContainer: FC<IProps> = (props) => {
CContDataService.Delete(IDContenedor).then( (response) => {
if(response.status === 200){
dispatch(deleteCorresponsalesContenedores(IDContenedor))
console.log(mCContenedores.length);
setIDContenedor(0)
setContenedor('')
setDialogTabs(false)
setFSemaforo(null)
setSemaforo(0)
return;
}
}).catch((e: Error) => {
@ -119,6 +134,28 @@ export const SelectContainer: FC<IProps> = (props) => {
} else return null
}
const setFechaDesaduanamiento = () => {
//Se valida si hay contenedores a los que no se les ha asignado una fecha
let contenedoresSinFecha = mCContenedores.filter((item) => item.id > 0 && item.fSemaforo === null)
if(contenedoresSinFecha.length > 0){ //Si los hay, se borra la fecha de desaduanamiento
props.setFechaDesaduanamiento(null);
}else{ //Si no los hay, se busca el contenedor con la fecha más reciente y se asigna la fecha de desaduanamiento
let contenedor = mCContenedores.reduce((a,b) => a.fSemaforo > b.fSemaforo ? a : b);
props.setFechaDesaduanamiento(new Date(contenedor.fSemaforo));
}
}
const setSemaforoFiscal = () => {
//Se valida si hay contenedores cuyo semaforo se encuentre en rojo (1) o sin seleccionar (0)
let contenedoresEnRojo = mCContenedores.filter((item) => item.id > 0 && (item.semaforo === 1 || item.semaforo === 0))
if(contenedoresEnRojo.length > 0){
//Si los hay, se asigna el semaforo en rojo (0) en el componente padre
props.setSemaforoFiscal(0)
}else{ //Si no los hay, se establece el semaforo fiscal en verde (1) en el componente padre
props.setSemaforoFiscal(1)
}
}
return (
<div>
<div className='form-group'>
@ -151,6 +188,7 @@ export const SelectContainer: FC<IProps> = (props) => {
setContenedor(e.target.value)
}}
onKeyDown={(e) => handleKeyDown(e)}
autoComplete='none'
/>
<span className='input-group-addon sorroundImage'>
<img
@ -186,6 +224,7 @@ export const SelectContainer: FC<IProps> = (props) => {
setFSemaforo(StrtoDate(item.fSemaforo))
setSemaforo(item.semaforo)
setDialogAddDate(true)
setToggleSelect(!toggleSelect)
}}
>
&nbsp;| {item.fSemaforo} |{' '}
@ -194,11 +233,11 @@ export const SelectContainer: FC<IProps> = (props) => {
<IconContext.Provider value={{ color: 'red', size: '20px' }}>
<BsFillRecordFill />
</IconContext.Provider>
) : (
) : item.semaforo === 2 ?(
<IconContext.Provider value={{ color: '#4BFF59', size: '20px' }}>
<BsFillRecordFill />
</IconContext.Provider>
)
) : ('')
) : (
''
)}

@ -1932,6 +1932,8 @@ export default function TraficoCorresponsales (props:IProps) {
<SelectContainer
IDTrafico={IDTrafico}
Editable={Depto === 'Corresponsalias'}
setFechaDesaduanamiento={setFechaDesaduanamiento}
setSemaforoFiscal={setSemaforoFiscal}
/>
</Col>
</Row>
@ -2067,6 +2069,7 @@ export default function TraficoCorresponsales (props:IProps) {
</Col>
<Col sm={7}>
<DatePicker
open={false}
selected={FechaDesaduanamiento}
onChange={(date: any) =>
setFechaDesaduanamiento(date)

Loading…
Cancel
Save