feat(commercial) : referentiel pays (country) en base + branchement front (ERP-116) #79

Merged
matthieu merged 7 commits from feature/ERP-116-country-referentiel into develop 2026-06-11 08:09:39 +00:00
Owner

Objectif (ERP-116, 1re iteration minimale)

Sortir la liste des pays du code en dur cote front et la poser en base comme referentiel country, source unique du select pays. Perimetre volontairement minimal : code ISO + libelle + ordre uniquement — aucune longueur bancaire/fiscale (numero de compte, IBAN, TVA, BIC, SIREN) a ce stade.

Backend

  • Entite Country (code ISO 3166-1 alpha-2 unique, name, position), calquee sur Bank : referentiel statique lecture seule (GetCollection + Get), gating commercial.clients.view OR commercial.suppliers.view.
  • Migration Version20260609100000 : table country + COMMENT ON COLUMN + seed des 6 pays (France, Allemagne, Belgique, Espagne, Italie, Royaume-Uni), ON CONFLICT DO NOTHING.
  • CommercialReferentialFixtures : re-seed des pays en dev/test.
  • Garde-fous : ajout au ColumnCommentsCatalog + whitelist EntitiesAreTimestampableBlamableTest.

Frontend

  • useClientReferentials charge /countries (value = nom du pays : l'adresse stocke country en chaine libre, pas de FK ni migration de donnees).
  • Les 3 listes countryOptions en dur (clients new / edit / consultation) sont supprimees ; la consultation derive ses options de l'embed.

Hors-scope (iterations suivantes du ticket)

  • Longueurs bancaires/fiscales par pays + validation associee.
  • FK country_id sur les adresses + migration de donnees.

Tests

  • Back : suite complete verte (583), tests API dedies countries (200/seed/405/403/401).
  • Front : Vitest vert (256), spec useClientReferentials mise a jour.
  • Migration appliquee en dev + test.
## Objectif (ERP-116, 1re iteration minimale) Sortir la liste des pays du **code en dur** cote front et la poser en base comme **referentiel `country`**, source unique du select pays. **Perimetre volontairement minimal** : code ISO + libelle + ordre uniquement — **aucune longueur bancaire/fiscale** (numero de compte, IBAN, TVA, BIC, SIREN) a ce stade. ## Backend - Entite `Country` (`code` ISO 3166-1 alpha-2 unique, `name`, `position`), calquee sur `Bank` : referentiel statique **lecture seule** (`GetCollection` + `Get`), gating `commercial.clients.view OR commercial.suppliers.view`. - Migration `Version20260609100000` : table `country` + `COMMENT ON COLUMN` + seed des **6 pays** (France, Allemagne, Belgique, Espagne, Italie, Royaume-Uni), `ON CONFLICT DO NOTHING`. - `CommercialReferentialFixtures` : re-seed des pays en dev/test. - Garde-fous : ajout au `ColumnCommentsCatalog` + whitelist `EntitiesAreTimestampableBlamableTest`. ## Frontend - `useClientReferentials` charge `/countries` (value = **nom** du pays : l'adresse stocke `country` en chaine libre, **pas de FK ni migration de donnees**). - Les 3 listes `countryOptions` en dur (clients new / edit / consultation) sont supprimees ; la consultation derive ses options de l'embed. ## Hors-scope (iterations suivantes du ticket) - Longueurs bancaires/fiscales par pays + validation associee. - FK `country_id` sur les adresses + migration de donnees. ## Tests - Back : suite complete verte (583), tests API dedies countries (200/seed/405/403/401). - Front : Vitest vert (256), spec `useClientReferentials` mise a jour. - Migration appliquee en dev + test.
matthieu added 1 commit 2026-06-09 08:31:55 +00:00
feat(commercial) : referentiel pays (country) en base + branchement front (ERP-116)
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Has been cancelled
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Has been cancelled
e40e053950
Cree la table country (referentiel statique : code ISO alpha-2, name, position)
seedee avec 6 pays (France, Allemagne, Belgique, Espagne, Italie, Royaume-Uni),
exposee en lecture seule via /api/countries (GetCollection + Get, gating aligne
sur Bank). Perimetre minimal volontaire : aucune longueur bancaire/fiscale a ce
stade (iteration ulterieure du ticket).

Front : la liste des pays jusqu'ici codee en dur dans les 3 ecrans clients est
remplacee par le referentiel charge via useClientReferentials (value = nom du
pays, l'adresse continuant de stocker country en chaine libre : pas de FK ni de
migration de donnees). Consultation : options derivees de l'embed.

Garde-fous : country ajoute a ColumnCommentsCatalog + whitelist
EntitiesAreTimestampableBlamableTest ; tests API dedies (200/seed/405/403/401).
matthieu added the backdbfrontM1-Clienttype/feat labels 2026-06-09 08:32:20 +00:00
matthieu added 1 commit 2026-06-09 08:36:00 +00:00
feat(commercial) : ajoute la Suisse (CH) au referentiel pays (ERP-116)
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 2m2s
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 1m8s
461361ffcc
matthieu added 1 commit 2026-06-09 08:44:27 +00:00
Merge branch 'develop' into feature/ERP-116-country-referentiel
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 2m5s
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 1m8s
c874f41ca9
matthieu added 1 commit 2026-06-09 08:53:49 +00:00
fix(commercial) : merge pays embed dans countryOptions (clients) + desc migration (ERP-116)
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 2m4s
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 1m9s
4b4a1f830c
- edit.vue : countryOptions merge la valeur country deja stockee sur chaque
  adresse, comme les autres selects de l'ecran (resilience ERP-102 : le select
  ne se vide plus si /countries echoue ou si un pays est hors referentiel).
- new.vue : France garantie en fallback dans les options si /countries echoue
  (coherent avec la preselection par defaut du draft d'adresse).
- migration : getDescription corrigee (7 pays seedes, Suisse incluse).
matthieu added 1 commit 2026-06-11 06:15:48 +00:00
Merge branch 'develop' into feature/ERP-116-country-referentiel
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 2m5s
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 1m11s
d48eb1a496
matthieu added 1 commit 2026-06-11 07:38:38 +00:00
Merge branch 'develop' into feature/ERP-116-country-referentiel
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 2m10s
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 1m14s
77e2fb3f7c
matthieu added 1 commit 2026-06-11 08:04:54 +00:00
feat(commercial) : aligne la liste des pays fournisseurs sur le referentiel Country (ERP-116)
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 2m14s
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 1m19s
6183bdb638
Les ecrans fournisseurs (new / edit / consultation) utilisaient une liste de
pays codee en dur (France, Espagne) au lieu du referentiel /countries deja
branche cote clients. Resultat : la Suisse et les autres pays du referentiel
n'apparaissaient pas dans les adresses fournisseurs.

useSupplierReferentials charge desormais /countries (miroir de
useClientReferentials), et les 3 pages derivent countryOptions du referentiel
(France garantie en tete sur new, union avec l'embed sur edit, valeurs des
adresses sur la consultation).
matthieu merged commit 3f356f0679 into develop 2026-06-11 08:09:39 +00:00
matthieu deleted branch feature/ERP-116-country-referentiel 2026-06-11 08:09:39 +00:00
Sign in to join this conversation.