Checkpoint: Bouton Télécharger toujours visible pour les factures en état Validé dans InvoicesBAP, même après rechargement. Le pdfUrl est récupéré depuis bapHistory via une nouvelle route tRPC getBapPdfUrls. Nommage uniforme Date - Fournisseur - N°Facture.pdf sur tous les points d'export.
This commit is contained in:
@@ -97,6 +97,14 @@ export default function InvoicesBAP() {
|
||||
const { data: allInvoices, isLoading } = trpc.invoices.list.useQuery();
|
||||
// Filter for BAP invoices only (Abonnement = NON, isSubscription = 0)
|
||||
const invoices = allInvoices?.filter(inv => inv.isSubscription === 0);
|
||||
// IDs des factures déjà validées BAP (pour charger leurs pdfUrl depuis bapHistory)
|
||||
const validatedInvoiceIds = (invoices || []).filter(inv => inv.bapValidated === 1).map(inv => inv.id);
|
||||
const { data: persistedBapPdfUrls } = trpc.invoices.getBapPdfUrls.useQuery(
|
||||
{ invoiceIds: validatedInvoiceIds },
|
||||
{ enabled: validatedInvoiceIds.length > 0 }
|
||||
);
|
||||
// Fusionner les pdfUrl persistés (depuis bapHistory) avec ceux en mémoire (validation en cours)
|
||||
const allBapPdfUrls = { ...(persistedBapPdfUrls || {}), ...bapPdfUrls };
|
||||
const { data: departments } = trpc.departments.getByUser.useQuery();
|
||||
const { data: allocations } = trpc.accountingAllocations.getByUser.useQuery();
|
||||
const utils = trpc.useUtils();
|
||||
@@ -779,13 +787,23 @@ export default function InvoicesBAP() {
|
||||
<CheckCircle2 className="h-4 w-4" />
|
||||
<span>Validé</span>
|
||||
</div>
|
||||
{bapPdfUrls[invoice.id] && (
|
||||
{allBapPdfUrls[invoice.id] ? (
|
||||
<Button
|
||||
size="sm"
|
||||
variant="outline"
|
||||
className="h-8 px-2 text-blue-600 border-blue-300 hover:bg-blue-50"
|
||||
title="Télécharger le PDF annoté BAP"
|
||||
onClick={() => downloadBapPdf(bapPdfUrls[invoice.id], invoice.supplierName || undefined, invoice.invoiceNumber, invoice.bapValidatedAt)}
|
||||
onClick={() => downloadBapPdf(allBapPdfUrls[invoice.id], invoice.supplierName || undefined, invoice.invoiceNumber, invoice.bapValidatedAt)}
|
||||
>
|
||||
<Download className="h-4 w-4" />
|
||||
</Button>
|
||||
) : (
|
||||
<Button
|
||||
size="sm"
|
||||
variant="outline"
|
||||
className="h-8 px-2 text-gray-400 border-gray-200 cursor-not-allowed"
|
||||
title="PDF non disponible"
|
||||
disabled
|
||||
>
|
||||
<Download className="h-4 w-4" />
|
||||
</Button>
|
||||
|
||||
Reference in New Issue
Block a user