Commit Graph

219 Commits

Author SHA1 Message Date
tristan 2b81de1248 fix : update icon entrée/sortie 2026-05-04 14:09:16 +02:00
tristan 7d69860edc feat(front) : retouches UX saisie bovin (filtre, toast, partial save, fix isSaisi)
- isSaisi : != null couvre les champs absents du JSON (API Platform strip null)
- UiNumberInput : ne réécrit target.value que si réellement clampé (fix saisie décimaux)
- Form : champs optionnels, payload partiel, toast de confirmation
- Page : filtre N° national au-dessus de la liste

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-04 14:07:34 +02:00
tristan 209b14eb56 feat(front) : clic sur entrée validée → page saisie info bovin
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-04 11:34:24 +02:00
tristan 2166fe2685 feat(front) : page saisie information bovin (accordéons)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-04 11:33:55 +02:00
tristan 92c8c6a704 feat(front) : sous-composant bovine-info-form (4 champs + valider)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-04 11:33:24 +02:00
tristan 9af05ff449 feat(front) : composant UiAccordion réutilisable
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-04 11:32:41 +02:00
tristan fff6fa7e17 feat(front) : id dans BovineBuildingRef et BovineBuildingCaseRef
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-04 11:32:25 +02:00
tristan cae04ed489 feat(api) : exposer BuildingCase.id et Building.id dans bovine:read
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-04 11:31:25 +02:00
tristan 6134fc3107 docs : plan saisie information bovin post-EDNOTIF
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-04 11:29:13 +02:00
tristan 4513dcdc5c docs : spec saisie information bovin post-EDNOTIF
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-04 11:21:30 +02:00
tristan 3e1760ca98 Merge branch 'develop' into feat/entree-sortie 2026-05-04 10:04:12 +02:00
gitea-actions 961fa63f3d chore: bump version to v0.0.94
Auto Tag Develop / tag (push) Successful in 6s
Build Release Artefact / build (push) Successful in 1m43s
v0.0.94
2026-04-30 15:55:26 +00:00
tristan bebfabcacc feat(front) : meta title sur chaque page
Auto Tag Develop / tag (push) Successful in 9s
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-30 17:24:33 +02:00
tristan 8f88abab46 feat : Reception.validatedAt + statut entrées + mode consultation
- Backend : champ Reception.validatedAt (timestamp) avec PreUpdate + helpers
  isFullyConfirmed/tryValidate ; sync EDNOTIF déclenche tryValidate sur
  les receptions impactées ; expose Supplier.name dans le groupe bovine:read.
- Migration : ajout colonne validated_at sans backfill (les receptions
  remontent en attente jusqu'au prochain sync).
- Front /entry-exit : remplace Historique par 'Entrées validées' (filtre
  exists[validatedAt]=true), ajoute filtres et colonne Statut sur les
  deux tableaux, retire Fournisseur, layout 2x2 (entrées + sorties).
- Front /entry-exit/entry/{id} : mode consultation quand entryCompleted=true
  (formulaire + actions masqués, colonne EDNOTIF par bovin) ; ajoute
  colonnes Vendeur et Cause dans le récap.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-30 16:31:16 +02:00
tristan 476502c91c feat : cause d'entrée bovin + confirmation EDNOTIF asynchrone + historique entrées
- Champ entryCause sur Bovine (enum App\Enum\CauseEntree : Achat/Naissance/PretOuPension)
- Sélecteur "Cause d'entrée" sur le formulaire de saisie (default Achat, required)
- ednotif_confirmed_at sur Bovine : timestamp set par le sync EDNOTIF la première
  fois qu'un bovin remonte dans getInventory. Backfill des bovins existants au
  jour de la migration.
- Inventaire (page + export + stats) filtre les bovins encore "en attente
  EDNOTIF" : ils n'apparaissent qu'une fois confirmés par le sync.
- getter getConfirmedBovineCount sur Reception, exposé en reception:read.
- Tableau Historique full-width sur /entry-exit listant les entrées validées,
  avec filtres de colonnes (numéro, date, fournisseur), compteur Confirmés/Saisis,
  et badge de statut "Confirmée" / "EDNOTIF en attente".
- Tableau récap de l'écran de saisie passé en useDataTableServerState pour
  bénéficier du loading et de la pagination serveur.
- Validation entrée : confirm window obligatoire, message renforcé en cas
  d'écart entre saisis et déclarés.
- Pattern projet "submitted" sur le formulaire d'ajout pour le visuel required.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-29 17:29:46 +02:00
tristan c64e0c7100 feat(front) : entrées et sorties en attente côte à côte
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-29 10:29:25 +02:00
tristan 348d7fc8f9 feat(front) : bouton Valider l'entrée avec confirmation si saisies incomplètes
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-29 10:13:10 +02:00
tristan 38cedfccdf feat(front) : tableau récap des bovins saisis avec suppression
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-29 10:12:54 +02:00
tristan 69844bfebc feat(front) : logique Ajouter un bovin sur écran de saisie
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-29 10:11:24 +02:00
tristan d71bd147d5 feat(front) : écran saisie entrée — layout header + formulaire
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-29 10:09:49 +02:00
tristan ab1f9a3308 feat(front) : page liste entrée/sortie avec entrées en attente
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-29 10:05:24 +02:00
tristan 07d174398d feat(front) : renomme card CASES en Entrée/Sortie sur la home
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-29 10:04:11 +02:00
tristan 1328dcfdd7 feat(front) : ajout entryCompleted, registeredBovineCount, bovine.reception aux DTOs
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-29 10:03:32 +02:00
tristan 9d3dbf98c1 fix : BovineProcessor utilise setBovineType avec auto-create
Le processor appelait setBreedCode() qui n'existe plus depuis la
migration vers la relation BovineType. Remplacé par setBovineType()
avec un resolveBovineType() qui findOneBy(code) ou crée un
placeholder réutilisable. Ajout de setSex() oublié au passage.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-29 10:02:24 +02:00
tristan 486247bf86 feat : bovine.reception FK + delete op + sécurités abaissées
Ajout d'une relation ManyToOne nullable vers Reception, d'un
SearchFilter exact, d'une opération DELETE et abaissement de la
sécurité Post/Patch/Delete de ROLE_ADMIN à ROLE_USER pour le flux
métier opérationnel d'entrée/sortie.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-29 09:43:44 +02:00
tristan 43d7a2514b feat : reception.entryCompleted + relation inverse bovines + filtres
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-29 09:33:49 +02:00
tristan 6579bb72dd feat : migration entry_completed + bovine.reception_id
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-29 09:31:56 +02:00
tristan 7ecc5b6d2f docs : plan d'implémentation workflow entrée bovins
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-29 08:58:15 +02:00
tristan 4f6b6ff3c3 docs : spec workflow entrée/sortie bovins
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-29 08:49:01 +02:00
gitea-actions e208bcd893 chore: bump version to v0.0.93
Auto Tag Develop / tag (push) Successful in 5s
Build Release Artefact / build (push) Successful in 1m29s
v0.0.93
2026-04-28 11:52:26 +00:00
tristan 3fe0bbf71e feat: modification de la gestion des rôles + ajout rôle d'un bureau (!52)
Auto Tag Develop / tag (push) Has been cancelled
| 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é

Reviewed-on: #52
Co-authored-by: tristan <tristan@yuno.malio.fr>
Co-committed-by: tristan <tristan@yuno.malio.fr>
2026-04-28 11:52:18 +00:00
gitea-actions d566e5d9f7 chore: bump version to v0.0.92
Auto Tag Develop / tag (push) Successful in 5s
Build Release Artefact / build (push) Successful in 1m29s
v0.0.92
2026-04-28 10:03:56 +00:00
tristan 5bb0aad620 feat: amélioration de l'export inventaire bovin (!51)
Auto Tag Develop / tag (push) Has been cancelled
| 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é

Reviewed-on: #51
Co-authored-by: tristan <tristan@yuno.malio.fr>
Co-committed-by: tristan <tristan@yuno.malio.fr>
2026-04-28 10:03:50 +00:00
gitea-actions 19a29f854e chore: bump version to v0.0.91
Auto Tag Develop / tag (push) Successful in 5s
Build Release Artefact / build (push) Successful in 1m26s
v0.0.91
2026-04-28 07:37:20 +00:00
tristan c21dcd1869 docs : étapes détaillées pour le feed des prix bovins en prod
Auto Tag Develop / tag (push) Has been cancelled
- Passe par /tmp (le user SSH n'a pas les droits sur /var/www/ferme)
- 6 étapes numérotées (scp, ssh, cd, dry-run, run, rm)
- Note sur chmod 644 si www-data ne peut pas lire

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-28 09:36:57 +02:00
gitea-actions 86cb3c276a chore: bump version to v0.0.90
Auto Tag Develop / tag (push) Successful in 5s
Build Release Artefact / build (push) Successful in 1m34s
v0.0.90
2026-04-28 07:25:39 +00:00
tristan 08a17f91b3 feat: ajout du prix au kilo et de l'age moyen bovin + feed bovin via xlsx (!50)
Auto Tag Develop / tag (push) Has been cancelled
| Numéro du ticket | Titre du ticket |
|------------------|-----------------|
|                  |                 |

## Description de la PR

## Modification du .env

## Check list

- [ ] Pas de régression
- [x] TU/TI/TF rédigée
- [ ] TU/TI/TF OK
- [ ] CHANGELOG modifié

Reviewed-on: #50
Co-authored-by: tristan <tristan@yuno.malio.fr>
Co-committed-by: tristan <tristan@yuno.malio.fr>
2026-04-28 07:25:31 +00:00
gitea-actions 7b722bdd17 chore: bump version to v0.0.89
Auto Tag Develop / tag (push) Successful in 5s
Build Release Artefact / build (push) Successful in 1m30s
v0.0.89
2026-04-24 13:31:09 +00:00
tristan 9038d1726a feat : export Excel et stats par tranche d'âge sur l'inventaire bovin
Auto Tag Develop / tag (push) Has been cancelled
- Dépendance phpoffice/phpspreadsheet
- Endpoint GET /bovines/inventory-export : XLSX coloré, header figé, auto-filter, tri birthDate ASC
- Endpoint GET /bovines/inventory-stats : comptes par tranche d'âge (>=24, 22-24, 20-22)
- Bouton Excel à gauche du titre (style icône-only, même design que le bouton impression)
- Légende visuelle avec cartes bordées coloriées
- Ajustement seuils couleurs des lignes en -300 (base) / -400 (hover)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 15:19:57 +02:00
tristan bde59bf9ee docs : spec export Excel inventaire bovin
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 11:23:26 +02:00
tristan 097eb39cb0 feat : tri par défaut des bovins par date de naissance (plus vieux en premier)
birthDate ASC sur l'ApiResource Bovine, impacte automatiquement les pages
inventaire et case. Choix ASC plutôt que ageMonths DESC pour bénéficier du
NULLS LAST natif de Postgres.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 11:14:54 +02:00
tristan 4cdff1200f feat : affichage du compteur de bovins et ajustement des seuils de couleur
- Ajout (X bovins) à côté du titre sur les pages inventaire et case
- Seuils par âge : 20-22 mois orange, 22-24 mois rouge, 24+ violet
- Couleurs renforcées en -200 / hover -300

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 11:08:19 +02:00
tristan d5b372e243 feat : bouton Ajouter sur les pages admin en haut à droite
Alignement sur le pattern case.vue : titre et bouton Ajouter sur la même ligne,
wrapper px-[86px] commun, suppression du bouton bottom-centered

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 11:00:20 +02:00
tristan 2e72f93f29 feat : harmonisation des pages infrastructure avec le pattern UiDataTable
- Page case : mêmes colonnes, filtres et alertes âge que la page inventaire
- Page building : header aligné sur le pattern case.vue (wrapper px-86, arrow en absolute)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 10:57:25 +02:00
gitea-actions 79077c7bbd chore: bump version to v0.0.88
Auto Tag Develop / tag (push) Successful in 5s
Build Release Artefact / build (push) Successful in 1m23s
v0.0.88
2026-04-24 07:53:13 +00:00
tristan f05fcc5c15 feat: inventaire bovins (!49)
Auto Tag Develop / tag (push) Has been cancelled
| 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é

Reviewed-on: #49
Co-authored-by: tristan <tristan@yuno.malio.fr>
Co-committed-by: tristan <tristan@yuno.malio.fr>
2026-04-24 07:53:06 +00:00
gitea-actions 023d71381e chore: bump version to v0.0.87
Auto Tag Develop / tag (push) Successful in 5s
Build Release Artefact / build (push) Successful in 1m18s
v0.0.87
2026-04-22 15:27:58 +00:00
tristan e2695335e7 fix : masquer le bouton Ajouter sur la page case quand l'utilisateur n'est pas admin
Auto Tag Develop / tag (push) Successful in 6s
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-22 17:26:49 +02:00
gitea-actions 91152c0ed8 chore: bump version to v0.0.86
Auto Tag Develop / tag (push) Successful in 5s
Build Release Artefact / build (push) Successful in 1m22s
v0.0.86
2026-04-22 13:26:05 +00:00
tristan 1b4764878e feat: ajout du composant datatable sur tous les écrans (!48)
Auto Tag Develop / tag (push) Has been cancelled
| 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é

Reviewed-on: #48
Co-authored-by: tristan <tristan@yuno.malio.fr>
Co-committed-by: tristan <tristan@yuno.malio.fr>
2026-04-22 13:25:57 +00:00