Requisitions Module
The Requisitions module handles internal cash and purchase requests — fuel advances, spare parts, office supplies, and similar day-to-day spending — routed through a formal approval chain before money moves.
Approval chain
Every requisition can pass through up to six steps:
Draft → Submitted → HoD Approved → Finance Approved → GM Approved → MD Approved → Received
↓
Rejected
| Status | Meaning |
|---|---|
| Draft | Being prepared, not yet submitted |
| Submitted | Sent for approval, awaiting Head of Department |
| HoD Approved | Head of Department signed off, awaiting Finance |
| Finance Approved | Finance signed off, awaiting General Manager |
| GM Approved | General Manager signed off, awaiting Managing Director |
| MD Approved | Managing Director signed off, awaiting goods/cash receipt |
| Received | Goods or cash received — requisition complete |
| Rejected | Declined at any approval step, with a reason |
Unlike the other steps, "Received" isn't signed off by a named role — once a requisition reaches MD Approved, the person listed as the requisitioner sees a Confirm Received / Not Received action banner on the detail page instead of the usual Approve/Reject.
Approval authority is granted per person, not by role name. Each of the four management stages — Head of Department, Finance Department, General Manager, Managing Director — has its own dedicated permission, granted individually to whichever users should hold it through Settings → Users & Access → Approval Authority. No role holds any of these four permissions by default (including Tenant Admin and Accountant) — there's no automatic "Tenant Admin acts as MD" shortcut, so grant them explicitly for approvals to actually reach someone.
The Head of Department stage is additionally scoped to the approver's own department (set on their profile in Team Directory) — a requisition from a different department won't show as pending for them, even if they hold Head of Department approval authority. Finance, General Manager, and Managing Director stay tenant-wide regardless of department.
Creating a requisition
- Go to Requisitions → New Requisition
- Pick the department (a searchable list of your company's departments), then fill in department head, requisitioner, client/company, date issued, order date, purchased from, delivered to, and job description
- Choose a currency (defaults to your tenant's base currency — see Currency)
- Add line items — each with an item name, quantity, unit, description, account charged, and unit price. If your product catalog has items, each line can optionally be linked to a catalog item
- Add optional notes and attachments (e.g. a vendor quote or supporting document)
- Click Save as Draft to keep working on it, or Submit for Approval to start the approval chain
Approving or rejecting
If you're the currently pending approver, an action banner appears on the requisition's detail page:
- Approve — advances the requisition to the next step in the chain
- Reject — requires a reason; the requisition moves to Rejected
Submitting a requisition, and every subsequent step advance, notifies whichever roles are configured in Settings → Notifications → Approval Queue Notifications by email and/or SMS — the same role list is re-notified at each step, since the system doesn't try to guess exactly who the next approver is. There's also a manual "Notify via WhatsApp" quick-action available from the notification bell.
Editing a requisition
Click ✏ Edit on the detail page to edit a requisition at any status. What happens next depends on who is editing and where the requisition is in the chain:
| Who is editing | What happens |
|---|---|
| Anyone, while still Draft | Plain edit — no approvals exist yet, nothing resets |
| The currently pending approver | The edit is saved and their approval is applied in the same action — the chain continues, earlier approvals are untouched |
| Anyone else, after at least one approval exists | All approvals are cleared and the status reverts to Submitted — the chain restarts from Head of Department |
Every edit — regardless of which path it takes — is recorded in an Edit History panel on the detail page, showing who made the change, when, and the line items and total before the change.
If the requisitioner changes the items or amount after HoD or Finance already approved, those earlier approvals were made against the old numbers — they need to re-approve the new version. The one exception is the person whose turn it currently is: they're about to approve anyway, so editing and approving happens in one step instead of two.
Each approval step now records the total amount as it stood at the moment that approver signed off. If the currently-pending approver later raises the total and advances the chain in the same action (the one path that doesn't reset earlier approvals), the approval timeline flags every earlier step with ⚠ Amount changed since — so a Head of Department's ✓ never silently reads as endorsing a total they never actually saw.
Converting to a Purchase Invoice
If your product catalog has active Product items (for example with Spare Parts → or Items), each requisition line shows a small No catalog link field under the item name. Type to search the catalog and pick an item — the line's name, unit and unit price (the item's cost price) fill in for you — or click + New Item to add one to the catalog on the spot. The link is optional; lines can stay free text.
Once a requisition reaches MD Approved, users with the requisition.convertToPurchase permission see an Approved — ready to purchase banner with a 📄 Convert to Purchase Invoice button. It drafts a new vendor bill pre-filled from the requisition's lines (catalog-linked lines keep their item, free-text lines carry over as typed), matched to a vendor whose name equals the requisition's Purchased From, ready to review and approve in Purchasing →. Lines come across without VAT — add it on the bill if needed.
After conversion, the requisition's detail page shows "Converted to Purchase Invoice BILL-…" with a View Purchase Invoice → button that opens the Purchase Invoices list. Converting is kept as a separate permission because it's a more consequential action than editing a requisition; it works on any approved requisition, whether or not its lines are linked to catalog items.
Currency
Each requisition carries its own currency, chosen from a fixed TZS / USD list, independent of your tenant's base currency — the requisition displays, prints, and totals entirely in the currency it was created with. See Currency Management for how exchange rates are configured for conversion purposes.
Attachments
Attach one or more supporting files to a requisition — a vendor quote, a proforma invoice, a photo of a damaged part, or any other supporting document.
- On the requisition form, click + Add File to upload a file; add as many as you need
- Each attachment appears as a link on the detail page — click to view or download it
- Remove an attachment from the form before saving with the ✕ next to it
Comments
Anyone who can open a requisition's detail page can leave a comment — useful for a manager asking a clarifying question, or the requisitioner responding, without it being a formal approval action. There's no dedicated comment permission; posting doesn't require anything beyond requisition.view.
- Comments appear in a Comments card on the detail page, oldest first, each showing the author's name and timestamp
- Type into the Add a comment… box and click Post Comment — like Edit History, comments are append-only; there's no edit or delete afterward
- Posting a comment doesn't affect the requisition's status, amounts, or approval chain in any way
- Every comment is logged as a Comment Added entry in the System Audit Trail (Settings → System)
Exporting to Excel
Click ⇩ Export to Excel on the Requisitions list to download the currently filtered/searched list as a formatted workbook — reference, date issued, requested by, department, description, amount, currency, status, and current approver — with a totals row on the Amount column. This exports the whole list currently shown on screen; to print a single requisition instead, see Printing below.
Printing
Click 🖨️ Print on the detail page for a print-ready version showing the approval chain, line items, totals, and any comments — the printed output is the same page you see on screen, so nothing there is hidden from print.
Permissions
| Permission | What it allows |
|---|---|
requisition.view | See the Requisitions page, its menu entry and its Search result (expense.view alone doesn't grant this) |
requisition.create | Create new requisitions and save as Draft or submit for approval |
requisition.edit | Edit a requisition at any status — see Editing a requisition for what happens to approvals |
requisition.approve.hod | Approve or reject at the Head of Department stage — scoped to the approver's own department, see Who can approve which step? above |
requisition.approve.finance | Approve or reject at the Finance Department stage — tenant-wide |
requisition.approve.gm | Approve or reject at the General Manager stage — tenant-wide |
requisition.approve.md | Approve or reject at the Managing Director stage — tenant-wide |
requisition.convertToPurchase | Turn an MD Approved requisition into a Draft Purchase Invoice — see Converting to a Purchase Invoice |
Grant the four approval permissions above per person via Settings → Users & Access → Approval Authority — not through a role's default permission set. A separate, generic requisition.approve also exists in the Roles & Permission Matrix, but holding it alone doesn't grant approval authority at any specific stage; the four permissions above are what the approval chain actually checks.
Related
- Currency Management → — configure exchange rates
- Permissions Reference → — full permission matrix