Workflow model
Every business function has a workflow inbox — a central place where users see pending actions and move step-by-step through stages. Workflows are configurable per module.
Concepts
- Workflow inbox — List of pending items requiring the current user's action
- Workflow instance — One business operation (e.g. one purchase request, one stock transfer) with status, current stage, history
- Stages — Configurable steps; approval roles, scan mode, custom fields
- Advance / Reject — Move to next stage or reject and optionally return to previous
Workflow types by module
| Module | Workflow | Stages |
|---|---|---|
| Procurement | Purchase request | Request → Manager → Finance → PO → GRN → Payment |
| Procurement | Goods receipt | GRN → Verification → Posting |
| Inventory | Stock transfer | Request → Approval → Picking → Transfer → Receipt |
| Inventory | Stock adjustment | Request → Approval → Posting |
| Sales | Sales order | Order → Approval → Reservation → Picking → Delivery → Invoicing |
| Sales | Sales return | Return Request → Approval → Receipt → Credit |
| Manufacturing | Production order | Order → Staging → Production → QC → Completion |
| Finance | Payment | Request → Approval → Execution |
| HR | Leave request | Request → Manager → HR → Approved |
| Quality | NCR | Raised → Investigation → Corrective Action → Verification → Closed |
Configuration API
GET /api/workflow/config
GET /api/workflow/config/{workflowType}
PUT /api/workflow/config/{workflowType}
GET /api/workflow/inbox
GET /api/workflow/inbox/{module}
POST /api/workflow/instances/{id}/advance
POST /api/workflow/instances/{id}/reject
Delegation & SLA
Users can delegate approvals when unavailable. Per-stage SLA (hours) and escalation targets; optional reminders and auto-approve on timeout.