Staff
Canteen
Campus-scoped staff POS for menu and stock, cash or credit sales, employee credit ledgers, low-stock alerts, and payroll deduction of unpaid credit.
What it covers
Hub at /dashboard/canteen (POS, menu, sales, credit, alerts). Feature flag canteen plus canteen:* grants. Clinical Branch / Working-in geography (not HR OrgUnit). Campus overlays: canteen.defaultCreditLimit, canteen.creditEnabled.
Why
- → Staff meals need a controlled till separate from pharmacy walk-in credit
- → Unpaid credit must recover through payroll without spreadsheet tracking
Every Feature Explained
POS & Sales
Ring up menu items for cash or credit.
Fast till with void control.
canteen:sell; void with canteen:sell:void. Sales history under /dashboard/canteen/sales.
Menu & Stock
Maintain sellable items and on-hand stock.
Avoid stockouts during peak shifts.
canteen:menu:manage and canteen:stock:manage; alerts board for low stock.
Employee Credit
Per-employee credit accounts with campus limits.
Staff can eat when cash is unavailable.
/dashboard/canteen/credit; Settings → General canteen credit overlays.
Payroll Deduction
Deduct unpaid credit when payslips generate.
Closes the credit loop without manual journals.
payroll:generate + canteen:credit:*. Distinct from pharmacy.walkIn.* credit keys.
Credit to payroll
Technical Architecture
| Field | Type | Institutional Role |
|---|---|---|
| branchId | UUID | Clinical campus stamp (Working-in). |
| employeeId | UUID? | Credit account holder when sale is on credit. |
| paymentMode | Enum | Cash or credit. |
| unpaidBalance | Decimal | Outstanding credit recovered via payroll. |
Note: Sensitive fields use AES-256 field-level encryption where applicable.
Governance & Power
canteen:viewcanteen:sellcanteen:credit:viewcanteen:menu:manage