feat(transport) : exclut les courtiers du select clients (filtre excludeCategoryCode)
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 2m11s
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 5m35s

This commit is contained in:
2026-06-29 09:32:37 +02:00
parent d737535688
commit 9cd1e096f7
6 changed files with 75 additions and 5 deletions
@@ -355,6 +355,29 @@ final class ClientApiTest extends AbstractCommercialApiTestCase
self::assertNotContains('FILTRE SECTEUR CO', $names);
}
/**
* Le module Transport ecarte les courtiers de ses selects clients via
* ?excludeCategoryCode=COURTIER : tout client portant la categorie COURTIER
* est exclu (NOT IN), y compris s'il porte EN PLUS une autre categorie.
*/
public function testListExcludeCategoryCodeRemovesBrokers(): void
{
$client = $this->createAdminClient();
$this->seedClient('Exclu Distrib Co', false, 'DISTRIBUTEUR');
$this->seedClient('Exclu Courtier Co', false, 'COURTIER');
// Client multi-categories DISTRIBUTEUR + COURTIER : doit etre exclu malgre
// sa categorie DISTRIBUTEUR (l'exclusion porte sur « possede COURTIER »).
$mixed = $this->seedClient('Exclu Mixte Co', false, 'DISTRIBUTEUR');
$mixed->addCategory($this->createCategory('COURTIER'));
$this->getEm()->flush();
$names = $this->companyNames($client, '/api/clients?pagination=false&excludeCategoryCode=COURTIER');
self::assertContains('EXCLU DISTRIB CO', $names);
self::assertNotContains('EXCLU COURTIER CO', $names);
self::assertNotContains('EXCLU MIXTE CO', $names);
}
/**
* ERP-62 (drawer) : filtre Sites (?siteId[]=X) — clients ayant >= 1 adresse
* rattachee au site donne.