From aebc607e8a21e0e6da2cb2d5f696f12d6e574e60 Mon Sep 17 00:00:00 2001 From: Manus Date: Thu, 30 Jul 2026 08:15:56 +0000 Subject: [PATCH] =?UTF-8?q?Checkpoint:=20Ajout=20de=20deux=20nouveaux=20fi?= =?UTF-8?q?ltres=20sur=20la=20page=20Factures=20:=20Abonnement=20(OUI/NON?= =?UTF-8?q?=20bas=C3=A9=20sur=20isSubscription)=20et=20Entit=C3=A9=20(SANT?= =?UTF-8?q?INOVA/ITINOVA=20bas=C3=A9=20sur=20ventilationComptable=20=3D=3D?= =?UTF-8?q?=3D=20'SANTINOVA').=20Filtrage=20c=C3=B4t=C3=A9=20client,=20auc?= =?UTF-8?q?une=20modification=20backend=20n=C3=A9cessaire.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/src/pages/Invoices.tsx | 41 ++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/client/src/pages/Invoices.tsx b/client/src/pages/Invoices.tsx index ad59a2c..055d0e6 100644 --- a/client/src/pages/Invoices.tsx +++ b/client/src/pages/Invoices.tsx @@ -52,6 +52,8 @@ export default function Invoices() { const [selectedIds, setSelectedIds] = useState([]); const [statusFilter, setStatusFilter] = useState("all"); const [recipientFilter, setRecipientFilter] = useState("all"); + const [subscriptionFilter, setSubscriptionFilter] = useState("all"); // all | yes | no + const [entityFilter, setEntityFilter] = useState("all"); // all | santinova | itinova const [deleteDialogOpen, setDeleteDialogOpen] = useState(false); const [invoiceToDelete, setInvoiceToDelete] = useState(null); const [addDialogOpen, setAddDialogOpen] = useState(false); @@ -236,7 +238,18 @@ export default function Invoices() { if ((inv as any).recipientName !== recipientFilter) return false; } } - + // Filter by subscription + if (subscriptionFilter !== "all") { + const isSub = (inv as any).isSubscription === 1 || (inv as any).isSubscription === true; + if (subscriptionFilter === "yes" && !isSub) return false; + if (subscriptionFilter === "no" && isSub) return false; + } + // Filter by entity (SANTINOVA = ventilationComptable === 'SANTINOVA', ITINOVA = autre) + if (entityFilter !== "all") { + const ventil = ((inv as any).ventilationComptable || "").toUpperCase(); + if (entityFilter === "santinova" && ventil !== "SANTINOVA") return false; + if (entityFilter === "itinova" && ventil === "SANTINOVA") return false; + } return true; }); @@ -420,6 +433,32 @@ export default function Invoices() { + {/* Filtre Abonnement */} +
+ +
+ {/* Filtre Entité */} +
+ +
{/* Mode compact/détail + Tri */}