Commerce

Cash Register

Cash drawer management, shift open/close, Z-reports, and petty cash.

Overview

The cash register module manages the physical cash at a location: opening and closing the drawer, recording cash movements in and out, reconciling at end of shift, and generating the Z-report. It gives the location manager a live view of cash on hand and a daily record of cash activity.

Drawer Lifecycle

Opening the Drawer (X-Report)

At the start of a shift, the front desk or manager opens the cash drawer:

  1. Count and enter the opening float (starting cash amount)
  2. System records the opening balance and timestamp
  3. The drawer is now "open" — cash payments post to this drawer session

An X-report (interim snapshot) can be printed at any point during the shift to check the running balance without closing the drawer.

During the Shift

All cash transactions post to the open drawer:

  • Cash-in: cash payments received at checkout
  • Cash-out: change given, petty cash disbursements, vendor cash payments
  • Each movement records: amount, type, reason, and the staff member who actioned it

Closing the Drawer (Z-Report)

At end of shift:

  1. Count the physical cash in the drawer
  2. Enter the counted amount
  3. System computes: expected cash = opening float + all cash-in – all cash-out
  4. Over/short is calculated: counted – expected
  5. Z-report is generated and the drawer is closed

The Z-report cannot be regenerated once closed — it is a one-time end-of-shift record.

Z-Report Contents

Section Contents
Shift period Open time, close time, staff who opened/closed
Opening float Starting cash
Cash received Total cash payments from checkout
Cash out Change, petty cash, manual outflows
Expected cash Calculated closing balance
Counted cash Physical count entered
Over / short Discrepancy
Payment method summary Breakdown of all payments (cash, card, UPI, gift card, store credit)
Service totals Revenue by service category
Tax summary GST collected by rate

Z-reports are stored permanently and feed into daily sales reports and accounting reconciliation.

Cash Movements

Beyond checkout transactions, staff can record ad-hoc cash movements:

Type Example
Cash in Owner adds float, cash deposit returned from bank
Cash out Change for large note, petty cash disbursement
Petty cash Small operational expenses paid from the drawer
Bank deposit Cash removed to deposit at bank (reduces drawer balance)

Each movement requires: amount, type, reason, and the staff member's confirmation. Movements are included in the Z-report and audit trail.

Petty Cash

The petty cash sub-module tracks small operational expenses paid in cash:

  • Stationery, cleaning supplies, small vendor payments
  • Each entry: amount, vendor/payee, category, receipt reference
  • Petty cash entries reduce the drawer balance and are categorised as expenses in the finance module

Multiple Drawers Per Location

A location can have more than one cash drawer (e.g. multiple front-desk terminals). Each has its own open/close cycle. The location summary aggregates all drawers.

Permissions

Action org_owner brand_manager location_manager front_desk
Open / close drawer Yes Yes Yes Yes
Record cash movement Yes Yes Yes Yes
Record petty cash Yes Yes Yes Yes
View Z-report Yes Yes Yes View own shift
View historical Z-reports Yes Yes Yes No
Void a cash movement Yes Yes Yes No

Key Data Entities

  • CashDrawer — one drawer instance at a location
  • CashMovement — each cash-in or cash-out event (type, amount, reason, staff, timestamp)
  • ShiftClose — the Z-report record (opening, closing, counted, over/short, all movement totals)
  • PettyCashEntry — small expense paid from drawer