feat(reports/compare): mirror budget-vs-actual table structure in actual-vs-actual mode #104

Closed
opened 2026-04-19 00:27:02 +00:00 by maximus · 0 comments
Owner

Contexte

Dans /reports/compare, le mode Réel vs budget (CompareBudgetViewBudgetVsActualTable) affiche une structure riche à 2 blocs :

| Mensuel (Réel / Prévu / Écart / Écart %) | Cumulatif YTD (Réel / Prévu / Écart / Écart %) |

Le mode Réel vs Réel (MoM et YoY, ComparePeriodTable) n'affiche qu'un tableau simple : Catégorie / Précédent / Courant / Écart $ / Écart %. Pas de distinction périodique vs cumulatif.

Demande utilisateur

Porter intégralement la structure à 8 colonnes du tableau "réel-budget" vers le mode "réel-réel", avec les bons montants (réel courant + réel précédent au lieu de réel + budget), dans les deux sous-modes :

  • MoM : bloc mensuel = mois courant vs mois précédent ; bloc cumulatif = YTD courant vs YTD précédent.
  • YoY : bloc mensuel = mois courant vs même mois année précédente ; bloc cumulatif = YTD courant vs YTD année précédente.

Fichiers concernés

  • src/components/reports/ComparePeriodTable.tsx — refondre pour afficher 2 blocs (Mensuel + Cumulatif).
  • src/services/reportService.ts — fonctions getCompareMonthOverMonth / getCompareYearOverYear : retourner à la fois le flux mensuel et les cumuls YTD.
  • Types dans src/shared/types/index.ts (CategoryDelta → ajouter champs YTD).
  • i18n : réutiliser les clés reports.bva.monthly, reports.bva.ytd, reports.bva.dollarVar, reports.bva.pctVar.

Critères d'acceptation

  • Le tableau ComparePeriodTable affiche un en-tête à 2 blocs (Mensuel + Cumulatif) avec 4 colonnes par bloc (Réel courant / Réel précédent / Écart $ / Écart %).
  • Les cumulatifs YTD sont calculés correctement pour MoM (janvier → mois courant) et YoY (toute l'année courante vs toute l'année précédente).
  • ComparePeriodChart reste cohérent (probablement laisser sur les deltas mensuels uniquement).
  • Tests vitest sur getCompareMonthOverMonth et getCompareYearOverYear couvrent les nouveaux champs YTD.
  • CHANGELOG mis à jour.
## Contexte Dans `/reports/compare`, le mode **Réel vs budget** (`CompareBudgetView` → `BudgetVsActualTable`) affiche une structure riche à 2 blocs : | Mensuel (Réel / Prévu / Écart $ / Écart %) | Cumulatif YTD (Réel / Prévu / Écart $ / Écart %) | Le mode **Réel vs Réel** (MoM et YoY, `ComparePeriodTable`) n'affiche qu'un tableau simple : Catégorie / Précédent / Courant / Écart $ / Écart %. Pas de distinction périodique vs cumulatif. ## Demande utilisateur Porter intégralement la structure à 8 colonnes du tableau "réel-budget" vers le mode "réel-réel", avec les bons montants (réel courant + réel précédent au lieu de réel + budget), dans les deux sous-modes : - **MoM** : bloc mensuel = mois courant vs mois précédent ; bloc cumulatif = YTD courant vs YTD précédent. - **YoY** : bloc mensuel = mois courant vs même mois année précédente ; bloc cumulatif = YTD courant vs YTD année précédente. ## Fichiers concernés - `src/components/reports/ComparePeriodTable.tsx` — refondre pour afficher 2 blocs (Mensuel + Cumulatif). - `src/services/reportService.ts` — fonctions `getCompareMonthOverMonth` / `getCompareYearOverYear` : retourner à la fois le flux mensuel et les cumuls YTD. - Types dans `src/shared/types/index.ts` (`CategoryDelta` → ajouter champs YTD). - i18n : réutiliser les clés `reports.bva.monthly`, `reports.bva.ytd`, `reports.bva.dollarVar`, `reports.bva.pctVar`. ## Critères d'acceptation - [ ] Le tableau `ComparePeriodTable` affiche un en-tête à 2 blocs (Mensuel + Cumulatif) avec 4 colonnes par bloc (Réel courant / Réel précédent / Écart $ / Écart %). - [ ] Les cumulatifs YTD sont calculés correctement pour MoM (janvier → mois courant) et YoY (toute l'année courante vs toute l'année précédente). - [ ] `ComparePeriodChart` reste cohérent (probablement laisser sur les deltas mensuels uniquement). - [ ] Tests vitest sur `getCompareMonthOverMonth` et `getCompareYearOverYear` couvrent les nouveaux champs YTD. - [ ] CHANGELOG mis à jour.
maximus added this to the spec-refonte-rapports milestone 2026-04-19 00:27:02 +00:00
maximus added the
status:approved
type:feature
source:human
labels 2026-04-19 00:27:02 +00:00
maximus added
status:ready
and removed
status:approved
labels 2026-04-19 00:41:40 +00:00
maximus added
status:review
and removed
status:ready
labels 2026-04-19 01:18:32 +00:00
maximus added
status:approved
and removed
status:review
labels 2026-04-19 01:20:19 +00:00
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: maximus/Simpl-Resultat#104
No description provided.