feature agregar filtros para rastrear traficos, cambio de dashboard de facturacion, se agrega version de la app en login

feature/ConsolidarPedimentos_20231229
Felix Morales 1 year ago
parent d3063024e2
commit 83fd3b457a
  1. 50
      src/Components/Corresponsales/TraficoCorresponsales.tsx
  2. 2
      src/Components/Dashboard/Dashboard.tsx
  3. 4
      src/Components/Dashboard/DashboardContabilidad.tsx
  4. 47
      src/Components/Dashboard/DashboardFacturacion.tsx
  5. 2
      src/Components/Login/login.tsx
  6. 38
      src/Components/Reportes/RptCorresponsalesTraficos.tsx
  7. 9
      src/Components/Reportes/RptCorresponsalesTraficosHst.tsx
  8. 25
      src/Components/Reportes/customCells/progressBar.tsx
  9. 3
      src/DTO/Corresponsales/DTORptCorresponsalesTraficos.ts
  10. 2
      src/Services/Reportes/reportes.services.ts
  11. 2
      src/index.tsx

@ -293,7 +293,7 @@ export default function TraficoCorresponsales (props:IProps) {
const [TieneArchivoZIPGEMCO, setTieneArchivoZIPGEMCO] = useState(0)
const [TieneArchivoZIPCorresponsal, setTieneArchivoZIPCorresponsal] =
useState(0)
const [IDEstatusContabilidad, setIDEstatusContabilidad] = useState(0)
const [IDRazonRechazo, setIDRazonRechazo] = useState(0)
const [AduanaH, setAduanaH] = useState('')
const [PatenteH, setPatenteH] = useState('')
const [PedimentoH, setPedimentoH] = useState('')
@ -826,9 +826,10 @@ export default function TraficoCorresponsales (props:IProps) {
}
}, [Proceso, IDTrafico, Depto, []])
useEffect(() => {
/*useEffect(() => {
console.log('cargado todo 1')
LoadEverything()
}, [])
}, [])*/
useEffect(() => {
LoadEverything()
@ -1056,7 +1057,7 @@ export default function TraficoCorresponsales (props:IProps) {
const saveCurrentStep = () => {
if(Depto === 'Corresponsalias') saveCorresponsaliasStep()
else if(Depto === 'Contabilidad') saveContabilidadStep()
else if(Depto === 'Contabilidad') saveContabilidadAndFacturacionSteps()
}
const saveFinalStep = async (data: DTOTraficoCompleto) => {
CTrafDataService.ValidateComplete(data)
@ -1099,19 +1100,19 @@ export default function TraficoCorresponsales (props:IProps) {
}
}
const saveContabilidadStep = async () => {
if(IDEstatusContabilidad === 0){
const saveContabilidadAndFacturacionSteps = async () => {
if(IDRazonRechazo === 0){
setHeader('Informativo')
setMsg('Debe aceptar el tráfico o seleccionar un motivo de rechazo.')
setShowMsg(true)
return
}
let arrStatus = mCCCEstatus.filter((a) => {
if (a.id === IDEstatusContabilidad) {
if (a.id === IDRazonRechazo) {
return a
}
});
if(IDEstatusContabilidad === 7){
if(IDRazonRechazo === 7){
let data: DTOTraficoCompleto = {
id: IDTrafico,
idUsuario: UserId,
@ -1135,16 +1136,6 @@ export default function TraficoCorresponsales (props:IProps) {
}
}
const saveFacturacionStep = () => {
let data: DTOTraficoCompleto = {
id: IDTrafico,
idUsuario: UserId,
estatus: 5,
comentarios: "Tráfico facturado."
}
saveFinalStep(data)
}
const rejectCurrentStep = (data:ICorresponsalesTraficoContabilidad) => {
CContaDataService.Append(data)
.then( () => {
@ -2640,11 +2631,11 @@ export default function TraficoCorresponsales (props:IProps) {
<Form.Control
as="select"
onChange={(e) => {
setIDEstatusContabilidad(parseInt(e.target.value))
setIDRazonRechazo(parseInt(e.target.value))
}}
className="form-select form-select-sm"
style={{ width: '550px' }}
value={IDEstatusContabilidad}
value={IDRazonRechazo}
>
<option value="0">-Seleccione-</option>
{mCCCEstatus
@ -2668,7 +2659,7 @@ export default function TraficoCorresponsales (props:IProps) {
paddingRight: '25px'
}}
onClick={() => {
saveContabilidadStep()
saveContabilidadAndFacturacionSteps()
}}
>
Guardar
@ -2678,23 +2669,6 @@ export default function TraficoCorresponsales (props:IProps) {
)}
</Col>
</Row>
<Row style={{display: Depto === 'Facturacion' && Proceso === 4 ? 'flex': 'none'}}>
<Col xs={12} style={{textAlign:'end'}}>
<Button
variant="primary"
size="sm"
style={{
paddingLeft: '25px',
paddingRight: '25px'
}}
onClick={() => {
saveFacturacionStep();
}}
>
Terminar
</Button>
</Col>
</Row>
<Row style={{padding: "5px 0"}}>
<Col xs={6} style={{ textAlign: 'center' }}>
Trafico Corresponsales: Rechazo(s)

@ -29,7 +29,7 @@ export default function Dashboard(props: IProps) {
{[['Direcccion', 'Sistemas', 'Contabilidad'].includes(Depto) ? <DashboardContabilidad /> : ''].map((item) => {
return <React.Fragment>{item}</React.Fragment>
})}
{[['Direcccion', 'Sistemas', 'Facturacion'].includes(Depto) ? <DashboardFacturacion /> : ''].map((item) => {
{[['Direcccion', 'Sistemas', 'Facturacion'].includes(Depto) ? <DashboardFacturacion Depto={Depto}/> : ''].map((item) => {
return <React.Fragment>{item}</React.Fragment>
})}
</Row>

@ -126,8 +126,8 @@ export const DashboardContabilidad: FC<IProps> = (props) => {
<Card.Img variant='top' src='' onClick={() => {}} />
<div style={{ fontSize: '6em' }} className='text-center'>
<IconContext.Provider value={{ color: '#ff0018' }}>
<FcSurvey />
<FaReply style={{fontSize:'50px', margin:'0 0 0 -3.8rem', position:"absolute", bottom: '7rem'}}/>
<FcSurvey style={{fontSize:'larger'}}/>
<FaReply style={{fontSize:'50px', margin:'0 0 0 -4rem', position:"absolute", bottom: '6.5rem'}}/>
</IconContext.Provider>
{RechazosContabilidad}
</div>

@ -3,15 +3,21 @@ import { Card, Col, Container, Row } from 'react-bootstrap'
import { IconContext } from 'react-icons'
import { BsCashCoin } from 'react-icons/bs'
import { Link, useNavigate } from 'react-router-dom'
import DashboardDataService from '../../Services/Dashboard/Dashboard.Facturacion.Service'
import DashboardFacturacionDataService from '../../Services/Dashboard/Dashboard.Facturacion.Service'
import DashboardContaDataService from '../../Services/Dashboard/Dashboard.Contabilidad.Service'
import { ApexOptions } from 'apexcharts'
import ReactApexChart from 'react-apexcharts'
import { FaReply } from 'react-icons/fa'
import { FcSurvey } from 'react-icons/fc'
interface IProps {}
interface IProps {
Depto: string;
}
export const DashboardFacturacion: FC<IProps> = (props) => {
const [labels, setlabels] = useState<string[]>([]);
const [series, setseries] = useState<number[]>([]);
const [RechazosContabilidad, setRechazosContabilidad] = useState(0);
const navigate = useNavigate();
const [ChartOptions, setChartOptions] = useState<ApexOptions>({
labels: [
@ -31,7 +37,12 @@ export const DashboardFacturacion: FC<IProps> = (props) => {
});
useEffect(() => {
DashboardDataService.getFacturacion()
DashboardContaDataService.getTotalRechazosContabilidad().then((response) => {
setRechazosContabilidad(response.data.total)
}).catch((e: Error) => {
return;
})
DashboardFacturacionDataService.getFacturacion()
.then((response) => {
console.log(response.data);
let labels: string[] = [];
@ -47,7 +58,7 @@ export const DashboardFacturacion: FC<IProps> = (props) => {
setChartOptions({
labels: labels,
colors: ['#EB984E', '#2288D3', '#E52626', ],
colors: ['#2288D3', '#E52626', ],
legend: { position: 'bottom' },
plotOptions: {
pie: {
@ -77,9 +88,6 @@ export const DashboardFacturacion: FC<IProps> = (props) => {
navigate('../RptCorresponsalesTraficos/proc=3/modo=1');
break;
case 1:
navigate('../RptCorresponsalesTraficos/proc=4/modo=1');
break;
case 2:
navigate('../RptCorresponsalesTraficos/proc=3/modo=2');
break;
}
@ -121,6 +129,31 @@ export const DashboardFacturacion: FC<IProps> = (props) => {
</Card.Footer>
</Card>
</Col>
{props.Depto === 'Facturacion' ?
<Col>
<Card style={{ width: '18rem' }} className='dashboardComponentFont'>
<Card.Header>Contabilidad </Card.Header>
<Card.Body style={{ paddingBottom: '50px' }}>
<Card.Title>&nbsp;Rechazos para corresponsalias<br/><br/></Card.Title>
<div style={{ fontSize: '6em' }} className='text-center'>
<IconContext.Provider value={{ color: '#ff0018' }}>
<FcSurvey style={{fontSize:'larger'}}/>
<FaReply style={{fontSize:'50px', margin:'0 0 0 -4rem', position:"absolute", bottom: '6.5rem'}}/>
</IconContext.Provider>
{RechazosContabilidad}
</div>
</Card.Body>
<Card.Footer style={{ paddingRight: '5px' }}>
<Link
to='../RptCorresponsalesTraficos/proc=2/modo=4'
style={{ textDecoration: 'none', float: 'right', paddingRight: '10px' }}
>
Ver mas...
</Link>
</Card.Footer>
</Card>
</Col> : ""
}
</>
)
}

@ -16,6 +16,7 @@ import { Button, Card, Col, Form, Nav, Row } from 'react-bootstrap'
import AuthDS from '../../Services/Auth/Auth.Service'
import UserDS from '../../Services/Catalogos/Usuarios.Services'
import { useEffect } from 'react'
import Info from '../../../package.json'
export const Login: React.FC<{}> = () => {
const dispatch = useDispatch()
@ -176,6 +177,7 @@ export const Login: React.FC<{}> = () => {
login
</Button>
</div>
<div style={{textAlign:'right'}}>v{Info.version}</div>
</Card.Body>
</Card>
</div>

@ -74,6 +74,9 @@ export default function RptCorresponsalesTraficos(props: IProps) {
const [TipoOperacion, setTipoOperacion] = useState(0)
const [Cliente, setCliente] = useState(0)
const [Corresponsal, setCorresponsal] = useState(0)
const [Pedimento, setPedimento] = useState(0)
const [Patente, setPatente] = useState(0);
const [Aduana, setAduana] = useState(0);
const [Clientes, setClientes] = useState<Array<IClientes>>()
const [filtro, setFiltro] = useState('')
const gridRef = React.useRef<any>(null)
@ -272,6 +275,9 @@ export default function RptCorresponsalesTraficos(props: IProps) {
TipoOperacion: TipoOperacion,
NoCliente: Cliente,
IdCorresponsal: Corresponsal,
Pedimento: Pedimento,
Aduana: Aduana,
Patente: Patente,
Proceso: proc ? parseInt(proc.replace('proc=', '')) : 0,
Modo: modo ? parseInt(modo.replace('modo=', '')) : 0,
}
@ -511,7 +517,7 @@ export default function RptCorresponsalesTraficos(props: IProps) {
<Row>
<Col xs={8}>
<Row>
<Col xs={6}>
<Col xs={5}>
<Form.Control
type='text'
size='sm'
@ -522,6 +528,34 @@ export default function RptCorresponsalesTraficos(props: IProps) {
/>
</Col>
<Col xs={3}>
<Form.Control
type='text'
size='sm'
placeholder='Pedimento'
onChange={(e) => setPedimento(+e.target.value)}
/>
</Col>
<Col xs={2}>
<Form.Control
type='text'
size='sm'
placeholder='Aduana'
onChange={(e) => setAduana(+e.target.value)}
/>
</Col>
<Col xs={2}>
<Form.Control
type='text'
size='sm'
placeholder='Patente'
onChange={(e) => setPatente(+e.target.value)}
/>
</Col>
</Row>
</Col>
<Col xs={4}>
<Row>
<Col xs={6}>
<Form.Control
defaultValue={Inicio}
type='date'
@ -534,7 +568,7 @@ export default function RptCorresponsalesTraficos(props: IProps) {
size='sm'
/>
</Col>
<Col xs={3}>
<Col xs={6}>
<Form.Control
defaultValue={Fin}
type='date'

@ -56,6 +56,9 @@ export default function RptCorresponsalesTraficosHst (props: IProps) {
const [filtro, setFiltro] = useState('')
const gridRef = React.useRef<any>(null)
const [DataCorresponsales, setDataCorresponsales] = useState<ICatCorresponsales[]>([])
const [Pedimento, setPedimento] = useState(0)
const [Patente, setPatente] = useState(0);
const [Aduana, setAduana] = useState(0);
const [columnDefs] = useState([
{ field: 'id', headerName: 'id', width: 70, sortable: true, filter: true },
{
@ -193,6 +196,9 @@ export default function RptCorresponsalesTraficosHst (props: IProps) {
TipoOperacion: 0,
NoCliente: 0,
IdCorresponsal: Corresponsal,
Pedimento: Pedimento,
Aduana: Aduana,
Patente: Patente,
Proceso: proc ? parseInt(proc) : 0,
Modo: Modo ? parseInt(Modo) : 0,
}
@ -253,6 +259,9 @@ export default function RptCorresponsalesTraficosHst (props: IProps) {
TipoOperacion: TipoOperacion,
NoCliente: Cliente,
IdCorresponsal: Corresponsal,
Pedimento: Pedimento,
Aduana: Aduana,
Patente: Patente,
Proceso: proc ? parseInt(proc) : 0,
Modo: Modo ? parseInt(Modo) : 0,
}

@ -17,16 +17,33 @@ export const ProgressBar: FC<ICellRendererParams> = (props: ICellRendererParams)
if (props.data.rechazado > 0) setColor('progress-bar bg-RECHAZOS_POR_CONTABILIDAD')
else setColor('progress-bar bg-CORRESPONSAL_NORMAL')
}
if (props.data.proceso === 3) setColor('progress-bar bg-RECHAZOS_PARA_CORRESPONSAL')
if (props.data.proceso === 4) setColor('progress-bar bg-FACTURACION_LISTOS_PARA_FACTURAR')
if (props.data.proceso === 5) setColor('progress-bar bg-CORRESPONSAL_NORMAL')
if (props.data.proceso === 3) setColor('progress-bar bg-FACTURACION_LISTOS_PARA_FACTURAR')
if (props.data.proceso === 4) setColor('progress-bar bg-CORRESPONSAL_NORMAL')
}, [props])
const getTooltipTitle = () => {
let proceso = props.data.proceso;
switch(proceso){
case 1:
return "Corresponsalias"
break;
case 2:
return "Contabilidad"
break;
case 3:
return "Facturacion"
break;
case 4:
return "Facturado"
break;
}
}
return (
<div>
<div style={{ paddingTop: '20%' }}>
<div className='progress' style={{ maxWidth: '80%' }}>
<div className={Color} style={{ width: '100%' }}></div>
<div className={Color} style={{ width: '100%' }} data-toggle="tooltip" data-placement="bottom" title={getTooltipTitle()}></div>
</div>
</div>
</div>

@ -4,6 +4,9 @@ export default interface DTORptCorresponsalesTraficos {
TipoOperacion: number;
NoCliente: number;
IdCorresponsal: number;
Pedimento: number;
Aduana: number;
Patente: number;
Proceso: number;
Modo: number;
}

@ -38,7 +38,7 @@ class reportsDataService {
return http.get<Array<IRpArchivoElectronicoOficial>>(`/ArchivoElectronico/RptArchivoElectronicoOficial?Anio=${data.Anio}&Mes=${data.Mes}&TipoOperacion=${data.TipoOperacion}&NoCliente=${data.NoCliente}`);
}
getRptCorresponsalesTraficos(data: DTORptCorresponsalesTraficos) {
return http.get<ICorresponsalTrafico[]>(`/reportes/RptCorresponsalesTraficos?Inicio=${data.Inicio}&Fin=${data.Fin}&TipoOperacion=${data.TipoOperacion}&NoCliente=${data.NoCliente}&IdCorresponsal=${data.IdCorresponsal}&Proceso=${data.Proceso}&Modo=${data.Modo}`);
return http.get<ICorresponsalTrafico[]>(`/reportes/RptCorresponsalesTraficos?Inicio=${data.Inicio}&Fin=${data.Fin}&TipoOperacion=${data.TipoOperacion}&NoCliente=${data.NoCliente}&IdCorresponsal=${data.IdCorresponsal}&Pedimento=${data.Pedimento}&Aduana=${data.Aduana}&Patente=${data.Patente}&Proceso=${data.Proceso}&Modo=${data.Modo}`);
}
getRptOperaciones(data: DTOReporte) {
return http.get<IRptOperaciones[]>(`/reportes/RptOperaciones?Inicio=${data.Inicio}&Fin=${data.Fin}&TipoOperacion=${data.TipoOperacion}&NoCliente=${data.NoCliente}`);

@ -33,7 +33,6 @@ function PageNotFound() {
const root = ReactDOM.createRoot(document.getElementById("root") as HTMLElement);
root.render(
<Provider store={store}>
<React.StrictMode>
<HashRouter>
<Routes>
<Route path="/" element={<App />}>
@ -75,7 +74,6 @@ root.render(
</Route>
</Routes>
</HashRouter>
</React.StrictMode>
</Provider>
)

Loading…
Cancel
Save