mirror of
https://github.com/R0m1k3/CollectFlow.git
synced 2026-10-12 01:36:43 +02:00
La requête Hit Parade divergeait du calcul canonique de la Grille : - SUM(ABS(qtemvt)) additionnait les retours clients comme des ventes au lieu de les déduire → quantités et CA gonflés sur le magasin ayant des retours/avoirs sur la période (visible sur 579). - ABS(SUM(mntmvtttc)) inversait le signe d'un CA net négatif. - GROUP BY no_id + jointure artfou1 preference=1 non dédupliquée pouvait produire plusieurs lignes par (codein, site), écrasées par le pivot. Corrections : - Hit Parade : ventes nettes SUM(-qtemvt) / SUM(-mntmvtttc), agrégation par (codein, site), fournisseur préféré via LATERAL ... LIMIT 1, stock agrégé par codein ; pivot en accumulation (+=) par sécurité. - Analytics (même classe de bug) : pgGetCaByFournisseur et pgGetCaByNomenclature passent en CA net ; jointure fournisseur dédupliquée (LATERAL LIMIT 1) pour éviter le double comptage. - Gestion de stock : pgGetStockNegatif et pgGetSansVente6Mois dédupliquent le fournisseur préféré (LATERAL LIMIT 1) pour éviter les lignes en double. Audit complet du mapping par magasin (292/579) côté client : aucun champ inversé (hit-parade, analytics, dashboard, grid, heatmap). Build OK.