- Relation Distributeur/Courtier : libelles « Depend du distributeur/courtier »,
select optionnel ; le nom (distributeur ou courtier) devient requis quand la
relation correspondante est choisie.
- Categorie : au moins 1 obligatoire dans le formulaire principal (aligne sur
Assert\Count(min:1) du back).
- Bouton « Valider » de l'onglet Information desactive tant que le client n'est
pas cree (l'onglet est actif par defaut) : evite tout PATCH premature.
- Gestion d'erreur : les toasts d'erreur passent toujours une chaine (corrige un
crash izitoast sur message undefined) et remontent le message de validation du
serveur (violations 422) sur tous les onglets.
- Layout maquette : en-tete avec retour, grille 3 colonnes (gap-x-[80px]),
cartes ombrees pour les onglets, boutons Valider centres, libelles ajustes.
- Telephones du formulaire principal en tableau (1 par defaut, + revele le 2e).
- Information : Description en row-span-2 (alignement corrige via pt-1),
Nombre de salaries en MalioInputText masque chiffres.
- Adresse : carte ombree, suppression en absolute, sites en cases a cocher
inline, pays France/Espagne, exclusivite Prospect appliquee au toggle.
- Onglets : icones par onglet (TAB_ICONS) ; Statistiques / Rapports / Echanges
passent en edit-only (absents a la creation, option includeEditOnlyTabs pour
la modification).
- pages/clients/new.vue : route /clients/new gatee par commercial.clients.manage.
Formulaire principal (POST /clients) puis validation incrementale des onglets
via MalioTabList ; un onglet valide passe en lecture seule, passage automatique
au suivant. Information (PATCH groupe information), Contact/Adresse (sous-ressources
contacts/addresses), Comptabilite (PATCH scalaires accounting + POST ribs, gate
accounting.view/manage), onglets coquille auto-avances. Mode strict RG-1.28 :
chaque requete ne porte que les champs de son groupe.
- i18n : cles commercial.clients.form.* (formulaire, onglets, confirmation, toasts).
RG-1.04 (Information obligatoire pour la Commerciale) : non miroitee cote front
(roles = IRIs dans /api/me, Bureau == Commerciale en permissions) ; appliquee de
maniere fiable par le back. A rebrancher quand un code de role sera expose.