mirror of
https://github.com/R0m1k3/LogiFlow.git
synced 2026-10-22 22:48:15 +02:00
Improve reconciliation process by skipping already validated deliveries
Update client-side logic in BLReconciliation to exclude deliveries with a 'reconciled' status from automatic verification. Modify server-side InvoiceVerificationService to implement permanent caching for reconciled invoices, preventing redundant checks. Replit-Commit-Author: Agent Replit-Commit-Session-Id: daf3525c-b971-454a-b0c0-7a9845e786cc Replit-Commit-Checkpoint-Type: full_checkpoint
This commit is contained in:
1 parent
aef303b709
commit
8dec1c46ba
2 files changed
+16
-10
No files matched your search
@@ -270,12 +270,13 @@ export default function BLReconciliation() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
deliveriesWithBL.forEach((delivery: any) => {
|
deliveriesWithBL.forEach((delivery: any) => {
|
||||||
// EXCLUURE les livraisons déjà réconciliées de la vérification automatique
|
// ⛔ EXCLURE COMPLÈTEMENT les livraisons déjà réconciliées
|
||||||
|
// Une fois validées avec coche verte, on ne contrôle plus JAMAIS
|
||||||
if (delivery.reconciled) {
|
if (delivery.reconciled) {
|
||||||
return; // Livraison déjà validée, pas besoin de vérifier
|
return; // Livraison déjà validée = AUCUNE vérification nécessaire
|
||||||
}
|
}
|
||||||
|
|
||||||
// Vérifier seulement si on a une référence de facture ou un BL et pas déjà de résultat
|
// Vérifier seulement les livraisons NON validées
|
||||||
const hasVerifiableData = delivery.invoiceReference || delivery.blNumber;
|
const hasVerifiableData = delivery.invoiceReference || delivery.blNumber;
|
||||||
const notAlreadyProcessed = !verificationResults[delivery.id] && !verifyingDeliveries.has(delivery.id);
|
const notAlreadyProcessed = !verificationResults[delivery.id] && !verifyingDeliveries.has(delivery.id);
|
||||||
|
|
||||||
@@ -283,14 +284,15 @@ export default function BLReconciliation() {
|
|||||||
if (import.meta.env.DEV) {
|
if (import.meta.env.DEV) {
|
||||||
console.log(`🔍 Vérification auto pour livraison NON réconciliée ${delivery.id}:`, {
|
console.log(`🔍 Vérification auto pour livraison NON réconciliée ${delivery.id}:`, {
|
||||||
invoiceRef: delivery.invoiceReference,
|
invoiceRef: delivery.invoiceReference,
|
||||||
blNumber: delivery.blNumber
|
blNumber: delivery.blNumber,
|
||||||
|
reconciled: delivery.reconciled
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Délai pour éviter de surcharger le serveur - le cache évitera les appels inutiles
|
// Délai pour éviter de surcharger le serveur
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
handleVerifyInvoice(delivery, false); // Pas de force refresh, utilise le cache
|
handleVerifyInvoice(delivery, false);
|
||||||
}, Math.random() * 1000); // Délai aléatoire entre 0 et 1 seconde
|
}, Math.random() * 1000);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}, [deliveriesWithBL, suppliers, verificationResults, verifyingDeliveries]);
|
}, [deliveriesWithBL, suppliers, verificationResults, verifyingDeliveries]);
|
||||||
|
|||||||
@@ -30,9 +30,13 @@ export class InvoiceVerificationService {
|
|||||||
currentTime: new Date().toISOString()
|
currentTime: new Date().toISOString()
|
||||||
});
|
});
|
||||||
|
|
||||||
// Cache permanent si facture validée (isReconciled = true)
|
// ✅ CACHE PERMANENT : Facture validée avec coche verte = JAMAIS re-vérifier
|
||||||
if (cached && cached.isReconciled) {
|
if (cached && cached.isReconciled && cached.exists) {
|
||||||
console.log('✅ [CACHE] Cache PERMANENT pour facture validée:', { invoiceReference, groupId, exists: cached.exists });
|
console.log('🛡️ [CACHE] PERMANENT - Facture validée avec coche verte, AUCUNE vérification:', {
|
||||||
|
invoiceReference,
|
||||||
|
groupId,
|
||||||
|
exists: cached.exists
|
||||||
|
});
|
||||||
return {
|
return {
|
||||||
exists: cached.exists,
|
exists: cached.exists,
|
||||||
matchType: cached.matchType,
|
matchType: cached.matchType,
|
||||||
|
|||||||
Reference in new issue
Block a user