PRD: Ca Đa nhân viên
| Module | Sale (CORE-07) | PRD ID | PRD-SHF-001 |
| Trạng thái | In-progress | Owner | Việt Võ · Phát Nguyễn |
| Ngày | 2026-06-11 | Phiên bản | v0.1 |
| Packages | @nx/sale · apps/sale-renderer | URD | SHF |
| Epic | BANA-1321 | Khung thời gian | Tháng 7/2026 |
TL;DR
Cửa hàng nhiều nhân viên vận hành ca đúng nghĩa: mở/đóng ca trên thiết bị, nhiều nhân viên cùng ca, báo cáo X/Z, đối soát két khi đóng và ghi nhận chênh lệch. Backend đã có trên develop (ca, ghi danh, ngăn kéo, báo cáo - gồm cả tiền kỳ vọng/thực đếm); increment này chuyển POS khỏi phiên 1 người cũ và kiểm chứng trọn vòng. PRD này đồng thời là spec tham chiếu để test về sau.
1. Bối cảnh & Vấn đề
Phase 1 ship phiên POS 1 người. Nghiệp vụ cần ca dùng chung bởi nhiều nhân viên (thu ngân + phục vụ trên một két) với trách nhiệm rõ ràng. Hệ ca đa nhân viên đã xây xong phía server; POS vẫn nói chuyện với mô hình phiên cũ nên người dùng chưa chạm được - và trước đây không có spec viết ra để đối chiếu. Tài liệu này đóng cả hai lỗ hổng.
2. Mục tiêu & Loại trừ
Mục tiêu - mở/đóng trên thiết bị (URD-SHF-001) · ghi danh nhiều người (002) · X/Z (003) · đối soát + chênh lệch (004) · gắn đơn theo nhân viên (005) · biến động két (006) · doanh thu theo ca/kỳ (007).
Loại trừ - cờ quyền theo thành viên trong ca (canRefund/canVoid - theo dõi riêng dưới Permissions) · chấm công/lương.
3. Thước đo thành công
| Thước đo | Mục tiêu |
|---|---|
| POS chạy hệ ca mới | Thay hẳn phiên 1 người cũ, không regression |
| Báo cáo Z | Công thức tiền kỳ vọng kiểm chứng với một ngày bán thật |
4. Persona & Tình huống
Thu ngân (mở/đóng, đếm két) · Phục vụ (ghi danh, bán) · Chủ (đọc X/Z, soi chênh lệch).
5. User Story
- Là thu ngân, tôi mở ca với quỹ đầu ca, đồng nghiệp ghi danh, đóng ca tôi đếm két và thấy ngay chênh lệch.
- Là chủ, tôi đọc báo cáo Z theo ca và doanh thu theo kỳ.
6. Yêu cầu chức năng
Giao URD SHF URD-SHF-001…007 (Must 001-005).
7. Yêu cầu phi chức năng
- Trạng thái ca sống sót khi app khởi động lại; không bán được ngoài ca đang mở (theo chính sách).
8. UX & Luồng
- Mở ca (nhập quỹ) → nhân viên ghi danh → bán (đơn gắn người thao tác).
- Giữa ca: báo cáo X. Biến động: thu/chi/nộp két.
- Đóng: đếm → kỳ vọng vs thực → ghi chênh lệch → báo cáo Z (in được).
9. Dữ liệu & Miền nghiệp vụ
- Dùng các thực thể đã xây: ca, ghi danh ca, ngăn kéo, báo cáo ca (tiền kỳ vọng/thực/chênh lệch). FE migrate khỏi phiên cũ; gắn người thao tác qua cơ chế acting-user sẵn có.
10. Phụ thuộc & Giả định
| Phụ thuộc | Vì sao |
|---|---|
| Acting-user middleware (BANA-1140, đang chạy) | Gắn đơn trong ca dùng chung |
| Tài khoản tài chính | Biến động tiền ghi vào tài khoản |
11. Rủi ro & Câu hỏi mở
- Cutover: cửa hàng đang giữa ca khi rollout - định nghĩa đường nâng cấp (đóng phiên cũ trước).
- Biến thể chính sách ca (két chung vs theo thiết bị) - chốt mặc định v1.
12. Kế hoạch phát hành & Tiêu chí
T7 (WK27-31): migrate FE + kiểm chứng e2e. Ra mắt: AC-SHF-01 pass tại cửa hàng pilot; phiên cũ ngừng dùng.
13. FAQ
- Có xây lại backend không? Không - đã xây; đây là nối FE + kiểm chứng, và PRD này là tham chiếu để test.
Tham chiếu
URD SHF · Giai đoạn 2 - Theo tháng · Epic BANA-1321