feat: inventaire bovins #49

Merged
tristan merged 7 commits from feat/bovine-inventory into develop 2026-04-24 07:53:06 +00:00
Owner
Numéro du ticket Titre du ticket

Description de la PR

Modification du .env

Check list

  • Pas de régression
  • TU/TI/TF rédigée
  • TU/TI/TF OK
  • CHANGELOG modifié
| Numéro du ticket | Titre du ticket | |------------------|-----------------| | | | ## Description de la PR ## Modification du .env ## Check list - [x] Pas de régression - [ ] TU/TI/TF rédigée - [x] TU/TI/TF OK - [ ] CHANGELOG modifié
tristan self-assigned this 2026-04-24 07:52:58 +00:00
tristan added 7 commits 2026-04-24 07:52:59 +00:00
- Migration pour les nouvelles colonnes
- ExistsFilter sur exitedAt, SearchFilter sur sex/workNumber/breedCode, DateFilter sur birthDate
- DTO front étendu avec workNumber, birthDate, breedCode, sex, exitedAt

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Appelle BovinApiInterface::getInventory() puis upsert local par nationalNumber
- Marque exitedAt sur les bovins absents de la réponse EDNOTIF
- Retourne les stats { created, updated, exited, total }
- Admin only

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- UiDataTable server-side sur /api/bovines
- 6 colonnes : N° National, N° Travail, Sex, Né le, Race, Entrée le
- Filtres texte + select sex (Mâle/Femelle) + deux date pickers single input
- Filtre implicite exists[exitedAt]=false pour n'afficher que les bovins actifs

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Admin only avec confirmation window.confirm au clic
- Loader sur le bouton pendant l'appel POST
- Toast de succès avec les stats (créés, maj, sortis, total)
- reload() du tableau après succès

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Renommage de PASSEPORT DU BOVIN vers INVENTAIRE BOVINS, lien vers /inventory

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Colonnes Bâtiment et Case ajoutées sur inventory (inline buildingCase via readableLink)
- Bouton Rafraîchir repositionné dans l'en-tête du tableau (pattern case.vue)
- Sync : date du jour pour l'appel EDNOTIF, extraction de la dernière exit date
- UiDateMaskedInput : nouveau composant date masqué JJ/MM/AAAA
- Propagation du masque date sur tous les datatables (reception, shipment, case, inventory)
- Label de colonne "Date et heure" raccourci en "Date"
- Champ exitDate ajouté en back (caché côté front, prêt pour future feature)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Champ ageMonths (int) ajouté à Bovine avec migration
- Lifecycle PrePersist/PreUpdate pour maintenir la cohérence
- Sync processor recalcule explicitement ageMonths à chaque passage (cron-friendly)
- Colonne Age + rowClass côté front : rouge >= 24 mois, orange 22-24 mois
- Util formatAgeLabel remplace le calcul client
- Boutons pagination Prev/Next en français avec style bouton bordure primary
- Colonnes Sexe/N° Travail réduites au profit de Bâtiment

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
tristan merged commit f05fcc5c15 into develop 2026-04-24 07:53:06 +00:00
tristan deleted branch feat/bovine-inventory 2026-04-24 07:53:06 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: MALIO-DEV/Ferme#49