Cashier Management — Tổng quan
Chức năng Cashier Management cho phép Shop quản lý tài khoản Cashier, lập lịch làm việc, phân công thiết bị, kiểm soát giao dịch tiền mặt với Player và thực hiện đối soát tiền mặt theo từng ca.
Mục tiêu
- Cho phép Shop tạo và quản lý tài khoản Cashier.
- Cho phép Shop lập lịch và assign Cashier vào từng shift.
- Kiểm soát thiết bị được sử dụng trong mỗi shift.
- Ghi nhận chính xác các giao dịch tiền mặt do Cashier thực hiện.
- Đối soát opening cash, cash in, cash out và closing cash theo từng shift.
- Phát hiện và xử lý discrepancy.
- Hỗ trợ no-show, suspension, device blocking và shift handover.
- Cung cấp audit trail đầy đủ cho Shop Manager.
Nguyên tắc cốt lõi
| Nguyên tắc | Mô tả |
|---|
| Một Cashier — một Shop | Mỗi Cashier chỉ thuộc một Shop. |
| Tiền mặt only | Mọi giao dịch giữa Cashier và Player đều bằng tiền mặt (giấy + xu Mỹ). |
| Truy vết đầy đủ | Mọi giao dịch phải liên kết cashierId, shiftId, shopId, deviceId. |
| Blind closing | Cashier không thấy Expected Closing Cash trước khi submit. |
| Manager review | Discrepancy chỉ được Shop Manager xử lý. |
Actor
| Actor | Vai trò chính |
|---|
| Shop Manager | Tạo Cashier, lập shift, assign device, xử lý no-show, reconciliation, discrepancy |
| Admin | Xem theo permission; assign shift nếu Cashier thuộc đúng Shop; không xử lý no-show thường ngày |
| Cashier | Start shift, opening/closing cash, deposit/redemption, cash drop, handover |
Portal
| Portal | Chức năng |
|---|
| Shop Portal | Cashier accounts, devices, scheduling, exceptions, approvals, reconciliation, reports |
| Cashier Portal | Login, assigned shift, opening cash, transactions, cash drop, closing, handover |
Tài liệu trong section này
| Trang | Nội dung |
|---|
| Spec chi tiết | Yêu cầu nghiệp vụ đầy đủ — account, shift, device, transaction, reconciliation |
| HTML Prototype | 17 màn hình tĩnh tương tác — Shop Portal + Cashier Portal |
Out of Scope (Soft Release)
- Break time
- Fixed / Flexible shift type
- Recurring shift, shift template
- Morning / Afternoon / Evening shift category
- Online shift swap request
- Overtime, payroll, formal attendance
- Performance bonus, commission
- Automatic disciplinary action
Việc đổi ca hoặc nhờ Cashier khác nhận ca được thực hiện offline. Sau khi hai Cashier thống nhất, Shop Manager chỉnh lại assignment trên lịch.
Acceptance Criteria tổng quát
- Shop có thể tạo Cashier thuộc đúng một Shop.
- Cashier đăng nhập bằng email, username hoặc số điện thoại.
- Shop tạo shift với ngày, scheduled time, Cashier và active device.
- Hệ thống chặn Cashier/device bị assign vào các shift overlap.
- Cashier chỉ start shift trên đúng device được assign.
- Cashier nhập opening cash trước khi giao dịch.
- Deposit không yêu cầu Player OTP; redemption tuân theo limit và approval rule.
- Mọi giao dịch lưu
cashierId, shiftId, shopId, deviceId.
- Cashier chỉ xem giao dịch thuộc shift của mình; không sửa/hủy/reverse.
- Closing count dùng blind count; hệ thống tự tính Expected Closing Cash và Discrepancy.
- Shift có discrepancy phải được Shop Manager review.
- No-show chỉ Shop xử lý; không notify Admin.
- Block Device ≠ Suspend Cashier.
- Handover ghi nhận tiền theo denomination và xác nhận từ người nhận.
- Shift Auto-Locked vẫn phải reconciliation.
- Mọi action quan trọng có audit log.