feat(commercial) : fixtures Doctrine fournisseurs (≈13 suppliers complets + sous-collections) (ERP-112) #72
Reference in New Issue
Block a user
Delete Branch "feature/ERP-112-fixtures-fournisseurs"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
ERP-112 — Fixtures Doctrine fournisseurs (M2)
SupplierFixtures(calquée surClientFixtures/ ERP-68) : ~13 fournisseurs de démonstration couvrant les cas pivots du répertoire fournisseurs (M2), chargés parmake db-reset.Contenu
companyNamevariés (UPPERCASE serveur), mono et multi-catégories de type FOURNISSEUR (RG-2.10).bennesettriageProvider.Cas pivots
volumeForecast, spécifique fournisseur).accounting.viewne voit pas la compta) — support des tests ERP-92 et du golden path front.Notes
uq_supplier_company_name_active) ; rejouable sans doublon même purger désactivé.test(les tests seedent leurs propres données).Vérifications
make db-reset: 13 fournisseurs (2 archivés), 19 contacts, 15 adresses, 3 RIB chargés sans erreur.--append: compteurs inchangés.make php-cs-fixer-allow-risky: 0 fichier à corriger.make test: 574 tests OK.Base :
feature/ERP-92-tests-phpunit-m2(sommet de la pile M2).Revue — ERP-112 : fixtures Doctrine fournisseurs ✅
Relecture sénior + vérifications relancées localement (pas seulement sur la base du récap).
Vérifications
php-cs-fixer(dry, fichier)make db-reset(chargement réel)--appendFOURNISSEURréférencéeschk_*_contact_name,chk_*_address_type)Verdict
Correct et mergeable. Jumelle fidèle de
ClientFixtures(ERP-68) : même pattern d'idempotence (lookup parcompanyNamenormalisé), mêmes garde-fous (early-return en envtest, résolution inter-modules via les contratsCategoryInterface/SiteProviderInterface).Findings (tous P3 — cosmétique, aucun bug fonctionnel)
SOGEFRPPXXX(SG = code banque30003) mais IBANFR76 30001…(30001= Banque de France). Inoffensif (IBAN valide, BIC non validé contre l'IBAN) et hérité du patternClientFixtures(transports: SOGE +30006/BNP). Décision : laissé tel quel (réutilisation d'IBAN de test connus-valides).tvaMode/paymentDelay/paymentType/bank) : duplication Client/Fournisseur assumée (§2.1 isolation) → ne pas casser.category(ObjectManager $manager, …)garde un paramètre alors que$this->managerexiste → parité voulue avecClientFixtures.Aucune modification demandée : « corriger » ces points dégraderait la cohérence du couple Client/Fournisseur. LGTM.
Suite fonctionnelle M2 assertant sur le CORPS JSON (jamais les annotations), jumelle de la suite clients M1 : - contrat de sérialisation : 4 régressions M1 re-testées (RIB gaté absent pour Commerciale, booléens triageProvider/isArchived présents, embed categories[].code/name, embed sites[].name/postalCode objet) + enveloppe AP4 (member/totalItems/view, archivés exclus) + suppression du contact inline ; - matrice RBAC réelle (app:seed-rbac) bureau/compta/commerciale/usine 200/403, gating accounting par omission de clé, mode strict PATCH (RG-2.16) ; - RG-2.03/2.04/2.05/2.06/2.07/2.08/2.09/2.10/2.11/2.12/2.14/2.15/2.17 ; - sous-ressources contacts/adresses/ribs (CRUD, sécurité, normalisation) ; - anti N+1 liste (compte de requêtes constant), audit Supplier + RIB iban/bic. Fix de contrat découvert et corrigé (sinon DoD figée sur un contrat faux) : les référentiels comptables (TvaMode/PaymentType/PaymentDelay/Bank) ne portaient que le groupe client:read:accounting (M1) → sur un fournisseur ils sortaient en IRI nu. Ajout de supplier:read:accounting → objet {id, code, label} embarqué. makefile : test-db-setup recrée l'index partiel uq_supplier_company_name_active (droppé par schema:update comme pour le client) — oubli M2. DoD § 4.0.bis : réponses JSON RÉELLES (liste + détail admin/commerciale) collées, capturées via SupplierSerializationContractTest.c23a8c17c4toc1e74e30ca