feat(front) : page modification client + patch par onglet (ERP-65) #51

Merged
tristan merged 1 commits from feature/ERP-65-page-modification-client into develop 2026-06-03 10:51:34 +00:00
Owner

ERP-65 — Page Modification client (1.12)

Écran d'édition client à plat /clients/[id]/edit, pré-rempli depuis GET /clients/{id} (via useClient), édition indépendante par onglet avec PATCH scopé au groupe de sérialisation dédié (mode strict ERP-74).

Périmètre

  • Bloc principal conservé (décision produit) : éditable, PATCH /clients/{id} scopé client:write:main.
  • Onglets Information / Comptabilité : PATCH /clients/{id} scopés à leur groupe ; Contacts / Adresses / RIBs via leurs sous-ressources (POST nouveau / PATCH existant / DELETE retiré).
  • Gating readonly par permission : manage → bloc principal + Info/Contact/Adresse éditables ; Comptabilité visible ssi accounting.view, éditable ssi accounting.manage. Garde de route si ni manage ni accounting.manage.
  • Pas de miroir RG-1.04 côté front (cohérent avec la création — le 422 serveur remonte au toast).
  • Chargement résilient des référentiels (loadCommonPromise.allSettled) + options en union avec l'embed, pour que les selects comptables de Compta se chargent malgré les 403 sur /categories+/sites, et que les valeurs courantes s'affichent toujours.

Tests / vérifications

  • Vitest : 22 nouveaux tests (clientEdit.spec.ts — scoping strict par groupe + gating par rôle + mappers) ; suite 180/180 OK, aucune régression.
  • ESLint propre.
  • Golden path navigateur (Admin + Compta) : pré-remplissage, PATCH Information strictement scopé (corps = 7 champs information), gating readonly Compta, référentiels comptables chargés malgré 403 categories/sites, PATCH comptable Compta OK (200).

À signaler (hors périmètre)

Les rôles métier (Bureau/Commerciale/Compta) n'ont pas catalog.categories.view/sites.view → 403 sur /categories//sites. La page se dégrade proprement (valeurs courantes via embed) mais ajouter une nouvelle catégorie/site est impossible pour ces rôles (même limite que la création). Correctif = ticket RBAC backend (3 miroirs).

## ERP-65 — Page Modification client (1.12) Écran d'édition client à plat `/clients/[id]/edit`, pré-rempli depuis `GET /clients/{id}` (via `useClient`), édition **indépendante par onglet** avec PATCH **scopé au groupe de sérialisation dédié** (mode strict ERP-74). ### Périmètre - **Bloc principal conservé** (décision produit) : éditable, PATCH `/clients/{id}` scopé `client:write:main`. - Onglets **Information** / **Comptabilité** : PATCH `/clients/{id}` scopés à leur groupe ; **Contacts / Adresses / RIBs** via leurs sous-ressources (POST nouveau / PATCH existant / DELETE retiré). - **Gating readonly par permission** : `manage` → bloc principal + Info/Contact/Adresse éditables ; Comptabilité visible ssi `accounting.view`, éditable ssi `accounting.manage`. Garde de route si ni `manage` ni `accounting.manage`. - **Pas de miroir RG-1.04 côté front** (cohérent avec la création — le 422 serveur remonte au toast). - **Chargement résilient des référentiels** (`loadCommon` → `Promise.allSettled`) + options en **union avec l'embed**, pour que les selects comptables de Compta se chargent malgré les 403 sur `/categories`+`/sites`, et que les valeurs courantes s'affichent toujours. ### Tests / vérifications - Vitest : 22 nouveaux tests (`clientEdit.spec.ts` — scoping strict par groupe + gating par rôle + mappers) ; suite **180/180 OK**, aucune régression. - ESLint propre. - Golden path navigateur (Admin + Compta) : pré-remplissage, PATCH Information strictement scopé (corps = 7 champs information), gating readonly Compta, référentiels comptables chargés malgré 403 categories/sites, PATCH comptable Compta OK (200). ### À signaler (hors périmètre) Les rôles métier (Bureau/Commerciale/Compta) n'ont pas `catalog.categories.view`/`sites.view` → 403 sur `/categories`/`/sites`. La page se dégrade proprement (valeurs courantes via embed) mais **ajouter une nouvelle catégorie/site** est impossible pour ces rôles (même limite que la création). Correctif = ticket RBAC backend (3 miroirs).
tristan added 1 commit 2026-06-03 10:47:00 +00:00
feat(front) : page modification client + patch par onglet (ERP-65)
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 1m52s
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 1m13s
30c7b6de78
Ecran d'edition client a plat (/clients/[id]/edit), pre-rempli depuis
GET /clients/{id}, edition independante par onglet avec PATCH scope au
groupe de serialisation dedie (mode strict ERP-74) :
- bloc principal conserve (groupe client:write:main)
- onglets Information / Comptabilite via PATCH /clients/{id} scopes
- Contacts / Adresses / RIBs via leurs sous-ressources (POST/PATCH/DELETE)
- gating readonly par permission (manage vs accounting.manage)
- chargement resilient des referentiels (allSettled) + options en union
  avec l'embed pour les roles sans categories/sites.view (403)

Logique pure testee (clientEdit.ts) ; 22 tests Vitest.
tristan added the frontM1-Clienttype/feat labels 2026-06-03 10:49:11 +00:00
tristan merged commit bc7c8f6f83 into develop 2026-06-03 10:51:34 +00:00
tristan deleted branch feature/ERP-65-page-modification-client 2026-06-03 10:51:34 +00:00
Sign in to join this conversation.