[#5] Rapport Comparables : MoM / YoY / Reel vs budget #73
Labels
No labels
source:analyste
source:defenseur
source:human
source:medic
status:approved
status:blocked
status:in-progress
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#73
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?
Objectif
Implémenter le rapport comparables avec navigation tabulaire entre 3 modes : Mois vs mois précédent, Année vs année précédente, Réel vs budget.
Spec :
spec-refonte-rapports.mdDépend de #70 (parallélisable avec #71, #72, #73)
Tâches
Services (SQL strictement paramétré)
reportService.getCompareMonthOverMonth(year, month)— retourneCategoryDelta[](catégorie, précédent, courant, deltaAbs, deltaPct)reportService.getCompareYearOverYear(year)— même forme sur 12 mois vs 12 moisgetBudgetVsActualDatadebudgetService.tsest réutilisé tel quel (pas de nouveau service pour le mode budget)Hook
src/hooks/useCompare.tsavec reducer + fetch + loading/error{ mode: 'mom' | 'yoy' | 'budget', year, month, rows, loading, error }Composants (plat dans
src/components/reports/)CompareModeTabs.tsx— tab bar secondaire (MoM / YoY / Budget)ComparePeriodTable.tsx— tableau catégories × 2 colonnes + écart $ / %ComparePeriodChart.tsx— diverging bar chart horizontal centré sur 0, patterns SVG viachartPatterns.tsxCompareBudgetView.tsx— wrapper autour deBudgetVsActualTable.tsxexistant avec toggle mensuel/annuel (YTD)Page
src/pages/ReportsComparePage.tsxpar la vue finaleCompareModeTabs+ la vue correspondante au mode sélectionnéViewModeTogglepartagé, storage keyreports-viewmode-compareuseReportsPeriodi18n
reports.compare.*en FR/EN (modeMoM, modeYoY, modeBudget, delta, current, previous, monthly, ytd, etc.)Vérifications
/reports/compareaffiche MoM par défautreports.empty.noDatanpm run buildvertCritères d'acceptation
${ou concat dans les nouveaux services : aucune occurrence)