የSmartERP መመሪያ የAshewa Technology Solutions መድረክ
ይህ ገጽ ገና ወደ አማርኛ አልተተረጎመም። የእንግሊዝኛው ጽሑፍ ቀርቧል።

SACCO Data Model & Relational Schema Architecture

Technical specifications of database models, foreign key relationships, constraints, and relational schemas governing SmartERP SACCO.

1. Overview & Business Value#

This comprehensive operational guide details the architecture, business workflows, configuration parameters, and execution steps for SACCO Data Model & Relational Schema Architecture within SmartERP.

Technical specifications of database models, foreign key relationships, constraints, and relational schemas governing SmartERP SACCO.

{screenshot:sacco-data-model-and-financial-architecture-overview-dashboard}

2. Prerequisites & Security Access Groups#

  • Required Modules: smarterp_sacco_core, smarterp_equb, smarterp_loan_management
  • Security Groups:
    • SACCO Loan Officer (Technical ID: smarterp_sacco.group_sacco_officer)
    • SACCO Credit Committee Member (Technical ID: smarterp_sacco.group_sacco_committee)
    • SACCO General Manager (Technical ID: smarterp_sacco.group_sacco_manager)
  • Master Data Dependencies: Member KYC profiles, share capital registers, savings product tiers, loan products with reducing-balance schedules, and Equb rotational pool configurations.

3. Step-by-Step Configuration & Execution#

Step 1: Navigating to the Module Interface#

  1. Log into your SmartERP instance at https://smarterp.et/odoo.
  2. Open the main App Switcher (grid icon in the top-left corner).
  3. Select the SACCO & Equb app icon.
  4. From the top navigation bar, open SACCO & Equb → Members → KYC Registry / Savings Accounts / Loan Applications / Equb Pools.

{screenshot:sacco-data-model-and-financial-architecture-app-switcher-navigation}

Step 2: Creating and Parameterizing Records#

  1. Click the New button in the top-left control panel.
  2. Complete the mandatory fields in the record form:
    • Member Identification Number (Mandatory): Unique membership number complying with Ethiopian Cooperative Commission rules
    • Full Name & Kebele ID (Mandatory): Verified member identity with physical residence verification
    • Share Capital Subscriptions (Mandatory): Subscribed shares not exceeding statutory 10% member ceiling (Proclamation 985/2016)
    • Primary Savings Product (Mandatory): Compulsory regular monthly savings account configuration
  3. Configure optional operational parameters and localized tags as required:
    • Guarantor & Collateral (Optional): Approved co-signers with locked savings accounts or registered vehicle/property lien
    • Equb Rotational Group (Optional): Linked digital Equb pool with lottery draw eligibility
    • Beneficiary Nominee (Optional): Designated next of kin for death or disability benefit transfer
  4. Click the Save icon in the control bar to commit the record.

{screenshot:sacco-data-model-and-financial-architecture-record-creation-form}

Step 3: Validating and Processing Transactions#

  • State Transitions: Execute operational state progression (Application → KYC Verified → Approved → Active / Disbursed → Delinquency Monitored → Settled).
  • Ledger & System Impact: Loan disbursement debits loans receivable and credits cash/bank; loan repayments credit interest income and loan principal, updating 5-tier NBE provisioning registers.
  • Audit Verification: Automated recording of author ID, timestamp, and immutable revision history.

{screenshot:sacco-data-model-and-financial-architecture-transaction-processing-state}

Relational Entity Architecture#

SmartERP SACCO connects member master profiles, share capital registers, savings passbooks, loan amortization lines, and general ledger accounts into an ACID-compliant schema:

[sacco-data-model]

Core Model Specifications#

1. Member Profile: sacco.member#

Maintains cooperative membership master:

  • name (Char): Full member name.
  • member_no (Char, unique, index): Unique ID (MBR-YYYY-NNNNN).
  • national_id (Char, index): Ethiopian National / Kebele ID number.
  • partner_id (Many2one -> res.partner): Financial accounting entity.
  • share_count (Integer), share_capital_amount (Monetary).
  • savings_balance (Monetary, computed), loan_balance (Monetary, computed).
  • state (Selection): draft, active, dormant, resigned, expelled.

2. Savings Passbook: sacco.savings.account#

Governs member deposit accounts:

  • member_id (Many2one -> sacco.member, ondelete="restrict").
  • account_number (Char, unique, index): Passbook number.
  • account_type (Selection): mandatory, voluntary, fixed_term.
  • balance (Monetary, computed): Available unencumbered balance.
  • locked_collateral (Monetary): Amount pledged for loans or guarantees.
  • interest_rate (Float), daily_accrued_interest (Float).

3. Credit Facility: sacco.loan.application#

Manages credit appraisal, approval, and schedules:

  • member_id (Many2one -> sacco.member).
  • loan_product_id (Many2one -> sacco.loan.product).
  • principal_amount (Monetary), tenure_months (Integer).
  • interest_method (Selection): reducing, flat.
  • dpd (Integer, computed): Days past due.
  • nbe_tier (Selection): pass, special_mention, substandard, doubtful, loss.
  • provision_amount (Monetary, computed): Required statutory impairment.
  • schedule_ids (One2many -> sacco.loan.schedule): Amortization breakdown.

4. Digital Equb Pool: sacco.equb.pool#

Coordinates rotational savings rounds:

  • name (Char), cycle_number (Integer).
  • contribution_amount (Monetary), total_shares (Integer).
  • round_ids (One2many -> sacco.equb.round).
  • winner_ids (Many2many -> sacco.member).

5. Dividend Distribution: sacco.dividend.distribution#

Executes annual surplus allocation:

  • fiscal_year_id (Many2one -> account.fiscal.year).
  • net_surplus (Monetary), distributable_amount (Monetary).
  • wht_rate (Float, default=0.05): 5% Withholding Tax.

4. Advanced Configuration Points#

  • Automated Actions & Scheduled Tasks (Crons):
    • SACCO: Accrue monthly member savings interest (smarterp_sacco.ir_cron_savings_interest): Runs on the final day of each calendar month to credit interest
    • Loan: Evaluate 5-tier NBE delinquency classification (smarterp_sacco.ir_cron_loan_delinquency): Runs nightly to compute loan loss provisions per NBE directives
    • Equb: Execute scheduled lottery draw (smarterp_sacco.ir_cron_equb_draw): Runs on defined pool cycle dates using provably fair random selection
  • Custom Print Templates & Reports:
    • Member Savings Passbook & Transaction Ledger
    • Loan Amortization Schedule (Reducing Balance)
    • NBE 5-Tier Delinquency & Loan Loss Provisioning Statement
    • Annual Patronage Dividend Distribution Schedule
  • Multi-Company Rules: Record-level security isolation under Company 1 (Ashewa Technology Solutions S.C.), preventing cross-company ledger leakage across parent and subsidiary legal entities.

5. Comprehensive Troubleshooting Matrix#

Error Symptom / ExceptionProbable Root CauseCorrective Action / Resolution
Loan Blocked: Exceeds 3x savings ceilingRequested loan principal exceeds 300% of member unencumbered savings balance.Increase compulsory savings deposit or provide authorized co-signers with sufficient collateral.
Equb Draw Blocked: Participant arrears detectedSelected Equb member has unpaid rotational dues in current or prior cycles.Collect outstanding contribution payment before executing lottery draw.
Share Capital Limit Error: Member exceeds 10% ceilingSubscribed shares exceed statutory maximum under Proclamation No. 985/2016.Restrict share allocation to maximum allowable 10% total cooperative equity threshold.
መጨረሻ የተሻሻለው: 2026-10-30