mirror of
https://github.com/R0m1k3/LogiFlow.git
synced 2026-10-12 17:58:13 +02:00
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:
1 parent
66c7fd3e46
commit
b625077cae
1 file changed
+36
-2
@@ -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
|
||||
|
||||
Reference in new issue
Block a user