fix: show actual transactions in budget previous year column (#34) #35
No reviewers
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
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: maximus/Simpl-Resultat#35
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/simpl-resultat-34-budget-previous-year-actual"
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?
Summary
getActualTotalsForYear()helper inbudgetService.tsto fetch yearly transaction totals by categoryuseBudget.tsto use actuals instead of budget entries for previous year dataFixes #34
Changes
src/services/budgetService.ts— newgetActualTotalsForYear(year)exportsrc/hooks/useBudget.ts— replacedgetBudgetEntriesForYear(year-1)withgetActualTotalsForYear(year-1)src/shared/types/index.ts— updated comment onpreviousYearTotalfieldCHANGELOG.md/CHANGELOG.fr.md— documented the change🤖 Generated with Claude Code
Reviewer automatique — needs-fix
Bug de signe : les montants réels (transactions) des dépenses sont négatifs dans la BD, mais le budget planning grid les affiche via
* sign(expense → -1). Cela cause une double négation : négatif × -1 = positif, inversant le signe affiché pour la colonne année précédente des dépenses. Aucun test ajouté.Problèmes détectés
getActualsByCategoryRangeretourneSUM(amount)brut des transactions. Les dépenses sont stockées avec des montants négatifs. Or, dansBudgetTable.tsx,previousYearTotalest multiplié parsignFor(type)(-1 pour expenses) pour l'affichage. Résultat : négatif × -1 = positif → les dépenses de l'année précédente s'affichent avec le mauvais signe (positif au lieu de négatif). L'ancien code utilisait les entrées budget (toujours positives), doncpositif × -1 = négatiffonctionnait correctement. Fix suggéré : stocker la valeur absolue (Math.abs(a.actual)) dansprevYearTotalMap, ou appliquer le mêmesignque dansgetBudgetVsActualDatapour normaliser les actuals en positif avant de les passer au grid.prevYearTotalMapcontient des valeurs avec le bon signe pour les deux types de catégories.Reviewer automatique — needs-simplify
Le fix est correct : il remplace bien le budget planifié par les transactions réelles pour la colonne année précédente. La logique Math.abs et la nouvelle fonction de service sont saines. Cependant, le fichier de test ne teste pas le vrai code — il réimplémente la logique localement, ce qui le rend fragile et peu utile.
Suggestions de simplification
buildPrevYearTotalMapau lieu d'importer et tester le vrai code deuseBudget.ts. Si la logique dans le hook change, ces tests passeront toujours — ils ne protègent contre aucune régression réelle. Soit extraire la fonction de normalisation dans un module utilitaire et tester celui-ci, soit supprimer ce fichier et couvrir le comportement via un test d'intégration du hook (avec mock degetActualTotalsForYear). En l'état, c'est 62 lignes qui testent essentiellementMath.abs().Reviewer automatique — approved
Le fix est correct. Il remplace les entrées budget de l'année précédente par les transactions réelles (actuals), conformément à l'issue #34. La suppression de
* signest justifiée car les montants de transactions sont déjà signés en DB (dépenses négatives, revenus positifs), ce qui est cohérent avec le pattern existant dansgetBudgetVsActualData()de budgetService.ts. Les CHANGELOGs, types et tests sont à jour.Suggestions de simplification