feat(transport) : écran ajout transporteur — layout + formulaire principal (ERP-165) #122

Open
tristan wants to merge 7 commits from feat/erp-165-carrier-new into develop
Owner

Layout onglets + POST /api/carriers. Ticket ERP-165.

⚠️ Stack sur #121 (ERP-164, branche feat/erp-164-carriers-list, non encore mergée) : à merger APRÈS #121. Tant que #121 n'est pas mergé, ce diff inclut ses commits.

Périmètre : page /carriers/new (layout + barre d'onglets Qualimat/Adresses/Contacts/Prix à validation incrémentale), formulaire principal (Nom / Certification / Affréter) → POST /api/carriers, composable useCarrierForm (POST principal + PATCH partiels par onglet). Champs conditionnels + saisie assistée QUALIMAT au ticket suivant (ERP-166).

Layout onglets + POST /api/carriers. Ticket ERP-165. ⚠️ Stack sur #121 (ERP-164, branche `feat/erp-164-carriers-list`, non encore mergée) : à merger APRÈS #121. Tant que #121 n'est pas mergé, ce diff inclut ses commits. Périmètre : page /carriers/new (layout + barre d'onglets Qualimat/Adresses/Contacts/Prix à validation incrémentale), formulaire principal (Nom / Certification / Affréter) → POST /api/carriers, composable useCarrierForm (POST principal + PATCH partiels par onglet). Champs conditionnels + saisie assistée QUALIMAT au ticket suivant (ERP-166).
tristan added 4 commits 2026-06-16 15:05:47 +00:00
feat(transport) : page répertoire transporteurs (ERP-164)
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 2m54s
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 1m33s
1ef4215ebf
feat(transport) : filtres checkbox, toggle « Voir les archivés », transporteurs dans Administration (ERP-164)
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 3m9s
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 1m36s
8046de76c6
chore(frontend) : bump @malio/layer-ui ^1.7.12 + commentaire useSuppliersRepository
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 3m14s
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 1m31s
597c63bb2e
feat(transport) : écran ajout transporteur — layout + formulaire principal (ERP-165)
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 3m11s
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Has been cancelled
5734aaef54
tristan added the frontM4-Transporteurtype/feat labels 2026-06-16 15:05:56 +00:00
tristan added 1 commit 2026-06-16 15:09:52 +00:00
fix(transport) : centre verticalement la case « Affréter » sur la ligne de champ (ERP-165)
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 3m2s
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 1m24s
f1b18cfbbe
tristan added 2 commits 2026-06-17 06:40:04 +00:00
Merge remote-tracking branch 'origin/develop' into feat/erp-164-carriers-list
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 3m1s
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 1m20s
45158af920
Merge branch 'feat/erp-164-carriers-list' into feat/erp-165-carrier-new
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 2m54s
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 1m22s
4202977950
Author
Owner

Review front — ERP-165 (écran ajout, formulaire principal)

Verdict : mergeable (1 réserve UX à confirmer).

Fidèle à clients/new.vue : erreurs 422 inline via useFormErrors, appels { toast: false }, bouton Valider toujours actif, payload qui omet les champs vides pour laisser la 422 métier porter sur le bon champ. Tests pertinents (pré-check nom vide, payload exact, headers ld+json, 409, 422 mappé, gating onglets).

Findings

  • MINOR — Sur un 409 doublon (name), le code fait setError('name', …) ET toast.error(…) → doublon visuel (l'erreur est déjà affichée inline sous le champ). C'est toléré par la référence useCategoryForm (RG-1.07), donc pas une violation stricte, mais à trancher côté UX : l'inline seul suffirait.
  • NIT — Plusieurs sorties du composable (patchCarrier, editMode, validated, buildMainPayload) ne sont pas encore consommées (placeholders des tickets suivants) — assumé, couvert par les tests, pas de code mort réel.

Incrément reviewé : erp-164..erp-165 (front).

## Review front — ERP-165 (écran ajout, formulaire principal) **Verdict : mergeable** (1 réserve UX à confirmer). Fidèle à `clients/new.vue` : erreurs 422 inline via `useFormErrors`, appels `{ toast: false }`, bouton Valider toujours actif, payload qui omet les champs vides pour laisser la 422 métier porter sur le bon champ. Tests pertinents (pré-check nom vide, payload exact, headers `ld+json`, 409, 422 mappé, gating onglets). **Findings** - **MINOR** — Sur un **409 doublon** (`name`), le code fait `setError('name', …)` **ET** `toast.error(…)` → doublon visuel (l'erreur est déjà affichée inline sous le champ). C'est toléré par la référence `useCategoryForm` (RG-1.07), donc pas une violation stricte, mais à trancher côté UX : l'inline seul suffirait. - **NIT** — Plusieurs sorties du composable (`patchCarrier`, `editMode`, `validated`, `buildMainPayload`) ne sont pas encore consommées (placeholders des tickets suivants) — assumé, couvert par les tests, pas de code mort réel. > Incrément reviewé : `erp-164..erp-165` (front).
Some checks are pending
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 2m54s
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 1m22s
This pull request can be merged automatically.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin feat/erp-165-carrier-new:feat/erp-165-carrier-new
git checkout feat/erp-165-carrier-new
Sign in to join this conversation.