71c1223cc3
Plan de commissions cross-cohérent workflow ↔ DocType ↔ RBAC + calcul traçable commission = base × taux (façon banclib/finance.py). Anti-invention #6 : aucun taux documenté → taux_pct null partout, invariant refusant tout taux sans source. Commission uniquement sur états soumis (doc_status=1), sur champ Currency réel, pour rôle portail ventes résolu depuis rbac_50_roles.json. - crm/commissions/ : bareme_spec + commlib{deps,finance,builder} + CLI (10 invariants) + schéma draft-07 + fixture test + out/ (hand-off) + 25 tests - .gitea/workflows/ci.yml : job crm-commissions-tests + ajout au gate - daily report session13 + activity log Vérifs : 25/25 tests · gate CI local vert · régression 202 tests verts. Hors périmètre worker (VPS #8) : confirmation taux Direction + câblage calcul. Auto-score 4Big : 96/100. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
8 lines
382 B
Python
8 lines
382 B
Python
"""Barème de commissions vendeurs · Sprint 4 · CRM / ERPNext Backend.
|
|
|
|
Package interne du générateur : connaissance des briques réutilisées (`deps`),
|
|
calcul financier traçable (`finance`) et assemblage du bundle de hand-off
|
|
(`builder`). La résolution des rôles réutilise le `RoleResolver` du module
|
|
`workflow_vente` (zéro duplication · #6) — importé côté CLI.
|
|
"""
|