From 393d1cb8edf61deb0aef46ebcd0a970c5d25f864 Mon Sep 17 00:00:00 2001 From: Luis Angel Rendon Arrazola Date: Thu, 8 Jun 2023 18:35:58 -0500 Subject: [PATCH] 8Jun 2023 Ya hace la peticion pero no funciona de la manera correcta --- src/Componentes/AmazonInvoice.tsx | 85 ++++++++++++++++++++++++++----- 1 file changed, 72 insertions(+), 13 deletions(-) diff --git a/src/Componentes/AmazonInvoice.tsx b/src/Componentes/AmazonInvoice.tsx index 3e1fbb1..eb86ec5 100644 --- a/src/Componentes/AmazonInvoice.tsx +++ b/src/Componentes/AmazonInvoice.tsx @@ -1,12 +1,14 @@ import React, { useState, useEffect } from 'react'; import axios from 'axios'; -import { Invoice } from '../Interfaces/Invoice'; -import '../HojasDeEstilo/AmazonInovice.css' +import { Invoice, InvoiceDetail } from '../Interfaces/Invoice'; +import '../HojasDeEstilo/AmazonInovice.css'; const AmazonInvoice: React.FC = () => { const [invoices, setInvoices] = useState([]); const [currentPage, setCurrentPage] = useState(1); const [itemsPerPage] = useState(20); + const [selectedInvoiceId, setSelectedInvoiceId] = useState(null); + const [invoiceDetails, setInvoiceDetails] = useState([]); useEffect(() => { axios @@ -24,7 +26,34 @@ const AmazonInvoice: React.FC = () => { const indexOfFirstItem = indexOfLastItem - itemsPerPage; const currentInvoices = invoices.slice(indexOfFirstItem, indexOfLastItem); - const paginate = (pageNumber: number) => setCurrentPage(pageNumber); + const paginate = (pageNumber: number) => { + setCurrentPage(pageNumber); + setSelectedInvoiceId(null); // Restablece el detalle de la factura seleccionada al cambiar de página + }; + + const handleInvoiceClick = (id: number) => { + if (id === selectedInvoiceId) { + setSelectedInvoiceId(null); + } else { + setSelectedInvoiceId(id); + axios + .get(`https://localhost:5051/api/AmazonInvoice/AmazonInvoicedetailid`, { + params: { + id: id + } + }) + .then((response) => { + const invoiceDetailData: InvoiceDetail[] = response.data; + console.log(invoiceDetailData); // Verificar los datos recibidos en la consola + setInvoiceDetails(invoiceDetailData); + }) + .catch((error) => { + console.log(error); + }); + } + }; + + return (
@@ -43,15 +72,45 @@ const AmazonInvoice: React.FC = () => { {currentInvoices.map((invoice: Invoice) => ( - - {invoice.id} - {invoice.referencia} - {invoice.commercialInvoiceDate} - {invoice.fCreacion} - {invoice.clasificador} - {invoice.estatus} - {invoice.trailerId || 'N/A'} - + + handleInvoiceClick(invoice.id)}> + {invoice.id} + {invoice.referencia} + {invoice.commercialInvoiceDate} + {invoice.fCreacion} + {invoice.clasificador} + {invoice.estatus} + {invoice.trailerId || 'N/A'} + + {selectedInvoiceId === invoice.id && ( + + + + + + + + + + + + + + {invoiceDetails.map((detail: InvoiceDetail) => ( + + + + + + + + ))} + +
IdHeaderInvoice NumberAmazon Shipment Reference IDItem IDFCreacion
{detail.idHeader}{detail.invoiceNumber}{detail.amazonShipmentReferenceId}{detail.itemId}{detail.fCreacion}
+ + + )} +
))} @@ -68,4 +127,4 @@ const AmazonInvoice: React.FC = () => { ); }; -export default AmazonInvoice; +export default AmazonInvoice; \ No newline at end of file