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

Technical architecture

Software architecture, state machines, ORM models, and lifecycle transitions in SmartERP Supply Chain.

1. Overview & Business Value#

This comprehensive operational guide details the architecture, business workflows, configuration parameters, and execution steps for Technical architecture within SmartERP.

This technical document details the internal design of SmartERP Supply Chain and Sourcing.

{screenshot:technical-architecture-overview-dashboard}

2. Prerequisites & Security Access Groups#

  • Required Modules: purchase, stock, smarterp_store_voucher, purchase_requisition
  • Security Groups:
    • Purchase User (Technical ID: purchase.group_purchase_user)
    • Purchase Administrator (Technical ID: purchase.group_purchase_manager)
    • Inventory User / Storekeeper (Technical ID: stock.group_stock_user)
  • Master Data Dependencies: Product masters, units of measure, approved supplier catalog, warehouse storage locations, and procurement budget lines.

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 Purchase app icon.
  4. From the top navigation bar, open Purchase → Orders → Purchase Orders / Requisitions; Inventory → Operations.

{screenshot:technical-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:
    • Vendor / Supplier (Mandatory): Approved vendor profile with verified commercial license and TIN
    • Order Lines & Products (Mandatory): Specified items with precise quantities, units of measure, and unit costs
    • Delivery Destination (Mandatory): Physical store or warehouse receiving location
    • Fiscal Position & Taxes (Mandatory): Statutory 15% VAT and applicable withholding tax terms
  3. Configure optional operational parameters and localized tags as required:
    • Requisition Reference (Optional): Link to approved departmental purchase requisition
    • Payment Terms (Optional): Contractual settlement schedule (Net 30, Advance, LC)
    • Incoterm & Port (Optional): Shipping terms for import consignments (FOB Djibouti, CIF Bole)
  4. Click the Save icon in the control bar to commit the record.

{screenshot:technical-architecture-record-creation-form}

Step 3: Validating and Processing Transactions#

  • State Transitions: Execute operational state progression (Draft RFQ → Sent → Confirmed Order → Received (GRN) → Billed → Locked).
  • Ledger & System Impact: GRN validation posts stock valuation entries; vendor bill confirmation posts accounts payable and statutory withholding tax liabilities.
  • Audit Verification: Automated recording of author ID, timestamp, and immutable revision history.

{screenshot:technical-architecture-transaction-processing-state}

State Machines#

Tender Lifecycle (purchase.tender)#

draft -> published -> opened -> technical_eval -> commercial_eval -> awarded -> standstill -> contract_signed -> closed
                  \
                   -> cancelled

Stock Picking Lifecycle (stock.picking)#

draft -> waiting -> confirmed -> assigned (Ready) -> done
                             \
                              -> cancelled

Concurrency and Lock Governance#

  • Double-Counting Prevention: Uses PostgreSQL advisory locks during physical inventory batch reconciliation to eliminate race conditions between concurrent transfers.
  • Reservation Isolation: Stock reservations (stock.move.line) lock inventory at the quant level, preventing overselling or over-issuing.

4. Advanced Configuration Points#

  • Automated Actions & Scheduled Tasks (Crons):
    • Procurement: Run scheduler (reordering rules) (stock.ir_cron_run_procurement): Runs daily to generate RFQs for inventory items below safety stock
    • Stock: Expired lot quarantine trigger (stock.ir_cron_quarantine_expired): Runs daily to isolate batches past shelf life
    • Purchase: Check supplier delivery deadlines (purchase.ir_cron_check_deadlines): Runs daily to send automated expediting notices to suppliers
  • Custom Print Templates & Reports:
    • Purchase Order Confirmation (Commercial Contract)
    • Ethiopian Goods Receiving Note (GRN / Model 19)
    • Store Issue Voucher (SIV / Model 20)
    • Vendor Bid Evaluation & Comparison Matrix
  • 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
Access Rights Error: Cannot confirm Purchase OrderUser lacks purchase manager approval privileges.Escalate order to user with purchase.group_purchase_manager clearance.
Validation Error: Stock move destination missingOperation type lacks default internal destination location.Configure target warehouse location in Inventory → Configuration → Operation Types.
Quantity Mismatch: GRN vs PO 3-way match failedDelivered quantity exceeds purchase order limit beyond allowable tolerance.Verify physical delivery against supplier delivery slip and issue an amended PO or return voucher.
Budget Reservation Error: Insufficient fundsDepartmental budget allocation exhausted for target analytic account.Submit a budget transfer or supplementary allocation request to the Finance Director.

Next#

መጨረሻ የተሻሻለው: 2026-10-30