feat(p0-2026-04-25): multi-référentiel comptable + UBO + audit trail + SoD + seuils AML
Some checks failed
CI/CD Pipeline / pipeline (push) Failing after 3m11s
Some checks failed
CI/CD Pipeline / pipeline (push) Failing after 3m11s
Sprint 1 P0 (consolidation 2026-04-25, ETAT_PROJET_METIER_2026-04-25.md) : P0-NEW-9/10/11 — Multi-référentiel comptable - enum ReferentielComptable (SYSCOHADA / SYCEBNL / PCSFD_UMOA) - Organisation.referentielComptable + mapping defaultFor(typeOrganisation) - V43 : colonne + check + index + mapping initial des orgs existantes P0-NEW-13 — Bénéficiaires effectifs (UBO) — Instruction BCEAO 003-03-2025 - Entité BeneficiaireEffectif + repository - V44 : table beneficiaires_effectifs (FK kyc_dossier, UBO + PEP + sanctions) - Conservation 10 ans (directive 02/2015/CM/UEMOA) P0-NEW-14 — Compliance Officer (Instruction BCEAO 001-03-2025) - Organisation.complianceOfficerId + V43 colonne + index P0-NEW-15 — Seuils AML alignés (Instruction BCEAO 002-03-2025) - AmlSeuils : 10M FCFA intra-UEMOA / 5M FCFA entrée-sortie / 1M FCFA espèce - Liste pays UEMOA ISO 3166-1 - Méthodes seuilApplicable() / depasseSeuil() / depasseSeuilEspece() P0-NEW-17/18 — Rôles PRESIDENT + CONTROLEUR_INTERNE + suppléants - V45 seed : PRESIDENT, VICE_PRESIDENT, CONTROLEUR_INTERNE, ANIMATEUR_ZONE, SECRETAIRE_ADJOINT, TRESORIER_ADJOINT - Catégories GOUVERNANCE / CONTROLE / OPERATIONNEL P0-NEW-19 — Audit trail enrichi (SYSCOHADA + AUDSCGIE) - V45 : table audit_trail_operations (acteur, action, contexte multi-org, payload JSONB, SoD) - Entité AuditTrailOperation + AuditTrailOperationRepository - AuditTrailService (log avec contexte automatique depuis OrganisationContextHolder) - OrganisationContextHolder enrichi (roleActif, currentUserId, currentUserEmail) P0-NEW-20 — SoD (Separation of Duties) — SYSCOHADA + AUDSCGIE + BCEAO Circulaire 03-2017 - SoDPermissionChecker.checkValidationDistinct() (4-eyes principle) - .checkRoleCombination() (combinaisons interdites : Trésorier+Président, etc.) - .checkComplianceOfficerEligibility() (Instruction BCEAO 001-03-2025) - SoDCheckResult record avec audit trail automatique P0-NEW-24 — Champ numero_cmu sur Membre (Loi 2014-131 CI) - Membre.numeroCMU + V43 colonne + check format 11 caractères + index - Auto-déclaration (pas d'API publique CNAM disponible) BUILD SUCCESS.
This commit is contained in:
@@ -210,6 +210,30 @@ public class Organisation extends BaseEntity {
|
||||
@Column(name = "modules_actifs", length = 1000)
|
||||
private String modulesActifs;
|
||||
|
||||
/**
|
||||
* Référentiel comptable applicable à cette organisation.
|
||||
*
|
||||
* <p>Détermine quel plan comptable est appliqué et quels états financiers sont générés
|
||||
* (bilan, compte de résultat, annexes). Mappage par défaut depuis {@code typeOrganisation}
|
||||
* via {@link ReferentielComptable#defaultFor(String)} ; l'admin peut overrider manuellement.
|
||||
*
|
||||
* @since 2026-04-25 — découverte SYCEBNL (11ᵉ Acte uniforme OHADA en vigueur 1er jan 2024)
|
||||
*/
|
||||
@Enumerated(EnumType.STRING)
|
||||
@Column(name = "referentiel_comptable", nullable = false, length = 20)
|
||||
@Builder.Default
|
||||
private ReferentielComptable referentielComptable = ReferentielComptable.SYSCOHADA;
|
||||
|
||||
/**
|
||||
* UUID du membre désigné comme Compliance Officer de l'organisation (rôle obligatoire selon
|
||||
* Instruction BCEAO 001-03-2025). Doit être rattaché à la direction générale, distinct du
|
||||
* trésorier (séparation des pouvoirs).
|
||||
*
|
||||
* @since 2026-04-25 — Instruction BCEAO 001-03-2025 (LBC/FT)
|
||||
*/
|
||||
@Column(name = "compliance_officer_id")
|
||||
private UUID complianceOfficerId;
|
||||
|
||||
// Relations
|
||||
|
||||
/** Adhésions des membres à cette organisation */
|
||||
|
||||
Reference in New Issue
Block a user