Finance workflows
How a finance task actually runs now. The pages in this section were written in April, when
one person could record and verify money, edit a posted voucher and reset the ledger. Each
is now a short pointer to the page that is verified against the code.
The shape of every finance task
- Someone prepares. A cashier or accountant records a receipt; an accountant or the CA
writes a journal; ticketing files a seat release. It lands pending. The system stamps
who did it from the session — never from the request.
- Someone else decides. A different person verifies, approves or rejects. The database
refuses the same person on both sides
(ACC-020).
- The posting happens in the same transaction as the business event. Verifying a
receipt posts its voucher; approving a refund posts the refund voucher and the payment.
There is no operation without its entry and no entry without its operation
(FIN-030).
- It is permanent. Approved vouchers, their lines and their ledger mirrors cannot be
edited or deleted. Corrections are reversals plus new entries
(FIN-031).
- It is recorded. Every change carries the old value, the new value, who and when, plus
the reason typed into the confirmation dialog
(AUD-001,
UX-001).
Who does which half
| Role |
Prepares |
Decides |
CASHIER |
records receipts |
nothing |
ACCOUNTANT |
records receipts, writes journals, reconciles |
verifies receipts someone else recorded |
CHARTERED_ACCOUNTANT |
journals, adjusting entries, supplier corrections |
nothing — handles no cash |
FINANCE_MANAGER |
anything |
verifies receipts; approves refunds and journals within limits |
CEO / GM |
— |
approves above the limits (finance.approvals.high_value) |
The pages