diff --git a/client/src/pages/InvoicesBAP.tsx b/client/src/pages/InvoicesBAP.tsx
index a8f1abd..d80c0af 100644
--- a/client/src/pages/InvoicesBAP.tsx
+++ b/client/src/pages/InvoicesBAP.tsx
@@ -32,6 +32,7 @@ import {
TableRow,
} from "@/components/ui/table";
import { trpc } from "@/lib/trpc";
+import { BAP_MIN_QUALITY_SCORE, meetsBapQualityThreshold } from "@shared/bapEligibility";
import { Search, FileText, Download, FileSpreadsheet, Trash2, Edit, Trash, CheckCircle, CheckCircle2, ShieldCheck, RefreshCw, FolderDown, ChevronDown, ChevronRight, ChevronsUpDown, CalendarDays, ArrowUpDown, ArrowUp, ArrowDown } from "lucide-react";
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select";
@@ -394,7 +395,7 @@ export default function InvoicesBAP() {
// Déclarée ici (avant filteredInvoices et statusCounts) pour éviter le hoisting error
const isEligibleForBAPValidation = (invoice: any) => {
return (
- (invoice.qualityScore || 0) === 100 &&
+ meetsBapQualityThreshold(invoice.qualityScore) &&
invoice.exportStatus !== "exported" &&
invoice.isSubscription === 0 &&
invoice.serviceConcerne &&
@@ -526,19 +527,19 @@ export default function InvoicesBAP() {
const getQualityBadge = (score: number | null) => {
if (score === null) return -;
- if (score === 100) return {score}%;
+ if (meetsBapQualityThreshold(score)) return {score}%;
if (score >= 80) return {score}%;
return {score}%;
};
const isEligibleForExport = (invoice: any) => {
// Une facture BAP est exportable si :
- // 1. Score = 100%
+ // 1. Score >= 90 % (seuil BAP)
// 2. Type d'achat rempli
// 3. Service concerné rempli
// 4. Ventilation comptable remplie
return (
- (invoice.qualityScore || 0) === 100 &&
+ meetsBapQualityThreshold(invoice.qualityScore) &&
invoice.typeAchat &&
invoice.serviceConcerne &&
invoice.ventilationComptable
@@ -549,7 +550,7 @@ export default function InvoicesBAP() {
const getBAPValidationTooltip = (invoice: any): string => {
const reasons: string[] = [];
- if ((invoice.qualityScore || 0) < 100) reasons.push("Score < 100%");
+ if (!meetsBapQualityThreshold(invoice.qualityScore)) reasons.push(`Score < ${BAP_MIN_QUALITY_SCORE}%`);
if (invoice.exportStatus === "exported") reasons.push("Déjà exportée");
if (invoice.isSubscription !== 0) reasons.push("Marquée comme abonnement");
if (!invoice.serviceConcerne) reasons.push("Service manquant");
@@ -655,7 +656,7 @@ export default function InvoicesBAP() {