|
|
|
@ -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) |
|
|
|
|
}} |
|
|
|
|
> |
|
|
|
|
| {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> |
|
|
|
|
) |
|
|
|
|
) : ('') |
|
|
|
|
) : ( |
|
|
|
|
'' |
|
|
|
|
)} |
|
|
|
|