From 476502c91c448bb202a46d7f94000209674834f5 Mon Sep 17 00:00:00 2001 From: tristan Date: Wed, 29 Apr 2026 17:29:46 +0200 Subject: [PATCH] =?UTF-8?q?feat=20:=20cause=20d'entr=C3=A9e=20bovin=20+=20?= =?UTF-8?q?confirmation=20EDNOTIF=20asynchrone=20+=20historique=20entr?= =?UTF-8?q?=C3=A9es?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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) --- frontend/components/ui/UiDataTable.vue | 2 +- frontend/pages/entry-exit/entry/[id].vue | 167 ++++++++++-------- frontend/pages/entry-exit/index.vue | 142 +++++++++++++-- frontend/pages/inventory.vue | 1 + frontend/services/dto/bovine-data.ts | 3 + frontend/services/dto/reception-data.ts | 2 + migrations/Version20260429101011.php | 26 +++ migrations/Version20260429143822.php | 32 ++++ src/Entity/Bovine.php | 36 +++- src/Entity/Reception.php | 26 +++ src/Enum/CauseEntree.php | 27 +++ src/Repository/BovineRepository.php | 2 + .../Bovin/BovineSyncInventoryProcessor.php | 6 + 13 files changed, 376 insertions(+), 96 deletions(-) create mode 100644 migrations/Version20260429101011.php create mode 100644 migrations/Version20260429143822.php create mode 100644 src/Enum/CauseEntree.php diff --git a/frontend/components/ui/UiDataTable.vue b/frontend/components/ui/UiDataTable.vue index b3a4eee..9a55c8f 100644 --- a/frontend/components/ui/UiDataTable.vue +++ b/frontend/components/ui/UiDataTable.vue @@ -153,7 +153,7 @@ const props = withDefaults(defineProps<{ totalItems: undefined, page: 1, perPage: 10, - perPageOptions: () => [10, 25, 50], + perPageOptions: () => [5, 10, 25, 50], rowClickable: false, showActions: false, emptyMessage: 'Aucune donnée', diff --git a/frontend/pages/entry-exit/entry/[id].vue b/frontend/pages/entry-exit/entry/[id].vue index 052cab4..af6a7d8 100644 --- a/frontend/pages/entry-exit/entry/[id].vue +++ b/frontend/pages/entry-exit/entry/[id].vue @@ -1,6 +1,6 @@