diff --git a/frontend/pages/entry-exit/entry/[id].vue b/frontend/pages/entry-exit/entry/[id].vue
index 499d8f4..052cab4 100644
--- a/frontend/pages/entry-exit/entry/[id].vue
+++ b/frontend/pages/entry-exit/entry/[id].vue
@@ -116,7 +116,9 @@
Valider l'entrée
@@ -144,6 +146,7 @@ const buildings = ref([])
const savedBovines = ref([])
const isAdding = ref(false)
+const isValidating = ref(false)
const recapPage = ref(1)
const recapPerPage = ref(50)
@@ -181,6 +184,25 @@ const confirmDeleteBovine = async (bovine: BovineData) => {
await loadSavedBovines()
}
+const validateEntry = async () => {
+ if (savedBovines.value.length === 0 || isValidating.value) return
+
+ if (savedBovines.value.length < declaredCount.value) {
+ const confirmed = window.confirm(
+ `Vous n'avez saisi que ${savedBovines.value.length}/${declaredCount.value} bovins. Confirmer la fermeture de l'entrée ?`
+ )
+ if (!confirmed) return
+ }
+
+ isValidating.value = true
+ try {
+ await api.patch(`receptions/${receptionId.value}`, { entryCompleted: true })
+ router.push('/entry-exit')
+ } finally {
+ isValidating.value = false
+ }
+}
+
interface FormState {
nationalNumber: string
receivedWeight: number | null