diff --git a/src/features/grid/api/get-product-rows.ts b/src/features/grid/api/get-product-rows.ts index 71e23a2..354e461 100644 --- a/src/features/grid/api/get-product-rows.ts +++ b/src/features/grid/api/get-product-rows.ts @@ -474,6 +474,8 @@ async function enrichWithNetworkMetrics(productMap: Map): Pr if (byCodeCentrale.size === 0) return; const metrics = await getNetworkMetricsByCodeCentrale([...byCodeCentrale.keys()]); + const firstMatch = [...byCodeCentrale.keys()].find((cc) => metrics.has(cc)); + console.log(`[getProductRows] réseau: ${byCodeCentrale.size} codes centraux → ${metrics.size} matchés en cache. Sample:`, firstMatch ? JSON.stringify(metrics.get(firstMatch)) : "aucun match"); for (const [cc, products] of byCodeCentrale.entries()) { const m = metrics.get(cc); if (!m) continue; diff --git a/src/lib/qlik-playwright.ts b/src/lib/qlik-playwright.ts index 04e6259..e2155d0 100644 --- a/src/lib/qlik-playwright.ts +++ b/src/lib/qlik-playwright.ts @@ -147,6 +147,11 @@ export async function fetchNetworkMetricsPlaywright( out.set(code, { codeCentrale: code, caReseau: Number(r[1]) || 0, qteReseau: Number(r[2]) || 0, nbMagasinsReseau: Number(r[3]) || 0, caParMagasinReseau: Number(r[4]) || 0, couvertureStockReseau: Number(r[5]) || 0, margePctReseau: Number(r[6]) || 0, rupturePctReseau: Number(r[7]) || 0 }); } console.log(`[qlik-pw] ${out.size} produits réseau (cube ${result.size})`); + // Échantillon brut pour vérifier que les 4 nouvelles mesures (cols 4-7) renvoient des valeurs + const sample = (result.rows ?? []).slice(0, 3).map((r) => ({ + code: r[0], ca: r[1], qte: r[2], nbMag: r[3], caMag: r[4], couv: r[5], margePct: r[6], ruptPct: r[7], + })); + console.log(`[qlik-pw] échantillon lignes:`, JSON.stringify(sample)); return out; } finally { await ctx.close();