Se agregan campos: Cita, Validacion que se genere un AOL con minimo 1 servicio, se empieza control de AOL con estatus
parent
73ec7ccaf0
commit
4dab58af3f
@ -0,0 +1,40 @@ |
|||||||
|
import React, { FC, useState } from 'react' |
||||||
|
import { Form } from 'react-bootstrap' |
||||||
|
import { useSelector } from 'react-redux' |
||||||
|
import { RootState } from '../../../store/store' |
||||||
|
|
||||||
|
interface IProps { |
||||||
|
IDViaje: number |
||||||
|
TipoOperacion: number |
||||||
|
} |
||||||
|
|
||||||
|
export const ViajeEstatus: FC<IProps> = (props) => { |
||||||
|
const mTripStatus = useSelector((state: RootState) => state.OpViajesEstatusSecuencia.OpViajesEstatusSecuencia) |
||||||
|
const [IDStatus, setIDStatus] = useState(0) |
||||||
|
return ( |
||||||
|
<div> |
||||||
|
<Form.Control |
||||||
|
as='select' |
||||||
|
onChange={(e) => { |
||||||
|
setIDStatus(parseInt(e.target.value)) |
||||||
|
}} |
||||||
|
value={IDStatus} |
||||||
|
className='form-select form-select-sm dialogLabel' |
||||||
|
> |
||||||
|
<option value='0'>Pendiente</option> |
||||||
|
{mTripStatus |
||||||
|
? mTripStatus |
||||||
|
.filter((row) => row.tipoOperacion === props.TipoOperacion) |
||||||
|
.sort((a, b) => a.secuencia - b.secuencia) |
||||||
|
.map((row) => { |
||||||
|
return ( |
||||||
|
<option key={row.id} value={row.id}> |
||||||
|
{row.sEstatus} |
||||||
|
</option> |
||||||
|
) |
||||||
|
}) |
||||||
|
: null} |
||||||
|
</Form.Control> |
||||||
|
</div> |
||||||
|
) |
||||||
|
} |
@ -0,0 +1,9 @@ |
|||||||
|
export default interface DTOViajeEstatusSecuencia { |
||||||
|
id: number, |
||||||
|
tipoOperacion: number, |
||||||
|
sTipoOperacion: string, |
||||||
|
estatus: number, |
||||||
|
sEstatus: string, |
||||||
|
secuencia: number, |
||||||
|
activo: number |
||||||
|
}
|
@ -0,0 +1,34 @@ |
|||||||
|
import { createSlice, PayloadAction } from '@reduxjs/toolkit' |
||||||
|
import DTOViajeEstatusSecuencia from '../../../DTOs/Operaciones/DTOViajeEstatusSecuencia' |
||||||
|
const OpViajesEstatusSecuencia: DTOViajeEstatusSecuencia[] = [] |
||||||
|
const initialState = { OpViajesEstatusSecuencia } |
||||||
|
|
||||||
|
export const OpViajesEstatusSecuenciaSlice = createSlice({ |
||||||
|
name: 'OpViajesEstatusSecuencia', |
||||||
|
initialState: initialState, |
||||||
|
reducers: { |
||||||
|
resetOpViajesEstatusSecuencia : (state, action: PayloadAction<string>) => { |
||||||
|
state.OpViajesEstatusSecuencia = [] |
||||||
|
},
|
||||||
|
populateOpViajesEstatusSecuencia : (state, action: PayloadAction<DTOViajeEstatusSecuencia[]>) => { |
||||||
|
action.payload.forEach(element => { |
||||||
|
const index = state.OpViajesEstatusSecuencia.findIndex(object => object.id === element.id) |
||||||
|
if (index<0) state.OpViajesEstatusSecuencia.push(element) |
||||||
|
}) |
||||||
|
}, |
||||||
|
updateOpViajesEstatusSecuencia : (state, action: PayloadAction<DTOViajeEstatusSecuencia[]>) => { |
||||||
|
action.payload.forEach(row => { |
||||||
|
const i = state.OpViajesEstatusSecuencia.findIndex(_element => _element.id === row.id); |
||||||
|
if (i > -1) state.OpViajesEstatusSecuencia[i] = row; |
||||||
|
else state.OpViajesEstatusSecuencia.push(row); |
||||||
|
}) |
||||||
|
}, |
||||||
|
deleteOpViajesEstatusSecuencia : (state, action: PayloadAction<number>) => { |
||||||
|
const newArr = state.OpViajesEstatusSecuencia.filter(data => data.id != action.payload); |
||||||
|
state.OpViajesEstatusSecuencia=newArr |
||||||
|
}, |
||||||
|
}, |
||||||
|
}) |
||||||
|
|
||||||
|
export const { resetOpViajesEstatusSecuencia, populateOpViajesEstatusSecuencia, updateOpViajesEstatusSecuencia, deleteOpViajesEstatusSecuencia } = OpViajesEstatusSecuenciaSlice.actions; |
||||||
|
export default OpViajesEstatusSecuenciaSlice.reducer; |
Loading…
Reference in new issue