Skip to content

Modules

The NKO ERP is organised into eight business modules on top of the shared platform (authentication, permissions, notifications, the approval engine). Each page below covers one module's purpose, features, screens, business logic (BAL), entities, and permission keys. The step-by-step workflows those modules run through live in User Flows; the column-level schema is in Database; the per-action detail is in API.

Module What it owns Database
HR Employee master data, ID documents, contracts, e-signatures, the document archive, attendance and leave. NKO_DB
Procurement Purchase Request → RFQ (with CBA supplier analysis) → Purchase Order → Goods Received Note → Payment Order, plus the Provider registry. NKO_DB
Grant Donor-funded Projects, the Master Budget and monthly detail, project Budget Lines, salary Allocations, and donor / global Exchange Rates. NKO_DB
Payroll The monthly pay run and its allocation across budget lines, plus advances / loans (with cash boxes), overtime, and timesheets. NKO_DB
Recruitment The Staff Requisition Form, applicant collection and filtering, interviews with weighted scoring, recruitment tracking, and the staff Evaluation appraisal sub-system. NKO_DB
Training Training Requests through a fixed five-step approval, and a project-level training dashboard. NKO_DB
Logistics A self-contained inventory and fixed-asset system — consumable stock, serialised assets, maintenance, asset returns and destruction. NKO_DB_Warehouse
Administration Groups and permission keys, the org structure, reference data, the work calendar, system settings, announcements, the audit log, and the public application portals. NKO_DB

Cross-module notes

  • The approval engine is shared. Every multi-step request (PR, PO, RFQ, GRN, Payment Order, Payroll, Advance, Overtime, Leave, Training, SRF, Stock Release, …) carries a StatusId and/or a NextUserId, and exposes a ContextActions endpoint that dispatches to BAL Set… transition methods. Approver roles are resolved from the org hierarchy (StaffPermissionchecker) and from named role-holders configured in Administration → General Settings.
  • Attendance feeds Payroll. AttenadancesHandler.GetMonthlySummary (documented under HR) produces the paid-days / attendance-days roll-up that BPayroll consumes.
  • Procurement charges Grant budget lines. Every PR / PO line stores a ProcBudgetLineId; availability is shown on the PR detail screen but not enforced. ProcBudgetLineHandler (documented under Grant) rolls PR / PO / Payment-Order spend back up against the Master Budget and regenerates payroll allocations.
  • Logistics runs on a separate database. It reuses core identity, signatures, notifications and permissions, and receives stock / assets from a procurement GRN via GRN → Transfer to Warehouse. The core GoodReceivedNote and the warehouse GRNReport are different documents.