8Jun 2023 Ya hace la peticion pero no funciona de la manera correcta

master
Luis Angel Rendon Arrazola 1 year ago
parent 344be46504
commit 393d1cb8ed
  1. 67
      src/Componentes/AmazonInvoice.tsx

@ -1,12 +1,14 @@
import React, { useState, useEffect } from 'react'; import React, { useState, useEffect } from 'react';
import axios from 'axios'; import axios from 'axios';
import { Invoice } from '../Interfaces/Invoice'; import { Invoice, InvoiceDetail } from '../Interfaces/Invoice';
import '../HojasDeEstilo/AmazonInovice.css' import '../HojasDeEstilo/AmazonInovice.css';
const AmazonInvoice: React.FC = () => { const AmazonInvoice: React.FC = () => {
const [invoices, setInvoices] = useState<Invoice[]>([]); const [invoices, setInvoices] = useState<Invoice[]>([]);
const [currentPage, setCurrentPage] = useState(1); const [currentPage, setCurrentPage] = useState(1);
const [itemsPerPage] = useState(20); const [itemsPerPage] = useState(20);
const [selectedInvoiceId, setSelectedInvoiceId] = useState<number | null>(null);
const [invoiceDetails, setInvoiceDetails] = useState<InvoiceDetail[]>([]);
useEffect(() => { useEffect(() => {
axios axios
@ -24,7 +26,34 @@ const AmazonInvoice: React.FC = () => {
const indexOfFirstItem = indexOfLastItem - itemsPerPage; const indexOfFirstItem = indexOfLastItem - itemsPerPage;
const currentInvoices = invoices.slice(indexOfFirstItem, indexOfLastItem); 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<InvoiceDetail[]>(`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 ( return (
<div className="container"> <div className="container">
@ -43,7 +72,8 @@ const AmazonInvoice: React.FC = () => {
</thead> </thead>
<tbody> <tbody>
{currentInvoices.map((invoice: Invoice) => ( {currentInvoices.map((invoice: Invoice) => (
<tr key={invoice.id}> <React.Fragment key={invoice.id}>
<tr onClick={() => handleInvoiceClick(invoice.id)}>
<td>{invoice.id}</td> <td>{invoice.id}</td>
<td>{invoice.referencia}</td> <td>{invoice.referencia}</td>
<td>{invoice.commercialInvoiceDate}</td> <td>{invoice.commercialInvoiceDate}</td>
@ -52,6 +82,35 @@ const AmazonInvoice: React.FC = () => {
<td>{invoice.estatus}</td> <td>{invoice.estatus}</td>
<td>{invoice.trailerId || 'N/A'}</td> <td>{invoice.trailerId || 'N/A'}</td>
</tr> </tr>
{selectedInvoiceId === invoice.id && (
<tr>
<td colSpan={7}>
<table className="subtable">
<thead>
<tr>
<th>IdHeader</th>
<th>Invoice Number</th>
<th>Amazon Shipment Reference ID</th>
<th>Item ID</th>
<th>FCreacion</th>
</tr>
</thead>
<tbody>
{invoiceDetails.map((detail: InvoiceDetail) => (
<tr key={detail.idHeader}>
<td>{detail.idHeader}</td>
<td>{detail.invoiceNumber}</td>
<td>{detail.amazonShipmentReferenceId}</td>
<td>{detail.itemId}</td>
<td>{detail.fCreacion}</td>
</tr>
))}
</tbody>
</table>
</td>
</tr>
)}
</React.Fragment>
))} ))}
</tbody> </tbody>
</table> </table>

Loading…
Cancel
Save