[feat] BVA (reel-vs-budget) → income-first + lignes Resultat #277

Closed
opened 2026-07-09 00:37:57 +00:00 by maximus · 0 comments
Owner

Aligner le rapport reel-vs-budget (BudgetVsActualTable) sur le gold standard income-statement : income-first + lignes Resultat. Extraire le roll-up dans un module pur teste. Epic #260.

Fichiers concernes

  • src/services/budgetService.ts (TYPE_ORDER @:207)
  • nouveau src/components/reports/budgetVsActualResults.ts (+ test)
  • src/components/reports/BudgetVsActualTable.tsx (@:271-320 ; totaux section ~176-190, grand-totaux ~94-106)

Depends on

  • Milestone M1 (overnight-2026-07-08-filtres-fondation) merge — consomme getBudgetVsActualData plombe par I2.

Criteres d'acceptation

  • TYPE_ORDER flippe expense-first → income-first (revenu→depense→transfert)
  • Lignes Resultat avant transferts (interleave, avant la section transfert) + Resultat net (roll-up sur les feuilles BudgetVsActualRow, facon ComparePeriodTable)
  • Logique de resultat dans le module pur budgetVsActualResults.ts (teste), pas dans le .tsx
  • Montants feuilles inchanges
  • build + npm test verts

Review caveats

  • 🟡 (Archi/Tech) : 3e copie du roll-up Resultat (apres compareResults.ts/overTimeResults.ts) → module pur par issue maintenant ; unification generique = follow-up lie #265, hors scope (touche du code shippe teste).

Decisions prises

  • Module Resultat pur par issue (I5/I6), pas d'unification generique dans cette milestone.

Spec source

spec-plan-rapports-uniformes-suite.md

Aligner le rapport **reel-vs-budget** (`BudgetVsActualTable`) sur le gold standard income-statement : income-first + lignes Resultat. Extraire le roll-up dans un module pur teste. Epic #260. ## Fichiers concernes - `src/services/budgetService.ts` (`TYPE_ORDER` @:207) - nouveau `src/components/reports/budgetVsActualResults.ts` (+ test) - `src/components/reports/BudgetVsActualTable.tsx` (@:271-320 ; totaux section ~176-190, grand-totaux ~94-106) ## Depends on - Milestone M1 (`overnight-2026-07-08-filtres-fondation`) merge — consomme `getBudgetVsActualData` plombe par I2. ## Criteres d'acceptation - [ ] `TYPE_ORDER` flippe expense-first → **income-first** (revenu→depense→transfert) - [ ] Lignes **Resultat avant transferts** (interleave, avant la section transfert) + **Resultat net** (roll-up sur les feuilles `BudgetVsActualRow`, facon `ComparePeriodTable`) - [ ] Logique de resultat dans le module pur `budgetVsActualResults.ts` (teste), **pas** dans le `.tsx` - [ ] Montants feuilles inchanges - [ ] build + `npm test` verts ## Review caveats - 🟡 (Archi/Tech) : 3e copie du roll-up Resultat (apres `compareResults.ts`/`overTimeResults.ts`) → module pur par issue maintenant ; unification generique = follow-up lie #265, hors scope (touche du code shippe teste). ## Decisions prises - Module Resultat pur par issue (I5/I6), pas d'unification generique dans cette milestone. ## Spec source spec-plan-rapports-uniformes-suite.md
maximus added this to the overnight-2026-07-08-rapports-parite milestone 2026-07-09 00:37:57 +00:00
maximus added the
status:ready
type:feature
source:human
labels 2026-07-09 00:37:57 +00:00
maximus added
status:review
and removed
status:ready
labels 2026-07-11 21:00:11 +00:00
maximus added
status:approved
and removed
status:review
labels 2026-07-12 00:38:15 +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#277
No description provided.