Fixed: delete dialog, status from trip monitor, refresh button

develop
Al Garcia 2 years ago
parent 6ef3785dcb
commit be52fe1147
  1. 36
      src/Components/Operaciones/OpMonitor.tsx
  2. 45
      src/Components/Operaciones/Viaje/ViajeEstatus.tsx
  3. 1
      src/store/features/Operaciones/OpViajesSlice.ts

@ -10,6 +10,7 @@ import {
BsTruck, BsTruck,
BsXLg, BsXLg,
} from 'react-icons/bs' } from 'react-icons/bs'
import { HiOutlineRefresh } from 'react-icons/hi'
import { FcShipped, FcInTransit } from 'react-icons/fc' import { FcShipped, FcInTransit } from 'react-icons/fc'
import { useDispatch, useSelector } from 'react-redux' import { useDispatch, useSelector } from 'react-redux'
import { RootState } from '../../store/store' import { RootState } from '../../store/store'
@ -17,7 +18,12 @@ import DTOOpViajes from '../../DTOs/Operaciones/DTOViajes'
import DSOpViajes from '../../Services/Operaciones/OpViajes.Services' import DSOpViajes from '../../Services/Operaciones/OpViajes.Services'
import DSOpStatusSecuence from '../../Services/Operaciones/OpViajes.Services' import DSOpStatusSecuence from '../../Services/Operaciones/OpViajes.Services'
import { Servicios } from './Viaje/Servicios/Servicios' import { Servicios } from './Viaje/Servicios/Servicios'
import { deleteOpViajes, populateOpViajes, updateOpViajes } from '../../store/features/Operaciones/OpViajesSlice' import {
resetOpViajes,
deleteOpViajes,
populateOpViajes,
updateOpViajes,
} from '../../store/features/Operaciones/OpViajesSlice'
import { Viaje } from './Viaje/Viaje' import { Viaje } from './Viaje/Viaje'
import '../../css/masterDetail.css' import '../../css/masterDetail.css'
import '../../css/generalStyles.css' import '../../css/generalStyles.css'
@ -27,11 +33,13 @@ import {
} from '../../store/features/Operaciones/OpViajesServiciosSlice' } from '../../store/features/Operaciones/OpViajesServiciosSlice'
import { populateOpViajesEstatusSecuencia } from '../../store/features/Operaciones/OpViajes.Estatus.SecuenciaSlice' import { populateOpViajesEstatusSecuencia } from '../../store/features/Operaciones/OpViajes.Estatus.SecuenciaSlice'
import { ViajeEstatus } from './Viaje/ViajeEstatus' import { ViajeEstatus } from './Viaje/ViajeEstatus'
import { useNavigate } from 'react-router-dom'
interface IProps {} interface IProps {}
export const OpMonitor: FC<IProps> = (props) => { export const OpMonitor: FC<IProps> = (props) => {
const dispatch = useDispatch() const dispatch = useDispatch()
const navigate = useNavigate()
const Info = JSON.parse(localStorage.getItem('tokenInfo') || '[]') const Info = JSON.parse(localStorage.getItem('tokenInfo') || '[]')
const UserID = Info.UserId const UserID = Info.UserId
const CatClientes = useSelector((state: RootState) => state.CatClientes.CatClientes) const CatClientes = useSelector((state: RootState) => state.CatClientes.CatClientes)
@ -102,13 +110,18 @@ export const OpMonitor: FC<IProps> = (props) => {
DSOpViajes.Delete(IDViaje) DSOpViajes.Delete(IDViaje)
.then((response) => { .then((response) => {
dispatch(deleteOpViajes(IDViaje)) dispatch(deleteOpViajes(IDViaje))
setShowDeleteDialog(false)
}) })
.catch((e: Error) => {}) .catch((e: Error) => {})
} }
useEffect(() => { const loadEveryting = () => {
loadStatus() loadStatus()
loadTrips() loadTrips()
}
useEffect(() => {
loadEveryting()
}, []) }, [])
const loadStatus = () => { const loadStatus = () => {
@ -122,7 +135,8 @@ export const OpMonitor: FC<IProps> = (props) => {
const loadTrips = () => { const loadTrips = () => {
DSOpViajes.Get() DSOpViajes.Get()
.then((response) => { .then((response) => {
console.log('viajes=' + JSON.stringify(response.data)) dispatch(resetOpViajes(''))
//console.log('viajes=' + JSON.stringify(response.data))
var data = response.data.map((x) => { var data = response.data.map((x) => {
x.max = false x.max = false
return x return x
@ -159,7 +173,18 @@ export const OpMonitor: FC<IProps> = (props) => {
<Col xs={2} style={{ textAlign: 'right', fontSize: '25px' }}> <Col xs={2} style={{ textAlign: 'right', fontSize: '25px' }}>
Monitor de Viajes Monitor de Viajes
</Col> </Col>
<Col xs={1} style={{ textAlign: 'left', cursor: 'pointer' }}></Col> <Col
xs={1}
style={{ textAlign: 'left', cursor: 'pointer' }}
onClick={() => {
loadEveryting()
//navigate('/OpMonitor', { replace: true })
}}
>
<IconContext.Provider value={{ color: 'orange', size: '35px' }}>
<HiOutlineRefresh />
</IconContext.Provider>
</Col>
<Col xs={8}></Col> <Col xs={8}></Col>
<Col xs={1}> <Col xs={1}>
<div <div
@ -183,7 +208,7 @@ export const OpMonitor: FC<IProps> = (props) => {
</Alert> </Alert>
</Card> </Card>
<Row> <Row>
<Col xs={10}> <Col xs={3}>
<Form.Control <Form.Control
type='text' type='text'
size='sm' size='sm'
@ -223,6 +248,7 @@ export const OpMonitor: FC<IProps> = (props) => {
{AllTrips {AllTrips
? AllTrips.filter( ? AllTrips.filter(
(MasterData) => (MasterData) =>
MasterData.id.toString().toLowerCase().includes(Search.toLowerCase()) ||
MasterData.sCliente.toLowerCase().includes(Search.toLowerCase()) || MasterData.sCliente.toLowerCase().includes(Search.toLowerCase()) ||
MasterData.sTipoOperacion.toLowerCase().includes(Search.toLowerCase()) || MasterData.sTipoOperacion.toLowerCase().includes(Search.toLowerCase()) ||
MasterData.sOrigen.toLowerCase().includes(Search.toLowerCase()) || MasterData.sOrigen.toLowerCase().includes(Search.toLowerCase()) ||

@ -6,6 +6,7 @@ import DSOpStatusSecuence from '../../../Services/Operaciones/OpViajes.Services'
import { deleteOpViajes, updateOpViajes } from '../../../store/features/Operaciones/OpViajesSlice' import { deleteOpViajes, updateOpViajes } from '../../../store/features/Operaciones/OpViajesSlice'
import DTOChangeTripStatus from '../../../DTOs/Operaciones/DTOChangeTripStatus' import DTOChangeTripStatus from '../../../DTOs/Operaciones/DTOChangeTripStatus'
import DTOOpViajes from '../../../DTOs/Operaciones/DTOViajes' import DTOOpViajes from '../../../DTOs/Operaciones/DTOViajes'
import DTOViajes from '../../../DTOs/Operaciones/DTOViajes'
import DTOViajeEstatusSecuencia from '../../../DTOs/Operaciones/DTOViajeEstatusSecuencia' import DTOViajeEstatusSecuencia from '../../../DTOs/Operaciones/DTOViajeEstatusSecuencia'
import { setStatus } from '../../../store/features/Auth/UserProfileSlice' import { setStatus } from '../../../store/features/Auth/UserProfileSlice'
import { SignatureHelpTriggerReason } from 'typescript' import { SignatureHelpTriggerReason } from 'typescript'
@ -25,13 +26,9 @@ export const ViajeEstatus: FC<IProps> = (props) => {
const [ListaSecuencia, setListaSecuencia] = useState<DTOViajeEstatusSecuencia[]>([]) const [ListaSecuencia, setListaSecuencia] = useState<DTOViajeEstatusSecuencia[]>([])
const [Secuencia, setSecuencia] = useState(1) const [Secuencia, setSecuencia] = useState(1)
/* const changeStatus = (e: any) => {
setIDStatus(parseInt(e.target.value))
} */
const enlistaSecuenciaViaje = () => { const enlistaSecuenciaViaje = () => {
const Lista: DTOViajeEstatusSecuencia[] = mTripStatus const Lista: DTOViajeEstatusSecuencia[] = mTripStatus
.filter((row) => row.tipoOperacion === props.TipoOperacion && row.secuencia >= Secuencia) .filter((row) => row.tipoOperacion === props.TipoOperacion)
.sort((a, b) => a.secuencia - b.secuencia) .sort((a, b) => a.secuencia - b.secuencia)
setListaSecuencia(Lista) setListaSecuencia(Lista)
} }
@ -49,22 +46,46 @@ export const ViajeEstatus: FC<IProps> = (props) => {
}, [Secuencia, IDStatus]) }, [Secuencia, IDStatus])
const selectedStatus = (e: any) => { const selectedStatus = (e: any) => {
setIDStatus(parseInt(e.target.value)) const idx = parseInt(e.target.value)
console.log(idx)
setIDStatus(idx)
const data: DTOChangeTripStatus = { const data: DTOChangeTripStatus = {
idViaje: props.IDViaje, idViaje: props.IDViaje,
idEstatus: parseInt(e.target.value), idEstatus: parseInt(e.target.value),
} }
DSOpStatusSecuence.ChangeTripStatus(data) DSOpStatusSecuence.ChangeTripStatus(data)
.then((response) => { .then((response) => {
const Item: DTOViajeEstatusSecuencia[] = mTripStatus mTripStatus
.filter((row) => row.tipoOperacion === props.TipoOperacion && row.estatus === IDStatus) .filter((row) => row.tipoOperacion === props.TipoOperacion && row.estatus === IDStatus)
.sort((a, b) => a.secuencia - b.secuencia) .sort((a, b) => a.secuencia - b.secuencia)
//alert('A cambiado el estatus del cliente: ' + props.sCliente + ' a : ' + Item[0].sEstatus)
let result = AllTrips.filter((a) => { let result = AllTrips.filter((a) => {
if (a.id == props.IDViaje) { if (a.id == props.IDViaje) {
return a return a
} }
}) })
let updatedRecord: DTOViajes = {
cliente: result[0].cliente,
destino: result[0].destino,
fAlta: result[0].fAlta,
hazmat: result[0].hazmat,
id: result[0].id,
max: result[0].max,
noCaja: result[0].noCaja,
origen: result[0].origen,
pedimento: result[0].pedimento,
pickUpNumber: result[0].pickUpNumber,
refAgenciaAduanal: result[0].refAgenciaAduanal,
sCliente: result[0].sCliente,
sDestino: result[0].sDestino,
sOrigen: result[0].sOrigen,
sTipoOperacion: result[0].sTipoOperacion,
sTipoUnidad: result[0].sTipoOperacion,
status: idx,
tipoOperacion: result[0].tipoOperacion,
tipoUnidad: result[0].tipoOperacion,
usuario: result[0].usuario,
}
dispatch(updateOpViajes(updatedRecord))
if (response.data.secuencia === 100) { if (response.data.secuencia === 100) {
dispatch(deleteOpViajes(props.IDViaje)) dispatch(deleteOpViajes(props.IDViaje))
} }
@ -77,19 +98,17 @@ export const ViajeEstatus: FC<IProps> = (props) => {
<Form.Control <Form.Control
as='select' as='select'
onChange={(e) => { onChange={(e) => {
// changeStatus(e)
selectedStatus(e) selectedStatus(e)
}} }}
/* onKeyPress={(e) => e.key === 'Enter' && selectedStatus()} */
value={IDStatus} value={IDStatus}
className='form-select form-select-sm dialogLabel' className='form-select form-select-sm dialogLabel'
> >
{ListaSecuencia && Secuencia {ListaSecuencia
? ListaSecuencia.filter((row) => row.tipoOperacion === props.TipoOperacion && row.secuencia >= Secuencia) ? ListaSecuencia.filter((row) => row.tipoOperacion === props.TipoOperacion)
.sort((a, b) => a.secuencia - b.secuencia) .sort((a, b) => a.secuencia - b.secuencia)
.map((row) => { .map((row) => {
return ( return (
<option key={row.estatus} value={row.estatus}> <option key={row.id} value={row.estatus}>
{row.sEstatus} {row.sEstatus}
</option> </option>
) )

@ -18,6 +18,7 @@ export const OpViajesSlice = createSlice({
}, },
updateOpViajes : (state, action: PayloadAction<DTOViajes>) => { updateOpViajes : (state, action: PayloadAction<DTOViajes>) => {
const i = state.OpViajes.findIndex(_element => _element.id === action.payload.id); const i = state.OpViajes.findIndex(_element => _element.id === action.payload.id);
console.log('valor de i: '+i)
if (i > -1) state.OpViajes[i] = action.payload; if (i > -1) state.OpViajes[i] = action.payload;
else state.OpViajes.push(action.payload); else state.OpViajes.push(action.payload);
}, },

Loading…
Cancel
Save