feat(front) : page consultation client + archivage
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 1m13s

Ecran de consultation client en lecture seule (route /clients/[id], ERP-64) :
- composable useClient(id) : chargement du detail (embed contacts/adresses/ribs),
  archivage/restauration (PATCH isArchived seul, refetch complet, 409 RG-1.23 propage)
- formulaire principal + 8 onglets readonly (navigation libre), onglet Comptabilite
  visible uniquement avec accounting.view
- boutons Modifier (manage OU accounting.manage), Archiver/Restaurer (archive)
- libelles categories/sites/referentiels lus depuis l'embed (role-independant,
  /categories et /sites etant en 403 pour les roles metier)
- ClientAddressBlock : affichage readonly de la ville et de la rue corrige
This commit is contained in:
2026-06-03 11:34:49 +02:00
parent 19148800ba
commit 52603971a0
7 changed files with 1238 additions and 5 deletions
+18 -1
View File
@@ -87,7 +87,24 @@
"archiveSuccess": "Client archivé avec succès",
"restoreSuccess": "Client restauré avec succès",
"error": "Une erreur est survenue. Réessayez.",
"exportError": "L'export du répertoire clients a échoué. Réessayez."
"exportError": "L'export du répertoire clients a échoué. Réessayez.",
"restoreConflict": "Impossible de restaurer : un client actif portant ce nom existe déjà."
},
"consultation": {
"title": "Consultation client",
"back": "Retour au répertoire",
"loading": "Chargement du client…",
"notFound": "Client introuvable.",
"emptyContacts": "Aucun contact enregistré.",
"emptyAddresses": "Aucune adresse enregistrée.",
"confirmArchive": {
"title": "Archiver le client",
"message": "Ce client n'apparaîtra plus dans le répertoire actif. Confirmer l'archivage ?"
},
"confirmRestore": {
"title": "Restaurer le client",
"message": "Ce client réapparaîtra dans le répertoire actif. Confirmer la restauration ?"
}
},
"validation": {
"informationRequiredForCommercial": "Les informations de l'entreprise sont obligatoires pour le rôle Commerciale.",