diff --git a/client/src/pages/InvoicesBAP.tsx b/client/src/pages/InvoicesBAP.tsx
index e8fc37d..d5f719c 100644
--- a/client/src/pages/InvoicesBAP.tsx
+++ b/client/src/pages/InvoicesBAP.tsx
@@ -32,7 +32,7 @@ import {
TableRow,
} from "@/components/ui/table";
import { trpc } from "@/lib/trpc";
-import { Search, FileText, Download, FileSpreadsheet, Trash2, Edit, Trash, CheckCircle, CheckCircle2, ShieldCheck } from "lucide-react";
+import { Search, FileText, Download, FileSpreadsheet, Trash2, Edit, Trash, CheckCircle, CheckCircle2, ShieldCheck, RefreshCw } from "lucide-react";
// Helper : télécharge un PDF annoté BAP depuis son URL de stockage
// Nommage : AAAA-MM-JJ - Fournisseur - N°Facture.pdf
@@ -158,6 +158,21 @@ export default function InvoicesBAP() {
},
});
+ const reprocessMutation = trpc.invoices.reprocessSelected.useMutation({
+ onSuccess: (data) => {
+ if (data.errors > 0) {
+ toast.warning(`${data.processed} facture(s) retraitée(s), ${data.errors} erreur(s).`, { duration: 5000 });
+ } else {
+ toast.success(`${data.processed} facture(s) retraitée(s) avec succès !`, { duration: 4000 });
+ }
+ setSelectedIds([]);
+ utils.invoices.list.invalidate();
+ },
+ onError: (error) => {
+ toast.error(error.message || "Erreur lors du retraitement");
+ },
+ });
+
const validateBAPBulkMutation = trpc.invoices.validateBAPBulk.useMutation({
onSuccess: (data) => {
if (data.processed === 0) {
@@ -464,6 +479,23 @@ export default function InvoicesBAP() {
{validateBAPBulkMutation.isPending ? "Validation en cours..." : "Valider tout en BAP"}
+