From 7e6e222dd462b7991d4eae13c97e0ab2779324b0 Mon Sep 17 00:00:00 2001 From: Felix Morales Date: Wed, 20 Mar 2024 16:32:42 -0500 Subject: [PATCH] Implementacion del catalogo de tipos de contenedores y agregar el funcionamiento para asignar el tipo de contenedor --- .../Contenedores/Contenedores.tsx | 1 + .../ControlledInput/ControlledInput.tsx | 1 + .../Contenedores/SelectContainer.tsx | 23 +++++++++++++++++++ .../Corresponsales/TraficoCorresponsales.tsx | 12 ++++++++++ .../Reportes/RptCorresponsalesTraficos.tsx | 4 ++-- .../Catalogos/ICatTiposContenedores.ts | 4 ++++ .../ICorresponsalContenedores.ts | 1 + .../Catalogos/TiposContenedores.Service.ts | 10 ++++++++ .../CatTiposContenedoresSlice.ts | 21 +++++++++++++++++ .../CorresponsalesContenedoresSlice.ts | 4 ++-- src/store/store.ts | 4 +++- 11 files changed, 80 insertions(+), 5 deletions(-) create mode 100644 src/Interfaces/Catalogos/ICatTiposContenedores.ts create mode 100644 src/Services/Catalogos/TiposContenedores.Service.ts create mode 100644 src/store/features/CatTiposContenedores/CatTiposContenedoresSlice.ts diff --git a/src/Components/Corresponsales/Contenedores/Contenedores.tsx b/src/Components/Corresponsales/Contenedores/Contenedores.tsx index 152a318..c89461a 100644 --- a/src/Components/Corresponsales/Contenedores/Contenedores.tsx +++ b/src/Components/Corresponsales/Contenedores/Contenedores.tsx @@ -87,6 +87,7 @@ export const Contenedores: FC = (props) => { idTrafico: props.IDTrafico, fSemaforo: '', semaforo: 0, + idTipoContenedor:0 } CContDataService.Append(data) .then((response) => { diff --git a/src/Components/Corresponsales/Contenedores/ControlledInput/ControlledInput.tsx b/src/Components/Corresponsales/Contenedores/ControlledInput/ControlledInput.tsx index ce96048..c88e42a 100644 --- a/src/Components/Corresponsales/Contenedores/ControlledInput/ControlledInput.tsx +++ b/src/Components/Corresponsales/Contenedores/ControlledInput/ControlledInput.tsx @@ -37,6 +37,7 @@ export const ControlledInput: FC = (props) => { idTrafico: props.IDTrafico, fSemaforo: '', semaforo: 0, + idTipoContenedor:0 } CContDataService.Append(data) .then((response) => { diff --git a/src/Components/Corresponsales/Contenedores/SelectContainer.tsx b/src/Components/Corresponsales/Contenedores/SelectContainer.tsx index f54826f..da9231e 100644 --- a/src/Components/Corresponsales/Contenedores/SelectContainer.tsx +++ b/src/Components/Corresponsales/Contenedores/SelectContainer.tsx @@ -31,6 +31,7 @@ export const SelectContainer: FC = (props) => { const dispatch = useDispatch() const [toggleSelect, setToggleSelect] = useState(false) const mCContenedores = useSelector((state: RootState) => state.CCData.CorresponsalesContenedores) + const mCTiposContenedores = useSelector((state: RootState) => state.CTiposContenedores.CatTiposContenedores) const [Contenedor, setContenedor] = useState('') const [IDContenedor, setIDContenedor] = useState(0) const [Placeholder, setPlaceholder] = useState('') @@ -39,6 +40,7 @@ export const SelectContainer: FC = (props) => { const [FSemaforo, setFSemaforo] = useState() const [Semaforo, setSemaforo] = useState(0) const [ShowFacturasDialog, setShowFacturasDialog] = useState(false) + const [IdTipoContenedor, setIdTipoContenedor] = useState(0) useEffect(() => { setPlaceholder('(' + mCContenedores.filter((item) => item.id > 0).length + ') Contenedores') @@ -63,6 +65,7 @@ export const SelectContainer: FC = (props) => { idTrafico: props.IDTrafico, fSemaforo: FSemaforo ? adjustTimeZone(FSemaforo.toISOString()) : '', semaforo: 2, + idTipoContenedor: 0 } CContDataService.Append(data) .then((response) => { @@ -93,6 +96,7 @@ export const SelectContainer: FC = (props) => { idTrafico: props.IDTrafico, fSemaforo: FSemaforo ? adjustTimeZone(FSemaforo.toISOString()) : '', semaforo: Semaforo, + idTipoContenedor: IdTipoContenedor } // console.log(JSON.stringify(data)) CContDataService.Append(data) @@ -251,6 +255,7 @@ export const SelectContainer: FC = (props) => { onClick={() => { setFSemaforo(StrtoDate(item.fSemaforo)) setSemaforo(item.semaforo) + setIdTipoContenedor(item.idTipoContenedor) setDialogAddDate(true) setToggleSelect(!toggleSelect) }} @@ -325,6 +330,24 @@ export const SelectContainer: FC = (props) => { ¿Esta seguro de agregar fecha al contenedor: {Contenedor}? + + + Tipo de Contenedor + + + {setIdTipoContenedor(+e.target.value)}} + value={IdTipoContenedor} + className='form-select form-select-sm' + > + + {mCTiposContenedores ? mCTiposContenedores.map((t) => { + return + }) : null} + + + Fecha diff --git a/src/Components/Corresponsales/TraficoCorresponsales.tsx b/src/Components/Corresponsales/TraficoCorresponsales.tsx index c8500b5..f9a4d02 100644 --- a/src/Components/Corresponsales/TraficoCorresponsales.tsx +++ b/src/Components/Corresponsales/TraficoCorresponsales.tsx @@ -133,6 +133,8 @@ import { CrearSolicitud } from './SolicitudReapertura/CrearSolicitud' import { AutorizarSolicitud } from './SolicitudReapertura/AutorizarSolicitud' import { DTOTraficoSolicitud } from '../../DTO/Corresponsales/DTOTraficoSolicitud' import CorresponsalesTraficoSolicitudService from '../../Services/Corresponsalias/Corresponsales.Trafico.Solicitud.Service' +import TiposContenedoresService from '../../Services/Catalogos/TiposContenedores.Service' +import { populateCatTiposContenedores } from '../../store/features/CatTiposContenedores/CatTiposContenedoresSlice' interface IProps { IDTrafico: number @@ -716,6 +718,16 @@ export default function TraficoCorresponsales (props:IProps) { setShowMsg(true) return }) + await TiposContenedoresService.getAll() + .then((response) => { + dispatch(populateCatTiposContenedores(response.data)) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) await CAntDataService.getAll(IDTrafico) .then((response) => { dispatch(populateCorresponsalesAnticipos(response.data)) diff --git a/src/Components/Reportes/RptCorresponsalesTraficos.tsx b/src/Components/Reportes/RptCorresponsalesTraficos.tsx index fe8f83d..e21107c 100644 --- a/src/Components/Reportes/RptCorresponsalesTraficos.tsx +++ b/src/Components/Reportes/RptCorresponsalesTraficos.tsx @@ -450,10 +450,10 @@ export default function RptCorresponsalesTraficos(props: IProps) { contenedor.semaforo = +element[23] === 1 ? 2 : 1 await saveTxtContenedores(contenedor); }else{ - await saveTxtContenedores({id: 0, contenedor: element[32], idTrafico: model.id , fSemaforo: element[22], semaforo: +element[23] === 1 ? 2 : 1}); + await saveTxtContenedores({id: 0, contenedor: element[32], idTrafico: model.id , fSemaforo: element[22], semaforo: +element[23] === 1 ? 2 : 1,idTipoContenedor:0}); } }else{ - await saveTxtContenedores({id: 0, contenedor: element[32], idTrafico: model.id , fSemaforo: element[22], semaforo: +element[23] === 1 ? 2 : 1}); + await saveTxtContenedores({id: 0, contenedor: element[32], idTrafico: model.id , fSemaforo: element[22], semaforo: +element[23] === 1 ? 2 : 1, idTipoContenedor:0}); } }) .catch((e: Error) => { diff --git a/src/Interfaces/Catalogos/ICatTiposContenedores.ts b/src/Interfaces/Catalogos/ICatTiposContenedores.ts new file mode 100644 index 0000000..ce62a36 --- /dev/null +++ b/src/Interfaces/Catalogos/ICatTiposContenedores.ts @@ -0,0 +1,4 @@ +export interface ICatTiposContenedores{ + id: number; + descripcion: number; +} \ No newline at end of file diff --git a/src/Interfaces/Corresponsales/ICorresponsalContenedores.ts b/src/Interfaces/Corresponsales/ICorresponsalContenedores.ts index 03e0e91..0b6a115 100644 --- a/src/Interfaces/Corresponsales/ICorresponsalContenedores.ts +++ b/src/Interfaces/Corresponsales/ICorresponsalContenedores.ts @@ -4,5 +4,6 @@ export default interface ICorresponsalContenedores { idTrafico: number, fSemaforo: string, semaforo: number, + idTipoContenedor: number, activo?: boolean } \ No newline at end of file diff --git a/src/Services/Catalogos/TiposContenedores.Service.ts b/src/Services/Catalogos/TiposContenedores.Service.ts new file mode 100644 index 0000000..74a6146 --- /dev/null +++ b/src/Services/Catalogos/TiposContenedores.Service.ts @@ -0,0 +1,10 @@ +import http from "../common/http-common"; +import { ICatTiposContenedores } from "../../Interfaces/Catalogos/ICatTiposContenedores"; + +class CatTiposContenedoresService{ + getAll(){ + return http.get('/Catalogos/CatTiposContenedores/'); + } +} + +export default new CatTiposContenedoresService(); \ No newline at end of file diff --git a/src/store/features/CatTiposContenedores/CatTiposContenedoresSlice.ts b/src/store/features/CatTiposContenedores/CatTiposContenedoresSlice.ts new file mode 100644 index 0000000..32a937b --- /dev/null +++ b/src/store/features/CatTiposContenedores/CatTiposContenedoresSlice.ts @@ -0,0 +1,21 @@ +import { createSlice, PayloadAction } from '@reduxjs/toolkit' +import { ICatTiposContenedores } from '../../../Interfaces/Catalogos/ICatTiposContenedores' + +const CatTiposContenedores: ICatTiposContenedores[] = [] +const initialState = {CatTiposContenedores} + +export const CatTiposContenedoresSlice = createSlice({ + name: 'CatTiposContenedores', + initialState: initialState, + reducers: { + populateCatTiposContenedores : (state, action: PayloadAction) => { + state.CatTiposContenedores = [] + state.CatTiposContenedores.push(... action.payload) + }, + } +}) + +export const { + populateCatTiposContenedores, + } = CatTiposContenedoresSlice.actions; + export default CatTiposContenedoresSlice.reducer; diff --git a/src/store/features/Corresponsales/CorresponsalesContenedoresSlice.ts b/src/store/features/Corresponsales/CorresponsalesContenedoresSlice.ts index b2a78a0..fcc4450 100644 --- a/src/store/features/Corresponsales/CorresponsalesContenedoresSlice.ts +++ b/src/store/features/Corresponsales/CorresponsalesContenedoresSlice.ts @@ -1,6 +1,6 @@ import { createSlice, PayloadAction } from '@reduxjs/toolkit' import ICorresponsalContenedores from '../../../Interfaces/Corresponsales/ICorresponsalContenedores'; -const CorresponsalesContenedores: ICorresponsalContenedores[] = [{id:0, contenedor:'-Seleccione-', idTrafico:0, fSemaforo:'', semaforo:0}] +const CorresponsalesContenedores: ICorresponsalContenedores[] = [{id:0, contenedor:'-Seleccione-', idTrafico:0, fSemaforo:'', semaforo:0, idTipoContenedor:0}] const initialState = { CorresponsalesContenedores } export const CorresponsalesContenedoresSlice = createSlice({ @@ -26,7 +26,7 @@ export const CorresponsalesContenedoresSlice = createSlice({ }, InitCorresponsalesContenedores : (state, action: PayloadAction) => { //state.CorresponsalesContenedores.splice(0,state.CorresponsalesContenedores.length-1) - state.CorresponsalesContenedores=[{id:0, contenedor:'-Seleccione-', idTrafico:0, fSemaforo:'', semaforo:0}] + state.CorresponsalesContenedores=[{id:0, contenedor:'-Seleccione-', idTrafico:0, fSemaforo:'', semaforo:0, idTipoContenedor:0}] }, addTxtContenedores: (state, action: PayloadAction) => { const newArr = [...state.CorresponsalesContenedores, ...action.payload] diff --git a/src/store/store.ts b/src/store/store.ts index 188bd95..b6e86be 100644 --- a/src/store/store.ts +++ b/src/store/store.ts @@ -12,6 +12,7 @@ import CorresponsalesPartidasSlice from './features/Corresponsales/Corresponsale import CorresponsalesCuentasComplementariasEstatusSlice from './features/Corresponsales/CorresponsalesCuentasComplementariasEstatusSlice' import PedimentosConsolidadosSlice from './features/Corresponsales/CorresponsalesPedimentosConsolidadosSlice' import RectificacionesPedimentosSlice from './features/Corresponsales/CorresponsalesPedimentosRectificacionesSlice' +import CatTiposContenedoresSlice from './features/CatTiposContenedores/CatTiposContenedoresSlice' export const store = configureStore({ @@ -28,7 +29,8 @@ export const store = configureStore({ CPartidas: CorresponsalesPartidasSlice, CCueCompEstatus : CorresponsalesCuentasComplementariasEstatusSlice, CPedimentosConsolidados: PedimentosConsolidadosSlice, - CRectificaciones: RectificacionesPedimentosSlice + CRectificaciones: RectificacionesPedimentosSlice, + CTiposContenedores : CatTiposContenedoresSlice } })