Se agrega el historico de rectificaciones

AmazonRelease1.1
unknown 2 years ago
parent 4149edde4d
commit 9945f9aa40
  1. 2123
      src/Components/Corresponsales/TraficoCorresponsales.tsx
  2. 1
      src/Components/Dashboard/Dashboard.tsx
  3. 2
      src/Components/Dashboard/DashboardCorresponsales.tsx
  4. 3
      src/Components/Login/login.tsx
  5. 27
      src/Components/Reportes/RptCorresponsalesTraficos.tsx
  6. 96
      src/Components/Utils/Notificaciones/Notificaciones.tsx
  7. 4
      src/DTO/Corresponsales/DTORectificacionHistorico.ts
  8. 12
      src/Interfaces/Corresponsales/ICorresponsalRectificacionHistorico.ts
  9. 8
      src/Services/Corresponsalias/Corresponsales.Trafico.Services.ts
  10. 6
      src/css/generic01.css
  11. 2
      src/index.tsx

File diff suppressed because it is too large Load Diff

@ -16,6 +16,7 @@ export const Dashboard: FC<IProps> = (props) => {
const stickyValue = window.localStorage.getItem('User') const stickyValue = window.localStorage.getItem('User')
return stickyValue !== null ? JSON.parse(stickyValue) : 0 return stickyValue !== null ? JSON.parse(stickyValue) : 0
}) })
return ( return (
<div> <div>
<br /> <br />

@ -141,7 +141,7 @@ export const DashboardCorresponsales: FC<IProps> = (props) => {
{/* <Col xs={3}></Col> */} {/* <Col xs={3}></Col> */}
<Col xs={6} style={{ paddingRight: '5px' }}> <Col xs={6} style={{ paddingRight: '5px' }}>
<Link <Link
to={`../RptCorresponsalesTraficos?proc=1&modo=1`} to={`../RptCorresponsalesTraficos/proc=1/modo=1`}
style={{ style={{
textDecoration: 'none', textDecoration: 'none',
float: 'right', float: 'right',

@ -13,6 +13,7 @@ import { RootState } from '../../store/store'
import { AxiosError } from 'axios' import { AxiosError } from 'axios'
import { MsgInformativo } from '../Utils/Toast/msgInformativo' import { MsgInformativo } from '../Utils/Toast/msgInformativo'
import logo from '../../images/GEMCO_mini.png' import logo from '../../images/GEMCO_mini.png'
import { Dashboard } from '../Dashboard/Dashboard'
export const Login: React.FC<{}> = () => { export const Login: React.FC<{}> = () => {
const dispatch = useDispatch() const dispatch = useDispatch()
@ -155,7 +156,7 @@ export const Login: React.FC<{}> = () => {
/> />
</div> </div>
) : ( ) : (
<div></div> <div><Dashboard/></div>
)} )}
</div> </div>
) )

@ -20,10 +20,13 @@ import { InitCorresponsalesContenedores } from '../../store/features/Corresponsa
import { useDispatch } from 'react-redux' import { useDispatch } from 'react-redux'
import { IconContext } from 'react-icons' import { IconContext } from 'react-icons'
import { ProgressBar } from './customCells/progressBar' import { ProgressBar } from './customCells/progressBar'
import { useParams } from 'react-router-dom'
import { FaHandSparkles } from 'react-icons/fa'
interface IProps {} interface IProps {}
export const RptCorresponsalesTraficos: FC<IProps> = (props) => { export const RptCorresponsalesTraficos: FC<IProps> = (props) => {
const { proc, modo } = useParams()
const [UserId, setUserId] = useState(() => { const [UserId, setUserId] = useState(() => {
const stickyValue = window.localStorage.getItem('UserId') const stickyValue = window.localStorage.getItem('UserId')
return stickyValue !== null ? JSON.parse(stickyValue) : 0 return stickyValue !== null ? JSON.parse(stickyValue) : 0
@ -33,9 +36,7 @@ export const RptCorresponsalesTraficos: FC<IProps> = (props) => {
return stickyValue !== null ? JSON.parse(stickyValue) : '' return stickyValue !== null ? JSON.parse(stickyValue) : ''
}) })
const queryParams = new URLSearchParams(window.location.search) const queryParams = new URLSearchParams(window.location.search)
const Proc = queryParams.get('proc')
const status = queryParams.get('status') const status = queryParams.get('status')
const Modo = queryParams.get('modo')
const [StatusAnticipos, setStatusAnticipos] = useState(status ? parseInt(status) : 0) const [StatusAnticipos, setStatusAnticipos] = useState(status ? parseInt(status) : 0)
const dispatch = useDispatch() const dispatch = useDispatch()
const [IDTrafico, setIDTrafico] = useState(0) const [IDTrafico, setIDTrafico] = useState(0)
@ -180,7 +181,8 @@ export const RptCorresponsalesTraficos: FC<IProps> = (props) => {
return yyyy + '-' + mm + '-' + dd return yyyy + '-' + mm + '-' + dd
} }
useEffect(() => { /* useEffect(() => {
if (proc && modo) {
if (status) { if (status) {
setStatusAnticipos(parseInt(status)) setStatusAnticipos(parseInt(status))
} else setStatusAnticipos(0) } else setStatusAnticipos(0)
@ -190,8 +192,8 @@ export const RptCorresponsalesTraficos: FC<IProps> = (props) => {
TipoOperacion: 0, TipoOperacion: 0,
NoCliente: 0, NoCliente: 0,
IdCorresponsal: Corresponsal, IdCorresponsal: Corresponsal,
Proceso: Proc ? parseInt(Proc) : 0, Proceso: proc ? parseInt(proc.replace('proc=','')) : 0,
Modo: Modo ? parseInt(Modo) : 0, Modo: modo ? parseInt(modo.replace('modo=','')) : 0,
} }
reportesServices reportesServices
.getRptCorresponsalesTraficos(data) .getRptCorresponsalesTraficos(data)
@ -205,7 +207,8 @@ export const RptCorresponsalesTraficos: FC<IProps> = (props) => {
setShowMsg(true) setShowMsg(true)
return return
}) })
}, [Proc, status]) }
}, [proc, modo]) */
useEffect(() => { useEffect(() => {
ClientesDataService.getAllClientes(UserId) ClientesDataService.getAllClientes(UserId)
@ -229,6 +232,7 @@ export const RptCorresponsalesTraficos: FC<IProps> = (props) => {
setShowMsg(true) setShowMsg(true)
return return
}) })
generaReporte()
}, []) }, [])
function getParams(e: RowClickedEvent) { function getParams(e: RowClickedEvent) {
@ -244,14 +248,15 @@ export const RptCorresponsalesTraficos: FC<IProps> = (props) => {
} }
const generaReporte = () => { const generaReporte = () => {
if (proc && modo) {
const data: DTORptCorresponsalesTraficos = { const data: DTORptCorresponsalesTraficos = {
Inicio: moment(Inicio).format('YYYY-MM-DD'), Inicio: moment(Inicio).format('YYYY-MM-DD'),
Fin: moment(Fin).format('YYYY-MM-DD'), Fin: moment(Fin).format('YYYY-MM-DD'),
TipoOperacion: TipoOperacion, TipoOperacion: TipoOperacion,
NoCliente: Cliente, NoCliente: Cliente,
IdCorresponsal: Corresponsal, IdCorresponsal: Corresponsal,
Proceso: Proc ? parseInt(Proc) : 0, Proceso: proc ? parseInt(proc.replace('proc=','')) : 0,
Modo: Modo ? parseInt(Modo) : 0, Modo: modo ? parseInt(modo.replace('modo=','')) : 0,
} }
reportesServices reportesServices
.getRptCorresponsalesTraficos(data) .getRptCorresponsalesTraficos(data)
@ -266,6 +271,7 @@ export const RptCorresponsalesTraficos: FC<IProps> = (props) => {
setShowMsg(true) setShowMsg(true)
return return
}) })
}
} }
const filtraReporte = (e: any) => { const filtraReporte = (e: any) => {
@ -500,7 +506,10 @@ export const RptCorresponsalesTraficos: FC<IProps> = (props) => {
dialogClassName='modal-90w modal-innerDiv' dialogClassName='modal-90w modal-innerDiv'
disableEscapeKeyDown={true} disableEscapeKeyDown={true}
> >
<Modal.Body> <Modal.Body style={{
maxHeight: 'calc(100vh)',
overflowY: 'auto'
}}>
<div> <div>
<TraficoCorresponsales <TraficoCorresponsales
IDTrafico={IDTrafico} IDTrafico={IDTrafico}

@ -30,6 +30,7 @@ import DTONotificacionesContactoGrupo from '../../../DTO/Utils/Notificaciones/DT
import { number } from 'yup/lib/locale' import { number } from 'yup/lib/locale'
import INotificacionesConceptos from '../../../Interfaces/Utils/INotificacionesConceptos' import INotificacionesConceptos from '../../../Interfaces/Utils/INotificacionesConceptos'
import INotificacionesLog from '../../../Interfaces/Utils/INotificacionesLog' import INotificacionesLog from '../../../Interfaces/Utils/INotificacionesLog'
import { FaCaretSquareDown, FaCaretSquareLeft } from 'react-icons/fa'
export interface INotificacionesProps {} export interface INotificacionesProps {}
@ -455,45 +456,60 @@ export function Notificaciones(props: INotificacionesProps) {
</span> </span>
</Col> </Col>
<Col xs={5}> <Col xs={5}>
<Form.Group className="typeahead-form-group"> <div className="mainDiv">
<Form.Control <Form.Group className="typeahead-form-group">
autoComplete="off" <Form.Control
type="text" autoComplete="off"
id="Cliente" type="text"
value={Concepto} id="Concepto"
size="sm" value={Concepto}
className="pull-right" size="sm"
onChange={(e) => { className="pull-right"
setConcepto(e.target.value) onChange={(e) => {
setSelectedConcepto(false) setConcepto(e.target.value)
}} setSelectedConcepto(false)
onKeyDown={(e) => { }}
handleKeyDown(e) onKeyDown={(e) => {
}} handleKeyDown(e)
/> }}
<Dropdown />
className="d-inline mx-6" <Dropdown
show={!SelectedConcepto && Concepto.length > 1} className="d-inline mx-6"
> show={!SelectedConcepto}
<Dropdown.Menu> >
{CatConceptos.filter((result) => <Dropdown.Menu>
result.concepto {CatConceptos.filter((result) =>
.toLocaleLowerCase() result.concepto
.includes(Concepto.toLocaleLowerCase()) .toLocaleLowerCase()
).map((result) => ( .includes(Concepto.toLocaleLowerCase())
<Dropdown.Item ).map((result) => (
onClick={() => { <Dropdown.Item
setIdConcepto(result.id) onClick={() => {
setConcepto(result.concepto) setIdConcepto(result.id)
setSelectedConcepto(true) setConcepto(result.concepto)
}} setSelectedConcepto(true)
> }}
{result.concepto} >
</Dropdown.Item> {result.concepto}
))} </Dropdown.Item>
</Dropdown.Menu> ))}
</Dropdown> </Dropdown.Menu>
</Form.Group> </Dropdown>
</Form.Group>
</div>
</Col>
<Col style={{ paddingLeft: '0px' }}>
<div onClick={() => setSelectedConcepto(!SelectedConcepto)}>
{!SelectedConcepto ? (
<IconContext.Provider value={{ color: '#8AA2B8', size: '30px' }}>
<FaCaretSquareDown />
</IconContext.Provider>
) : (
<IconContext.Provider value={{ color: '#8AA2B8', size: '30px' }}>
<FaCaretSquareLeft />
</IconContext.Provider>
)}{' '}
</div>
</Col> </Col>
<Col xs={1} style={{ textAlign: 'right' }}> <Col xs={1} style={{ textAlign: 'right' }}>
Grupo Grupo
@ -510,7 +526,7 @@ export function Notificaciones(props: INotificacionesProps) {
</IconContext.Provider> </IconContext.Provider>
</span> </span>
</Col> </Col>
<Col xs={4}> <Col xs={3}>
<Form.Control <Form.Control
as="select" as="select"
onChange={(e) => { onChange={(e) => {

@ -0,0 +1,4 @@
export default interface DTORectificacionHistorico {
IdTrafico: number,
IdUsuario: number
}

@ -0,0 +1,12 @@
export default interface ICorresponsalRectificacionHistorico {
id: number
usuario: number
idTrafico: number
aduana: number
patente: number
pedimento: number
clave: string
fechaPago: string
fhCreacion: string
activo: number
}

@ -4,6 +4,8 @@ import ICorresponsalesRectificaciones from "../../Interfaces/Corresponsales/ICor
import ICorresponsalesCatTraficoEstatus from "../../Interfaces/Corresponsales/ICorresponsalesCatTraficoEstatus"; import ICorresponsalesCatTraficoEstatus from "../../Interfaces/Corresponsales/ICorresponsalesCatTraficoEstatus";
import DTOTraficoCompleto from "../../DTO/Corresponsales/DTOTraficoCompleto"; import DTOTraficoCompleto from "../../DTO/Corresponsales/DTOTraficoCompleto";
import IRespuesta from "../../Interfaces/IRespuesta"; import IRespuesta from "../../Interfaces/IRespuesta";
import ICorresponsalRectificacionHistorico from "../../Interfaces/Corresponsales/ICorresponsalRectificacionHistorico";
import DTORectificacionHistorico from "../../DTO/Corresponsales/DTORectificacionHistorico";
class Corresponsales_Trafico_DataService { class Corresponsales_Trafico_DataService {
GetAll(id: number) { GetAll(id: number) {
@ -24,5 +26,11 @@ class Corresponsales_Trafico_DataService {
ValidateComplete(data: DTOTraficoCompleto) { ValidateComplete(data: DTOTraficoCompleto) {
return http.put<IRespuesta>(`/Corresponsalias/Traficos/ValidateComplete/${data.id}`,data); return http.put<IRespuesta>(`/Corresponsalias/Traficos/ValidateComplete/${data.id}`,data);
} }
AppendRectificacionHistorico(data: DTORectificacionHistorico) {
return http.post<Boolean>(`Corresponsalias/Traficos/Rectificacion/Historico/Append`,data);
}
GetRectificacionHistorico(IdTrafico: number) {
return http.get<ICorresponsalRectificacionHistorico>(`Corresponsalias/Traficos/Rectificacion/Historico/Get?IdTrafico=${IdTrafico}`);
}
} }
export default new Corresponsales_Trafico_DataService(); export default new Corresponsales_Trafico_DataService();

@ -21,13 +21,13 @@
.modal-90w { .modal-90w {
width: 90%; width: 90%;
max-width: none !important;
/* max-height: 90% !important; */ /* max-height: 90% !important; */
max-height: 'calc(100vh - 50px)' !important;
} }
.modal-innerDiv { .modal-innerDiv {
height: 95%; /* height: 95%; */
overflow-y: scroll; max-height: 'calc(100vh - 50px)' !important;
} }
.react-bootstrap-table { .react-bootstrap-table {

@ -105,7 +105,7 @@ ReactDOM.render(
/> />
<Route path='/Dashboard' element={<Dashboard />} /> <Route path='/Dashboard' element={<Dashboard />} />
<Route <Route
path='/RptCorresponsalesTraficos' path='/RptCorresponsalesTraficos/:proc/:modo'
element={<RptCorresponsalesTraficos />} element={<RptCorresponsalesTraficos />}
/> />
<Route <Route

Loading…
Cancel
Save