Merge pull request #510 from R0m1k3/1.1

Fix issue preventing delivery reconciliation status from displaying
This commit is contained in:
LogiFlow authored and GitHub committed 2025-11-04 14:47:58 +01:00
commit 31fa183ab4
2 files changed
+35 -15

No files matched your search

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

+35 -15
View File
@@ -386,22 +386,42 @@ export default function BLReconciliation() {
// CAS SPÉCIAL : Livraisons réconciliées (✅) avec cellules vides // CAS SPÉCIAL : Livraisons réconciliées (✅) avec cellules vides
// Si reconciled=true ET (cellules vides) ET blNumber existe → auto-remplir // Si reconciled=true ET (cellules vides) ET blNumber existe → auto-remplir
deliveriesWithBL.forEach((delivery: any) => { deliveriesWithBL.forEach((delivery: any) => {
if (!delivery.reconciled) return; // Ignorer les livraisons non réconciliées if (delivery.reconciled) {
const hasEmptyCells = !delivery.invoiceReference || !delivery.invoiceAmount || !delivery.dueDate;
const hasEmptyCells = !delivery.invoiceReference || !delivery.invoiceAmount || !delivery.dueDate; const hasBLNumber = delivery.blNumber?.trim();
const hasBLNumber = delivery.blNumber?.trim(); const notAlreadyAutoVerified = !autoVerifiedDeliveries.has(delivery.id);
const notAlreadyAutoVerified = !autoVerifiedDeliveries.has(delivery.id); const notCurrentlyVerifying = !verifyingDeliveries.has(delivery.id);
const notCurrentlyVerifying = !verifyingDeliveries.has(delivery.id);
if (hasEmptyCells && hasBLNumber && notAlreadyAutoVerified && notCurrentlyVerifying) {
if (hasEmptyCells && hasBLNumber && notAlreadyAutoVerified && notCurrentlyVerifying) { // Livraison réconciliée avec cellules vides → vérifier pour auto-remplir (UNE SEULE FOIS)
// Livraison réconciliée avec cellules vides → vérifier pour auto-remplir (UNE SEULE FOIS) if (import.meta.env.DEV) {
if (import.meta.env.DEV) { console.log(`🔄 Livraison réconciliée #${delivery.id} avec cellules vides, auto-vérification (première tentative)...`);
console.log(`🔄 Livraison réconciliée #${delivery.id} avec cellules vides, auto-vérification (première tentative)...`); }
// Marquer comme auto-vérifiée AVANT de lancer pour éviter les doublons
setAutoVerifiedDeliveries(prev => new Set(prev).add(delivery.id));
// Lancer la vérification sans délai
handleVerifyInvoice(delivery, false);
} }
// Marquer comme auto-vérifiée AVANT de lancer pour éviter les doublons return; // Autres livraisons réconciliées = AUCUNE vérification nécessaire
setAutoVerifiedDeliveries(prev => new Set(prev).add(delivery.id)); }
// Lancer la vérification sans délai
handleVerifyInvoice(delivery, false); // VÉRIFICATION AUTOMATIQUE pour afficher les coches (UNE SEULE FOIS au chargement)
// Vérifier seulement les livraisons NON réconciliées qui n'ont PAS encore été vérifiées
const hasVerifiableData = delivery.invoiceReference || delivery.blNumber;
const notAlreadyProcessed = !verificationResults[delivery.id] && !verifyingDeliveries.has(delivery.id);
if (hasVerifiableData && notAlreadyProcessed) {
if (import.meta.env.DEV) {
console.log(`🔍 Vérification initiale pour affichage coche ${delivery.id}:`, {
invoiceRef: delivery.invoiceReference,
blNumber: delivery.blNumber
});
}
// Délai pour éviter de surcharger le serveur
setTimeout(() => {
handleVerifyInvoice(delivery, false);
}, Math.random() * 1000);
} }
}); });
}, [deliveriesWithBL, suppliers, verificationResults, verifyingDeliveries]); }, [deliveriesWithBL, suppliers, verificationResults, verifyingDeliveries]);