Skip to content

feat(backend,frontend): plusieurs productions par mois + graphiques Chart.js - #25

Merged
gilmry merged 1 commit into
mainfrom
feat/multi-production-and-charts
Aug 19, 2026
Merged

gilmry merged 1 commit into
mainfrom
feat/multi-production-and-charts

Conversation

@gilmry

@gilmry gilmry commented Aug 19, 2026

Copy link
Copy Markdown
Owner

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.

  • 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 à une liste productions, plusieurs par mois possible.
  • Export Excel : l'onglet Production peut avoir plusieurs lignes pour le même mois.
  • Dashboard web : nouveau 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 warning
  • cargo fmt --check
  • npx svelte-check : 0 erreur
  • Vérifié en dev : 2 productions (Œufs + Viande) sur 3 mois, calculs corrects sur dashboard JSON, export Excel et affichage web (4 canvas Chart.js, capture vérifiée, 0 erreur console)
  • Suite e2e complète 8/8, aucun changement de spec nécessaire
  • CI

…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).
@gilmry
gilmry merged commit 7816b59 into main Aug 19, 2026
2 checks passed
@gilmry
gilmry deleted the feat/multi-production-and-charts branch August 19, 2026 20:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant