Correctifs écran Client (ERP-115) #76

Merged
tristan merged 13 commits from feature/ERP-115-correctifs-front into develop 2026-06-08 14:40:18 +00:00

13 Commits

Author SHA1 Message Date
tristan 7c9f47af23 fix : client filter, package-lock.json, site tag
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 2m3s
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 1m11s
2026-06-08 16:36:49 +02:00
tristan 51676ca195 fix : layout style client + admin
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 2m3s
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Failing after 10s
2026-06-08 16:23:49 +02:00
tristan 5c35f4b8f0 fix : layout style
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 2m4s
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Failing after 10s
2026-06-08 15:56:43 +02:00
tristan bfcb605f2c chore(front) : bump @malio/layer-ui en 1.7.6
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 2m5s
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Failing after 10s
2026-06-08 15:39:14 +02:00
tristan eb09bff499 Merge branch 'develop' into feature/ERP-115-correctifs-front
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 2m4s
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 1m11s
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.
2026-06-08 13:46:50 +02:00
tristan ebcc5e0cea feat(commercial) : conserve l'onglet actif entre consultation et edition client
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 1m42s
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 1m10s
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).
2026-06-08 13:39:35 +02:00
tristan ad110f6c24 style(commercial) : repertoire client — titres 16px / corps + tags 14px, texte en noir
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).
2026-06-08 12:46:58 +02:00
tristan 5441bb3a75 fix(commercial) : aligne le bas du textarea description sur les autres champs
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).
2026-06-08 12:38:05 +02:00
tristan e06bc79127 fix(address) : recherche adresse BAN — retry apres erreur + garde 3 caracteres
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.
2026-06-08 12:29:25 +02:00
tristan 27f2dcd4c0 fix(commercial) : retrait RG-1.04 (onglet Information facultatif pour tous)
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).
2026-06-08 12:17:16 +02:00
tristan 613aaa88c9 fix(commercial) : masquage RIB hors LCR (forms + consultation)
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).
2026-06-08 11:00:37 +02:00
tristan 8d80781e8c fix(commercial) : masque Relation / Prestation de triage selon la categorie (formulaire client)
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.
2026-06-08 10:23:42 +02:00
tristan 0df18da00c fix(commercial) : corrections formulaire client (ajout de bloc, onglet Information)
- 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).
2026-06-08 09:58:34 +02:00