Improve automatic reconciliation logic to include deliveries already reconciled

Fixes an issue where some deliveries were not appearing in automatic reconciliation due to an incorrect filter condition. The logic now correctly identifies automatically reconciled deliveries based on supplier settings or existing reconciled status, aligning with the user's report of auto-reconciliation showing zero when data exists.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: b163d4c0-de5e-4f4e-a9c0-aed4c7049718
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/1957c339-2757-4d1f-8e92-e9f71a1ce58e/b163d4c0-de5e-4f4e-a9c0-aed4c7049718/rzSRfN7
This commit is contained in:
michaelschal committed 2025-08-12 12:19:15 +00:00
1 parent 66c7fd3e46
commit b625077cae
1 file changed
+36 -2
+36 -2
View File
@@ -81,12 +81,46 @@ export default function BLReconciliation() {
// Séparer les livraisons par mode de rapprochement
const manualReconciliationDeliveries = deliveriesWithBL.filter((delivery: any) => {
const supplier = suppliers.find(s => s.id === delivery.supplierId);
return !supplier?.isAutoReconciliation;
// Logique améliorée pour détecter le mode manuel :
// 1. Si le fournisseur a isAutoReconciliation explicitement à false
// 2. Si le fournisseur n'a pas la propriété isAutoReconciliation (défaut manuel)
// 3. Si pas de fournisseur trouvé (défaut manuel pour compatibilité)
const isManual = !supplier?.isAutoReconciliation;
console.log('Manual filter - Delivery:', delivery.id, 'Supplier:', supplier?.name, 'isAutoReconciliation:', supplier?.isAutoReconciliation, 'isManual:', isManual);
return isManual;
});
const automaticReconciliationDeliveries = deliveriesWithBL.filter((delivery: any) => {
const supplier = suppliers.find(s => s.id === delivery.supplierId);
return supplier?.isAutoReconciliation;
// Logique améliorée pour détecter le mode automatique :
// 1. Si le fournisseur a isAutoReconciliation explicitement à true
// 2. OU si la livraison est déjà validée automatiquement (reconciled=true avec BL)
const isAutoBySupplier = supplier?.isAutoReconciliation === true;
const isAutoByStatus = delivery.reconciled === true && delivery.blNumber && !delivery.invoiceReference;
const isAutomatic = isAutoBySupplier || isAutoByStatus;
console.log('Auto filter - Delivery:', delivery.id, 'Supplier:', supplier?.name, 'isAutoReconciliation:', supplier?.isAutoReconciliation, 'reconciled:', delivery.reconciled, 'hasBlNumber:', !!delivery.blNumber, 'hasInvoiceRef:', !!delivery.invoiceReference, 'isAutomatic:', isAutomatic);
return isAutomatic;
});
console.log('🔍 Reconciliation Debug:', {
totalDeliveries: deliveriesWithBL.length,
totalSuppliers: suppliers.length,
manualCount: manualReconciliationDeliveries.length,
autoCount: automaticReconciliationDeliveries.length,
deliveriesData: deliveriesWithBL.map(d => ({
id: d.id,
supplierId: d.supplierId,
supplier: d.supplier?.name,
reconciled: d.reconciled,
blNumber: d.blNumber,
invoiceReference: d.invoiceReference
})),
suppliersData: suppliers.map(s => ({id: s.id, name: s.name, isAutoReconciliation: s.isAutoReconciliation}))
});
// Fonctions de gestion