[DTP-Worker] Sprint 5 · Générateur DocType CONFOTUR Application (ONAPI/Legal · roadmap L55)
DocType custom porteur des dossiers d'incitation touristique CONFOTUR (Ley 158-01, RD), référencé par RBAC (3 rôles) et le workflow vente mais jamais généré. Permissions = permissions_cibles RBAC mot pour mot ; is_submittable déduit de l'action submit ; estado/dossier_vente dérivés du workflow ; aucun taux/loi/montant fabriqué (#6). 14 invariants, 44 tests, hand-off dans out/. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,58 @@
|
||||
# Activity Log · 2026-07-30 · Claude Code DTP
|
||||
|
||||
## Session `20260730_075712` (session 16)
|
||||
|
||||
**Tâche** : **Sprint 5 · ONAPI/Legal** — Générateur du **DocType porteur
|
||||
`CONFOTUR Application`** (roadmap **L55** « Refactor `oto_module_confotur_application.py`
|
||||
→ dépôts automatiques »). Sprint 4 étant clos (sessions 11-15), c'est le premier
|
||||
volet Sprint 5 réalisable en repo — Mobile (builds/submit stores) et déploiement
|
||||
dépendent d'API externes / VPS (hors périmètre worker · #8).
|
||||
|
||||
**Gap comblé** : le DocType custom `CONFOTUR Application` est référencé par le
|
||||
contrat RBAC (3 rôles) et par les états terminaux du workflow vente
|
||||
(`confotur_depose`/`confotur_approuve`), mais **aucun générateur ne le produisait**
|
||||
(la session 15 le listait comme DocType custom « à créer » côté VPS).
|
||||
|
||||
**Décision d'architecture (#1 ERPNext natif)** : le porteur d'un dossier CONFOTUR
|
||||
**EST un DocType Frappe custom soumissible** → on livre le fixture natif, pas de
|
||||
module externe.
|
||||
|
||||
**Fichiers créés** — `05_deliverables_mvp/legal/confotur/` :
|
||||
- `confotur_spec.json` (structure métier seule · zéro chiffre)
|
||||
- `cflib/{__init__,frappe,rbac_scan,builder}.py` (`frappe` VALID_PERMS incluant
|
||||
`report` · `rbac_scan` lit les rôles RBAC visant le DocType · réutilise le
|
||||
`RoleResolver` de `workflow_vente`)
|
||||
- `confotur_application_gen.py` (CLI `build`/`validate` · **14 invariants**)
|
||||
- `confotur.schema.json` (contrat de sortie draft-07)
|
||||
- `out/{doctype_confotur_application,MANIFEST}.json` (hand-off) ·
|
||||
`tests/test_confotur.py` (**44 tests** dont 8 négatifs) · `README.md` · `.gitignore`
|
||||
|
||||
**Fichiers modifiés** :
|
||||
- `.gitea/workflows/ci.yml` : job `legal-confotur-tests` + ajout au `gate`.
|
||||
|
||||
**Anti-invention (cœur · #6)** : les **permissions du DocType SONT, mot pour mot,
|
||||
les `permissions_cibles` RBAC** (ventes-confotur/legal-onapi/legal-directeur) — ni
|
||||
ajout ni retrait ; `is_submittable` déduit de l'action `submit` RBAC ;
|
||||
`estado`/`dossier_vente` dérivés du workflow ; **aucun** taux/loi/montant/référence
|
||||
d'autorité (deux invariants refusent tout champ de type montant et tout `default`) ;
|
||||
paramètres légaux réels → `data_room P05/P07` côté VPS. Les `depot_events` (« dépôts
|
||||
automatiques ») dérivent des transitions confotur du workflow.
|
||||
|
||||
**Résultat** : DocType `CONFOTUR Application` — 18 champs (14 de donnée), 4 sections,
|
||||
3 rôles, soumissible, 2 évènements de dépôt.
|
||||
|
||||
**Vérifs** : 44/44 tests ; gate CI local vert (guard + JSON + docs + YAML) ;
|
||||
régression **304 tests verts** au total ; build déterministe.
|
||||
|
||||
**Hors périmètre worker (VPS · #8)** : créer le module `OTOV7 CONFOTUR`, importer
|
||||
le DocType, câbler les `depot_events` sur le Workflow, renseigner les paramètres
|
||||
légaux/fiscaux depuis `data_room P05/P07` → agent ONAPI/Legal / ERPNext Backend.
|
||||
|
||||
**Détail complet** : voir
|
||||
[`05_deliverables_mvp/daily_reports/2026-07-30-session16.md`](../05_deliverables_mvp/daily_reports/2026-07-30-session16.md).
|
||||
|
||||
**Auto-score 4Big** : 96/100.
|
||||
|
||||
## Session `20260730_072711` (session 15)
|
||||
|
||||
**Tâche** : Sprint 4 · Frontend Console — Générateur de **Workspaces ERPNext
|
||||
|
||||
Reference in New Issue
Block a user