feat(backend,frontend): plusieurs productions par mois + graphiques Chart.js - #25
Merged
Merged
Conversation
…hart.js Une ferme peut produire plusieurs choses distinctes le même mois (œufs ET viande, par exemple) - la contrainte d'unicité (exploitation_id, mois) forçait chaque nouvelle déclaration à écraser la précédente, quel que soit son nom. - Migration : contrainte élargie à (exploitation_id, mois, nom). Ressaisir le même nom le même mois écrase toujours l'ancien ; un nom différent crée une ligne séparée. - Dashboard exploitation (API + UI) : MonthlyStatsDto passe d'un seul jeu de champs production optionnels à une liste 'productions'. cost/marge restent calculés contre le coût total du mois (partagé), pas alloués par produit - simplification assumée, pas un vrai découpage comptable. - Export Excel : l'onglet Production peut désormais avoir plusieurs lignes pour le même mois. - Dashboard web : nouveau composant DashboardCharts.svelte (Chart.js) - mêmes 4 graphiques que l'onglet 'Tableau de bord' de l'export Excel (coût total/mois, marge/mois par production, coût/unité produite/mois par production, répartition des coûts par intrant). Une ligne par produit pour les graphiques marge/efficacité, comme dans le fichier Excel. Vérifié en dev : 2 productions (Œufs + Viande) sur 3 mois pour une même exploitation, calculs corrects sur le dashboard JSON, l'export Excel et l'affichage web (4 canvas Chart.js, aucune erreur console, capture d'écran vérifiée). Suite e2e complète 8/8, aucun changement de spec nécessaire (structure DOM équivalente pour le cas à une seule production).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Résumé
Une ferme peut produire plusieurs choses distinctes le même mois (œufs ET viande, par exemple) - la contrainte d'unicité
(exploitation_id, mois)forçait chaque nouvelle déclaration à écraser la précédente.(exploitation_id, mois, nom). Ressaisir le même nom le même mois écrase toujours l'ancien ; un nom différent crée une ligne séparée.MonthlyStatsDtopasse à une listeproductions, plusieurs par mois possible.DashboardCharts.svelte(Chart.js) - les mêmes 4 graphiques que l'onglet "Tableau de bord" de l'export Excel (coût total/mois, marge/mois, coût/unité produite/mois, répartition des coûts par intrant), une série par produit pour marge/efficacité.Test plan
cargo build+cargo test --lib: 9/9, 0 warningcargo fmt --checknpx svelte-check: 0 erreur