feat(front) : onglet comptabilite prestataire (ERP-144) #106

Merged
tristan merged 1 commits from feature/ERP-144-onglet-comptabilite-prestataire into develop 2026-06-15 09:15:20 +00:00
Owner

Empilée sur ERP-143 (#105).

Périmètre ERP-144

Onglet Comptabilité de l'écran /providers/new — gated par permission + blocs RIB conditionnels.

  • Champs (Malio*) : SIREN / Numéro de compte / Mode de TVA (/api/tva_modes) / N° de TVA / Délai (/api/payment_delays) / Type de règlement (/api/payment_types) / Banque (/api/banks).
  • RG-3.07 : Banque visible et obligatoire seulement si Type = VIREMENT (affichage conditionnel + payload bank forcé à null sinon).
  • RG-3.08 : blocs RIB (Libellé/BIC/IBAN) affichés et requis si Type = LCR ; « + RIB » gated (dernier RIB complet) / Supprimer (modal). À la validation, POST des RIB AVANT le PATCH des scalaires (le back valide RG-3.08 sur le PATCH).
  • Gating : onglet présent uniquement si technique.providers.accounting.view ; éditable uniquement si .manage (sinon lecture seule). Masqué pour Bureau/Commerciale.
  • « Valider » → PATCH /api/providers/{id} (groupe provider:write:accounting) + sous-ressource RIBs (/providers/{id}/ribs + /provider_ribs/{id}). Erreurs 422 inline (scalaires) et par ligne (RIB).
  • useProviderReferentials.loadAccounting() (chargé seulement si l'onglet est accessible). Helpers purs utils/forms/providerAccounting.ts.
  • i18n technique.providers.form.accounting + confirmDelete.rib.

NB : les placeholders Rapports / Échanges relèvent des écrans Consultation/Modification (ERP-145) — le flux de création ne porte que 3 onglets (Contact/Adresse/Comptabilité), conformément à la spec.

Conformité

  • useApi() only ; Malio* only ; pas de masque email ; aucun texte FR en dur ; pas d'import inter-module (helpers ré-implémentés côté Technique, règle ABSOLUE n°1).

Vérifications

  • Vitest : 454/454 (18 nouveaux : helpers compta RG-3.07/3.08, workflow VIREMENT/LCR, ordre RIB→scalaires, 422 inline + par ligne, lecture seule sans manage).
  • ESLint : OK.
  • nuxi typecheck : 0 erreur sur les fichiers source du ticket.
  • Golden path navigateur : page compile, onglet Comptabilité visible (gating accounting.view OK pour admin). Contenu de l'onglet gaté derrière le déverrouillage des 3 onglets (multiselect Malio non pilotable en a11y) — couvert par les tests unitaires + typecheck.
Empilée sur ERP-143 (#105). ## Périmètre ERP-144 Onglet **Comptabilité** de l'écran `/providers/new` — gated par permission + blocs RIB conditionnels. - Champs (`Malio*`) : SIREN / Numéro de compte / Mode de TVA (`/api/tva_modes`) / N° de TVA / Délai (`/api/payment_delays`) / Type de règlement (`/api/payment_types`) / Banque (`/api/banks`). - **RG-3.07** : Banque visible **et** obligatoire **seulement si** Type = `VIREMENT` (affichage conditionnel + payload `bank` forcé à null sinon). - **RG-3.08** : blocs RIB (Libellé/BIC/IBAN) affichés et requis si Type = `LCR` ; « + RIB » gated (dernier RIB complet) / Supprimer (modal). À la validation, **POST des RIB AVANT** le PATCH des scalaires (le back valide RG-3.08 sur le PATCH). - **Gating** : onglet présent uniquement si `technique.providers.accounting.view` ; **éditable** uniquement si `.manage` (sinon lecture seule). Masqué pour Bureau/Commerciale. - « Valider » → PATCH `/api/providers/{id}` (groupe `provider:write:accounting`) + sous-ressource RIBs (`/providers/{id}/ribs` + `/provider_ribs/{id}`). Erreurs 422 inline (scalaires) et par ligne (RIB). - `useProviderReferentials.loadAccounting()` (chargé seulement si l'onglet est accessible). Helpers purs `utils/forms/providerAccounting.ts`. - i18n `technique.providers.form.accounting` + `confirmDelete.rib`. > NB : les placeholders **Rapports / Échanges** relèvent des écrans Consultation/Modification (ERP-145) — le flux de **création** ne porte que 3 onglets (Contact/Adresse/Comptabilité), conformément à la spec. ## Conformité - `useApi()` only ; `Malio*` only ; pas de masque email ; aucun texte FR en dur ; pas d'import inter-module (helpers ré-implémentés côté Technique, règle ABSOLUE n°1). ## Vérifications - Vitest : 454/454 (18 nouveaux : helpers compta RG-3.07/3.08, workflow VIREMENT/LCR, ordre RIB→scalaires, 422 inline + par ligne, lecture seule sans manage). - ESLint : OK. - `nuxi typecheck` : 0 erreur sur les fichiers source du ticket. - Golden path navigateur : page compile, onglet Comptabilité visible (gating accounting.view OK pour admin). Contenu de l'onglet gaté derrière le déverrouillage des 3 onglets (multiselect `Malio` non pilotable en a11y) — couvert par les tests unitaires + typecheck.
Owner

Review — RAS, bon pour merge.

Onglet Comptabilité conforme :

  • Gating par permission technique.providers.accounting.view/.manage (onglet absent / lecture seule selon le rôle).
  • RG inter-champs propagées via setPaymentType : banque envoyée seulement sous VIREMENT (RG-3.07), bloc RIB garanti sous LCR (RG-3.08).
  • Ordre de soumission correct : RIB d'abord (le back valide RG-3.08 sur le PATCH scalaires), puis PATCH provider:write:accounting. visibleRibs aligné sur ribs.value → erreurs par ligne cohérentes.
  • Mapping payload tvaModeIritvaMode identique au contrat M2.
**Review — RAS, bon pour merge.** Onglet Comptabilité conforme : - Gating par permission `technique.providers.accounting.view`/`.manage` (onglet absent / lecture seule selon le rôle). - RG inter-champs propagées via `setPaymentType` : banque envoyée seulement sous VIREMENT (RG-3.07), bloc RIB garanti sous LCR (RG-3.08). - Ordre de soumission correct : RIB d'abord (le back valide RG-3.08 sur le PATCH scalaires), puis PATCH `provider:write:accounting`. `visibleRibs` aligné sur `ribs.value` → erreurs par ligne cohérentes. - Mapping payload `tvaModeIri`→`tvaMode` identique au contrat M2.
tristan changed target branch from feature/ERP-143-onglet-adresse-prestataire to develop 2026-06-15 09:12:52 +00:00
tristan added 1 commit 2026-06-15 09:13:49 +00:00
feat(front) : onglet comptabilite prestataire
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 2m39s
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 1m21s
a8c5166eb2
tristan force-pushed feature/ERP-144-onglet-comptabilite-prestataire from 8141b0d473 to a8c5166eb2 2026-06-15 09:13:49 +00:00 Compare
tristan merged commit c25c33116d into develop 2026-06-15 09:15:20 +00:00
tristan deleted branch feature/ERP-144-onglet-comptabilite-prestataire 2026-06-15 09:15:21 +00:00
Sign in to join this conversation.