feat(commercial) : catégories de type Adresse pour les blocs adresse (client + fournisseur)
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 51s
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 2m24s

Introduit un CategoryType dédié ADRESSE (module Catalog) consommé par le champ
« Catégorie » des blocs adresse, en remplacement de la réutilisation détournée des
types CLIENT/FOURNISSEUR.

- Migration de seed du type ADRESSE + 6 catégories (Siège, Contact issues,
  Facturation, Livraison, Approvisionnement, Méthaniseur) ; fixtures alignées.
- ClientAddress : validation blacklist (DISTRIBUTEUR/COURTIER) remplacée par une
  whitelist « catégories de type ADRESSE uniquement ».
- SupplierAddress : type requis FOURNISSEUR -> ADRESSE (le bloc principal
  fournisseur reste en FOURNISSEUR).
- Front : ref dédiée addressCategories (typeCode=ADRESSE) dans les composables
  référentiels client et fournisseur ; pages new/edit câblées sur les blocs adresse.
- Tests : CategoryAdresseSeedTest + adaptation des tests d'adresse client/fournisseur.
This commit is contained in:
2026-06-25 09:22:24 +02:00
parent 2e50a760c6
commit 55c136df66
22 changed files with 444 additions and 168 deletions
@@ -203,7 +203,7 @@ final class ClientSubResourceApiTest extends AbstractCommercialApiTestCase
$client = $this->createAdminClient();
$seed = $this->seedClient('Address Host');
$siteIri = $this->firstSiteIri();
$category = $this->createCategory('SECTEUR');
$category = $this->createAddressCategory();
$data = $client->request('POST', '/api/clients/'.$seed->getId().'/addresses', [
'headers' => ['Content-Type' => self::LD],
@@ -276,7 +276,7 @@ final class ClientSubResourceApiTest extends AbstractCommercialApiTestCase
$client = $this->createAdminClient();
$seed = $this->seedClient('Addr Multi');
$siteIri = $this->firstSiteIri();
$category = $this->createCategory('SECTEUR');
$category = $this->createAddressCategory();
$this->seedAddress($seed, 'Bordeaux');
$this->seedAddress($seed, 'Lyon');
@@ -305,7 +305,7 @@ final class ClientSubResourceApiTest extends AbstractCommercialApiTestCase
$this->skipIfSitesModuleDisabled();
$client = $this->createAdminClient();
$siteIri = $this->firstSiteIri();
$category = $this->createCategory('SECTEUR');
$category = $this->createAddressCategory();
$client->request('POST', '/api/clients/999999/addresses', [
'headers' => ['Content-Type' => self::LD, 'Accept' => self::LD],