Xử lý nạp số dư
Hai tab đưa một dòng hàng đã thu tiền thành số dư trong ví khách — chốt mệnh giá, rồi cộng.
Màn hình Xử lý nạp số dư là nơi tiền đã thu biến thành số dư. Hai tab tương ứng hai bước, cố ý tách rời để việc chốt mệnh giá và việc cộng tiền là hai thao tác khác nhau.
Vị trí menu admin
Ví thanh toán > Xử lý nạp số dư
Route: /customerbalancerequest
Cần quyền customerbalance.manage để thao tác, customerbalance.view để xem.
Tab 1 · Đơn hàng chờ tạo yêu cầu
Danh sách các dòng hàng nạp trên đơn đã thanh toán mà chưa có yêu cầu nào. Đây là một phép trừ chứ không phải hàng đợi được đẩy vào: dòng nào chưa xử lý thì cứ hiện ra ở đây, không thể rơi mất.
| Cột | Ý nghĩa |
|---|---|
| Mã đơn hàng | Đơn chứa dòng hàng nạp |
| Khách hàng | Người sẽ nhận số dư |
| Sản phẩm | Tên gói nạp |
| Khách đã trả | Số tiền thực thu của dòng hàng đó |
| Số dư sẽ cộng | Ô nhập — mệnh giá phát vào ví |
| Tạo lúc | Thời điểm tạo đơn |
Ô Số dư sẽ cộng mặc định điền sẵn bằng số tiền khách đã trả. Với gói có khuyến mại, sửa lại thành mệnh giá thật — ví dụ khách trả 180.000 đ cho “Gói nạp 200K” thì gõ 200000.
Nút Tải lại nạp lại danh sách. Danh sách không tự làm mới, nên bấm Tải lại sau khi vừa tạo đơn ở POS.
Đơn chưa thanh toán không xuất hiện ở đây. Tab 1 chỉ lấy dòng hàng trên đơn đã thu tiền xong. Nếu một đơn nạp không thấy đâu, việc đầu tiên cần kiểm tra là trạng thái thanh toán của nó.
Tạo yêu cầu
Bấm Tạo yêu cầu trên dòng tương ứng. Hệ thống đọc lại dòng hàng từ đơn gốc và từ chối nếu:
| Thông báo | Nguyên nhân | Xử lý |
|---|---|---|
| Không tìm thấy dòng hàng này trên đơn | Dòng đã bị xoá khỏi đơn | Kiểm tra lại đơn gốc |
| Dòng hàng này không phải sản phẩm nạp | Dòng không mang loại nạp số dư | Xem lại khai báo sản phẩm |
| Đơn chưa thanh toán xong, chưa thể cộng số dư | Đơn chưa thu đủ tiền | Thu tiền và cập nhật trạng thái trước |
| Đơn chưa gắn khách hàng cụ thể | Bán cho khách lẻ | Gắn khách vào đơn, hoặc hoàn tiền huỷ đơn và bán lại |
| Số dư sẽ cộng phải lớn hơn 0 | Bỏ trống hoặc nhập 0 | Nhập mệnh giá |
| Vượt hạn mức mỗi lần nạp | Mệnh giá lớn hơn Trần mỗi lần nạp | Hoàn tiền huỷ đơn, hoặc chỉnh hạn mức trong Cài đặt |
| Cộng vào sẽ vượt trần số dư của khách | Số dư hiện tại cộng mệnh giá vượt Trần số dư mỗi khách | Như trên |
Máy chủ tự đọc lại đơn, không tin dữ liệu màn hình gửi lên. Khách hàng, đơn, sản phẩm, số lượng và số tiền đã trả đều lấy từ đơn gốc. Chỉ mệnh giá là do người nhập — và cũng chỉ bị chặn bởi hai trần hạn mức. Gõ nhầm một số 0 mà vẫn dưới trần thì hệ thống chấp nhận. Đây là rủi ro vận hành lớn nhất của màn hình này.
Tạo xong, dòng biến mất khỏi tab 1 và không tạo lại được lần thứ hai cho cùng dòng hàng đó.
Tab 2 · Yêu cầu chờ cộng số dư
Các yêu cầu đã chốt mệnh giá nhưng chưa cộng vào ví.
| Cột | Ý nghĩa |
|---|---|
| ID | Mã yêu cầu |
| Khách hàng | Người nhận số dư |
| Mã đơn hàng | Đơn nguồn |
| Sản phẩm | Tên gói nạp |
| Số dư sẽ cộng | Mệnh giá |
| Khách đã trả | Tiền thực thu |
| Trạng thái | Chờ xử lý / Đã cộng / Đã huỷ |
| Tạo lúc | Thời điểm tạo yêu cầu |
Bộ lọc: từ khoá (mã hàng, tên sản phẩm, ghi chú), mã khách hàng, mã đơn hàng, trạng thái.
Ba trạng thái
| Trạng thái | Ý nghĩa | Còn làm gì được |
|---|---|---|
| Chờ xử lý | Đã chốt mệnh giá, chưa cộng tiền | Xử lý hoặc Huỷ |
| Đã cộng | Số dư đã vào ví | Không sửa, không huỷ |
| Đã huỷ | Người thao tác dừng lại | Không mở lại |
Xử lý — cộng số dư
Bấm Xử lý, hộp thoại xác nhận hiện số tiền sắp cộng và nhắc rằng thao tác không huỷ được. Xác nhận thì:
- Hai trần hạn mức được kiểm tra lại lần nữa — số dư của khách có thể đã tăng kể từ lúc tạo yêu cầu.
- Một giao dịch Nạp ghi vào sổ ví, mang mã ngoài dạng
REQ<id>. - Yêu cầu chuyển sang Đã cộng và ghi nhận ai xử lý, lúc nào.
Mã ngoài REQ<id> là thứ bảo đảm không bao giờ cộng đôi. Bấm hai lần, hai người bấm cùng lúc, hay mạng chập chờn khiến gửi lại — tất cả đều chỉ tạo đúng một giao dịch.
Huỷ
Chỉ huỷ được yêu cầu đang Chờ xử lý. Đã cộng rồi thì sổ ví là sổ kế toán, không xoá dòng — sửa bằng một giao dịch điều chỉnh, xem Sổ số dư.
Huỷ yêu cầu không hoàn tiền cho khách và không huỷ đơn hàng. Hai việc đó phải làm riêng.
Bất biến một-một-một
Một dòng hàng nạp sinh đúng một yêu cầu, sinh đúng một giao dịch trên sổ ví.
Đây là nền tảng của mọi báo cáo đối soát. Ba con số — số dòng hàng nạp trên đơn đã thanh toán, số yêu cầu đã xử lý, số giao dịch nạp trong sổ — phải luôn bằng nhau. Lệch một đơn vị là phải truy nguyên ngay.
Tình huống bất thường
| Tình huống | Cách xử lý |
|---|---|
| Tạo yêu cầu nhầm mệnh giá, chưa xử lý | Huỷ yêu cầu, rồi tạo lại từ tab 1 với số đúng |
| Đã cộng nhầm mệnh giá | Tạo giao dịch điều chỉnh trên sổ ví với ghi chú nêu rõ mã yêu cầu gốc và lý do |
| Khách đòi huỷ đơn nạp sau khi đã cộng | Trừ lại số dư bằng giao dịch điều chỉnh trước, rồi mới hoàn tiền. Ngược thứ tự thì khách kịp tiêu hết |
| Đơn nạp bị sửa thành đơn hỗn hợp | Ba luật của đơn nạp không chạy khi sửa đơn. Xem lại đơn gốc trước khi bấm cộng; nếu đã lẫn hàng hoá, xử lý theo quy định công ty rồi ghi chú vào yêu cầu |
| Báo lỗi yêu cầu bị huỷ đúng lúc đang cộng | Rất hiếm, xảy ra khi hai người thao tác cùng lúc. Số dư đã vào sổ nhưng yêu cầu ghi Đã huỷ. Mở sổ ví của khách, đối chiếu và điều chỉnh tay |
Lưu ý
- Số tiền trên yêu cầu là ảnh chụp lúc tạo. Sửa đơn hàng sau đó không làm mệnh giá đổi theo.
- Chỉ sửa được Ghi chú của yêu cầu. Mọi số liệu khác bị khoá.
- Mọi thao tác xử lý và huỷ đều ghi nhật ký kèm người thực hiện. Đây là chốt chặn duy nhất chống gian lận nội bộ ở giai đoạn hiện tại, vì quyền duyệt yêu cầu chưa tách khỏi quyền cộng số dư thủ công.