From 5f4139fde33e16dee69129250b24101d2da0b0c5 Mon Sep 17 00:00:00 2001 From: kevin Date: Wed, 11 Feb 2026 16:12:33 +0100 Subject: [PATCH] feat : ajout d'une page de creation d'une expedition --- CHANGELOG.md | 3 + .../components/reception/reception-form.vue | 4 +- .../components/reception/reception-weight.vue | 4 +- .../components/shipment/shipment-form.vue | 237 ++++++++------ .../components/shipment/shipment-weight.vue | 101 ++++++ frontend/components/user/user-form.vue | 123 -------- frontend/composables/usePdfPrinter.ts | 30 +- frontend/composables/useWeighing.ts | 93 ++++++ frontend/i18n/locales/fr.json | 9 + frontend/pages/admin/dashboard.vue | 2 - frontend/pages/admin/user/[[id]].vue | 119 ++++++- frontend/pages/reception/update/[[id]].vue | 4 +- frontend/pages/shipment/[[id]].vue | 22 +- frontend/services/dto/shipment-data.ts | 14 + frontend/services/shipment-type.ts | 2 +- frontend/services/shipment.ts | 2 +- frontend/services/weight.ts | 3 +- frontend/utils/constants.ts | 2 +- migrations/Version20260211075656.php | 49 +++ migrations/Version20260211123000.php | 38 +++ src/Dto/PontBasculeReading.php | 6 +- src/Entity/Address.php | 41 ++- src/Entity/Driver.php | 4 +- src/Entity/Shipment.php | 199 +++++++++--- src/Entity/Truck.php | 4 +- src/Entity/User.php | 4 +- src/Entity/Weight.php | 38 ++- src/State/ShipmentReceiptProvider.php | 63 ++++ src/State/ShipmentWeighingProvider.php | 30 ++ templates/reception_voucher.html.twig | 106 ++++--- templates/shipment_voucher.html.twig | 292 ++++++++++++++++++ 31 files changed, 1292 insertions(+), 356 deletions(-) create mode 100644 frontend/components/shipment/shipment-weight.vue delete mode 100644 frontend/components/user/user-form.vue create mode 100644 migrations/Version20260211075656.php create mode 100644 migrations/Version20260211123000.php create mode 100644 src/State/ShipmentReceiptProvider.php create mode 100644 src/State/ShipmentWeighingProvider.php create mode 100644 templates/shipment_voucher.html.twig diff --git a/CHANGELOG.md b/CHANGELOG.md index 308b37e..816a8d0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,6 +34,9 @@ Ajouter dans le fichier .env du frontend * [#315] Creation page admin utilisateur * [#317] Admin modification creation transporteur * [#318] Affichage modification reception terminée +* [#271] Créer une nouvelle expédition (étape 1) +* [#256] Créer une nouvelle réception (étape 3 - bovin) +* [#314] Création d'une page d'administration : listing des utilisateurs ### Changed diff --git a/frontend/components/reception/reception-form.vue b/frontend/components/reception/reception-form.vue index 063a363..93d2daf 100644 --- a/frontend/components/reception/reception-form.vue +++ b/frontend/components/reception/reception-form.vue @@ -142,7 +142,7 @@ import type {DriverData} from '~/services/dto/driver-data' import {getDriverList} from '~/services/driver' import type {VehicleData} from '~/services/dto/vehicle-data' import {getVehicleList} from '~/services/vehicle' -import {RECEPTION_TYPE_CODES, SUPLLIER_CODE} from "~/utils/constants"; +import {RECEPTION_TYPE_CODES, SUPPLIER_CODE} from "~/utils/constants"; import {deleteReceptionBovine, getReceptionBovineList} from "~/services/reception-bovine"; import type {ReceptionFormData} from "~/services/dto/reception-data"; @@ -183,7 +183,7 @@ const selectedCarrier = computed(() => carriers.value.find((carrier) => String(carrier.id) === form.carrierId) ?? null ) // Indique si le transporteur est LIOT -const isLiotCarrier = computed(() => selectedCarrier.value?.code === SUPLLIER_CODE.LIOT) +const isLiotCarrier = computed(() => selectedCarrier.value?.code === SUPPLIER_CODE.LIOT) // Adresses disponibles pour le fournisseur sélectionné const supplierAddresses = computed(() => { const supplierId = Number(form.supplierId) diff --git a/frontend/components/reception/reception-weight.vue b/frontend/components/reception/reception-weight.vue index 7e624d7..5547810 100644 --- a/frontend/components/reception/reception-weight.vue +++ b/frontend/components/reception/reception-weight.vue @@ -74,7 +74,9 @@ const printReceipt = async () => { } await saveWeight() - await printPdf(`/receptions/${receptionStore.current.id}/receipt`) + const reception = receptionStore.current + const filename = `${reception.identificationNumber ?? reception.id}_${reception.supplier?.name ?? 'fournisseur'}_${reception.licensePlate ?? 'immat'}.pdf` + await printPdf(`/receptions/${reception.id}/receipt`, filename) // Laisse le temps a la boite de dialogue d'impression de s'ouvrir. await new Promise((resolve) => setTimeout(resolve, 600)) diff --git a/frontend/components/shipment/shipment-form.vue b/frontend/components/shipment/shipment-form.vue index 2e50dae..1eb026a 100644 --- a/frontend/components/shipment/shipment-form.vue +++ b/frontend/components/shipment/shipment-form.vue @@ -1,10 +1,12 @@