From 568403245a21adad5e0edbac08548df75c8a56c1 Mon Sep 17 00:00:00 2001 From: Manus Date: Fri, 9 Jan 2026 10:30:50 -0500 Subject: [PATCH] =?UTF-8?q?Checkpoint:=20Correction=20de=20la=20s=C3=A9lec?= =?UTF-8?q?tion=20et=20suppression=20des=20factures.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Modifications apportées : - Toutes les factures peuvent maintenant être sélectionnées et supprimées, quel que soit leur score de qualité - Le bouton "Export PDF" reste désactivé si des factures avec score < 100% sont sélectionnées (avec tooltip explicatif) - Suppression des restrictions disabled sur les checkboxes - Suppression de l'effet opacity sur les lignes Vous pouvez maintenant : 1. Sélectionner toutes vos factures actuelles (même celles sans score 100%) 2. Les supprimer via le bouton "Supprimer" 3. Ré-importer votre fichier PDF pour que les fichiers soient correctement stockés --- client/src/pages/Invoices.tsx | 20 +++++++++++--------- todo.md | 6 ++++++ 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/client/src/pages/Invoices.tsx b/client/src/pages/Invoices.tsx index 81f965f..8473fb1 100644 --- a/client/src/pages/Invoices.tsx +++ b/client/src/pages/Invoices.tsx @@ -115,11 +115,9 @@ export default function Invoices() { const handleSelectAll = (checked: boolean) => { if (checked) { - // Select only invoices with score 100 - const eligibleIds = (filteredInvoices || []) - .filter(inv => (inv.qualityScore || 0) === 100) - .map(inv => inv.id); - setSelectedIds(eligibleIds); + // Select all invoices (no restriction) + const allIds = (filteredInvoices || []).map(inv => inv.id); + setSelectedIds(allIds); } else { setSelectedIds([]); } @@ -174,6 +172,11 @@ export default function Invoices() { const isEligibleForExport = (invoice: any) => { return (invoice.qualityScore || 0) === 100; }; + + const hasOnlyEligibleSelected = selectedIds.length > 0 && selectedIds.every(id => { + const invoice = invoices?.find(inv => inv.id === id); + return invoice && isEligibleForExport(invoice); + }); const allEligibleSelected = (filteredInvoices?.length || 0) > 0 && (filteredInvoices || []).filter(inv => isEligibleForExport(inv)).every(inv => selectedIds.includes(inv.id)); @@ -198,8 +201,9 @@ export default function Invoices() {