Version funcional, pero malfunciona cuando se hace un referesh del url

develop
Al Garcia 2 years ago
parent d9c792e767
commit 9dde627214
  1. 22
      src/Components/Home/Home.tsx
  2. 25
      src/Components/Login/Login.tsx
  3. 7
      src/Components/Logout/Logout.tsx
  4. 2
      src/Components/Navbar/Navbar.tsx
  5. 404
      src/Components/Operaciones/Viaje/Viaje.tsx
  6. 2
      src/Components/ProtectedRoutes/ProtectedRoute.tsx
  7. 89
      src/Components/Utils/Autocomplete/Autocomplete.tsx
  8. 8
      src/Services/Auth/Auth.Services.ts
  9. 37
      src/Services/Auth/config/http-common.ts
  10. 4
      src/Services/Catalogos/CatClientes.Services.ts

@ -32,8 +32,8 @@ export const Home: FC<IProps> = (props) => {
(window.localStorage.getItem('menu') ? window.localStorage.getItem('menu') : '')! (window.localStorage.getItem('menu') ? window.localStorage.getItem('menu') : '')!
) )
const loadCatalogs = () => { const loadCatalogs = async () => {
DSCatClientes.Get() await DSCatClientes.Get()
.then((response) => { .then((response) => {
// console.log(response.data) // console.log(response.data)
dispatch(populateCatClientes(response.data)) dispatch(populateCatClientes(response.data))
@ -64,17 +64,25 @@ export const Home: FC<IProps> = (props) => {
const validateToken = () => { const validateToken = () => {
DSAuth.Validate() DSAuth.Validate()
.then((response) => { .then((response) => {
dispatch(populateMenuItems(JSON.parse(menuStr))) // dispatch(populateMenuItems(JSON.parse(menuStr)))
dispatch(populateUserProfile(token)) // dispatch(populateUserProfile(token))
alert('token valido')
loadCatalogs() loadCatalogs()
navigate('/', { replace: true }) navigate('/', { replace: true })
}) })
.catch((e: Error) => {}) .catch((e: Error) => {
console.log('Error: ' + e.message.toString())
})
} }
useEffect(() => { useEffect(() => {
if (!UserLogued) validateToken() // if (!UserLogued)
}, [UserLogued]) // validateToken()
}, [])
useEffect(() => {
alert('token: ' + token)
}, [token])
return ( return (
<div> <div>

@ -35,7 +35,7 @@ export const Login: FC<IProps> = (props) => {
(window.localStorage.getItem('menu') ? window.localStorage.getItem('menu') : '')! (window.localStorage.getItem('menu') ? window.localStorage.getItem('menu') : '')!
) )
const Login = () => { const Login = async () => {
const data: IAuth = { const data: IAuth = {
usuario: Usuario, usuario: Usuario,
contrasena: Contrasena, contrasena: Contrasena,
@ -48,7 +48,8 @@ export const Login: FC<IProps> = (props) => {
localStorage.setItem('tokenInfo', JSON.stringify(jwt_decode(response.data.token))) localStorage.setItem('tokenInfo', JSON.stringify(jwt_decode(response.data.token)))
dispatch(populateMenuItems(response.data.menu)) dispatch(populateMenuItems(response.data.menu))
dispatch(populateUserProfile(response.data.token)) dispatch(populateUserProfile(response.data.token))
loadCatalogs() //loadCatalogs()
//alert(localStorage.getItem('token'))
navigate('/', { replace: true }) navigate('/', { replace: true })
}) })
.catch((e: Error) => { .catch((e: Error) => {
@ -87,18 +88,30 @@ export const Login: FC<IProps> = (props) => {
const validateToken = () => { const validateToken = () => {
DSAuth.Validate() DSAuth.Validate()
.then((response) => { .then((response) => {
dispatch(populateMenuItems(JSON.parse(menuStr))) // dispatch(populateMenuItems(JSON.parse(menuStr)))
dispatch(populateUserProfile(token)) // dispatch(populateUserProfile(token))
//alert('token valido')
loadCatalogs() loadCatalogs()
navigate('/', { replace: true }) navigate('/', { replace: true })
}) })
.catch((e: Error) => {}) .catch((e: Error) => {
alert('no valido')
})
} }
useEffect(() => { useEffect(() => {
if (!UserLogued) validateToken() if (token.length > 5) {
validateToken()
}
}, [token]) }, [token])
useEffect(() => {
//alert('user logued:' + UserLogued)
if (UserLogued) {
//loadCatalogs()
}
}, [UserLogued])
return ( return (
<div hidden={token ? true : false}> <div hidden={token ? true : false}>
<div className='Auth-form-container'> <div className='Auth-form-container'>

@ -12,12 +12,13 @@ export const Logout: FC<IProps> = (props) => {
const dispatch = useDispatch() const dispatch = useDispatch()
useEffect(() => { useEffect(() => {
localStorage.removeItem('token') /* localStorage.getItem('tokenInfo')
localStorage.removeItem('menu') localStorage.getItem('token')
localStorage.removeItem('menu') */
localStorage.clear()
dispatch(resetUserProfile('')) dispatch(resetUserProfile(''))
dispatch(resetMenuItems('')) dispatch(resetMenuItems(''))
dispatch(resetCatClientes('')) dispatch(resetCatClientes(''))
// alert('on logout')
navigate('/', { replace: true }) navigate('/', { replace: true })
}, []) }, [])

@ -20,7 +20,7 @@ function Submenu({ descripcion, menu }: Isubmenu) {
}) })
.map((item, index) => { .map((item, index) => {
return ( return (
<NavDropdown.Item to={item.url} as={Link}> <NavDropdown.Item key={item.id} to={item.url} as={Link}>
{item.descripcion} {item.descripcion}
</NavDropdown.Item> </NavDropdown.Item>
) )

@ -1,155 +1,155 @@
import { FC, useEffect, useRef, useState } from 'react'; import { FC, useEffect, useRef, useState } from 'react'
import { Button, ButtonGroup, Card, Col, Dropdown, DropdownButton, Form, ListGroup, Modal, Row } from 'react-bootstrap'; import { Button, ButtonGroup, Card, Col, Dropdown, DropdownButton, Form, ListGroup, Modal, Row } from 'react-bootstrap'
import { useDispatch, useSelector } from 'react-redux'; import { useDispatch, useSelector } from 'react-redux'
import DTOOpViajes from '../../../DTOs/Operaciones/DTOViajes'; import DTOOpViajes from '../../../DTOs/Operaciones/DTOViajes'
import DSOpViajes from '../../../Services/Operaciones/OpViajes.Services'; import DSOpViajes from '../../../Services/Operaciones/OpViajes.Services'
import { updateOpViajes } from '../../../store/features/Operaciones/OpViajesSlice'; import { updateOpViajes } from '../../../store/features/Operaciones/OpViajesSlice'
import { RootState } from '../../../store/store'; import { RootState } from '../../../store/store'
import { import {
populateOpViajesServicios, populateOpViajesServicios,
updateOpViajesServicios, updateOpViajesServicios,
} from '../../../store/features/Operaciones/OpViajesServiciosSlice'; } from '../../../store/features/Operaciones/OpViajesServiciosSlice'
import DTOViajesServicios from '../../../DTOs/Operaciones/DTOViajesServicios'; import DTOViajesServicios from '../../../DTOs/Operaciones/DTOViajesServicios'
import { Servicios } from '../Viaje/Servicios/Servicios'; import { Servicios } from '../Viaje/Servicios/Servicios'
import DatePicker from 'react-datepicker'; import DatePicker from 'react-datepicker'
import 'react-datepicker/dist/react-datepicker.css'; import 'react-datepicker/dist/react-datepicker.css'
import 'react-bootstrap-typeahead/css/Typeahead.css'; import 'react-bootstrap-typeahead/css/Typeahead.css'
import 'react-bootstrap-typeahead/css/Typeahead.bs5.css'; import 'react-bootstrap-typeahead/css/Typeahead.bs5.css'
import '../../../css/autoComplete.css'; import '../../../css/autoComplete.css'
import { IconContext } from 'react-icons'; import { IconContext } from 'react-icons'
import { FaCaretSquareDown, FaCaretSquareLeft } from 'react-icons/fa'; import { FaCaretSquareDown, FaCaretSquareLeft } from 'react-icons/fa'
interface IProps { interface IProps {
IDViaje: number; IDViaje: number
} }
interface IOpciones { interface IOpciones {
value: string; value: string
label: string; label: string
} }
export const Viaje: FC<IProps> = (props) => { export const Viaje: FC<IProps> = (props) => {
const [selectedOption, setselectedOption] = useState<IOpciones | null>(); const [selectedOption, setselectedOption] = useState<IOpciones | null>()
const dispatch = useDispatch(); const dispatch = useDispatch()
const mAllTrips = useSelector((state: RootState) => state.OpViajes.OpViajes); const mAllTrips = useSelector((state: RootState) => state.OpViajes.OpViajes)
const mAllTripServices = useSelector((state: RootState) => state.OpViajesServicios.OpViajesServicios); const mAllTripServices = useSelector((state: RootState) => state.OpViajesServicios.OpViajesServicios)
const Info = JSON.parse(localStorage.getItem('tokenInfo') || '[]'); const Info = JSON.parse(localStorage.getItem('tokenInfo') || '[]')
const UserID = Info.UserId; const UserID = Info.UserId
const mCatClientes = useSelector((state: RootState) => state.CatClientes.CatClientes); const mCatClientes = useSelector((state: RootState) => state.CatClientes.CatClientes)
const mCatProveedores = useSelector((state: RootState) => state.CatProveedores.CatProveedores); const mCatProveedores = useSelector((state: RootState) => state.CatProveedores.CatProveedores)
const CatTipoUnidades = useSelector((state: RootState) => state.CatTipoUnidades.CatTipoUnidades); const CatTipoUnidades = useSelector((state: RootState) => state.CatTipoUnidades.CatTipoUnidades)
const mCatUbicaciones = useSelector((state: RootState) => state.CatUbicaciones.CatUbicaciones); const mCatUbicaciones = useSelector((state: RootState) => state.CatUbicaciones.CatUbicaciones)
const mCatServicios = useSelector((state: RootState) => state.CatServicios.CatServicios); const mCatServicios = useSelector((state: RootState) => state.CatServicios.CatServicios)
const CatAduanas = useSelector((state: RootState) => state.CatAduanas.CatAduanas); const CatAduanas = useSelector((state: RootState) => state.CatAduanas.CatAduanas)
const [NoCaja, setNoCaja] = useState(''); const [NoCaja, setNoCaja] = useState('')
const [UltimaCaja, setUltimaCaja] = useState(''); const [UltimaCaja, setUltimaCaja] = useState('')
const [IDViaje, setIDViaje] = useState(0); const [IDViaje, setIDViaje] = useState(0)
const [IDDetail, setIDDetail] = useState(0); const [IDDetail, setIDDetail] = useState(0)
const [IDCliente, setIDCliente] = useState(0); const [IDCliente, setIDCliente] = useState(0)
const [Cliente, setCliente] = useState(''); const [Cliente, setCliente] = useState('')
const [IDProveedor, setIDProveedor] = useState(0); const [IDProveedor, setIDProveedor] = useState(0)
const [Proveedor, setProveedor] = useState(''); const [Proveedor, setProveedor] = useState('')
const [IDServicio, setIDServicio] = useState(0); const [IDServicio, setIDServicio] = useState(0)
const [Servicio, setServicio] = useState(''); const [Servicio, setServicio] = useState('')
const [IDTipoUnidad, setIDTipoUnidad] = useState(0); const [IDTipoUnidad, setIDTipoUnidad] = useState(0)
const [IDOrigen, setIDOrigen] = useState(0); const [IDOrigen, setIDOrigen] = useState(0)
const [Origen, setOrigen] = useState(''); const [Origen, setOrigen] = useState('')
const [IDDestino, setIDDestino] = useState(0); const [IDDestino, setIDDestino] = useState(0)
const [Destino, setDestino] = useState(''); const [Destino, setDestino] = useState('')
const [RefAA, setRefAA] = useState(''); const [RefAA, setRefAA] = useState('')
const [PickUpNumber, setPickUpNumber] = useState(''); const [PickUpNumber, setPickUpNumber] = useState('')
const [Hazmat, setHazmat] = useState(0); const [Hazmat, setHazmat] = useState(0)
const [Pedimento, setPedimento] = useState(''); const [Pedimento, setPedimento] = useState('')
const [TipoOperacion, setTipoOperacion] = useState(1); const [TipoOperacion, setTipoOperacion] = useState(1)
const [Comentarios, setComentarios] = useState(''); const [Comentarios, setComentarios] = useState('')
const [Aduana, setAduana] = useState(0); const [Aduana, setAduana] = useState(0)
const [DisableAduana, setDisableAduana] = useState(true); const [DisableAduana, setDisableAduana] = useState(true)
const [TotalServicios, setTotalServicios] = useState(0); const [TotalServicios, setTotalServicios] = useState(0)
const [Cita, setCita] = useState<Date | null>(); const [Cita, setCita] = useState<Date | null>()
const [SelectedClient, setSelectedClient] = useState(false); const [SelectedClient, setSelectedClient] = useState(false)
const [SelectedOrigen, setSelectedOrigen] = useState(false); const [SelectedOrigen, setSelectedOrigen] = useState(false)
const [SelectedDestino, setSelectedDestino] = useState(false); const [SelectedDestino, setSelectedDestino] = useState(false)
const [SelectedServicio, setSelectedServicio] = useState(false); const [SelectedServicio, setSelectedServicio] = useState(false)
const [SelectedProveedor, setSelectedProveedor] = useState(false); const [SelectedProveedor, setSelectedProveedor] = useState(false)
const inputRef = useRef(); const inputRef = useRef()
useEffect(() => { useEffect(() => {
if (IDServicio > 0 && TotalServicios === 0) saveDetail(); if (IDServicio > 0 && TotalServicios === 0) saveDetail()
let selectedRow = mAllTrips.filter((row) => { let selectedRow = mAllTrips.filter((row) => {
if (row.id === props.IDViaje) { if (row.id === props.IDViaje) {
setIDViaje(row.id); setIDViaje(row.id)
setRefAA(row.refAgenciaAduanal); setRefAA(row.refAgenciaAduanal)
setIDCliente(row.cliente); setIDCliente(row.cliente)
setIDTipoUnidad(row.tipoUnidad); setIDTipoUnidad(row.tipoUnidad)
setNoCaja(row.noCaja); setNoCaja(row.noCaja)
setIDOrigen(row.origen); setIDOrigen(row.origen)
setIDDestino(row.destino); setIDDestino(row.destino)
setHazmat(row.hazmat); setHazmat(row.hazmat)
setPickUpNumber(row.pickUpNumber); setPickUpNumber(row.pickUpNumber)
setTipoOperacion(row.tipoOperacion); setTipoOperacion(row.tipoOperacion)
setPedimento(row.pedimento); setPedimento(row.pedimento)
setCliente(row.sCliente); setCliente(row.sCliente)
setOrigen(row.sOrigen); setOrigen(row.sOrigen)
setDestino(row.sDestino); setDestino(row.sDestino)
setSelectedClient(false); setSelectedClient(true)
setSelectedOrigen(true); setSelectedOrigen(true)
setSelectedDestino(true); setSelectedDestino(true)
setSelectedServicio(true); setSelectedServicio(true)
setSelectedProveedor(true); setSelectedProveedor(true)
return row; return row
} }
}); })
let totalServicios = mAllTripServices.filter((a) => { let totalServicios = mAllTripServices.filter((a) => {
if (a.idViaje === IDViaje) { if (a.idViaje === IDViaje) {
return a; return a
} }
}); })
setTotalServicios(totalServicios.length); setTotalServicios(totalServicios.length)
}, [IDViaje]); }, [IDViaje])
useEffect(() => { useEffect(() => {
if (IDServicio === 1 || IDServicio === 2 || IDServicio === 22) setDisableAduana(false); if (IDServicio === 1 || IDServicio === 2 || IDServicio === 22) setDisableAduana(false)
else setDisableAduana(true); else setDisableAduana(true)
if (IDServicio > 0) { if (IDServicio > 0) {
let serviceFound = mCatServicios.filter((item) => { let serviceFound = mCatServicios.filter((item) => {
if (item.id == IDServicio) { if (item.id == IDServicio) {
return item; return item
} }
}); })
setServicio(serviceFound[0].servicio); setServicio(serviceFound[0].servicio)
} }
if (IDProveedor > 0) { if (IDProveedor > 0) {
let providerFound = mCatProveedores.filter((item) => { let providerFound = mCatProveedores.filter((item) => {
if (item.id == IDProveedor) { if (item.id == IDProveedor) {
return item; return item
} }
}); })
setProveedor(providerFound[0].proveedor); setProveedor(providerFound[0].proveedor)
} }
}, [IDServicio]); }, [IDServicio])
useEffect(() => { useEffect(() => {
DSOpViajes.GetLastTrailerBox(IDViaje) DSOpViajes.GetLastTrailerBox(IDViaje)
.then((response) => { .then((response) => {
const LastTrailerBox = response.data.ultimaCaja; const LastTrailerBox = response.data.ultimaCaja
// console.log('lasttrailerbox=' + LastTrailerBox) // console.log('lasttrailerbox=' + LastTrailerBox)
if (LastTrailerBox.length === 0) setUltimaCaja(NoCaja); if (LastTrailerBox.length === 0) setUltimaCaja(NoCaja)
else setUltimaCaja(LastTrailerBox); else setUltimaCaja(LastTrailerBox)
}) })
.catch((e: Error) => { .catch((e: Error) => {
// console.log('currio un error') // console.log('currio un error')
}); })
//console.log('nocaja=' + NoCaja) //console.log('nocaja=' + NoCaja)
}, [NoCaja]); }, [NoCaja])
useEffect(() => { useEffect(() => {
if (Hazmat === 1) setAduana(180); if (Hazmat === 1) setAduana(180)
else setAduana(0); else setAduana(0)
}, [Hazmat]); }, [Hazmat])
const saveDetail = () => { const saveDetail = () => {
if (IDServicio === 0 || IDProveedor === 0) { if (IDServicio === 0 || IDProveedor === 0) {
return false; return false
} }
const data: DTOViajesServicios = { const data: DTOViajesServicios = {
id: IDDetail, id: IDDetail,
@ -162,52 +162,52 @@ export const Viaje: FC<IProps> = (props) => {
idProveedor: IDProveedor, idProveedor: IDProveedor,
sProveedor: '', sProveedor: '',
noCaja: UltimaCaja, noCaja: UltimaCaja,
}; }
DSOpViajes.AppendServices(data) DSOpViajes.AppendServices(data)
.then((responsed) => { .then((responsed) => {
if (IDDetail === 0) { if (IDDetail === 0) {
dispatch(populateOpViajesServicios(responsed.data)); dispatch(populateOpViajesServicios(responsed.data))
setIDDetail(responsed.data[0].id); setIDDetail(responsed.data[0].id)
} else { } else {
dispatch(updateOpViajesServicios(responsed.data)); dispatch(updateOpViajesServicios(responsed.data))
} }
clearDetailForm(); clearDetailForm()
}) })
.catch((e: Error) => {}); .catch((e: Error) => {})
}; }
const adjustTimeZone = (str: string): string => { const adjustTimeZone = (str: string): string => {
if (str) { if (str) {
const original: any = new Date(str); const original: any = new Date(str)
const real = new Date(original - original.getTimezoneOffset() * 60 * 1000); const real = new Date(original - original.getTimezoneOffset() * 60 * 1000)
return real.toISOString(); return real.toISOString()
} else return ''; } else return ''
}; }
const loadService = (id: number) => { const loadService = (id: number) => {
let found = mAllTripServices.filter((a) => { let found = mAllTripServices.filter((a) => {
if (a.id === id) { if (a.id === id) {
return a; return a
} }
}); })
if (found) { if (found) {
setIDDetail(id); setIDDetail(id)
setAduana(found[0].aduana); setAduana(found[0].aduana)
setIDServicio(found[0].idServicio); setIDServicio(found[0].idServicio)
setComentarios(found[0].comentarios); setComentarios(found[0].comentarios)
setIDProveedor(found[0].idProveedor); setIDProveedor(found[0].idProveedor)
}
} }
};
const saveMaster = () => { const saveMaster = () => {
if (TotalServicios === 0) { if (TotalServicios === 0) {
if (IDServicio === 0) { if (IDServicio === 0) {
alert('Para continuar, primero seleccione un servicio '); alert('Para continuar, primero seleccione un servicio ')
return false; return false
} }
if (IDProveedor === 0) { if (IDProveedor === 0) {
alert('Para continuar, primero seleccione un proveedor'); alert('Para continuar, primero seleccione un proveedor')
return false; return false
} }
} }
/* */ /* */
@ -232,44 +232,32 @@ export const Viaje: FC<IProps> = (props) => {
pedimento: Pedimento, pedimento: Pedimento,
max: true, max: true,
status: 1, status: 1,
}; }
DSOpViajes.Append(data) DSOpViajes.Append(data)
.then((response) => { .then((response) => {
const data = response.data; const data = response.data
data['max'] = false; data['max'] = false
dispatch(updateOpViajes(data)); dispatch(updateOpViajes(data))
setIDViaje(data.id); setIDViaje(data.id)
}) })
.catch((e: Error) => {}); .catch((e: Error) => {})
}; }
const clearDetailForm = () => { const clearDetailForm = () => {
setIDDetail(0); setIDDetail(0)
setAduana(0); setAduana(0)
setIDServicio(0); setIDServicio(0)
setComentarios(''); setComentarios('')
setIDProveedor(0); setIDProveedor(0)
setUltimaCaja(''); setUltimaCaja('')
setServicio(''); setServicio('')
setProveedor(''); setProveedor('')
setDisableAduana(true); setDisableAduana(true)
}; }
useEffect(() => { useEffect(() => {
console.log(selectedOption); console.log(selectedOption)
}, [selectedOption]); }, [selectedOption])
const [addrtype, setAddrtype] = useState(['Work', 'Home', 'school']);
const Add = addrtype.map((Add) => Add);
const handleAddrTypeChange = (e: any) => console.log(addrtype[e.target.value]);
const companies: string[] = ['Company1', 'Company2', 'Big Corp', 'Happy Toy Company'];
const lowerCasedCompanies = companies.map((language) => language.toLowerCase());
function getSuggestions(value: string): string[] {
return lowerCasedCompanies.filter((language) => language.startsWith(value.trim().toLowerCase()));
}
const handleKeyDown = (e: any) => { const handleKeyDown = (e: any) => {
// const { cursor, result } = this.state // const { cursor, result } = this.state
@ -279,9 +267,9 @@ export const Viaje: FC<IProps> = (props) => {
} else */ } else */
if (e.keyCode === 40) { if (e.keyCode === 40) {
console.log('arrow down'); console.log('arrow down')
}
} }
};
return ( return (
<div className='tripField'> <div className='tripField'>
@ -303,7 +291,7 @@ export const Viaje: FC<IProps> = (props) => {
size='sm' size='sm'
className='dialogLabel' className='dialogLabel'
onChange={(e) => { onChange={(e) => {
setRefAA(e.target.value); setRefAA(e.target.value)
}} }}
/> />
</Col> </Col>
@ -322,11 +310,11 @@ export const Viaje: FC<IProps> = (props) => {
size='sm' size='sm'
className='pull-right' className='pull-right'
onChange={(e) => { onChange={(e) => {
setCliente(e.target.value); setCliente(e.target.value)
setSelectedClient(false); setSelectedClient(false)
}} }}
onKeyDown={(e) => { onKeyDown={(e) => {
handleKeyDown(e); handleKeyDown(e)
}} }}
/> />
<Dropdown className='d-inline mx-6' show={!SelectedClient}> <Dropdown className='d-inline mx-6' show={!SelectedClient}>
@ -336,9 +324,9 @@ export const Viaje: FC<IProps> = (props) => {
.map((result) => ( .map((result) => (
<Dropdown.Item <Dropdown.Item
onClick={() => { onClick={() => {
setIDCliente(result.id); setIDCliente(result.id)
setCliente(result.cliente); setCliente(result.cliente)
setSelectedClient(true); setSelectedClient(true)
}} }}
> >
{result.cliente} {result.cliente}
@ -369,7 +357,7 @@ export const Viaje: FC<IProps> = (props) => {
<Form.Control <Form.Control
as='select' as='select'
onChange={(e) => { onChange={(e) => {
setIDTipoUnidad(parseInt(e.target.value)); setIDTipoUnidad(parseInt(e.target.value))
}} }}
value={IDTipoUnidad} value={IDTipoUnidad}
className='form-select form-select-sm dialogLabel' className='form-select form-select-sm dialogLabel'
@ -381,7 +369,7 @@ export const Viaje: FC<IProps> = (props) => {
<option key={c.id} value={c.id}> <option key={c.id} value={c.id}>
{c.tipoUnidad} {c.tipoUnidad}
</option> </option>
); )
}) })
: null} : null}
</Form.Control> </Form.Control>
@ -397,7 +385,7 @@ export const Viaje: FC<IProps> = (props) => {
size='sm' size='sm'
className='dialogLabel' className='dialogLabel'
onChange={(e) => { onChange={(e) => {
setNoCaja(e.target.value); setNoCaja(e.target.value)
}} }}
/> />
</Col> </Col>
@ -415,8 +403,8 @@ export const Viaje: FC<IProps> = (props) => {
size='sm' size='sm'
className='textBoxViaje' className='textBoxViaje'
onChange={(e) => { onChange={(e) => {
setOrigen(e.target.value); setOrigen(e.target.value)
setSelectedOrigen(false); setSelectedOrigen(false)
}} }}
/> />
<Dropdown className='d-inline mx-6' show={!SelectedOrigen}> <Dropdown className='d-inline mx-6' show={!SelectedOrigen}>
@ -430,9 +418,9 @@ export const Viaje: FC<IProps> = (props) => {
.map((result) => ( .map((result) => (
<Dropdown.Item <Dropdown.Item
onClick={() => { onClick={() => {
setIDOrigen(result.id); setIDOrigen(result.id)
setOrigen(result.ubicacion); setOrigen(result.ubicacion)
setSelectedOrigen(true); setSelectedOrigen(true)
}} }}
> >
{result.ubicacion} {result.ubicacion}
@ -470,8 +458,8 @@ export const Viaje: FC<IProps> = (props) => {
size='sm' size='sm'
className='dialogLabel' className='dialogLabel'
onChange={(e) => { onChange={(e) => {
setDestino(e.target.value); setDestino(e.target.value)
setSelectedDestino(false); setSelectedDestino(false)
}} }}
/> />
<Dropdown className='d-inline mx-6' show={!SelectedDestino}> <Dropdown className='d-inline mx-6' show={!SelectedDestino}>
@ -485,9 +473,9 @@ export const Viaje: FC<IProps> = (props) => {
.map((result) => ( .map((result) => (
<Dropdown.Item <Dropdown.Item
onClick={() => { onClick={() => {
setIDDestino(result.id); setIDDestino(result.id)
setDestino(result.ubicacion); setDestino(result.ubicacion)
setSelectedDestino(true); setSelectedDestino(true)
}} }}
> >
{result.ubicacion} {result.ubicacion}
@ -518,7 +506,7 @@ export const Viaje: FC<IProps> = (props) => {
<Form.Control <Form.Control
as='select' as='select'
onChange={(e) => { onChange={(e) => {
setHazmat(parseInt(e.target.value)); setHazmat(parseInt(e.target.value))
}} }}
value={Hazmat} value={Hazmat}
className='form-select form-select-sm dialogLabel' className='form-select form-select-sm dialogLabel'
@ -534,7 +522,7 @@ export const Viaje: FC<IProps> = (props) => {
<Form.Control <Form.Control
as='select' as='select'
onChange={(e) => { onChange={(e) => {
setTipoOperacion(parseInt(e.target.value)); setTipoOperacion(parseInt(e.target.value))
}} }}
value={TipoOperacion} value={TipoOperacion}
className='form-select form-select-sm dialogLabel' className='form-select form-select-sm dialogLabel'
@ -557,7 +545,7 @@ export const Viaje: FC<IProps> = (props) => {
size='sm' size='sm'
className='dialogLabel' className='dialogLabel'
onChange={(e) => { onChange={(e) => {
setPedimento(e.target.value); setPedimento(e.target.value)
}} }}
/> />
</Col> </Col>
@ -570,7 +558,7 @@ export const Viaje: FC<IProps> = (props) => {
size='sm' size='sm'
className='dialogLabel' className='dialogLabel'
onChange={(e) => { onChange={(e) => {
setPickUpNumber(e.target.value); setPickUpNumber(e.target.value)
}} }}
/> />
</Col> </Col>
@ -596,11 +584,11 @@ export const Viaje: FC<IProps> = (props) => {
size='sm' size='sm'
className='dialogLabel' className='dialogLabel'
onChange={(e) => { onChange={(e) => {
setServicio(e.target.value); setServicio(e.target.value)
setSelectedServicio(false); setSelectedServicio(false)
}} }}
onKeyDown={(e) => { onKeyDown={(e) => {
handleKeyDown(e); handleKeyDown(e)
}} }}
/> />
<Dropdown className='d-inline mx-6' show={!SelectedServicio}> <Dropdown className='d-inline mx-6' show={!SelectedServicio}>
@ -610,9 +598,9 @@ export const Viaje: FC<IProps> = (props) => {
.map((result) => ( .map((result) => (
<Dropdown.Item <Dropdown.Item
onClick={() => { onClick={() => {
setIDServicio(result.id); setIDServicio(result.id)
setServicio(result.servicio); setServicio(result.servicio)
setSelectedServicio(true); setSelectedServicio(true)
}} }}
> >
{result.servicio} {result.servicio}
@ -640,8 +628,8 @@ export const Viaje: FC<IProps> = (props) => {
<Button <Button
variant='primary' variant='primary'
onClick={() => { onClick={() => {
saveMaster(); saveMaster()
saveDetail(); saveDetail()
}} }}
> >
Guardar Guardar
@ -662,8 +650,8 @@ export const Viaje: FC<IProps> = (props) => {
size='sm' size='sm'
className='dialogLabel' className='dialogLabel'
onChange={(e) => { onChange={(e) => {
setProveedor(e.target.value); setProveedor(e.target.value)
setSelectedProveedor(false); setSelectedProveedor(false)
}} }}
/> />
<Dropdown className='d-inline mx-6' show={!SelectedProveedor}> <Dropdown className='d-inline mx-6' show={!SelectedProveedor}>
@ -675,9 +663,9 @@ export const Viaje: FC<IProps> = (props) => {
.map((result) => ( .map((result) => (
<Dropdown.Item <Dropdown.Item
onClick={() => { onClick={() => {
setIDProveedor(result.id); setIDProveedor(result.id)
setProveedor(result.proveedor); setProveedor(result.proveedor)
setSelectedProveedor(true); setSelectedProveedor(true)
}} }}
> >
{result.proveedor} {result.proveedor}
@ -710,7 +698,7 @@ export const Viaje: FC<IProps> = (props) => {
rows={2} rows={2}
value={Comentarios} value={Comentarios}
onChange={(e) => { onChange={(e) => {
setComentarios(e.target.value); setComentarios(e.target.value)
}} }}
/> />
</Col> </Col>
@ -725,7 +713,7 @@ export const Viaje: FC<IProps> = (props) => {
size='sm' size='sm'
className='dialogLabel' className='dialogLabel'
onChange={(e) => { onChange={(e) => {
setUltimaCaja(e.target.value); setUltimaCaja(e.target.value)
}} }}
/> />
</Col> </Col>
@ -743,7 +731,7 @@ export const Viaje: FC<IProps> = (props) => {
<Form.Control <Form.Control
as='select' as='select'
onChange={(e) => { onChange={(e) => {
setAduana(parseInt(e.target.value)); setAduana(parseInt(e.target.value))
}} }}
value={Aduana} value={Aduana}
disabled={DisableAduana} disabled={DisableAduana}
@ -755,7 +743,7 @@ export const Viaje: FC<IProps> = (props) => {
<option key={c.id} value={c.id}> <option key={c.id} value={c.id}>
{c.Aduana} {c.Aduana}
</option> </option>
); )
}) })
: null} : null}
</Form.Control> </Form.Control>
@ -769,7 +757,7 @@ export const Viaje: FC<IProps> = (props) => {
IDMaster={IDViaje} IDMaster={IDViaje}
key={IDViaje} key={IDViaje}
onLoadDetail={function (id: number): void { onLoadDetail={function (id: number): void {
loadService(id); loadService(id)
}} }}
actionButtons={true} actionButtons={true}
/> />
@ -778,5 +766,5 @@ export const Viaje: FC<IProps> = (props) => {
</Card> </Card>
</Card> </Card>
</div> </div>
); )
}; }

@ -7,5 +7,5 @@ interface IProps {}
export const ProtectedRoute: FC<IProps> = (props) => { export const ProtectedRoute: FC<IProps> = (props) => {
const UserLogued = useSelector((state: RootState) => state.UserProfile.UserProfile.logueado) const UserLogued = useSelector((state: RootState) => state.UserProfile.UserProfile.logueado)
return UserLogued ? <Outlet /> : <Navigate to='login' /> return UserLogued ? <Outlet /> : <Navigate to='/' />
} }

@ -1,89 +0,0 @@
import React, { FC, useEffect, useState } from 'react'
import { IconContext } from 'react-icons'
import { BsXLg } from 'react-icons/bs'
import { useSelector } from 'react-redux'
import ICatClientes from '../../../Interfaces/Catalogos/ICatClientes'
import { RootState } from '../../../store/store'
interface IProps {
input: string
}
export const Autocomplete: FC<IProps> = (props) => {
const mCatClientes = useSelector((state: RootState) => state.CatClientes.CatClientes)
const [Cliente, setCliente] = useState('')
const [IDCliente, setIDCliente] = useState(0)
const [toggleSelect, setToggleSelect] = useState(false)
const loadInfo = (data: ICatClientes) => {
setIDCliente(data.id)
setCliente(data.cliente)
setToggleSelect(false)
}
const handleKeyDown = (event: any) => {
if (event.key === 'Enter') {
console.log('Pasa este informacion al parent component')
setToggleSelect(false)
}
}
useEffect(() => {
if (Cliente.length > 0) setToggleSelect(true)
}, [Cliente])
return (
<>
<div className='form-group'>
<div className='col-sm-12 parent'>
<div className='input-group'>
<input type='hidden' className='form-control' name='IDCliente' id='IDCliente' value={IDCliente} />
<input
type='text'
className='form-control genericSelect'
name='Guia'
id='Guia'
style={{ height: '30px' }}
value={Cliente}
placeholder='Cliente...'
onChange={(e) => {
setCliente(e.target.value)
}}
onKeyDown={(e) => handleKeyDown(e)}
onFocus={() => setToggleSelect(true)}
/* onBlur={() => setToggleSelect(false)} */
/>
<span
className='input-group-addon sorroundImage'
onClick={() => {
setCliente('')
setToggleSelect(false)
}}
>
<IconContext.Provider value={{ color: 'red', size: '21px' }}>
<BsXLg />
</IconContext.Provider>
</span>
<div className='child' style={toggleSelect ? { visibility: 'visible' } : { visibility: 'hidden' }}>
<ul className='cleanLi'>
{mCatClientes
? mCatClientes.map((item, index) => {
return item.id > 0 && item.cliente.toLocaleLowerCase().includes(Cliente.toLocaleLowerCase()) ? (
<li key={item.id}>
<span style={{ paddingLeft: '10px' }} onClick={() => loadInfo(item)}>
{item.cliente}
</span>
</li>
) : (
''
)
})
: ''}
</ul>
</div>
</div>
</div>
</div>
</>
)
}

@ -5,11 +5,11 @@ import IPermisos from "../../Interfaces/Auth/IPermisos";
//import Token from '../../Interfaces/token' //import Token from '../../Interfaces/token'
class authDataService { class authDataService {
login(data: IAuth) { async login(data: IAuth) {
return http.post<IPermisos>("Auth/Login", data); return await http.post<IPermisos>("Auth/Login", data);
} }
Validate() { async Validate() {
return http.get<String>("Auth/Validate"); return await http.get<String>("Auth/Validate");
} }
} }
export default new authDataService(); export default new authDataService();

@ -1,6 +1,6 @@
import axios from "axios"; import axios from "axios";
import { TargetURL } from '../../../Constants/TargetURL' import { TargetURL } from '../../../Constants/TargetURL'
const token = localStorage.getItem("token"); let token = window.localStorage.getItem('token');
const URL = new TargetURL() const URL = new TargetURL()
const instance = axios.create({ const instance = axios.create({
@ -13,39 +13,32 @@ const instance = axios.create({
instance.interceptors.response.use(function (response) { instance.interceptors.response.use(function (response) {
//if (process.env.NODE_ENV === 'development') console.log('log: '+JSON.stringify(response))
return response; return response;
}, function (error) { }, function (error) {
if ( (window.location.href.indexOf("login")>0) || (window.location.href.indexOf("reset")>0) ) { if (401 === error.response.status) {
return Promise.reject(error);
}
else if (401 === error.response.status) {
localStorage.clear(); localStorage.clear();
window.location.href = "/"; window.location.href = "/";
} else if ((409 === error.response.status) && (error.response.data.respuesta.indexOf('factura'))) {
console.log(JSON.stringify(error.response))
if (error.response.data.registro.factura) {
(error.response.data.registro.id===-1) ?
alert(error.response.data.respuesta +
' en la factura: ' +
error.response.data.registro.factura +
' en el trafico: CG' +
error.response.data.registro.idTrafico) :
alert(error.response.data.respuesta + ' en TRADE')
}
} else { } else {
return Promise.reject(error); return Promise.reject(error);
} }
return Promise.reject(error);
}); });
instance.interceptors.request.use(function (config) { instance.interceptors.request.use(
/* if (process.env.NODE_ENV === 'development') (config) => {
console.log('log: '+JSON.stringify(config))*/ let token = window.localStorage.getItem('token')
if (token) {
config.headers!!.Authorization = `Bearer ${token}`;
} else {
config.headers!!.Authorization = ``;
}
return config; return config;
}, function (error) { },
(error) => {
return Promise.reject(error); return Promise.reject(error);
}); }
);
export default instance; export default instance;

@ -3,8 +3,8 @@ import ICatClientes from "../../Interfaces/Catalogos/ICatClientes";
import IRespuesta from "../../Interfaces/Respuestas/IRespuesta"; import IRespuesta from "../../Interfaces/Respuestas/IRespuesta";
class CatClientesDataService { class CatClientesDataService {
Get() { async Get() {
return http.get<ICatClientes[]>("Catalogos/CatClientes/Get"); return await http.get<ICatClientes[]>("Catalogos/CatClientes/Get");
} }
Append(data: ICatClientes) { Append(data: ICatClientes) {
return http.post<ICatClientes>(`Catalogos/CatClientes/Append`,data); return http.post<ICatClientes>(`Catalogos/CatClientes/Append`,data);

Loading…
Cancel
Save