mirror of
https://github.com/R0m1k3/LogiFlow.git
synced 2026-10-23 23:18:18 +02:00
2 files changed
+20
-3
No files matched your search
Binary file not shown.
|
After Width: | Height: | Size: 11 KiB |
@@ -67,6 +67,7 @@ export default function BLReconciliation() {
|
|||||||
// État pour le système de vérification de facture
|
// État pour le système de vérification de facture
|
||||||
const [verificationResults, setVerificationResults] = useState<Record<number, any>>({});
|
const [verificationResults, setVerificationResults] = useState<Record<number, any>>({});
|
||||||
const [verifyingDeliveries, setVerifyingDeliveries] = useState<Set<number>>(new Set());
|
const [verifyingDeliveries, setVerifyingDeliveries] = useState<Set<number>>(new Set());
|
||||||
|
const [autoVerifiedDeliveries, setAutoVerifiedDeliveries] = useState<Set<number>>(new Set());
|
||||||
|
|
||||||
// État pour le modal de commentaire
|
// État pour le modal de commentaire
|
||||||
const [showCommentModal, setShowCommentModal] = useState(false);
|
const [showCommentModal, setShowCommentModal] = useState(false);
|
||||||
@@ -180,6 +181,7 @@ export default function BLReconciliation() {
|
|||||||
apiRequest(`/api/deliveries/${variables.deliveryId}`, "PUT", updateData)
|
apiRequest(`/api/deliveries/${variables.deliveryId}`, "PUT", updateData)
|
||||||
.then(() => {
|
.then(() => {
|
||||||
console.log('✅ Données sauvegardées avec succès');
|
console.log('✅ Données sauvegardées avec succès');
|
||||||
|
// Invalider les caches (pas de refetch pour éviter boucles)
|
||||||
queryClient.invalidateQueries({ queryKey: ['/api/deliveries/bl'] });
|
queryClient.invalidateQueries({ queryKey: ['/api/deliveries/bl'] });
|
||||||
queryClient.invalidateQueries({ queryKey: ['/api/deliveries'] });
|
queryClient.invalidateQueries({ queryKey: ['/api/deliveries'] });
|
||||||
})
|
})
|
||||||
@@ -361,10 +363,25 @@ export default function BLReconciliation() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
deliveriesWithBL.forEach((delivery: any) => {
|
deliveriesWithBL.forEach((delivery: any) => {
|
||||||
// ⛔ EXCLURE COMPLÈTEMENT les livraisons déjà réconciliées
|
// CAS SPÉCIAL : Livraisons réconciliées (✅) avec cellules vides
|
||||||
// Une fois validées avec coche verte, on ne contrôle plus JAMAIS
|
// Si reconciled=true ET (cellules vides) ET blNumber existe → auto-remplir
|
||||||
if (delivery.reconciled) {
|
if (delivery.reconciled) {
|
||||||
return; // Livraison déjà validée = AUCUNE vérification nécessaire
|
const hasEmptyCells = !delivery.invoiceReference || !delivery.invoiceAmount || !delivery.dueDate;
|
||||||
|
const hasBLNumber = delivery.blNumber?.trim();
|
||||||
|
const notAlreadyAutoVerified = !autoVerifiedDeliveries.has(delivery.id);
|
||||||
|
const notCurrentlyVerifying = !verifyingDeliveries.has(delivery.id);
|
||||||
|
|
||||||
|
if (hasEmptyCells && hasBLNumber && notAlreadyAutoVerified && notCurrentlyVerifying) {
|
||||||
|
// Livraison réconciliée avec cellules vides → vérifier pour auto-remplir (UNE SEULE FOIS)
|
||||||
|
if (import.meta.env.DEV) {
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
return; // Autres livraisons réconciliées = AUCUNE vérification nécessaire
|
||||||
}
|
}
|
||||||
|
|
||||||
// Vérifier seulement les livraisons NON validées
|
// Vérifier seulement les livraisons NON validées
|
||||||
|
|||||||
Reference in new issue
Block a user