feat(reports): affichage hiérarchique du réel-vs-réel (sous-totaux + net) #247
Labels
No labels
autopilot:pending-human
source:analyste
source:defenseur
source:human
source:medic
status:approved
status:blocked
status:in-progress
status:needs-clarification
status:needs-fix
status:ready
status:review
status:triage
type:bug
type:feature
type:infra
type:refactor
type:schema
type:security
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: maximus/Simpl-Resultat#247
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Contexte
Issue sœur de #243 (sortie de son commentaire). Le rapport comparable réel-vs-réel s'affiche À PLAT (
ComparePeriodTable.tsx~65 : « no parent/child structure in compare mode »), alors que le réel-vs-budget est HIÉRARCHIQUE avec sous-totaux (BudgetVsActualTable.tsx: sections par type, indentation pardepth, sous-totaux).getCompareMonthOverMonth/YoY renvoient unCategoryDelta[]groupé parcategory_idseul, etCategoryDelta(types/index.ts~288) n'a niis_parentnidepth.Décision (figée via /analyze 2026-07-04)
Rendre le réel-vs-réel hiérarchique comme le budget, pour voir les sous-totaux dont le montant net, en reproduisant la logique de
BudgetVsActualTable.Travail à faire
getBudgetVsActualData:buildSubtotal,buildSubGroup,depth).CategoryDelta(ou nouveau type) avecis_parent/depth/parent_id.ComparePeriodTable.tsxhiérarchique (réutiliser la logique de sections/indentation/reorderRowsdeBudgetVsActualTable, ou extraire un composant tableau hiérarchique partagé).Fichiers concernés
src/services/reportService.ts—getCompareMonthOverMonth/YoY : produire l'arbre.src/components/reports/ComparePeriodTable.tsx— rendu hiérarchique.src/components/reports/BudgetVsActualTable.tsx— modèle de référence (envisager extraction d'un composant partagé).src/hooks/useCompare.ts— type de retour porte la structure d'arbre.src/shared/types/index.ts—CategoryDeltaenrichi.src/i18n/locales/fr.json+en.json— libellés sous-totaux réel-réel.Surface de test
reportService.test.tscouvregetCompareMonthOverMonth/YoY (agrégation à plat) -> étendre pour la structure d'arbre + sous-totaux.useCompare.test.tsteste des helpers purs.Critères d'acceptation
Complexité : Medium
Notes autopilot
reportService.ts(getCompareMonthOverMonth/YoY) et même typeCategoryDelta-> SÉQUENCER APRÈS #243 pour éviter un conflit de merge. Ne pas lancer en parallèle de #243.