From 6bad72147cccfb7231e12c1228f0cf4262cec38d Mon Sep 17 00:00:00 2001 From: alfonso Date: Tue, 11 Jul 2023 17:17:10 -0500 Subject: [PATCH] Se incluye subproceso que sirve para consultar traficos a Amazon y generar un excel para su envio --- .../Amazon/DTO/DTO2096DataTraficoConsulta.ts | 7 + .../DTO/DTO2096TraficoConsultaAmazonDetail.ts | 24 ++ .../DTO/DTO2096TraficoConsultaAmazonHeader.ts | 20 ++ .../Interfaces/I2096CatGrupoRegulatorio.ts | 4 + .../ConsultaTrafico/RptConsultaTrafico.tsx | 198 +++++------ .../RptConsultaTraficoDetalle.tsx | 307 ++++-------------- .../Amazon/Services/Amazon.Services.ts | 26 ++ src/Components/Dashboard/DashboardTrafico.tsx | 4 +- .../Clientes/2096/AmazonTraficoConsulta.ts | 50 +++ src/store/store.ts | 4 +- 10 files changed, 285 insertions(+), 359 deletions(-) create mode 100644 src/Components/Clientes/Amazon/DTO/DTO2096DataTraficoConsulta.ts create mode 100644 src/Components/Clientes/Amazon/DTO/DTO2096TraficoConsultaAmazonDetail.ts create mode 100644 src/Components/Clientes/Amazon/DTO/DTO2096TraficoConsultaAmazonHeader.ts create mode 100644 src/Components/Clientes/Amazon/Interfaces/I2096CatGrupoRegulatorio.ts create mode 100644 src/store/features/Clientes/2096/AmazonTraficoConsulta.ts diff --git a/src/Components/Clientes/Amazon/DTO/DTO2096DataTraficoConsulta.ts b/src/Components/Clientes/Amazon/DTO/DTO2096DataTraficoConsulta.ts new file mode 100644 index 0000000..88b5598 --- /dev/null +++ b/src/Components/Clientes/Amazon/DTO/DTO2096DataTraficoConsulta.ts @@ -0,0 +1,7 @@ +export default interface DTODataTraficoConsulta { + id: number, + swConsulta: boolean, + grupoRegulatorio: number, + regulacionConsulta: string, + comentariosConsulta: string +} \ No newline at end of file diff --git a/src/Components/Clientes/Amazon/DTO/DTO2096TraficoConsultaAmazonDetail.ts b/src/Components/Clientes/Amazon/DTO/DTO2096TraficoConsultaAmazonDetail.ts new file mode 100644 index 0000000..07eb3e3 --- /dev/null +++ b/src/Components/Clientes/Amazon/DTO/DTO2096TraficoConsultaAmazonDetail.ts @@ -0,0 +1,24 @@ +export default interface DTO2096TraficoConsultaAmazonDetail { + id: number + idHeader: number, + amazonShipmentReferenceId: string + partida: number + itemId: string + itemDescription: string + fraccionGEMCO: string + descripcionGEMCO: string + countryOfOrigin: string + productGroup: string + brand: string + model: string + itemQuantityUnitOfMeasure: string + quantity: number + weightValue: string + netWeightUnitOfMeasure: string + actualUnitCostMonetaryAmount: string + totalUnitValueMonetaryAmount: string + swConsulta: boolean + grupoRegulatorio: number, + regulacionConsulta: string + comentariosConsulta: string +} diff --git a/src/Components/Clientes/Amazon/DTO/DTO2096TraficoConsultaAmazonHeader.ts b/src/Components/Clientes/Amazon/DTO/DTO2096TraficoConsultaAmazonHeader.ts new file mode 100644 index 0000000..47cfcd5 --- /dev/null +++ b/src/Components/Clientes/Amazon/DTO/DTO2096TraficoConsultaAmazonHeader.ts @@ -0,0 +1,20 @@ +import DTO2096TraficoConsultaAmazonDetail from "./DTO2096TraficoConsultaAmazonDetail"; + +export default interface DTO2096TraficoConsultaAmazonHeader { + id: number, + referencia: string, + commercialInvoiceDate: string, + invoiceNumber: string, + incoterms: string, + hawb: string, + totalInvoiceQuantityUnitOfMeasure: string, + totalInvoiceQuantity: number, + totalInvoiceWeightUnitOfMeasure: string, + totalInvoiceWeight: string, + totalInvoiceValueChargeOrAllowance: string, + totalInvoiceValueCurrencyISOCode: string, + totalInvoiceValueMonetaryAmount: string, + name: string, + max: boolean, + detail: DTO2096TraficoConsultaAmazonDetail[] +} \ No newline at end of file diff --git a/src/Components/Clientes/Amazon/Interfaces/I2096CatGrupoRegulatorio.ts b/src/Components/Clientes/Amazon/Interfaces/I2096CatGrupoRegulatorio.ts new file mode 100644 index 0000000..1d8df9c --- /dev/null +++ b/src/Components/Clientes/Amazon/Interfaces/I2096CatGrupoRegulatorio.ts @@ -0,0 +1,4 @@ +export default interface I2096CatGrupoRegulatorio { + id: number, + descripcion: string +} \ No newline at end of file diff --git a/src/Components/Clientes/Amazon/Reportes/ConsultaTrafico/RptConsultaTrafico.tsx b/src/Components/Clientes/Amazon/Reportes/ConsultaTrafico/RptConsultaTrafico.tsx index b5dbb8a..27a49ed 100644 --- a/src/Components/Clientes/Amazon/Reportes/ConsultaTrafico/RptConsultaTrafico.tsx +++ b/src/Components/Clientes/Amazon/Reportes/ConsultaTrafico/RptConsultaTrafico.tsx @@ -12,30 +12,31 @@ import { import { IconContext } from 'react-icons' import { BsChevronDown, BsChevronRight, BsFilePdfFill } from 'react-icons/bs' import { FaAmazon } from 'react-icons/fa' -import I2096Headers from '../../Interfaces/I2096Header' import DSAmazon from '../../Services/Amazon.Services' import { MsgInformativo } from '../../../../Utils/Toast/msgInformativo' import { RootState } from '../../../../../store/store' -import { - initializeInvoice, - populateInvoices, - updateInvoice -} from '../../../../../store/features/Clientes/2096/AmazonInvoices' // Redux import { useDispatch, useSelector } from 'react-redux' -import DTO2096LinkInvoice2Reference from '../../DTO/DTO2096LinkInvoice2Reference' import { AiFillFileExcel } from 'react-icons/ai' import RptConsultaTraficoDetalle from './RptConsultaTraficoDetalle' import loadingImg from '../../../../../images/ajaxloader.gif' import * as XLSX from 'xlsx' +import DTO2096TraficoConsultaAmazonHeader from '../../DTO/DTO2096TraficoConsultaAmazonHeader' +import { + initializeTraficoConsulta, + populateTraficoConsulta, + updateTraficoConsulta +} from '../../../../../store/features/Clientes/2096/AmazonTraficoConsulta' +import {SiMicrosoftexcel} from 'react-icons/si' +import I2096CatGrupoRegulatorio from '../../Interfaces/I2096CatGrupoRegulatorio' export interface IRptConsultaTraficoProps {} export default function RptConsultaTrafico(props: IRptConsultaTraficoProps) { const dispatch = useDispatch() const mInvoices = useSelector( - (state: RootState) => state.AmazonInvoices.Invoice + (state: RootState) => state.AmazonTraficoConsulta.Consulta ) const [header, setHeader] = useState('') const [Referencia, setReferencia] = useState('') @@ -46,35 +47,79 @@ export default function RptConsultaTrafico(props: IRptConsultaTraficoProps) { const [WaitingMessage, setWaitingMessage] = useState('') const [msg, setMsg] = useState('') const [Invoices, setInvoices] = useState([]) + const [Data, setData] = useState([]) + const [CatGrupoRegulario, setCatGrupoRegulatorio] = useState([]) const msgColor = 'primary' const loadReport = () => { - DSAmazon.AmazonLinkInvoice2TrafficGet() + DSAmazon.TransporteConsultaAmazon() + .then((response) => { + dispatch(initializeTraficoConsulta([])) + dispatch(populateTraficoConsulta(response.data)) + }) + .catch((e: Error) => { + alert('Ocurrio un error' + e.message.toString()) + }) + } + + const loadCatalogos = () => { + DSAmazon.CatGrupoRegulatorioGET() .then((response) => { - dispatch(initializeInvoice([])) - dispatch(populateInvoices(response.data)) + setCatGrupoRegulatorio(response.data) + console.log(response.data) }) .catch((e: Error) => { alert('Ocurrio un error' + e.message.toString()) }) } + const downloadExcel = (id: number) => { + DSAmazon.TraficoConsultasAmazonGenerateExcel(id) + .then((response: any) => { + if (response.status === 200) { + const url = window.URL.createObjectURL(new Blob([response.data])) + const link = document.createElement('a') + link.href = url + link.setAttribute('download', 'Broker File 2023.xls') + document.body.appendChild(link) + link.click() + } + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error') + setShowMsg(true) + return + }) + } + useEffect(() => { + loadCatalogos() loadReport() }, []) -/* const check4Updates = (IDInvoice: number) => { - DSAmazon.SETInvoiceDetailRevalidateParts(IDInvoice) + const changeToggle = (row: DTO2096TraficoConsultaAmazonHeader) => { + let Invoice: DTO2096TraficoConsultaAmazonHeader[] = mInvoices.filter( + (item) => item.id === row.id + ) + const Obj = { ...Invoice[0] } + Obj.max = !Obj.max + dispatch(updateTraficoConsulta(Obj)) + } + + const check4Updates = (IDInvoice: number) => { + DSAmazon.TraficoConsultasAmazonById(IDInvoice) .then((response) => { - DSAmazon.AmazonInvoiceGET(IDInvoice) + DSAmazon.TraficoConsultasAmazonById(IDInvoice) .then((response) => { - dispatch(updateInvoice(response.data[0])) - let Invoice: I2096Headers[] = response.data.filter( + dispatch(updateTraficoConsulta(response.data)) + console.log(response.data) + /* let Invoice: DTO2096TraficoConsultaAmazonHeader[] = response.data.filter( (item) => item.id === IDInvoice ) const Obj = { ...Invoice[0] } Obj.max = !Obj.max - dispatch(updateInvoice(Obj)) + dispatch(updateTraficoConsulta(Obj)) */ }) .catch((e: Error) => { setHeader('Error') @@ -87,28 +132,19 @@ export default function RptConsultaTrafico(props: IRptConsultaTraficoProps) { 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( + /* let Invoice: DTO2096TraficoConsultaAmazonHeader[] = mInvoices.filter( (item) => item.id === IDInvoice ) const Obj = { ...Invoice[0] } Obj.max = !Obj.max - dispatch(updateInvoice(Obj)) - // if (Obj.max) check4Updates(IDInvoice) + dispatch(updateTraficoConsulta(Obj)) + if (Obj.max) */ check4Updates(IDInvoice) } - const toggleInvoice = (id: number) => { + /* const toggleInvoice = (id: number) => { if (!Invoices.includes(id)) { Invoices.push(id) } else { @@ -118,7 +154,7 @@ export default function RptConsultaTrafico(props: IRptConsultaTraficoProps) { }) ) } - } + }*/ function getReceiver(Cadena: string, char1: string[1], char2: string[1]) { return Cadena.slice(Cadena.indexOf(char1) + 1, Cadena.lastIndexOf(char2)) @@ -145,7 +181,7 @@ export default function RptConsultaTrafico(props: IRptConsultaTraficoProps) { - +
@@ -154,8 +190,8 @@ export default function RptConsultaTrafico(props: IRptConsultaTraficoProps) { id - {/*[...] - PDF + + {/*PDF Facturas Partidas */} Referencia @@ -214,70 +250,13 @@ export default function RptConsultaTrafico(props: IRptConsultaTraficoProps) { )} {MasterData.id} - {/* - toggleInvoice(MasterData.id)} - /> - - -
{ - downloadPDF( - MasterData.id, - MasterData.invoiceNumber - ) - }} - > - - - -
- - -
{ - downloadExcelInvoices(MasterData.referencia) - }} + {downloadExcel(MasterData.id)}}> + - - - -
+ + - -
{ - downloadExcelPartidas(MasterData.referencia) - }} - > - - - -
- */} {MasterData.referencia} @@ -504,29 +483,8 @@ export default function RptConsultaTrafico(props: IRptConsultaTraficoProps) { color: '#346288' }} > - Consulta + Consulta -{/* - - */} @@ -548,8 +506,10 @@ export default function RptConsultaTrafico(props: IRptConsultaTraficoProps) { IDMaster={MasterData.id} detail={detail} Habilitado={ - MasterData.estatus <= 1 + /* MasterData.estatus <= 1 */ + 1 == 1 } + Catalogo = {CatGrupoRegulario ? CatGrupoRegulario : []} onDataChange={function ( IDMaster: number ): void { diff --git a/src/Components/Clientes/Amazon/Reportes/ConsultaTrafico/RptConsultaTraficoDetalle.tsx b/src/Components/Clientes/Amazon/Reportes/ConsultaTrafico/RptConsultaTraficoDetalle.tsx index 07bc25c..f2dea64 100644 --- a/src/Components/Clientes/Amazon/Reportes/ConsultaTrafico/RptConsultaTraficoDetalle.tsx +++ b/src/Components/Clientes/Amazon/Reportes/ConsultaTrafico/RptConsultaTraficoDetalle.tsx @@ -12,131 +12,58 @@ import { Row, Tooltip } from 'react-bootstrap' -import { IconContext } from 'react-icons' import { MsgInformativo } from '../../../../Utils/Toast/msgInformativo' -import I2096Detail from '../../Interfaces/I2096Detail' import DSAmazon from '../../Services/Amazon.Services' // Redux import { RootState } from '../../../../../store/store' import { useDispatch, useSelector } from 'react-redux' import * as CurrencyFormat from 'react-currency-format' -import { AiOutlineFileSearch, AiTwotoneEdit } from 'react-icons/ai' -import { BsFillChatRightTextFill, BsFillPencilFill } from 'react-icons/bs' -import DTO2096SightLine from '../../DTO/DTO2096SightLine' -import { updateInvoice } from '../../../../../store/features/Clientes/2096/AmazonInvoices' -import DTO2096TraficoFieldsUpdate from '../../DTO/DTO2096TraficoFieldsUpdate' -import I2096Headers from '../../Interfaces/I2096Header' +import DTO2096TraficoConsultaAmazonDetail from '../../DTO/DTO2096TraficoConsultaAmazonDetail' +import DTODataTraficoConsulta from '../../DTO/DTO2096DataTraficoConsulta' +import I2096CatGrupoRegulatorio from '../../Interfaces/I2096CatGrupoRegulatorio' export interface IRptConsultaTraficoDetalleProps { - IDMaster: number, - detail: I2096Detail, - Habilitado: boolean, + IDMaster: number + detail: DTO2096TraficoConsultaAmazonDetail + Habilitado: boolean + Catalogo: I2096CatGrupoRegulatorio[] onDataChange: (IDMaster: number) => void } -export default function RptConsultaTraficoDetalle (props: IRptConsultaTraficoDetalleProps) { +export default function RptConsultaTraficoDetalle( + props: IRptConsultaTraficoDetalleProps +) { const dispatch = useDispatch() const mInvoices = useSelector( (state: RootState) => state.AmazonInvoices.Invoice ) const [ShowModal, setShowModal] = useState(false) - const [EstatusSwith, setEstatusSwitch] = useState(props.detail.sightLine) + const [EstatusSwith, setEstatusSwitch] = useState(props.detail.swConsulta) const [UserChanged, setUserChanged] = useState(false) const [header, setHeader] = useState('') const [show, setShowMsg] = useState(false) - //const [Show, setShow] = useState(false) const [msg, setMsg] = useState('') - const [CumplimientoNormativo, setCumplimientoNormativo] = useState( - props.detail.cumplimientoNormativo ? props.detail.cumplimientoNormativo : '' + const [RegulacionConsulta, setRegulacionConsulta] = useState( + props.detail.regulacionConsulta ? props.detail.regulacionConsulta : '' ) - const [Comentarios, setComentarios] = useState( - props.detail.comentariosSightLine - ? props.detail.comentariosSightLine - : '' + const [ComentariosConsulta, setComentariosConsulta] = useState( + props.detail.comentariosConsulta ? props.detail.comentariosConsulta : '' ) const [ShowModalEdit, setShowModalEdit] = useState(false) - const [UnitMeasure, setUnitMeasure] = useState('') - const [UnitOfMeasure, setUnitOfMeasure] = useState('') - const [UnitCost, setUnitCost] = useState('') - const [Quantity, setQuantity] = useState(0) - const [ItemId, setItemId] = useState('') - const [ItemDescription, setItemDescription] = useState('') - const [FraccionGEMCO, setFraccionGEMCO] = useState('') - const [DescripcionGEMCO, setDescripcionGEMCO] = useState('') + const [IDGrupoRegulatorio, setIDGrupoRegulatorio] = useState( + props.detail.grupoRegulatorio + ) const msgColor = 'primary' - const openLink = (item: string) => { - window.open('https://www.amazon.com/dp/' + item) - } - const UpdateInvoiceDetail = ( - Invoice: I2096Headers, - Detail: I2096Detail[] - ) => { - const updatedInvoice: I2096Headers = { - id: props.IDMaster, - referencia: Invoice.referencia, - commercialInvoiceDate: Invoice.commercialInvoiceDate, - invoiceNumber: Invoice.invoiceNumber, - name: Invoice.name, - trailerNumber: Invoice.trailerNumber, - trailerId: Invoice.trailerId, - porOfLoading: Invoice.porOfLoading, - portOfEntry: Invoice.portOfEntry, - paymentsTerms: Invoice.paymentsTerms, - incoterms: Invoice.incoterms, - hawb: Invoice.hawb, - totalInvoiceQuantityUnitOfMeasure: - Invoice.totalInvoiceQuantityUnitOfMeasure, - totalInvoiceQuantity: Invoice.totalInvoiceQuantity, - totalInvoiceWeightUnitOfMeasure: Invoice.totalInvoiceWeightUnitOfMeasure, - totalInvoiceWeight: Invoice.totalInvoiceWeight, - totalInvoiceValueChargeOrAllowance: - Invoice.totalInvoiceValueChargeOrAllowance, - totalInvoiceValueCurrencyISOCode: - Invoice.totalInvoiceValueCurrencyISOCode, - totalInvoiceValueMonetaryAmount: Invoice.totalInvoiceValueMonetaryAmount, - footNote: Invoice.footNote, - archivo: Invoice.archivo, - fCreacion: Invoice.fCreacion, - clasificador: Invoice.clasificador, - noVuelta: Invoice.noVuelta, - estatus: Invoice.estatus, - max: true, - urgente: Invoice.urgente, - detail: Detail - } - dispatch(updateInvoice(updatedInvoice)) - } - const editInvoice = (id: number) => { - const Invoice = mInvoices - .filter((el) => el.id === props.IDMaster) - .map((el) => { - return el - }) - const newDetails = Invoice[0].detail.map((el) => { - if (el.id === id) { - return { - ...el, - itemQuantityUnitOfMeasure: UnitMeasure, - weightValue: UnitOfMeasure, - actualUnitCostMonetaryAmount: UnitCost, - totalUnitValueMonetaryAmount: ( - el.quantity * parseFloat(UnitCost) - ).toString() - } - } - return el - }) - UpdateInvoiceDetail(Invoice[0], newDetails) - } - - const ToggleSightLine = (id: number) => { - const data: DTO2096SightLine = { - id: id, - sightLine: EstatusSwith, - comentariosSightLine: Comentarios + const saveData = () => { + const data: DTODataTraficoConsulta = { + id: props.detail.id, + swConsulta: EstatusSwith, + grupoRegulatorio: IDGrupoRegulatorio, + regulacionConsulta: RegulacionConsulta, + comentariosConsulta: ComentariosConsulta } - DSAmazon.SightLineSET(data) + DSAmazon.DataTraficoConsultaSET(data) .then((response) => { setShowModal(false) props.onDataChange(props.IDMaster) @@ -149,34 +76,10 @@ export default function RptConsultaTraficoDetalle (props: IRptConsultaTraficoDet }) } - const saveFields = () => { - const data: DTO2096TraficoFieldsUpdate = { - id: props.detail.id, - UnitMeasure: UnitMeasure, - UnitOfMeasure: parseFloat(UnitOfMeasure), - UnitCost: parseFloat(UnitCost) - } - DSAmazon.TrafficFieldsUpdate(data) - .then((response) => { - 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(() => { - if (UserChanged) setShowModal(true) + if (UserChanged) { + setShowModal(true) + } }, [EstatusSwith, UserChanged]) return ( @@ -199,7 +102,6 @@ export default function RptConsultaTraficoDetalle (props: IRptConsultaTraficoDet cursor: 'pointer' }} className="DetailData" - onClick={() => openLink(props.detail.itemId)} > {props.detail.itemId} @@ -224,18 +126,9 @@ export default function RptConsultaTraficoDetalle (props: IRptConsultaTraficoDet displayType={'input'} style={{ fontSize: '17px', - backgroundColor: - props.detail.validaFraccionOriginal === 0 - ? '#FFFAF2 ' - : '#E5F7B6', - border: - props.detail.validaFraccionOriginal === 0 - ? '2px solid #F9A721' - : '2px solid green', - color: - props.detail.validaFraccionOriginal === 0 - ? '#5923F6' - : '#000000', + backgroundColor: '#E5F7B6', + border: '2px solid green', + color: '#000000', width: '135px', textAlign: 'right', borderRadius: '10px' @@ -352,7 +245,7 @@ export default function RptConsultaTraficoDetalle (props: IRptConsultaTraficoDet }} /> -{/* */} { - setShowModalEdit(false) + setShowModal(false) }} size={'sm'} dialogClassName={'modal-50w'} > + + Consulta Amazon {IDGrupoRegulatorio} +
- - - - No Parte: {ItemId}{' '} -
- - Fraccion GEMCO: - {' '} - {FraccionGEMCO}
- - Descripcion GEMCO: - {' '} - {DescripcionGEMCO} -
- -
- - Unit Measure: - + + Grupo Regulatorio + setUnitMeasure(e.target.value)} - /> - - - - Unit of Measure: - - { - const { value } = values - setUnitOfMeasure(value) + as="select" + defaultValue={IDGrupoRegulatorio} + onChange={(e) => { + setIDGrupoRegulatorio(parseInt(e.target.value)) }} - value={UnitOfMeasure} - displayType={'input'} - style={{ - fontSize: '18px', - backgroundColor: '#F1EEF9', - border: '2px solid #5923F6', - color: '#5923F6', - width: '120px', - textAlign: 'right', - borderRadius: '10px' - }} - /> + className="form-select form-select-sm" + > + + {props.Catalogo + ? props.Catalogo.map((c) => { + return + }) + : null} + +   - - Unit Cost: - - { - const { value } = values - setUnitCost(value) - }} - value={UnitCost} - displayType={'input'} - style={{ - fontSize: '18px', - backgroundColor: '#F1EEF9', - border: '2px solid #5923F6', - color: '#5923F6', - width: '120px', - textAlign: 'right', - borderRadius: '10px' - }} + + Regulacion + + setRegulacionConsulta(e.target.value)} /> - - - - +   -
-
-
- { - setShowModal(false) - }} - size={'sm'} - dialogClassName={'modal-50w'} - > - -
Comentarios - {' '} setComentarios(e.target.value)} + value={ComentariosConsulta.length ? ComentariosConsulta : ''} + onChange={(e) => setComentariosConsulta(e.target.value)} />   @@ -536,17 +369,17 @@ export default function RptConsultaTraficoDetalle (props: IRptConsultaTraficoDet setShowModal(false) }} > -   No   +   Cancelar   diff --git a/src/Components/Clientes/Amazon/Services/Amazon.Services.ts b/src/Components/Clientes/Amazon/Services/Amazon.Services.ts index 1d4c6e0..37423c3 100644 --- a/src/Components/Clientes/Amazon/Services/Amazon.Services.ts +++ b/src/Components/Clientes/Amazon/Services/Amazon.Services.ts @@ -21,6 +21,10 @@ import DTO2096NoParteVerificacion from '../DTO/DTO2096NoParteVerificacion' import DTO2096InvoiceStatus from '../DTO/DTO2096InvoiceStatus' import IFileManager from '../../../../Interfaces/Utils/IFileManager' import DTO2096RptFacturasPagadas from '../DTO/DTO2096RptFacturasPagadas' +import DTO2096TraficoConsultaAmazonDetail from '../DTO/DTO2096TraficoConsultaAmazonDetail' +import DTO2096TraficoConsultaAmazonHeader from '../DTO/DTO2096TraficoConsultaAmazonHeader' +import DTO2096DataTraficoConsulta from '../DTO/DTO2096DataTraficoConsulta' +import I2096CatGrupoRegulatorio from '../Interfaces/I2096CatGrupoRegulatorio' class AmazonDataService { AmazonPendingClasificationInvoiceGET() { @@ -112,6 +116,9 @@ class AmazonDataService { SightLineSET(data: DTO2096SightLine) { return http.put(`/AmazonInvoice/AmazonSightLineSET`, data) } + DataTraficoConsultaSET(data: DTO2096DataTraficoConsulta) { + return http.put(`/AmazonInvoice/DataTraficoConsultaSET`, data) + } PaisClavesGET() { return http.get(`/AmazonInvoice/PaisClavesGet`) @@ -181,6 +188,16 @@ class AmazonDataService { return error }) } + TraficoConsultasAmazonGenerateExcel(id: number) { + return http.get(`/AmazonInvoice/TraficoConsultaAmazonGenerateExcel?id=${id}`, {responseType: 'arraybuffer'}) + .then(function (response) { + return response + }) + .catch(function (error) { + console.log(error) + return error + }) + } CreateACKFile(referencia: string) { return http.get(`/AmazonInvoice/createACKFile?Referencia=`+referencia) } @@ -229,5 +246,14 @@ class AmazonDataService { ApplyAnswerFile2Invoice(Files: string[]) { return http.post(`/AmazonInvoice/ApplyAnswerFile2Invoice`, Files) } + TransporteConsultaAmazon() { + return http.get(`/AmazonInvoice/TraficoConsultasAmazon`) + } + CatGrupoRegulatorioGET() { + return http.get(`/AmazonInvoice/CatGrupoRegulatorioGET`) + } + TraficoConsultasAmazonById(id: number) { + return http.get(`/AmazonInvoice/TraficoConsultasAmazonById?id=${id}`) + } } export default new AmazonDataService() diff --git a/src/Components/Dashboard/DashboardTrafico.tsx b/src/Components/Dashboard/DashboardTrafico.tsx index 62bfcb1..687a47c 100644 --- a/src/Components/Dashboard/DashboardTrafico.tsx +++ b/src/Components/Dashboard/DashboardTrafico.tsx @@ -106,14 +106,14 @@ export default function DashboardTrafico(props: IDashboardTraficoProps) { - {/* + Consultas Amazon - */} + {/* ) => { + state.Consulta = action.payload + }, + populateTraficoConsulta: (state, action: PayloadAction) => { + action.payload.forEach((newItem) => { + var Existe = state.Consulta.find(function (onMemoryItem) { + return onMemoryItem.id === newItem.id + }) + if (!Existe) state.Consulta.push(newItem) + }) + }, + addTraficoConsulta: (state, action: PayloadAction) => { + var Existe = state.Consulta.find(function (item) { + return item.id === action.payload.id + }) + if (!Existe) state.Consulta.push(action.payload) + }, + updateTraficoConsulta: (state, action: PayloadAction) => { + const i = state.Consulta.findIndex( + (_element) => _element.id === action.payload.id + ) + if (i > -1) state.Consulta[i] = action.payload + else state.Consulta.push(action.payload) + }, + updateTraficoConsultaDetail: (state, action: PayloadAction) => { + const i = state.Consulta.findIndex( + (_element) => _element.id === action.payload.id + ) + if (i > -1) state.Consulta[i] = action.payload + else state.Consulta.push(action.payload) + }, + deleteTraficoConsulta: (state, action: PayloadAction) => { + const newArr = state.Consulta.filter((data) => data.id != action.payload) + state.Consulta = newArr + } + } +}) + +export const { initializeTraficoConsulta, addTraficoConsulta, populateTraficoConsulta, updateTraficoConsulta, deleteTraficoConsulta } = + AmazonTraficoConsultaSlice.actions +export default AmazonTraficoConsultaSlice.reducer diff --git a/src/store/store.ts b/src/store/store.ts index 33a094e..88fd07d 100644 --- a/src/store/store.ts +++ b/src/store/store.ts @@ -16,6 +16,7 @@ import Data1868FacturaDetalleSlice from './features/Clientes/1868/Data1868Factur import CorresponsalesCuentasComplementariasEstatusSlice from './features/Corresponsales/CorresponsalesCuentasComplementariasEstatusSlice' import AmazonInvoicesSlice from './features/Clientes/2096/AmazonInvoices' import AmazonNoPartesSlice from './features/Clientes/2096/AmazonNoPartes' +import AmazonTraficoConsultaSlice from './features/Clientes/2096/AmazonTraficoConsulta' export const store = configureStore({ @@ -36,7 +37,8 @@ export const store = configureStore({ Data1868FacturaDetalle: Data1868FacturaDetalleSlice, CCueCompEstatus : CorresponsalesCuentasComplementariasEstatusSlice, AmazonInvoices : AmazonInvoicesSlice, - AmazonNoPartes: AmazonNoPartesSlice + AmazonNoPartes: AmazonNoPartesSlice, + AmazonTraficoConsulta: AmazonTraficoConsultaSlice } })