diff --git a/src/Components/Clientes/Amazon/Reportes/Clasification/Pending/RptAmazonPendingClasificationInvoices.tsx b/src/Components/Clientes/Amazon/Reportes/Clasification/Pending/RptAmazonPendingClasificationInvoices.tsx index 46f2270..25c925a 100644 --- a/src/Components/Clientes/Amazon/Reportes/Clasification/Pending/RptAmazonPendingClasificationInvoices.tsx +++ b/src/Components/Clientes/Amazon/Reportes/Clasification/Pending/RptAmazonPendingClasificationInvoices.tsx @@ -34,6 +34,7 @@ import { FcQuestions, FcSettings } from 'react-icons/fc' import { MFileManager } from '../../../../../Utils/MFileManager/MFileManager' import { AiFillWarning } from 'react-icons/ai' import { PrioritySelector } from '../PrioritySelector/PrioritySelector' +import IFileManager from '../../../../../../Interfaces/Utils/IFileManager' export interface IRtpAmazonPendingInvoicesProps {} @@ -1016,8 +1017,8 @@ export default function RtpAmazonPendingInvoices( Proceso={IDProcess} showPreview={0} canEdit={true} - Leyenda="Seleccione las facturas de Amazon" - /> + Leyenda="Seleccione las facturas de Amazon" onAppendMFM={function (Files: IFileManager[]): void { + } } /> diff --git a/src/Components/Clientes/Amazon/Reportes/Clasification/WaitingAnswerFromAmazon/RptPendingAnswerFromAmazon.tsx b/src/Components/Clientes/Amazon/Reportes/Clasification/WaitingAnswerFromAmazon/RptPendingAnswerFromAmazon.tsx index 12f24d4..e2b314a 100644 --- a/src/Components/Clientes/Amazon/Reportes/Clasification/WaitingAnswerFromAmazon/RptPendingAnswerFromAmazon.tsx +++ b/src/Components/Clientes/Amazon/Reportes/Clasification/WaitingAnswerFromAmazon/RptPendingAnswerFromAmazon.tsx @@ -32,6 +32,7 @@ import DTO2096PerfilesParecidos from '../../../DTO/DTO2096PerfilesParecidos' import { MFileManager } from '../../../../../Utils/MFileManager/MFileManager' import { setEmitFlags } from 'typescript' import DTO2096RELParteFactura from '../../../DTO/DTO2096RELParteFactura' +import IFileManager from '../../../../../../Interfaces/Utils/IFileManager' export interface IRptPendingAnswerFromAmazonProps {} export default function RptPendingAnswerFromAmazon( @@ -210,7 +211,6 @@ export default function RptPendingAnswerFromAmazon( setIDFactura(id) DSAmazon.SeRecibioRespuestaDeAmazon(id) .then((response) => { - //alert(response.data.estatus) if (response.data.estatus === 0) { setHeader('Error') setMsg( @@ -238,6 +238,23 @@ export default function RptPendingAnswerFromAmazon( }) } + const ApplyAnswerFiles2Invoice = (Files: IFileManager[]) => { + const Filenames= Files.map(element => element.nombreArchivo); + //console.log(Filenames); + DSAmazon.ApplyAnswerFile2Invoice(Filenames) + .then((response) => { + loadReport() + setShowModal(false) + }) + .catch((e: Error) => { + setIDFactura(0) + setHeader('Error') + setMsg('Ocurrio un error ' + e.toString()) + setShowMsg(true) + return + }) + } + return (
@@ -787,8 +804,9 @@ export default function RptPendingAnswerFromAmazon( Proceso={IDProcess} showPreview={3} canEdit={true} - Leyenda="Sube archivos de respuesta de Amazon" - /> + Leyenda="Sube archivos de respuesta de Amazon" onAppendMFM={function (Files: IFileManager[]): void { + ApplyAnswerFiles2Invoice(Files) + } } /> diff --git a/src/Components/Clientes/Amazon/Reportes/Clasification/WaitingAnswerFromAmazon/RptPendingAnswerFromAmazonDetail.tsx b/src/Components/Clientes/Amazon/Reportes/Clasification/WaitingAnswerFromAmazon/RptPendingAnswerFromAmazonDetail.tsx index 3d62567..db69d80 100644 --- a/src/Components/Clientes/Amazon/Reportes/Clasification/WaitingAnswerFromAmazon/RptPendingAnswerFromAmazonDetail.tsx +++ b/src/Components/Clientes/Amazon/Reportes/Clasification/WaitingAnswerFromAmazon/RptPendingAnswerFromAmazonDetail.tsx @@ -125,14 +125,6 @@ export default function RptPendingAnswerFromAmazonDetail( const autoriceItem = (id: number) => { if (EstatusSwith) { - /* if (CumplimientoNormativo.length === 0) { - setHeader('Error') - setMsg( - 'Antes de poder guardar la informacion es necesario que proporcione el cumplimiento normativo' - ) - setShowMsg(true) - return - } */ if (Comentarios.length === 0) { setHeader('Error') setMsg( @@ -149,20 +141,42 @@ export default function RptPendingAnswerFromAmazonDetail( setShowMsg(true) return } - } - const data: DTO2096FraccionDescripcion = { - id: id, - fraccion: Fraccion, - cumplimientoNormativo: CumplimientoNormativo, - comentarios: Comentarios, - descripcionGEMCO: DescripcionGEMCO - } - DSAmazon.AutorizaItemFacturaAmazon(data) + DSAmazon.ValidaFraccionGET(Fraccion) .then((response) => { - editArray(id, !props.detail.autorizado) - setShowModal(false) + if (response.data.respuesta === 'Si') { + const data: DTO2096FraccionDescripcion = { + id: id, + fraccion: Fraccion, + cumplimientoNormativo: CumplimientoNormativo, + comentarios: Comentarios, + descripcionGEMCO: DescripcionGEMCO + } + DSAmazon.AutorizaItemFacturaAmazon(data) + .then((response) => { + editArray(id, !props.detail.autorizado) + setShowModal(false) + }) + .catch((e: Error) => {}) + } else { + alert( + 'Esa fraccion no existe, favor de verificarla antes de guardarla' + ) + return + } + }) + .catch((e: Error) => { + setHeader('Error') + setMsg( + 'Ocurrio un error' + e.message.toString() + ) + setShowMsg(true) + return }) - .catch((e: Error) => {}) + + } + + + } useEffect(() => { diff --git a/src/Components/Clientes/Amazon/Reportes/Estatus/RtpAmazonInvoiceStatus.tsx b/src/Components/Clientes/Amazon/Reportes/Estatus/RtpAmazonInvoiceStatus.tsx index 72053f0..6015eff 100644 --- a/src/Components/Clientes/Amazon/Reportes/Estatus/RtpAmazonInvoiceStatus.tsx +++ b/src/Components/Clientes/Amazon/Reportes/Estatus/RtpAmazonInvoiceStatus.tsx @@ -23,6 +23,7 @@ import loadingImg from '../../../../../images/ajaxloader.gif' import { MFileManager } from '../../../../Utils/MFileManager/MFileManager' import DTO2096RptPayedOperations from '../../DTO/DTO2096RptPayedOperations' import DTO2096InvoiceStatus from '../../DTO/DTO2096InvoiceStatus' +import IFileManager from '../../../../../Interfaces/Utils/IFileManager' export interface IRptAmazonInvoiceStatusProps { } @@ -481,8 +482,8 @@ export default function RptAmazonInvoiceStatus (props: IRptAmazonInvoiceStatusPr Proceso={IDProcess} showPreview={3} canEdit={false} - Leyenda="Lista de archivos de respuesta de Amazon" - /> + Leyenda="Lista de archivos de respuesta de Amazon" onAppendMFM={function (Files: IFileManager[]): void { + } } /> diff --git a/src/Components/Clientes/Amazon/Reportes/Payed/RptAmazonPayedOperations.tsx b/src/Components/Clientes/Amazon/Reportes/Payed/RptAmazonPayedOperations.tsx index c0b3a37..19a33dd 100644 --- a/src/Components/Clientes/Amazon/Reportes/Payed/RptAmazonPayedOperations.tsx +++ b/src/Components/Clientes/Amazon/Reportes/Payed/RptAmazonPayedOperations.tsx @@ -29,6 +29,7 @@ import loadingImg from '../../../../../images/ajaxloader.gif' import { MFileManager } from '../../../../Utils/MFileManager/MFileManager' import DTO2096RptPayedOperations from '../../DTO/DTO2096RptPayedOperations' import { GoGear } from "react-icons/go"; +import IFileManager from '../../../../../Interfaces/Utils/IFileManager' export interface IRptAmazonPayedOpereationsProps {} @@ -66,10 +67,7 @@ export default function RptAmazonPayedOpereations( const loadReport = () => { DSAmazon.AmazonPayedOperationsGET(Inicio, Fin) .then((response) => { - console.log(response.data) setData(response.data) - /* dispatch(initializeInvoice([])) - dispatch(populateInvoices(response.data)) */ }) .catch((e: Error) => { alert('Ocurrio un error' + e.message.toString()) @@ -548,8 +546,8 @@ export default function RptAmazonPayedOpereations( Proceso={IDProcess} showPreview={3} canEdit={false} - Leyenda="Lista de archivos de respuesta de Amazon" - /> + Leyenda="Lista de archivos de respuesta de Amazon" onAppendMFM={function (Files: IFileManager[]): void { + } } /> diff --git a/src/Components/Clientes/Amazon/Reportes/Traffic/Linking/RptAmazonLinkInvoice2Traffic.tsx b/src/Components/Clientes/Amazon/Reportes/Traffic/Linking/RptAmazonLinkInvoice2Traffic.tsx index 0bd83c7..bb1664e 100644 --- a/src/Components/Clientes/Amazon/Reportes/Traffic/Linking/RptAmazonLinkInvoice2Traffic.tsx +++ b/src/Components/Clientes/Amazon/Reportes/Traffic/Linking/RptAmazonLinkInvoice2Traffic.tsx @@ -133,16 +133,52 @@ export default function RptAmazonLinkInvoice2Traffic( }) } - useEffect(() => { loadReport() }, []) + const check4Updates = (IDInvoice: number) => { + DSAmazon.SETInvoiceDetailRevalidateParts(IDInvoice) + .then((response) => { + DSAmazon.AmazonInvoiceGET(IDInvoice) + .then((response) => { + dispatch(updateInvoice(response.data[0])) + let Invoice: I2096Headers[] = response.data.filter( + (item) => item.id === IDInvoice + ) + const Obj = { ...Invoice[0] } + Obj.max = !Obj.max + dispatch(updateInvoice(Obj)) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error') + return + }) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error') + return + }) + } + + const changeToggle = (row: I2096Headers) => { let Invoice: I2096Headers[] = mInvoices.filter((item) => item.id === row.id) const Obj = { ...Invoice[0] } Obj.max = !Obj.max dispatch(updateInvoice(Obj)) + if (Obj.max) check4Updates(row.id) + } + + const updateDataGrid = (IDInvoice: number) => { + //toggleInvoice(IDInvoice) + let Invoice: I2096Headers[] = mInvoices.filter((item) => item.id === IDInvoice) + const Obj = { ...Invoice[0] } + Obj.max = !Obj.max + dispatch(updateInvoice(Obj)) + if (Obj.max) check4Updates(IDInvoice) } const toggleInvoice = (id: number) => { @@ -445,7 +481,8 @@ export default function RptAmazonLinkInvoice2Traffic( style={{ width: '50px', backgroundColor: '#FFFFFF', - color: '#346288' + color: '#346288', + textAlign:'right' }} > MasterData.id === detail.idHeader - ) + )//.sort((a,b) => a.itemId.localeCompare(b.itemId)) + .sort((a, b) => (a.partida > b.partida) ? 1 : -1) .map((detail) => { return ( + Habilitado={MasterData.estatus <= 1} onDataChange={function (IDMaster: number): void { + updateDataGrid(IDMaster) + } } /> ) })} diff --git a/src/Components/Clientes/Amazon/Reportes/Traffic/Linking/RptAmazonLinkInvoice2TrafficDetail.tsx b/src/Components/Clientes/Amazon/Reportes/Traffic/Linking/RptAmazonLinkInvoice2TrafficDetail.tsx index ec90f69..228de01 100644 --- a/src/Components/Clientes/Amazon/Reportes/Traffic/Linking/RptAmazonLinkInvoice2TrafficDetail.tsx +++ b/src/Components/Clientes/Amazon/Reportes/Traffic/Linking/RptAmazonLinkInvoice2TrafficDetail.tsx @@ -28,9 +28,10 @@ import DTO2096TraficoFieldsUpdate from '../../../DTO/DTO2096TraficoFieldsUpdate' import I2096Headers from '../../../Interfaces/I2096Header' export interface IRtpAmazonInvoiceTrafficDetailProps { - IDMaster: number - detail: I2096Detail - Habilitado: boolean + IDMaster: number, + detail: I2096Detail, + Habilitado: boolean, + onDataChange: (IDMaster: number) => void } export default function RtpAmazonInvoice2TrafficDetail( @@ -121,7 +122,9 @@ export default function RtpAmazonInvoice2TrafficDetail( itemQuantityUnitOfMeasure: UnitMeasure, weightValue: UnitOfMeasure, actualUnitCostMonetaryAmount: UnitCost, - totalUnitValueMonetaryAmount: (el.quantity * parseFloat(UnitCost)).toString() + totalUnitValueMonetaryAmount: ( + el.quantity * parseFloat(UnitCost) + ).toString() } } return el @@ -129,24 +132,6 @@ export default function RtpAmazonInvoice2TrafficDetail( UpdateInvoiceDetail(Invoice[0], newDetails) } - - /* const autoriceItem = (id: number) => { - if (CumplimientoNormativo.length === 0 && EstatusSwith) { - setHeader('Error') - setMsg( - 'Antes de poder guardar la informacion es necesario que proporcione el reparto normativo' - ) - setShowMsg(true) - return - } - const data: DTO2096ItemAutoriza = { - id: id, - autorizado: EstatusSwith, - cumplimientoNormativo: CumplimientoNormativo, - comentarios: Comentarios - } - } */ - const ToggleSightLine = (id: number) => { const data: DTO2096SightLine = { id: id, @@ -155,9 +140,8 @@ export default function RtpAmazonInvoice2TrafficDetail( } DSAmazon.SightLineSET(data) .then((response) => { - console.log(response.data) - //editArray(id, !props.detail.autorizado) setShowModal(false) + props.onDataChange(props.IDMaster) }) .catch((e: Error) => { setHeader('Error') @@ -167,12 +151,7 @@ export default function RtpAmazonInvoice2TrafficDetail( }) } - /* useEffect(() => { - if (UserChanged && EstatusSwith && !props.detail.fraccionGEMCO) - autoriceItem(props.detail.id) - }, [EstatusSwith, UserChanged]) */ - - const saveFields = () =>{ + const saveFields = () => { const data: DTO2096TraficoFieldsUpdate = { id: props.detail.id, UnitMeasure: UnitMeasure, @@ -180,27 +159,27 @@ export default function RtpAmazonInvoice2TrafficDetail( UnitCost: parseFloat(UnitCost) } DSAmazon.TrafficFieldsUpdate(data) - .then((response) => { - /* + .then((response) => { + /* itemQuantityUnitOfMeasure: UnitMeasure, weightValue: UnitOfMeasure, actualUnitCostMonetaryAmount: UnitCost */ - setUnitMeasure(response.data.itemQuantityUnitOfMeasure) - setUnitOfMeasure(response.data.weightValue) - setUnitCost(response.data.actualUnitCostMonetaryAmount) - editInvoice(props.detail.id) - setHeader('Informativo') - setMsg('La informacion se guardo exitosamente') - setShowMsg(true) - return - }) - .catch((e: Error) => { - setHeader('Error') - setMsg('Ocurrio un error') - setShowMsg(true) - return - }) + setUnitMeasure(response.data.itemQuantityUnitOfMeasure) + setUnitOfMeasure(response.data.weightValue) + setUnitCost(response.data.actualUnitCostMonetaryAmount) + editInvoice(props.detail.id) + setHeader('Informativo') + setMsg('La informacion se guardo exitosamente') + setShowMsg(true) + return + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error') + setShowMsg(true) + return + }) } useEffect(() => { @@ -213,11 +192,13 @@ export default function RtpAmazonInvoice2TrafficDetail( -   + {props.detail.partida} - No Parte: {ItemId}
- Fraccion GEMCO: {FraccionGEMCO}
- Descripcion GEMCO: {DescripcionGEMCO} + No Parte: {ItemId}{' '} +
+ + Fraccion GEMCO: + {' '} + {FraccionGEMCO}
+ + Descripcion GEMCO: + {' '} + {DescripcionGEMCO}
@@ -486,10 +474,10 @@ export default function RtpAmazonInvoice2TrafficDetail( /> - + Unit of Measure: - { const { value } = values setUnitOfMeasure(value) @@ -508,9 +496,8 @@ export default function RtpAmazonInvoice2TrafficDetail( }} /> - - + Unit Cost: - + +
@@ -552,7 +541,7 @@ export default function RtpAmazonInvoice2TrafficDetail( }} size={'sm'} dialogClassName={'modal-50w'} - > + >
diff --git a/src/Components/Clientes/Amazon/Services/Amazon.Services.ts b/src/Components/Clientes/Amazon/Services/Amazon.Services.ts index da94b34..bbfd89f 100644 --- a/src/Components/Clientes/Amazon/Services/Amazon.Services.ts +++ b/src/Components/Clientes/Amazon/Services/Amazon.Services.ts @@ -19,6 +19,7 @@ import DTO2096RELParteFactura from '../DTO/DTO2096RELParteFactura' import DTO2096RptPayedOperations from '../DTO/DTO2096RptPayedOperations' import DTO2096NoParteVerificacion from '../DTO/DTO2096NoParteVerificacion' import DTO2096InvoiceStatus from '../DTO/DTO2096InvoiceStatus' +import IFileManager from '../../../../Interfaces/Utils/IFileManager' class AmazonDataService { AmazonPendingClasificationInvoiceGET() { @@ -211,5 +212,8 @@ class AmazonDataService { SETInvoiceDetailRevalidateParts(id: number) { return http.get(`/AmazonInvoice/SETInvoiceDetailRevalidateParts?id=${id}`) } + ApplyAnswerFile2Invoice(Files: string[]) { + return http.post(`/AmazonInvoice/ApplyAnswerFile2Invoice`, Files) + } } export default new AmazonDataService() diff --git a/src/Components/Corresponsales/TraficoCorresponsales.tsx b/src/Components/Corresponsales/TraficoCorresponsales.tsx index eb6a34c..7ea8e49 100644 --- a/src/Components/Corresponsales/TraficoCorresponsales.tsx +++ b/src/Components/Corresponsales/TraficoCorresponsales.tsx @@ -104,6 +104,7 @@ import ICorresponsalCatMediosEmbarque from '../../Interfaces/Corresponsales/ICor import { CuentasComplementarias } from './CuentasComplementarias/CuentasComplementarias' import DTOTraficoCompleto from '../../DTO/Corresponsales/DTOTraficoCompleto' import DTORectificacionHistorico from '../../DTO/Corresponsales/DTORectificacionHistorico' +import IFileManager from '../../Interfaces/Utils/IFileManager' interface IProps { IDTrafico: number @@ -2789,8 +2790,8 @@ export default function TraficoCorresponsales (props:IProps) { Proceso={c.proceso} showPreview={3} canEdit={Depto === 'Corresponsalias'} - Leyenda={'Seleccione: ' + c.descripcion} - /> + Leyenda={'Seleccione: ' + c.descripcion} onAppendMFM={function (Files: IFileManager[]): void { + } } /> @@ -3244,8 +3245,8 @@ export default function TraficoCorresponsales (props:IProps) { Proceso={10} showPreview={1} canEdit={Depto === 'Corresponsalias'} - Leyenda={'Selecciones las imagenes de previo...'} - /> + Leyenda={'Selecciones las imagenes de previo...'} onAppendMFM={function (Files: IFileManager[]): void { + } }/> diff --git a/src/Components/Utils/MFileManager/MFileManager.tsx b/src/Components/Utils/MFileManager/MFileManager.tsx index 7013488..d87e054 100644 --- a/src/Components/Utils/MFileManager/MFileManager.tsx +++ b/src/Components/Utils/MFileManager/MFileManager.tsx @@ -12,7 +12,8 @@ interface IProps { Proceso: number Leyenda?: string showPreview: number - canEdit: boolean + canEdit: boolean, + onAppendMFM: (Files: IFileManager[]) => void } export const MFileManager: FC = (props) => { @@ -40,6 +41,7 @@ export const MFileManager: FC = (props) => { MFileManagerDS.Append(formData, IDTrafico, Proceso, UserId) .then((response) => { setListaArchivos(response.data) + props.onAppendMFM(response.data) }) .catch((e: Error) => { alert('Ocurrio un error: ' + e)