Ocultar el boton para crear solicitudes cuando la referencia ya tiene una creada, creacion del indicador de solicitudes para el supervisor de corresponsalias

feature/solicitar_eliminacion_de_referencia_20240219
Felix Morales 7 months ago
parent 9b3b75bd0a
commit 2871512547
  1. 8
      src/Classes/Corresponsales/CCorresponsalesTrafico.ts
  2. 30
      src/Components/Corresponsales/SolicitudReapertura/AutorizarSolicitud.tsx
  3. 28
      src/Components/Corresponsales/SolicitudReapertura/CrearSolicitud.tsx
  4. 34
      src/Components/Corresponsales/TraficoCorresponsales.tsx
  5. 4
      src/Components/Dashboard/Dashboard.tsx
  6. 3
      src/Components/Dashboard/DashboardContabilidad.tsx
  7. 36
      src/Components/Dashboard/DashboardCorresponsales.tsx
  8. 2
      src/Components/Dashboard/DashboardFacturacion.tsx
  9. 8
      src/Components/Reportes/RptCorresponsalesTraficos.tsx
  10. 1
      src/Interfaces/Corresponsales/ICorresponsalTrafico.ts
  11. 17
      src/Services/Corresponsalias/Corresponsales.Trafico.Solicitud.Service.ts
  12. 3
      src/Services/Dashboard/Dashboard.Corresponsales.Services.ts
  13. 4
      src/index.tsx
  14. 3
      src/store/features/Corresponsales/CorresponsalesTraficoSlice.ts

@ -47,6 +47,7 @@ export default class CCorresponsalesTrafico implements ICorresponsalTrafico {
causaRectificacion: string;
totalHonorariosAA: number;
totalGastosTerceros: number;
tieneSolicitud: number;
constructor() {
this.id=0
@ -95,6 +96,7 @@ export default class CCorresponsalesTrafico implements ICorresponsalTrafico {
this.causaRectificacion = ''
this.totalHonorariosAA = 0
this.totalGastosTerceros = 0
this.tieneSolicitud = 0
}
public getEmptyObject(): ICorresponsalTrafico {
@ -144,7 +146,8 @@ export default class CCorresponsalesTrafico implements ICorresponsalTrafico {
cargoA: 0,
causaRectificacion: '',
totalHonorariosAA: 0,
totalGastosTerceros: 0
totalGastosTerceros: 0,
tieneSolicitud: 0
}
}
@ -195,7 +198,8 @@ export default class CCorresponsalesTrafico implements ICorresponsalTrafico {
cargoA: data.cargoA,
causaRectificacion: data.causaRectificacion,
totalHonorariosAA: data.totalHonorariosAA,
totalGastosTerceros: data.totalGastosTerceros
totalGastosTerceros: data.totalGastosTerceros,
tieneSolicitud: data.tieneSolicitud
}
}
}

@ -21,6 +21,10 @@ export const AutorizarSolicitud:React.FC<IProps> = (props) => {
const [msg, setMsg] = useState('')
const [header, setHeader] = useState('')
const [SelectedOption, setSelectedOption] = useState(2)
const [Depto, setDepto] = useState(() => {
const stickyValue = window.localStorage.getItem('Departamento')
return stickyValue !== null ? JSON.parse(stickyValue) : ''
})
const [Perfil, setPerfil] = useState(() => {
const stickyValue = window.localStorage.getItem('Perfil')
return stickyValue !== null ? JSON.parse(stickyValue) : ''
@ -50,7 +54,31 @@ export const AutorizarSolicitud:React.FC<IProps> = (props) => {
motivoRechazo: Motivo,
estado: SelectedOption
}
CorresponsalesTraficoSolicitudService.AppendSolicitud(solicitud, Perfil)!
if(Depto === 'Facturacion'){
AppendSolicitudReapertura(solicitud)
}
if(Depto === 'Corresponsalias'){
AppendSolicitudEliminarReferencia(solicitud)
}
}
const AppendSolicitudReapertura = (solicitud: ICorresponsalTraficoSolicitud) => {
CorresponsalesTraficoSolicitudService.AppendSolicitudReapertura(solicitud)
.then((resp) => {
if(resp.data.id > 0){
props.close(SelectedOption)
}
})
.catch(() => {
setHeader('Error');
setMsg('Ocurrió un error. Favor de intentar nuevamente')
setShowMsg(true)
return;
})
}
const AppendSolicitudEliminarReferencia = (solicitud: ICorresponsalTraficoSolicitud) => {
CorresponsalesTraficoSolicitudService.AppendSolicitudEliminarReferencia(solicitud)
.then((resp) => {
if(resp.data.id > 0){
props.close(SelectedOption)

@ -16,6 +16,10 @@ export const CrearSolicitud:React.FC<IProps> = (props) => {
const [showMsg, setShowMsg] = useState(false)
const [msg, setMsg] = useState('')
const [header, setHeader] = useState('')
const [Depto, setDepto] = useState(() => {
const stickyValue = window.localStorage.getItem('Departamento')
return stickyValue !== null ? JSON.parse(stickyValue) : ''
})
const [Perfil, setPerfil] = useState(() => {
const stickyValue = window.localStorage.getItem('Perfil')
return stickyValue !== null ? JSON.parse(stickyValue) : ''
@ -45,7 +49,29 @@ export const CrearSolicitud:React.FC<IProps> = (props) => {
motivoRechazo: "",
estado: Perfil.includes('Sup') ? 2 : 1 //Si es un supervisor se asigna el estado de la solicitud como autorizada desde que se crea
}
CorresponsalesTraficoSolicitudService.AppendSolicitud(solicitud, Perfil)!
if(Depto === 'Facturacion'){
AppendSolicitudReapertura(solicitud)
}
if(Depto === 'Corresponsalias'){
AppendSolicitudEliminarReferencia(solicitud)
}
}
const AppendSolicitudReapertura = (solicitud: ICorresponsalTraficoSolicitud) => {
CorresponsalesTraficoSolicitudService.AppendSolicitudReapertura(solicitud)
.then((resp) => {
props.close()
})
.catch(() => {
setHeader('Error');
setMsg('Ocurrió un error. Favor de intentar nuevamente')
setShowMsg(true)
return;
})
}
const AppendSolicitudEliminarReferencia = (solicitud: ICorresponsalTraficoSolicitud) => {
CorresponsalesTraficoSolicitudService.AppendSolicitudEliminarReferencia(solicitud)
.then((resp) => {
props.close()
})

@ -583,18 +583,31 @@ export default function TraficoCorresponsales (props:IProps) {
}
const GetSolicitudes = async () => {
await CorresponsalesTraficoSolicitudService.GetSolicitud(props.IDTrafico, Perfil)!
if(Perfil === 'Sup. Corresponsalias'){
await CorresponsalesTraficoSolicitudService.GetSolicitudEliminarReferencia(props.IDTrafico)
.then(resp => {
if(resp.data.id > 0){
setSolicitud(solicitud => ({
...solicitud,
...resp.data
}))
if(Perfil === 'Sup. Corresponsalias'){//Si el usuario es supervisor de corresponsalias
showModalBox(17, 'modal-30w', true)//Se muestra el modal para autorizar la petición
showModalBox(17, 'modal-30w', true)
}
if(Perfil.includes('Facturacion')){//Valida si es un usuario de facturacion
//Se cambian las propiedades del botón con el que se hace la solicitud
}).catch((e) => {
setHeader('Error')
setMsg('Ocurrio un error: ' + e)
setShowMsg(true)
return
})
}
if(Depto === 'Facturacion'){
await CorresponsalesTraficoSolicitudService.GetSolicitudReapertura(props.IDTrafico)
.then(resp => {
if(resp.data.id > 0){
setSolicitud(solicitud => ({
...solicitud,
...resp.data
}))
btnCuenta.current!.innerText = 'Pediente de Autorizar';
btnCuenta.current!.disabled = true;
if(Perfil === 'Sup. Facturacion'){//Si el usuario es supervisor
@ -602,10 +615,14 @@ export default function TraficoCorresponsales (props:IProps) {
}
}
}
}).catch((e) => {
setHeader('Error')
setMsg('Ocurrio un error: ' + e)
setShowMsg(true)
return
})
}
}
const LoadEverything = async () => {
let clientes: IClientes[] = [];
@ -2073,6 +2090,9 @@ export default function TraficoCorresponsales (props:IProps) {
mask="_"
onValueChange={(values: any) => {
const { value } = values
if(value.length === 0 || value === 0){
setPedimento(0)
}
if(value.length === 7 ){
CTrafDataService.ValidaTraficoDuplicado(Aduana, Patente, value, IDTrafico).then( response => {
if(response.data !== ""){

@ -24,12 +24,12 @@ export default function Dashboard(props: IProps) {
<br />
<Container>
<Row xs={1} md={3} className='g-4'>
{[['Direccion', 'Sistemas', 'Corresponsalias'].includes(Depto) ? <DashboardCorresponsales /> : ''].map(
{[['Direccion', 'Sistemas', 'Corresponsalias'].includes(Depto) ? <DashboardCorresponsales Perfil={Perfil} /> : ''].map(
(item) => {
return <React.Fragment>{item}</React.Fragment>
}
)}
{[['Direccion', 'Sistemas', 'Contabilidad'].includes(Depto) ? <DashboardContabilidad Depto={Depto} /> : ''].map((item) => {
{[['Direccion', 'Sistemas', 'Contabilidad'].includes(Depto) ? <DashboardContabilidad Depto={Depto} Perfil={Perfil}/> : ''].map((item) => {
return <React.Fragment>{item}</React.Fragment>
})}
{[['Direccion', 'Sistemas', 'Facturacion'].includes(Depto) ? <DashboardFacturacion Depto={Depto} Perfil={Perfil}/> : ''].map((item) => {

@ -8,6 +8,7 @@ import DashboardDataService from '../../Services/Dashboard/Dashboard.Contabilida
import DashboardCorresponsales from './DashboardCorresponsales'
interface IProps {
Depto: string;
Perfil:string;
}
export const DashboardContabilidad: FC<IProps> = (props) => {
@ -55,7 +56,7 @@ export const DashboardContabilidad: FC<IProps> = (props) => {
return (
<>
{
props.Depto === 'Contabilidad' ? <DashboardCorresponsales/> : ""
props.Depto === 'Contabilidad' ? <DashboardCorresponsales Perfil={props.Perfil}/> : ""
}
<Col>
<Card style={{ width: '18rem' }} className='dashboardComponentFont'>

@ -5,14 +5,20 @@ import DashboardDataService from '../../Services/Dashboard/Dashboard.Corresponsa
import { useNavigate } from 'react-router-dom';
import ReactApexChart from 'react-apexcharts';
import { ApexOptions } from 'apexcharts';
import { IconContext } from 'react-icons';
import { FcSurvey } from 'react-icons/fc';
import { MdTimer } from 'react-icons/md';
interface IProps {}
interface IProps {
Perfil:string
}
export default function DashboardCorresponsales(props: IProps) {
let navigate = useNavigate();
const [TotalCorresponsales, setTotalCorresponsales] = useState(0);
const [labels, setlabels] = useState<string[]>([]);
const [series, setseries] = useState<number[]>([]);
const [Solicitudes, setSolicitudes] = useState(0);
//const [TipoCambio, setTipoCambio] = useState(0)
const [CircleOptions, setCirleOpcions] = useState<ApexOptions>({
labels: [
@ -32,6 +38,9 @@ export default function DashboardCorresponsales(props: IProps) {
});
useEffect(() => {
DashboardDataService.getSolicitudesEliminarCuenta().then((response) => {
setSolicitudes(response.data.total)
}).catch((e: Error) => {return;})
DashboardDataService.getCorresponsales()
.then((response) => {
console.log(response.data);
@ -144,6 +153,31 @@ export default function DashboardCorresponsales(props: IProps) {
</Card.Footer>
</Card>
</Col>
{props.Perfil === 'Sup. Corresponsalias' ?
<Col>
<Card style={{ width: '18rem' }} className='dashboardComponentFont'>
<Card.Header>Facturación </Card.Header>
<Card.Body style={{ paddingBottom: '50px' }}>
<Card.Title>Solicitudes para eliminar cuenta<br/><br/></Card.Title>
<div style={{ fontSize: '6em' }} className='text-center'>
<IconContext.Provider value={{ color: '#ff671b' }}>
<FcSurvey style={{fontSize:'larger'}}/>
<MdTimer style={{fontSize:'70px', margin:'0 0 0 -4rem', position:"absolute", bottom: '6rem'}}/>
</IconContext.Provider>
{Solicitudes}
</div>
</Card.Body>
<Card.Footer style={{ paddingRight: '5px' }}>
<Link
to='../RptCorresponsalesTraficos/proc=1/modo=2'
style={{ textDecoration: 'none', float: 'right', paddingRight: '10px' }}
>
Ver mas...
</Link>
</Card.Footer>
</Card>
</Col> : ""
}
</>
);
};

@ -111,7 +111,7 @@ export const DashboardFacturacion: FC<IProps> = (props) => {
return (
<>
{
props.Depto === 'Facturacion' ? <DashboardCorresponsales/> : ""
props.Depto === 'Facturacion' ? <DashboardCorresponsales Perfil={props.Perfil}/> : ""
}
<Col>
<Card style={{ width: '18rem' }} className='dashboardComponentFont'>

@ -105,7 +105,7 @@ export default function RptCorresponsalesTraficos(props: IProps) {
hide: !Perfil.includes('Corresponsalias'),
cellRenderer: (params: any) => {
return (
<span>
<span style={{visibility: params.data.tieneSolicitud ? 'hidden' : 'visible'}}>
<FaTrash color='red' cursor='pointer' onClick={(e) => {setDeleting(true)}}/>
</span>
)
@ -300,6 +300,7 @@ export default function RptCorresponsalesTraficos(props: IProps) {
setDeleting(false)
return;
}
setIDTrafico(e.data.id)
setShowModalSolicitud(true)
}else{
AbreTrafico(e.data.id)
@ -800,6 +801,7 @@ export default function RptCorresponsalesTraficos(props: IProps) {
IDTrafico={IDTrafico}
onClose={function (val: boolean): void {
setShowModal(false)
generaReporte()
}}
/>
</div>
@ -817,9 +819,11 @@ export default function RptCorresponsalesTraficos(props: IProps) {
<CrearSolicitud
idTrafico={IDTrafico}
idUsuario={UserId}
title='Solicitud Para Eliminar Trafico'
title='Solicitud Para Eliminar Referencia'
close={()=>{
setShowModalSolicitud(false)
setDeleting(false)
generaReporte()
if(Perfil === 'Sup. Corresponsalias'){
setHeader('Informativo');
setMsg('Referencia eliminada correctamente.')

@ -45,4 +45,5 @@ export default interface ICorresponsalTrafico {
causaRectificacion: string,
totalHonorariosAA: number;
totalGastosTerceros: number;
tieneSolicitud: number;
}

@ -2,14 +2,17 @@ import { DTOTraficoSolicitud } from "../../DTO/Corresponsales/DTOTraficoSolicitu
import { ICorresponsalTraficoSolicitud } from "../../Interfaces/Corresponsales/ICorresponsalTraficoSolicitud"
import http from "../common/http-common";
class TraficoSolicitudServices {
AppendSolicitud(solicitud: ICorresponsalTraficoSolicitud, Perfil: string){
if(Perfil.includes('Corresponsalias')){return http.post<ICorresponsalTraficoSolicitud>(`/Corresponsalias/Solicitudes/EliminarCuenta/Append`, solicitud)}
if(Perfil.includes('Facturacion')){return http.post<ICorresponsalTraficoSolicitud>(`/Corresponsalias/Solicitudes/Reapertura/Append`, solicitud)}
AppendSolicitudReapertura(solicitud: ICorresponsalTraficoSolicitud){
return http.post<ICorresponsalTraficoSolicitud>(`/Corresponsalias/Solicitudes/Reapertura/Append`, solicitud)
}
GetSolicitud(idTrafico: number, Perfil: string){
if(Perfil.includes('Corresponsalias')){return http.get<DTOTraficoSolicitud>(`/Corresponsalias/Solicitudes/EliminarCuenta/Get?idTrafico=${idTrafico}`)}
if(Perfil.includes('Facturacion')){return http.get<DTOTraficoSolicitud>(`/Corresponsalias/Solicitudes/Reapertura/Get?idTrafico=${idTrafico}`)}
AppendSolicitudEliminarReferencia(solicitud: ICorresponsalTraficoSolicitud){
return http.post<ICorresponsalTraficoSolicitud>(`/Corresponsalias/Solicitudes/EliminarCuenta/Append`, solicitud)
}
GetSolicitudReapertura(idTrafico: number){
return http.get<DTOTraficoSolicitud>(`/Corresponsalias/Solicitudes/Reapertura/Get?idTrafico=${idTrafico}`)
}
GetSolicitudEliminarReferencia(idTrafico: number){
return http.get<DTOTraficoSolicitud>(`/Corresponsalias/Solicitudes/EliminarCuenta/Get?idTrafico=${idTrafico}`)
}
}

@ -8,5 +8,8 @@ class Dashboard_Corresponsales_DataService {
getTipoCambio(Fecha: string) {
return http.get<number>(`/Dashboard/Corresponsales/GetTipoCambio?Fecha=${Fecha}`);
}
getSolicitudesEliminarCuenta(){
return http.get<DashboardCorresponsales>(`/Dashboard/Corresponsales/SolicitudesEliminarCuenta`);
}
}
export default new Dashboard_Corresponsales_DataService();

@ -65,10 +65,10 @@ root.render(
/>
}
/>
<Route
{/* <Route
path="/DashboardCorresponsales"
element={<DashboardCorresponsales />}
/>
/> */}
<Route path="/Dashboard" element={<Dashboard />} />
<Route
path="/RptCorresponsalesTraficos/:proc/:modo"

@ -46,7 +46,8 @@ const CorresponsalesTrafico: ICorresponsalTrafico[] = [{
cargoA: 0,
causaRectificacion: '',
totalHonorariosAA: 0,
totalGastosTerceros: 0
totalGastosTerceros: 0,
tieneSolicitud: 0
}]
const initialState = { CorresponsalesTrafico }

Loading…
Cancel
Save