diff --git a/src/features/grid/components/heatmap-grid.tsx b/src/features/grid/components/heatmap-grid.tsx index 5e33812..4f967a0 100644 --- a/src/features/grid/components/heatmap-grid.tsx +++ b/src/features/grid/components/heatmap-grid.tsx @@ -379,7 +379,7 @@ function NetworkMonthlyModal({ row, onClose }: { row: ProductRow; onClose: () => {row.libelle1}

- Ventes réseau · 12 derniers mois + Ventes réseau · {labels.length > 0 ? `${labels.length} derniers mois` : "12 derniers mois"} {row.nbMagasinsReseau != null && <> · {row.nbMagasinsReseau} magasins} {pct != null && ( <> · diff --git a/src/lib/qlik-playwright.ts b/src/lib/qlik-playwright.ts index e7a4765..146738b 100644 --- a/src/lib/qlik-playwright.ts +++ b/src/lib/qlik-playwright.ts @@ -443,12 +443,22 @@ export async function fetchNetworkMetricsPlaywright( const got = await timed("cube", "batch", () => fetchMonthCube((code, mois, ca, qte, nbMag, caMag, marge, qteComp) => { if (!code || code === "-") return; out.push([code, ca, qte, nbMag, caMag, marge]); - // 12 mois glissants : mois de l'année N → Quantité N, mois N-1 → Quantité COMP. + // 12 mois glissants. Le cube ne renvoie que les mois de l'année N + // (les mesures "N" sont nulles ailleurs → lignes supprimées). + // "Quantité COMP" = comparable N-1 : à la ligne Mois=YYYYMM elle + // donne la quantité du MÊME mois l'année précédente. On dérive donc + // deux points par ligne : YYYY-MM (N) et (YYYY-1)-MM (N-1). const mm = normMois(mois); const y = parseInt(mm.slice(0, 4), 10); - const qtyMonth = y === yearN ? qte : qteComp; (monthlyByCode[code] ??= {}); - monthlyByCode[code][mm] = (monthlyByCode[code][mm] ?? 0) + qtyMonth; + if (y === yearN) { + monthlyByCode[code][mm] = (monthlyByCode[code][mm] ?? 0) + qte; + const mmPrev = String(y - 1) + mm.slice(4); // "2026-03" → "2025-03" + monthlyByCode[code][mmPrev] = (monthlyByCode[code][mmPrev] ?? 0) + qteComp; + } else { + // Ligne d'une autre année (cas non observé) : on prend la mesure N. + monthlyByCode[code][mm] = (monthlyByCode[code][mm] ?? 0) + qte; + } }, timings, () => { code15Retries++; }), timings); aggBatches++; aggCode15Retries += code15Retries;