feat(commercial) : entités M2 fournisseurs + repositories (ERP-86)
Entités jumelles du M1 client, mapping ORM aligné sur la migration ERP-85, sans contact inline (ERP-106) : - Supplier (#[Auditable] + Timestampable/Blamable) : formulaire principal, Information (+ volumeForecast), Comptabilité (FK référentiels M1), archivage, soft-delete préparé. Catégories M2M via CategoryInterface (règle n°1). - SupplierContact / SupplierAddress (enum addressType, bennes, triageProvider) / SupplierRib. - Repositories : interfaces Domain + impls Doctrine. DoctrineSupplierRepository porte les fetch-joins anti-N+1 de la liste (categories + addresses.sites en 2 passes, pattern ERP-100) et les filtres (search companyName + contacts, categoryCode, siteId, archivage). Contrat de sérialisation (RETEX M1, 3 maillons posés sur l'entité) : read-groups sur les propriétés, getters isArchived/isTriageProvider avec SerializedName, embed contacts/addresses (supplier:item:read) et ribs (supplier:read:accounting). L'#[ApiResource] + Provider/Processor sont au ticket suivant (ERP-87). Validation FR (ERP-107) : messages FR sur toutes les contraintes, Length(max) calé sur les colonnes. Garde-fou EntityConstraintsHaveFrenchMessageTest étendu (Assert\Choice + whitelist addressType/postalCode). Clés i18n audit des 4 entités ajoutées. make test : 483/483 OK.
This commit is contained in:
@@ -259,7 +259,11 @@
|
||||
"commercial_client": "Client",
|
||||
"commercial_clientaddress": "Adresse client",
|
||||
"commercial_clientcontact": "Contact client",
|
||||
"commercial_clientrib": "RIB client"
|
||||
"commercial_clientrib": "RIB client",
|
||||
"commercial_supplier": "Fournisseur",
|
||||
"commercial_supplieraddress": "Adresse fournisseur",
|
||||
"commercial_suppliercontact": "Contact fournisseur",
|
||||
"commercial_supplierrib": "RIB fournisseur"
|
||||
},
|
||||
"empty": "Aucune activité enregistrée",
|
||||
"no_results": "Aucun résultat pour ces filtres",
|
||||
|
||||
Reference in New Issue
Block a user