feat(commercial) : SupplierProvider + SupplierProcessor + gating compta (ERP-87) #66

Merged
malio merged 1 commits from feature/ERP-87-provider-processor-m2 into develop 2026-06-08 07:29:51 +00:00

1 Commits

Author SHA1 Message Date
Matthieu b6dc54d179 feat(commercial) : SupplierProvider + SupplierProcessor + gating compta (ERP-87)
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Failing after 1m38s
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 1m7s
Branche les operations API du repertoire fournisseurs (M2), jumelles du M1 :

- SupplierProvider : liste paginee (Paginator ORM), exclusion archives +
  soft-deletes par defaut, filtres includeArchived/categoryCode/siteId/search,
  echappatoire ?pagination=false, item 404 si soft-delete (RG-2.17).
- SupplierProcessor : normalisation companyName, archivage isArchived/archivedAt
  (RG-2.14/2.15), gating fin accounting/manage en mode strict (403 sur tout le
  payload hors-permission, RG-2.16), 409 doublon companyName + conflit de
  restauration (RG-2.11).
- SupplierReadGroupContextBuilder : ajoute supplier:read:accounting au contexte
  de lecture si accounting.view (gating compta + RIB par omission de cle). Un
  Provider ne peut pas influencer les groupes de serialisation : c'est le point
  d'extension idiomatique, miroir de ClientReadGroupContextBuilder.
- SupplierFieldNormalizer : normalisation serveur (RG-2.12).
- Supplier : ajout #[ApiResource] (GetCollection/Get/Post/Patch) wirant
  Provider/Processor.

Validators metier (RG-2.03/2.07/2.08/2.10) = ticket suivant.
make test vert (483/483), php-cs-fixer applique.
2026-06-08 09:25:54 +02:00