From 9b3b75bd0a1f32df77ffd11e5c250380a543648f Mon Sep 17 00:00:00 2001 From: Felix Morales Date: Fri, 23 Feb 2024 16:47:06 -0600 Subject: [PATCH] Crear y autorizar solicitudes para eliminar traficos --- .../AutorizarSolicitud.tsx | 13 ++- .../SolicitudReapertura/CrearSolicitud.tsx | 7 +- .../Corresponsales/TraficoCorresponsales.tsx | 103 +++++++++++------- .../Reportes/RptCorresponsalesTraficos.tsx | 43 +++++++- .../Corresponsales.Trafico.Services.ts | 8 -- ...orresponsales.Trafico.Solicitud.Service.ts | 16 +++ 6 files changed, 137 insertions(+), 53 deletions(-) create mode 100644 src/Services/Corresponsalias/Corresponsales.Trafico.Solicitud.Service.ts diff --git a/src/Components/Corresponsales/SolicitudReapertura/AutorizarSolicitud.tsx b/src/Components/Corresponsales/SolicitudReapertura/AutorizarSolicitud.tsx index 1ddee74..2327e8f 100644 --- a/src/Components/Corresponsales/SolicitudReapertura/AutorizarSolicitud.tsx +++ b/src/Components/Corresponsales/SolicitudReapertura/AutorizarSolicitud.tsx @@ -6,11 +6,14 @@ import { ICorresponsalTraficoSolicitud } from "../../../Interfaces/Corresponsale import { DTOTraficoSolicitud } from "../../../DTO/Corresponsales/DTOTraficoSolicitud"; import CTrafDataService from "../../../Services/Corresponsalias/Corresponsales.Trafico.Services" import { useState } from "react"; +import CorresponsalesTraficoSolicitudService from "../../../Services/Corresponsalias/Corresponsales.Trafico.Solicitud.Service"; interface IProps { solicitud: DTOTraficoSolicitud; userId: number; close: (estado: number) => void + title: string; + mensaje: string; } export const AutorizarSolicitud:React.FC = (props) => { const [Motivo, setMotivo] = useState('') @@ -18,6 +21,10 @@ export const AutorizarSolicitud:React.FC = (props) => { const [msg, setMsg] = useState('') const [header, setHeader] = useState('') const [SelectedOption, setSelectedOption] = useState(2) + const [Perfil, setPerfil] = useState(() => { + const stickyValue = window.localStorage.getItem('Perfil') + return stickyValue !== null ? JSON.parse(stickyValue) : '' + }) const AppendSolicitud = () =>{ if(SelectedOption === 0 && !Motivo){ @@ -43,7 +50,7 @@ export const AutorizarSolicitud:React.FC = (props) => { motivoRechazo: Motivo, estado: SelectedOption } - CTrafDataService.AppendSolicitudReapertura(solicitud) + CorresponsalesTraficoSolicitudService.AppendSolicitud(solicitud, Perfil)! .then((resp) => { if(resp.data.id > 0){ props.close(SelectedOption) @@ -59,7 +66,7 @@ export const AutorizarSolicitud:React.FC = (props) => { return( <> -

Solicitud de Reapertura de Cuenta

+

{props.title}


@@ -67,7 +74,7 @@ export const AutorizarSolicitud:React.FC = (props) => {

- {props.solicitud.usuarioSolicita} solicita la reapertura de esta cuenta por el motivo: + {props.solicitud.usuarioSolicita} {props.mensaje}

{props.solicitud.motivoSolicita}

diff --git a/src/Components/Corresponsales/SolicitudReapertura/CrearSolicitud.tsx b/src/Components/Corresponsales/SolicitudReapertura/CrearSolicitud.tsx index ea734a1..850023c 100644 --- a/src/Components/Corresponsales/SolicitudReapertura/CrearSolicitud.tsx +++ b/src/Components/Corresponsales/SolicitudReapertura/CrearSolicitud.tsx @@ -3,6 +3,7 @@ import { Button, Col, Form, FormLabel, Row } from "react-bootstrap" import CTrafDataService from "../../../Services/Corresponsalias/Corresponsales.Trafico.Services" import { MsgInformativo } from "../../Utils/Toast/msgInformativo" import { ICorresponsalTraficoSolicitud } from "../../../Interfaces/Corresponsales/ICorresponsalTraficoSolicitud" +import CorresponsalesTraficoSolicitudService from "../../../Services/Corresponsalias/Corresponsales.Trafico.Solicitud.Service" interface IProps{ idTrafico: number, @@ -39,12 +40,12 @@ export const CrearSolicitud:React.FC = (props) => { idUsuarioSolicita: props.idUsuario, fechaSolicita: undefined, motivoSolicita: Motivo, - idUsuarioAutoriza: Perfil === 'Sup. Facturacion' ? props.idUsuario : 0, + idUsuarioAutoriza: Perfil.includes('Sup') ? props.idUsuario : 0, //Si es un supervisor se asigna su id al usuario que autoriza ya que la solicitud no requiere ser autorizada por otro usuario fechaAutoriza: undefined, motivoRechazo: "", - estado: Perfil === 'Sup. Facturacion' ? 2 : 1 + estado: Perfil.includes('Sup') ? 2 : 1 //Si es un supervisor se asigna el estado de la solicitud como autorizada desde que se crea } - CTrafDataService.AppendSolicitudReapertura(solicitud) + CorresponsalesTraficoSolicitudService.AppendSolicitud(solicitud, Perfil)! .then((resp) => { props.close() }) diff --git a/src/Components/Corresponsales/TraficoCorresponsales.tsx b/src/Components/Corresponsales/TraficoCorresponsales.tsx index 7f4a661..b6d4477 100644 --- a/src/Components/Corresponsales/TraficoCorresponsales.tsx +++ b/src/Components/Corresponsales/TraficoCorresponsales.tsx @@ -132,6 +132,7 @@ import DTORectificacionHistorico from '../../DTO/Corresponsales/DTORectificacion import { CrearSolicitud } from './SolicitudReapertura/CrearSolicitud' import { AutorizarSolicitud } from './SolicitudReapertura/AutorizarSolicitud' import { DTOTraficoSolicitud } from '../../DTO/Corresponsales/DTOTraficoSolicitud' +import CorresponsalesTraficoSolicitudService from '../../Services/Corresponsalias/Corresponsales.Trafico.Solicitud.Service' interface IProps { IDTrafico: number @@ -356,7 +357,7 @@ export default function TraficoCorresponsales (props:IProps) { const [IsDisabled, setIsDisabled] = useState(false); const hiddenFileInputRef = useRef(null); const btnCuenta = useRef(null); - const [solicitudReapertura, setSolicitudReapertura] = useState({ + const [solicitud, setSolicitud] = useState({ id: 0, idTrafico: 0, idUsuarioSolicita: 0, @@ -581,25 +582,35 @@ export default function TraficoCorresponsales (props:IProps) { return today.getFullYear().toString() } - const LoadEverything = () => { - let clientes: IClientes[] = []; - //Primero se valida si el tráfico tiene solicitud de reapertura de cuenta - CTrafDataService.GetSolicitudReapertura(props.IDTrafico) - .then(resp => { - if(resp.data.id > 0){ - setSolicitudReapertura(solicitud => ({ - ...solicitud, - ...resp.data - })) - if(Perfil === 'Sup. Facturacion'){//Validar si el usuario puede autorizar la petición - showModalBox(16, 'modal-30w', true)//Si puede se muestra el modal para autorizar la petición + const GetSolicitudes = async () => { + await CorresponsalesTraficoSolicitudService.GetSolicitud(props.IDTrafico, Perfil)! + .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 + } + 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 + btnCuenta.current!.innerText = 'Pediente de Autorizar'; + btnCuenta.current!.disabled = true; + if(Perfil === 'Sup. Facturacion'){//Si el usuario es supervisor + showModalBox(16, 'modal-30w', true)//Se muestra el modal para autorizar la petición + } + + } + } - //Se cambia el texto del botón con el que se hace la solicitud - btnCuenta.current!.innerText = 'Pediente de Autorizar'; - btnCuenta.current!.disabled = true; - } - }) - ClavesPedimentosService.getAllClavesPedimentos() + }) + } + + const LoadEverything = async () => { + let clientes: IClientes[] = []; + await GetSolicitudes(); + await ClavesPedimentosService.getAllClavesPedimentos() .then(response => setClavesPedimentos(response.data)) .catch((e: Error) => { setHeader('Error') @@ -607,7 +618,7 @@ export default function TraficoCorresponsales (props:IProps) { setShowMsg(true) return }) - CorresponsalesDataService.getAll() + await CorresponsalesDataService.getAll() .then((response) => { dispatch(populateCatCorresponsales(response.data)) }) @@ -617,7 +628,7 @@ export default function TraficoCorresponsales (props:IProps) { setShowMsg(true) return }) - CTrafDataService.GetCorresponsalesTraficoEstatus() + await CTrafDataService.GetCorresponsalesTraficoEstatus() .then((response) => { setDataCatEstatus(response.data) }) @@ -628,7 +639,7 @@ export default function TraficoCorresponsales (props:IProps) { return }) - TiposMercanciaService.GetAll() + await TiposMercanciaService.GetAll() .then((response) => { setTiposMercancia(response.data); }) @@ -639,7 +650,7 @@ export default function TraficoCorresponsales (props:IProps) { return }); - CFacDataService.getAll(IDTrafico) + await CFacDataService.getAll(IDTrafico) .then((response) => { dispatch(InitCorresponsalesFacturas(IDTrafico)) response.data.forEach((element) => { @@ -652,7 +663,7 @@ export default function TraficoCorresponsales (props:IProps) { setShowMsg(true) return }) - CFac3erDataService.getAll(IDTrafico) + await CFac3erDataService.getAll(IDTrafico) .then((response) => { dispatch(InitCorresponsalesFacturasTerceros(IDTrafico)) response.data.forEach((element) => { @@ -665,7 +676,7 @@ export default function TraficoCorresponsales (props:IProps) { setShowMsg(true) return }) - CContDataService.getAll(IDTrafico) + await CContDataService.getAll(IDTrafico) .then((response) => { dispatch(InitCorresponsalesContenedores(IDTrafico)) response.data.forEach((element) => { @@ -678,7 +689,7 @@ export default function TraficoCorresponsales (props:IProps) { setShowMsg(true) return }) - ClientesDataService.getAllClientes(0) + await ClientesDataService.getAllClientes(0) .then((response) => { clientes = response.data; setClientes(response.data) @@ -689,7 +700,7 @@ export default function TraficoCorresponsales (props:IProps) { setShowMsg(true) return }) - CAntDataService.getAll(IDTrafico) + await CAntDataService.getAll(IDTrafico) .then((response) => { dispatch(populateCorresponsalesAnticipos(response.data)) }) @@ -699,7 +710,7 @@ export default function TraficoCorresponsales (props:IProps) { setShowMsg(true) return }) - CGuiasDataService.getAll(IDTrafico) + await CGuiasDataService.getAll(IDTrafico) .then((response) => { dispatch(populateCorresponsalesGuias(response.data)) }) @@ -709,7 +720,7 @@ export default function TraficoCorresponsales (props:IProps) { setShowMsg(true) return }) - ProvDataService.getAll(0) + await ProvDataService.getAll(0) .then((response) => { dispatch(populateCatProveedores(response.data)) }) @@ -719,7 +730,7 @@ export default function TraficoCorresponsales (props:IProps) { setShowMsg(true) return }) - CCatTiposDocumentos.getAll(2206, 1) + await CCatTiposDocumentos.getAll(2206, 1) .then((response) => { setCatTiposDocumentos(response.data) }) @@ -729,7 +740,7 @@ export default function TraficoCorresponsales (props:IProps) { setShowMsg(true) return }) - CCatTiposDocumentos.getAll(2206, 2) + await CCatTiposDocumentos.getAll(2206, 2) .then((response) => { setCatTiposDocumentosInfoCorresponsal(response.data) }) @@ -739,7 +750,7 @@ export default function TraficoCorresponsales (props:IProps) { setShowMsg(true) return }) - CCueCompService.GetAllEstatus() + await CCueCompService.GetAllEstatus() .then((response) => { dispatch( populateCorresponsalesCuentasComplementariasEstatus(response.data) @@ -751,7 +762,7 @@ export default function TraficoCorresponsales (props:IProps) { setShowMsg(true) return }) - CTrafDataService.GetAll(IDTrafico) + await CTrafDataService.GetAll(IDTrafico) .then((response) => { setFolioTrafico(response.data.folioGemco) setProceso(response.data.proceso) @@ -797,7 +808,7 @@ export default function TraficoCorresponsales (props:IProps) { setShowMsg(true) return }) - CContaDataService.Get(IDTrafico, 2, 1) + await CContaDataService.Get(IDTrafico, 2, 1) .then((response) => { setRechazosTrafico(response.data) }) @@ -807,7 +818,7 @@ export default function TraficoCorresponsales (props:IProps) { setShowMsg(true) return }) - CContaDataService.GetHistorial(IDTrafico) + await CContaDataService.GetHistorial(IDTrafico) .then((response) => { setRechazosContabilidad(response.data) }) @@ -817,7 +828,7 @@ export default function TraficoCorresponsales (props:IProps) { setShowMsg(true) return }) - PedimentosConsolidadosService.GetAll(IDTrafico) + await PedimentosConsolidadosService.GetAll(IDTrafico) .then((resp) => { dispatch(populatePedimentos(resp.data)) }) @@ -4350,7 +4361,9 @@ export default function TraficoCorresponsales (props:IProps) { ) : null} {LoadComponent===16 ? (
- { let texto = estado === 0 ? 'rechazada' : 'autorizada' setProceso(estado === 2 ? 3 : 4) @@ -4362,6 +4375,22 @@ export default function TraficoCorresponsales (props:IProps) { }}/>
) : null} + {LoadComponent===17 ? ( +
+ { + let texto = estado === 0 ? 'rechazada' : 'autorizada' + props.onClose(true); + setShowModal(false) + setHeader('Informativo'); + setMsg(`Solicitud ${texto} correctamente.`) + setShowMsg(true) + return; + }}/> +
+ ) : null} ([]) const [show, setShowMsg] = useState(false) const [ShowModal, setShowModal] = useState(false) + const [ShowModalSolicitud, setShowModalSolicitud] = useState(false) const [header, setHeader] = useState('') const [msg, setMsg] = useState('') const [Inicio, setInicio] = useState(currentDate(-365)) @@ -100,6 +102,7 @@ export default function RptCorresponsalesTraficos(props: IProps) { field: 'acciones', headerName: '', width: 50, + hide: !Perfil.includes('Corresponsalias'), cellRenderer: (params: any) => { return ( @@ -297,7 +300,7 @@ export default function RptCorresponsalesTraficos(props: IProps) { setDeleting(false) return; } - console.log('borrando trafico') + setShowModalSolicitud(true) }else{ AbreTrafico(e.data.id) } @@ -560,6 +563,10 @@ export default function RptCorresponsalesTraficos(props: IProps) { }) } + const handleClose = () => { + setShowModalSolicitud(false) + setDeleting(false) + } return (
@@ -798,6 +805,38 @@ export default function RptCorresponsalesTraficos(props: IProps) {
+ + +
+ { + setShowModalSolicitud(false) + if(Perfil === 'Sup. Corresponsalias'){ + setHeader('Informativo'); + setMsg('Referencia eliminada correctamente.') + setShowMsg(true) + return; + } + else{ + setHeader('Informativo'); + setMsg('Solicitud creada correctamente.') + setShowMsg(true) + return; + } + } + }/> +
+
+
) } diff --git a/src/Services/Corresponsalias/Corresponsales.Trafico.Services.ts b/src/Services/Corresponsalias/Corresponsales.Trafico.Services.ts index 3b3409f..13cc374 100644 --- a/src/Services/Corresponsalias/Corresponsales.Trafico.Services.ts +++ b/src/Services/Corresponsalias/Corresponsales.Trafico.Services.ts @@ -7,8 +7,6 @@ import IRespuesta from "../../Interfaces/IRespuesta"; import ICorresponsalRectificacionHistorico from "../../Interfaces/Corresponsales/ICorresponsalRectificacionHistorico"; import DTORectificacionHistorico from "../../DTO/Corresponsales/DTORectificacionHistorico"; import IReporteOperacionesNewell from "../../Interfaces/ReportesClientes/IReporteOperacionesNewell"; -import { ICorresponsalTraficoSolicitud } from "../../Interfaces/Corresponsales/ICorresponsalTraficoSolicitud"; -import { DTOTraficoSolicitud } from "../../DTO/Corresponsales/DTOTraficoSolicitud"; class Corresponsales_Trafico_DataService { GetAll(id: number) { @@ -47,11 +45,5 @@ class Corresponsales_Trafico_DataService { AppendFacturasContenedoresAlen(idTrafico:number, fileId:number){ return http.post(`/Corresponsalias/Traficos/Append/LayoutAlen?idTrafico=${idTrafico}&fileId=${fileId}`); } - AppendSolicitudReapertura(solicitud: ICorresponsalTraficoSolicitud){ - return http.post(`/Corresponsalias/Solicitudes/Reapertura/Append`, solicitud) - } - GetSolicitudReapertura(idTrafico: number){ - return http.get(`/Corresponsalias/Solicitudes/Reapertura/Get?idTrafico=${idTrafico}`) - } } export default new Corresponsales_Trafico_DataService(); \ No newline at end of file diff --git a/src/Services/Corresponsalias/Corresponsales.Trafico.Solicitud.Service.ts b/src/Services/Corresponsalias/Corresponsales.Trafico.Solicitud.Service.ts new file mode 100644 index 0000000..1a4a116 --- /dev/null +++ b/src/Services/Corresponsalias/Corresponsales.Trafico.Solicitud.Service.ts @@ -0,0 +1,16 @@ +import { DTOTraficoSolicitud } from "../../DTO/Corresponsales/DTOTraficoSolicitud" +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(`/Corresponsalias/Solicitudes/EliminarCuenta/Append`, solicitud)} + if(Perfil.includes('Facturacion')){return http.post(`/Corresponsalias/Solicitudes/Reapertura/Append`, solicitud)} + } + + GetSolicitud(idTrafico: number, Perfil: string){ + if(Perfil.includes('Corresponsalias')){return http.get(`/Corresponsalias/Solicitudes/EliminarCuenta/Get?idTrafico=${idTrafico}`)} + if(Perfil.includes('Facturacion')){return http.get(`/Corresponsalias/Solicitudes/Reapertura/Get?idTrafico=${idTrafico}`)} + } +} + +export default new TraficoSolicitudServices() \ No newline at end of file