Conflit modify/delete sur ClientInformationCompletenessValidator resolu en gardant la SUPPRESSION (RG-1.04 retiree). Le commentaire de SupplierInformationCompletenessValidator (M2) ne reference plus la classe M1 supprimee. develop integre jusqu'a v0.1.96 (M2 fournisseurs). Suites back (578) + front (256) vertes apres test-db-setup.
Au passage consultation <-> edition d'un client, l'onglet courant (Information / Contact / Adresse / Comptabilite...) est conserve dans les deux sens, transmis via history.state (l'URL ne change pas — etat d'UI hors URL).
- Nouveau util shared readHistoryTab : lit history.state.tab et le valide contre les onglets autorises (fallback Information : navigation directe, refresh, onglet hors role).
- Consultation goEdit et edition goBack posent l'onglet courant ; chaque page initialise activeTab depuis l'historique.
- Test unitaire du util (present/valide, hors-cles, absent, valeur non-string).
Surcharge du style par defaut de MalioDataTable (titres et corps en bleu m-primary, 20px/18px) via un style scoped + classe marqueur clients-table : titres de colonne noirs 16px, texte du corps noir 14px. Tags de site passes de text-xs (12px) a text-sm (14px).
Le textarea (h-full) remplissait toute la cellule alors que les inputs ont un champ de 40px centre dans un conteneur h-12 (~4px de coussin haut ET bas). Le composant n'appliquait qu'un pt-1 (haut) : ajout d'un pb-1 symetrique pour aligner le bord bas. Applique aux 3 ecrans client (creation / edition / consultation).
Une erreur de l'API d'autocompletion (BAN) ne bascule plus le champ Adresse en saisie libre de maniere definitive : l'autocompletion reste montee et chaque frappe relance la recherche (le flag degrade etait verrouille a true sans jamais etre reinitialise).
- Garde min. 3 caracteres avant l'appel BAN (evite le 400 de l'API).
- Ville : repli saisie libre conserve mais recuperable (re-saisir le code postal repasse en select au succes).
- Avertissement « service indisponible » emis une seule fois.
- Tests Vitest : pas d'appel < 3 car., relance apres erreur, emission unique de l'evenement.
L'onglet Information n'est plus obligatoire pour le role metier Commerciale : il devient facultatif pour tous les roles, cote back comme cote front (le front l'etait deja).
- Suppression du validateur ClientInformationCompletenessValidator et de son gating (validateInformationCompleteness / currentUserIsCommerciale) dans ClientProcessor. Security conserve (gating accounting/archive/manage).
- Tests : retrait des 3 tests RG-1.04 (ClientProcessorTest) ; POST Commerciale attendu en 201 et suppression du test dedie (ClientRBACMatrixTest).
- Coherence : commentaires de colonnes BDD (catalogue + migration d'init) passes a « Facultatif », nettoyage des references RG-1.04 (BusinessRoles, RbacSeeder, User, fixtures, front, specs M1, README). Le role metier Commerciale et ses permissions RBAC restent inchanges.
- Pas de migration de schema (colonnes Information deja nullable).
Les blocs RIB ne s'affichent plus que si le type de reglement est une LCR (RG-1.13).
- Creation / edition : blocs + bouton « + RIB » conditionnes a LCR (computed visibleRibs) ; basculer hors LCR vide la liste (et marque les RIB persistes pour suppression serveur en edition) pour ne pas soumettre de RIB fantome ; plus d'amorce inconditionnelle d'un bloc vide.
- Consultation : plus de bloc RIB vide affiche quand le client n'a aucun RIB (la collection vraie est rendue, sans placeholder).
Les champs « Relation » (depend du distributeur/courtier) et « Prestation de triage » du bloc principal sont masques par defaut et reveles uniquement quand une categorie ordinaire (autre que Distributeur/Courtier) est selectionnee. Masquer ces champs reinitialise leurs valeurs (pas de relation/triage fantome soumis). Applique a la creation et a l'edition.
- Boutons « ajouter » Adresse/RIB desactives tant que le dernier bloc n'est pas valide (predicats isAddressValid/isRibComplete, reutilises par la validation d'onglet).
- Onglet Information : bouton Valider desactive si aucun champ rempli (pas de validation a vide) — creation uniquement, l'edition garde la possibilite de tout vider.
- Onglet Contact accessible des la creation du client (onglet Information facultatif).