feat(commercial) : enforce RG-1.29 by category code on address

ClientAddress::validateCategoryCodes interdit desormais les Category de code
DISTRIBUTEUR/COURTIER sur une adresse (denylist), toute autre categorie etant
autorisee. Fixtures clients alignees (tiers distributeur/courtier via Category
de code dedie).
This commit is contained in:
Matthieu
2026-06-02 09:20:58 +02:00
parent 596f716076
commit dad5e33006
3 changed files with 26 additions and 21 deletions
@@ -54,9 +54,9 @@ use Symfony\Component\DependencyInjection\Attribute\Autowire;
*
* Audit / Blamable : persist hors contexte HTTP -> created_by / updated_by
* restent null (« Systeme » cote front), c'est attendu. Les donnees respectent
* les CHECK BDD ET les validators applicatifs ERP-76 (exclusivite Prospect,
* billingEmail ssi facturation, aucune categorie DISTRIBUTEUR/COURTIER sur une
* adresse).
* les CHECK BDD ET les validators applicatifs (exclusivite Prospect, billingEmail
* ssi facturation, aucune categorie de code DISTRIBUTEUR/COURTIER sur une adresse
* — RG-1.29, ERP-78).
*
* Depend de CategoryFixtures (categories), SitesFixtures (sites) et
* CommercialReferentialFixtures (referentiels comptables Bank / PaymentType).
@@ -116,7 +116,7 @@ class ClientFixtures extends Fixture implements DependentFixtureInterface
lastName: 'Garnier',
phonePrimary: '05 56 10 20 30',
email: 'contact@distrib-gso.fr',
categoryNames: ['Distributeur Grand Sud-Ouest'],
categoryNames: ['Distributeur'],
);
if ($gsoIsNew) {
$this->addContact($gso, 'Paul', 'Garnier', 'Directeur commercial', '05 56 10 20 30', null, 'paul.garnier@distrib-gso.fr');
@@ -131,7 +131,7 @@ class ClientFixtures extends Fixture implements DependentFixtureInterface
lastName: 'Léonard',
phonePrimary: '05 49 11 22 33',
email: 'contact@cabinet-leonard.fr',
categoryNames: ['Cabinet de courtage Léonard'],
categoryNames: ['Courtier'],
);
if ($leonardIsNew) {
$this->addContact($leonard, 'Sophie', 'Léonard', 'Gérante', '05 49 11 22 33', null, 'sophie.leonard@cabinet-leonard.fr');
@@ -422,11 +422,11 @@ class ClientFixtures extends Fixture implements DependentFixtureInterface
/**
* Ajoute une adresse au client (cascade persist via Client.addresses). Les
* donnees respectent les validators ERP-76 : exclusivite Prospect,
* billingEmail ssi facturation, categories limitees a SECTEUR/AUTRE.
* donnees respectent les validators : exclusivite Prospect, billingEmail ssi
* facturation, aucune categorie de code DISTRIBUTEUR/COURTIER (RG-1.29).
*
* @param list<string> $siteNames au moins un site (RG-1.10)
* @param list<string> $categoryNames categories SECTEUR/AUTRE uniquement (RG-1.29)
* @param list<string> $categoryNames categories hors DISTRIBUTEUR/COURTIER (RG-1.29)
*/
private function addAddress(
Client $client,