fix(reconciliation): auto-reconcile deliveries from automatic suppliers on validation

POST /api/deliveries/:id/validate never set reconciled=true for suppliers in
automatic reconciliation mode, so their deliveries showed in neither the
Manuels tab (auto suppliers excluded) nor Validées (reconciled=false).

- validate endpoint now marks reconciled + validatedAt for auto suppliers
- Validées tab includes all deliveries from auto suppliers
- migration backfills reconciled for existing delivered deliveries with BL

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
MichaelandClaude Opus 5.5 committed 2026-10-09 09:18:43 +02:00
1 parent 944d99733c
commit 2274c9bb4a
3 files changed
+41 -1

No files matched your search

@@ -0,0 +1,22 @@
-- Backfill rapprochement automatique
--
-- Contexte : l'endpoint POST /api/deliveries/:id/validate ne posait pas
-- reconciled = true pour les fournisseurs en rapprochement automatique
-- (automatic_reconciliation = true). Ces livraisons n'apparaissaient ni dans
-- l'onglet "Manuels" (exclues car fournisseur auto) ni dans "Validées"
-- (reconciled = false). Même cas pour les livraisons antérieures au passage
-- d'un fournisseur en mode automatique.
--
-- Applique le même critère que l'auto-validation côté serveur :
-- livraison livrée + numéro de BL renseigné.
UPDATE deliveries d
SET reconciled = true,
validated_at = COALESCE(d.validated_at, NOW())
FROM suppliers s
WHERE d.supplier_id = s.id
AND s.automatic_reconciliation = true
AND d.status = 'delivered'
AND d.bl_number IS NOT NULL
AND TRIM(d.bl_number) <> ''
AND (d.reconciled IS NULL OR d.reconciled = false);