From d5b518477a353be28741e4185ef25b2bfb8edd0e Mon Sep 17 00:00:00 2001 From: Michael SCHAL Date: Fri, 20 Mar 2026 11:30:54 +0100 Subject: [PATCH] feat: Add PostgreSQL client for FF Nancy data, replacing per-article HTTP calls with bulk SQL queries for improved performance. --- src/lib/pg-ff-client.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/lib/pg-ff-client.ts b/src/lib/pg-ff-client.ts index dbe762e..2110816 100644 --- a/src/lib/pg-ff-client.ts +++ b/src/lib/pg-ff-client.ts @@ -170,11 +170,13 @@ export async function pgGetMensuelByFournisseur( a.codein, m.site, TO_CHAR(m.datmvt, 'YYYY-MM') AS mois, - SUM(CASE WHEN m.genremvt = 3 THEN ABS(m.qtemvt) ELSE 0 END)::float AS qte_vendue, - SUM(CASE WHEN m.genremvt = 3 THEN ABS(m.mntmvtttc) ELSE 0 END)::float AS ca_ht, - SUM(CASE WHEN m.genremvt = 3 THEN m.margemvt ELSE 0 END)::float AS marge, - MAX(m.qtestock)::float AS stock_fin_mois, - SUM(CASE WHEN m.genremvt IN (1, 2) THEN ABS(m.qtemvt) ELSE 0 END)::float AS qte_recue + -- genremvt=3 : vente → qtemvt négatif, retour → qtemvt positif + -- qte_vendue nette = SUM(-qtemvt) : ventes moins retours + SUM(CASE WHEN m.genremvt = 3 THEN -m.qtemvt ELSE 0 END)::float AS qte_vendue, + SUM(CASE WHEN m.genremvt = 3 THEN m.mntmvtttc ELSE 0 END)::float AS ca_ht, + SUM(CASE WHEN m.genremvt = 3 THEN m.margemvt ELSE 0 END)::float AS marge, + MAX(m.qtestock)::float AS stock_fin_mois, + SUM(CASE WHEN m.genremvt IN (1, 2) THEN -m.qtemvt ELSE 0 END)::float AS qte_recue FROM mvtart m JOIN articles a ON a.no_id = m.artnoid -- Sous-requête dédupliquée : 1 seule ligne par article/fournisseur