From 65b55b13434f5c612cb9f93770473718bff94c61 Mon Sep 17 00:00:00 2001 From: Michael SCHAL Date: Tue, 31 Mar 2026 17:40:40 +0200 Subject: [PATCH] fix: use fouident.nom instead of fouadr1.raisonsociale for supplier names fouident is the canonical supplier identity table with correct names: - D005 = 'DEPOT' (not 'BAZAR 5000' which was a historical fouadr1 alias) - B0071 = 'BAZAR 5000' (suspended, actif=false) - M0341 = 'MOREL' (not 'MOREL LORY') Updated: pgGetFournisseurs, pgGetArticlesByFournisseur, pgGetCaByFournisseur Removed the D005 CASE WHEN hardcode override (no longer needed). Also remove fouadr1 JOIN from analytics query (replaced by fouident). Co-Authored-By: Claude Sonnet 4.6 --- src/lib/pg-ff-client.ts | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/src/lib/pg-ff-client.ts b/src/lib/pg-ff-client.ts index f798413..db6eaaf 100644 --- a/src/lib/pg-ff-client.ts +++ b/src/lib/pg-ff-client.ts @@ -83,19 +83,18 @@ export interface PgRankingRow { // --------------------------------------------------------------------------- /** - * Retourne la liste des fournisseurs depuis fouadr1 + artfou1. + * Retourne la liste des fournisseurs depuis fouident (vrais noms) + artfou1. */ export async function pgGetFournisseurs(search?: string): Promise<{ code: string; nom: string }[]> { try { const result = await db.execute(sql` - SELECT DISTINCT fa.code, fa.raisonsociale AS nom - FROM fouadr1 fa - INNER JOIN artfou1 af ON af.code = fa.code - WHERE fa.sit_code = '000' - AND fa.raisonsociale IS NOT NULL - AND fa.raisonsociale !~ '^\s*\d' - ${search ? sql`AND (fa.raisonsociale ILIKE ${'%' + search + '%'} OR fa.code ILIKE ${'%' + search + '%'})` : sql``} - ORDER BY fa.raisonsociale + SELECT DISTINCT fi.code, fi.nom + FROM fouident fi + INNER JOIN artfou1 af ON af.code = fi.code + WHERE fi.nom IS NOT NULL + AND fi.nom != '' + ${search ? sql`AND (fi.nom ILIKE ${'%' + search + '%'} OR fi.code ILIKE ${'%' + search + '%'})` : sql``} + ORDER BY fi.nom `); console.log(`[pg-ff] pgGetFournisseurs: ${result.rows.length} fournisseurs`); return (result.rows as unknown as { code: string; nom: string }[]).filter(r => r.code && r.nom); @@ -123,7 +122,7 @@ export async function pgGetArticlesByFournisseur(codefou: string): Promise