Implementacion del catalogo de tipos de contenedores y agregar el funcionamiento para asignar el tipo de contenedor

feature/Agregar_Catalogo_Tipos_Contenedores_20240320
Felix Morales 6 months ago
parent 59b149eb93
commit 7e6e222dd4
  1. 1
      src/Components/Corresponsales/Contenedores/Contenedores.tsx
  2. 1
      src/Components/Corresponsales/Contenedores/ControlledInput/ControlledInput.tsx
  3. 23
      src/Components/Corresponsales/Contenedores/SelectContainer.tsx
  4. 12
      src/Components/Corresponsales/TraficoCorresponsales.tsx
  5. 4
      src/Components/Reportes/RptCorresponsalesTraficos.tsx
  6. 4
      src/Interfaces/Catalogos/ICatTiposContenedores.ts
  7. 1
      src/Interfaces/Corresponsales/ICorresponsalContenedores.ts
  8. 10
      src/Services/Catalogos/TiposContenedores.Service.ts
  9. 21
      src/store/features/CatTiposContenedores/CatTiposContenedoresSlice.ts
  10. 4
      src/store/features/Corresponsales/CorresponsalesContenedoresSlice.ts
  11. 4
      src/store/store.ts

@ -87,6 +87,7 @@ export const Contenedores: FC<IProps> = (props) => {
idTrafico: props.IDTrafico, idTrafico: props.IDTrafico,
fSemaforo: '', fSemaforo: '',
semaforo: 0, semaforo: 0,
idTipoContenedor:0
} }
CContDataService.Append(data) CContDataService.Append(data)
.then((response) => { .then((response) => {

@ -37,6 +37,7 @@ export const ControlledInput: FC<IProps> = (props) => {
idTrafico: props.IDTrafico, idTrafico: props.IDTrafico,
fSemaforo: '', fSemaforo: '',
semaforo: 0, semaforo: 0,
idTipoContenedor:0
} }
CContDataService.Append(data) CContDataService.Append(data)
.then((response) => { .then((response) => {

@ -31,6 +31,7 @@ export const SelectContainer: FC<IProps> = (props) => {
const dispatch = useDispatch() const dispatch = useDispatch()
const [toggleSelect, setToggleSelect] = useState(false) const [toggleSelect, setToggleSelect] = useState(false)
const mCContenedores = useSelector((state: RootState) => state.CCData.CorresponsalesContenedores) const mCContenedores = useSelector((state: RootState) => state.CCData.CorresponsalesContenedores)
const mCTiposContenedores = useSelector((state: RootState) => state.CTiposContenedores.CatTiposContenedores)
const [Contenedor, setContenedor] = useState('') const [Contenedor, setContenedor] = useState('')
const [IDContenedor, setIDContenedor] = useState(0) const [IDContenedor, setIDContenedor] = useState(0)
const [Placeholder, setPlaceholder] = useState('') const [Placeholder, setPlaceholder] = useState('')
@ -39,6 +40,7 @@ export const SelectContainer: FC<IProps> = (props) => {
const [FSemaforo, setFSemaforo] = useState<Date | null>() const [FSemaforo, setFSemaforo] = useState<Date | null>()
const [Semaforo, setSemaforo] = useState(0) const [Semaforo, setSemaforo] = useState(0)
const [ShowFacturasDialog, setShowFacturasDialog] = useState(false) const [ShowFacturasDialog, setShowFacturasDialog] = useState(false)
const [IdTipoContenedor, setIdTipoContenedor] = useState(0)
useEffect(() => { useEffect(() => {
setPlaceholder('(' + mCContenedores.filter((item) => item.id > 0).length + ') Contenedores') setPlaceholder('(' + mCContenedores.filter((item) => item.id > 0).length + ') Contenedores')
@ -63,6 +65,7 @@ export const SelectContainer: FC<IProps> = (props) => {
idTrafico: props.IDTrafico, idTrafico: props.IDTrafico,
fSemaforo: FSemaforo ? adjustTimeZone(FSemaforo.toISOString()) : '', fSemaforo: FSemaforo ? adjustTimeZone(FSemaforo.toISOString()) : '',
semaforo: 2, semaforo: 2,
idTipoContenedor: 0
} }
CContDataService.Append(data) CContDataService.Append(data)
.then((response) => { .then((response) => {
@ -93,6 +96,7 @@ export const SelectContainer: FC<IProps> = (props) => {
idTrafico: props.IDTrafico, idTrafico: props.IDTrafico,
fSemaforo: FSemaforo ? adjustTimeZone(FSemaforo.toISOString()) : '', fSemaforo: FSemaforo ? adjustTimeZone(FSemaforo.toISOString()) : '',
semaforo: Semaforo, semaforo: Semaforo,
idTipoContenedor: IdTipoContenedor
} }
// console.log(JSON.stringify(data)) // console.log(JSON.stringify(data))
CContDataService.Append(data) CContDataService.Append(data)
@ -251,6 +255,7 @@ export const SelectContainer: FC<IProps> = (props) => {
onClick={() => { onClick={() => {
setFSemaforo(StrtoDate(item.fSemaforo)) setFSemaforo(StrtoDate(item.fSemaforo))
setSemaforo(item.semaforo) setSemaforo(item.semaforo)
setIdTipoContenedor(item.idTipoContenedor)
setDialogAddDate(true) setDialogAddDate(true)
setToggleSelect(!toggleSelect) setToggleSelect(!toggleSelect)
}} }}
@ -325,6 +330,24 @@ export const SelectContainer: FC<IProps> = (props) => {
<b>¿Esta seguro de agregar fecha al contenedor: {Contenedor}?</b> <b>¿Esta seguro de agregar fecha al contenedor: {Contenedor}?</b>
</Col> </Col>
</Row> </Row>
<Row className='justify-content-end'>
<Col xs={5}>
Tipo de Contenedor
</Col>
<Col xs={7}>
<Form.Control
as='select'
onChange={(e) => {setIdTipoContenedor(+e.target.value)}}
value={IdTipoContenedor}
className='form-select form-select-sm'
>
<option value={0}>-SELECCIONE-</option>
{mCTiposContenedores ? mCTiposContenedores.map((t) => {
return <option value={t.id}>{t.descripcion}</option>
}) : null}
</Form.Control>
</Col>
</Row>
<Row style={{ paddingTop: '10px' }}> <Row style={{ paddingTop: '10px' }}>
<Col xs={4}></Col> <Col xs={4}></Col>
<Col xs={2}>Fecha</Col> <Col xs={2}>Fecha</Col>

@ -133,6 +133,8 @@ import { CrearSolicitud } from './SolicitudReapertura/CrearSolicitud'
import { AutorizarSolicitud } from './SolicitudReapertura/AutorizarSolicitud' import { AutorizarSolicitud } from './SolicitudReapertura/AutorizarSolicitud'
import { DTOTraficoSolicitud } from '../../DTO/Corresponsales/DTOTraficoSolicitud' import { DTOTraficoSolicitud } from '../../DTO/Corresponsales/DTOTraficoSolicitud'
import CorresponsalesTraficoSolicitudService from '../../Services/Corresponsalias/Corresponsales.Trafico.Solicitud.Service' 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 { interface IProps {
IDTrafico: number IDTrafico: number
@ -716,6 +718,16 @@ export default function TraficoCorresponsales (props:IProps) {
setShowMsg(true) setShowMsg(true)
return 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) await CAntDataService.getAll(IDTrafico)
.then((response) => { .then((response) => {
dispatch(populateCorresponsalesAnticipos(response.data)) dispatch(populateCorresponsalesAnticipos(response.data))

@ -450,10 +450,10 @@ export default function RptCorresponsalesTraficos(props: IProps) {
contenedor.semaforo = +element[23] === 1 ? 2 : 1 contenedor.semaforo = +element[23] === 1 ? 2 : 1
await saveTxtContenedores(contenedor); await saveTxtContenedores(contenedor);
}else{ }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{ }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) => { .catch((e: Error) => {

@ -0,0 +1,4 @@
export interface ICatTiposContenedores{
id: number;
descripcion: number;
}

@ -4,5 +4,6 @@ export default interface ICorresponsalContenedores {
idTrafico: number, idTrafico: number,
fSemaforo: string, fSemaforo: string,
semaforo: number, semaforo: number,
idTipoContenedor: number,
activo?: boolean activo?: boolean
} }

@ -0,0 +1,10 @@
import http from "../common/http-common";
import { ICatTiposContenedores } from "../../Interfaces/Catalogos/ICatTiposContenedores";
class CatTiposContenedoresService{
getAll(){
return http.get<ICatTiposContenedores[]>('/Catalogos/CatTiposContenedores/');
}
}
export default new CatTiposContenedoresService();

@ -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<ICatTiposContenedores[]>) => {
state.CatTiposContenedores = []
state.CatTiposContenedores.push(... action.payload)
},
}
})
export const {
populateCatTiposContenedores,
} = CatTiposContenedoresSlice.actions;
export default CatTiposContenedoresSlice.reducer;

@ -1,6 +1,6 @@
import { createSlice, PayloadAction } from '@reduxjs/toolkit' import { createSlice, PayloadAction } from '@reduxjs/toolkit'
import ICorresponsalContenedores from '../../../Interfaces/Corresponsales/ICorresponsalContenedores'; 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 } const initialState = { CorresponsalesContenedores }
export const CorresponsalesContenedoresSlice = createSlice({ export const CorresponsalesContenedoresSlice = createSlice({
@ -26,7 +26,7 @@ export const CorresponsalesContenedoresSlice = createSlice({
}, },
InitCorresponsalesContenedores : (state, action: PayloadAction<number>) => { InitCorresponsalesContenedores : (state, action: PayloadAction<number>) => {
//state.CorresponsalesContenedores.splice(0,state.CorresponsalesContenedores.length-1) //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<ICorresponsalContenedores[]>) => { addTxtContenedores: (state, action: PayloadAction<ICorresponsalContenedores[]>) => {
const newArr = [...state.CorresponsalesContenedores, ...action.payload] const newArr = [...state.CorresponsalesContenedores, ...action.payload]

@ -12,6 +12,7 @@ import CorresponsalesPartidasSlice from './features/Corresponsales/Corresponsale
import CorresponsalesCuentasComplementariasEstatusSlice from './features/Corresponsales/CorresponsalesCuentasComplementariasEstatusSlice' import CorresponsalesCuentasComplementariasEstatusSlice from './features/Corresponsales/CorresponsalesCuentasComplementariasEstatusSlice'
import PedimentosConsolidadosSlice from './features/Corresponsales/CorresponsalesPedimentosConsolidadosSlice' import PedimentosConsolidadosSlice from './features/Corresponsales/CorresponsalesPedimentosConsolidadosSlice'
import RectificacionesPedimentosSlice from './features/Corresponsales/CorresponsalesPedimentosRectificacionesSlice' import RectificacionesPedimentosSlice from './features/Corresponsales/CorresponsalesPedimentosRectificacionesSlice'
import CatTiposContenedoresSlice from './features/CatTiposContenedores/CatTiposContenedoresSlice'
export const store = configureStore({ export const store = configureStore({
@ -28,7 +29,8 @@ export const store = configureStore({
CPartidas: CorresponsalesPartidasSlice, CPartidas: CorresponsalesPartidasSlice,
CCueCompEstatus : CorresponsalesCuentasComplementariasEstatusSlice, CCueCompEstatus : CorresponsalesCuentasComplementariasEstatusSlice,
CPedimentosConsolidados: PedimentosConsolidadosSlice, CPedimentosConsolidados: PedimentosConsolidadosSlice,
CRectificaciones: RectificacionesPedimentosSlice CRectificaciones: RectificacionesPedimentosSlice,
CTiposContenedores : CatTiposContenedoresSlice
} }
}) })

Loading…
Cancel
Save