UC_Thanh toán & Giao dịch
Giới thiệu & tài liệu liên quan
Đặc tả Use Case cho các nghiệp vụ chính của module Thanh toán & Giao dịch (CORE-08). Xem thêm Tổng quan module · SRS · UI.
UC1 — Kết nối phương thức thanh toán
| Mục | Nội dung |
|---|---|
| Use Case ID | UC_CORE08_PROV_001 |
| Use Case Name | Kết nối phương thức thanh toán của sân |
| Use Case Description | Chủ sân kết nối một nhà cung cấp thanh toán (QR VNPAY · thẻ ngân hàng · POS di động) theo từng sân bằng thông tin xác thực; hệ thống lưu mã hóa, che bớt khi hiển thị và chỉ dùng được cho đúng sân đó. |
| System Under Design | Payment Client · Service Thanh toán |
| Primary Actor | Chủ sân |
| Supporting/External Actor | Nhà cung cấp thanh toán |
| Priority | HIGH |
| Trigger | Chủ sân vào Cài đặt → Phương thức thanh toán và nhấn [+ Kết nối nhà cung cấp] |
| Pre-Condition | Người dùng đã đăng nhập với quyền Chủ sân trên sân đang chọn |
| Post-Condition | Phương thức thanh toán ở trạng thái đã kết nối; thông tin xác thực được lưu mã hóa, che bớt và giới hạn theo sân |
Sơ đồ luồng — Basic Flow & ngoại lệ
Basic Flow
Basic Flow
| Bước | Actor | Mô tả hành động |
|---|---|---|
| 1 | Chủ sân | Mở màn hình Cài đặt → Phương thức thanh toán |
| 2 | Chủ sân | Nhấn [+ Kết nối nhà cung cấp] |
| 3 | Chủ sân | Chọn nhà cung cấp: QR VNPAY · thẻ ngân hàng · POS di động |
| 4 | Chủ sân | Nhập thông tin xác thực do nhà cung cấp cấp |
| 5 | Chủ sân | Nhấn [Lưu kết nối] |
| 6 | Service Thanh toán | Kiểm tra hợp lệ, lưu thông tin xác thực ở dạng mã hóa, gắn với đúng sân |
| 7 | Payment Client | Hiển thị phương thức ở trạng thái đã kết nối, thông tin xác thực được che bớt |
Alternative Flow
Alternative Flow
| TT | Mã | Liên quan bước | Mô tả |
|---|---|---|---|
| 1 | AF_3A.1 | 3 | Sân đã có một phương thức cùng loại → Chủ sân cập nhật thông tin xác thực thay vì tạo mới |
| 2 | AF_6A.1 | 6 | Chủ sân tạm ngắt một phương thức đã kết nối → phương thức chuyển trạng thái tạm ngưng, không nhận thanh toán mới |
Exception Flow
Exception Flow
| TT | Mã | Liên quan bước | Mô tả |
|---|---|---|---|
| 1 | EF_5.1 | 5 | Thiếu hoặc sai thông tin xác thực → hệ thống báo lỗi và yêu cầu nhập lại |
| 2 | EF_6.1 | 6 | Người dùng không có quyền Chủ sân → hệ thống chặn thao tác kết nối |
Business Rules
Business Rules
| TT | Mã | Quy tắc nghiệp vụ |
|---|---|---|
| 1 | BR1 | Thông tin xác thực của nhà cung cấp luôn được lưu mã hóa và không bao giờ hiển thị đầy đủ |
| 2 | BR2 | Thông tin xác thực giới hạn theo từng sân; một sân không dùng được thông tin xác thực của sân khác |
| 3 | BR3 | Chỉ Chủ sân được kết nối hoặc đổi thông tin xác thực nhà cung cấp |
UC2 — Thu thanh toán & theo dõi trạng thái thời gian thực
| Mục | Nội dung |
|---|---|
| Use Case ID | UC_CORE08_PAY_002 |
| Use Case Name | Thu thanh toán cho đơn POS |
| Use Case Description | Thu ngân thu một khoản thanh toán cho đơn POS (đặt sân + FNB + dụng cụ); hệ thống nhận kết quả từ nhà cung cấp, cập nhật trạng thái thời gian thực (pending → paid / failed / expired) và thông báo cho đơn khi thành công. |
| System Under Design | Payment Client · Service Thanh toán |
| Primary Actor | Thu ngân |
| Supporting/External Actor | Nhà cung cấp thanh toán · Module Đơn hàng |
| Priority | HIGH |
| Trigger | Thu ngân nhấn [Nhận thanh toán] trên đơn POS và chọn phương thức |
| Pre-Condition | Đơn POS đang mở; sân đã kết nối ít nhất một phương thức thanh toán |
| Post-Condition | Khoản thanh toán chuyển sang paid; đơn được thông báo để tất toán; hoặc failed / expired và đơn vẫn để mở |
Sơ đồ luồng — Basic Flow & ngoại lệ
Basic Flow
Basic Flow
| Bước | Actor | Mô tả hành động |
|---|---|---|
| 1 | Thu ngân | Trên đơn POS, nhấn [Nhận thanh toán] |
| 2 | Thu ngân | Chọn phương thức: tiền mặt · QR VNPAY · thẻ ngân hàng · ví |
| 3 | Service Thanh toán | Khởi tạo khoản thanh toán ở trạng thái pending |
| 4 | Nhà cung cấp thanh toán | Gửi kết quả thanh toán về hệ thống |
| 5 | Service Thanh toán | Cập nhật trạng thái paid, thông báo cho đơn để tất toán |
| 6 | Payment Client | Hiển thị trạng thái cập nhật thời gian thực cho Thu ngân |
Alternative Flow
Alternative Flow
| TT | Mã | Liên quan bước | Mô tả |
|---|---|---|---|
| 1 | AF_2A.1 | 2 | Thu tiền mặt → đường tiền mặt cũng phát kết quả như nhà cung cấp để trạng thái phía sau đồng nhất |
| 2 | AF_4A.1 | 4 | Nhà cung cấp gửi lại cùng một kết quả → hệ thống bỏ qua lần thứ hai, không tạo hiệu ứng trùng lặp |
Exception Flow
Exception Flow
| TT | Mã | Liên quan bước | Mô tả |
|---|---|---|---|
| 1 | EF_4.1 | 4 | Nhà cung cấp báo thất bại / hết hạn → khoản thanh toán đặt failed / expired, đơn vẫn để mở cho thu lại |
| 2 | EF_2.1 | 2 | Sân chưa kết nối phương thức được chọn → hệ thống chặn và hướng dẫn kết nối trước |
Business Rules
Business Rules
| TT | Mã | Quy tắc nghiệp vụ |
|---|---|---|
| 1 | BR4 | Cùng một kết quả thanh toán chỉ được áp dụng một lần dù được gửi nhiều lần |
| 2 | BR5 | Chỉ khoản thanh toán thành công mới thông báo cho đơn để tất toán; thất bại / hết hạn giữ đơn mở |
| 3 | BR6 | Trạng thái thanh toán được phát thời gian thực để Thu ngân không phải làm mới thủ công |
| 4 | BR7 | Đường tiền mặt và đường nhà cung cấp cùng quy tụ về một trạng thái thống nhất |
UC3 — Tự động ghi sổ thu/chi từ sự kiện
| Mục | Nội dung |
|---|---|
| Use Case ID | UC_CORE08_POST_003 |
| Use Case Name | Tự động ghi voucher từ sự kiện nghiệp vụ |
| Use Case Description | Khi một đơn POS thanh toán thành công, hoặc nhận đơn mua hàng, hoặc có biến động tồn kho, service Tài chính tự động ghi một voucher ghi sổ kép cân đối vào tài khoản tương ứng, mỗi sự kiện đúng một lần. |
| System Under Design | Service Tài chính · Event Bus |
| Primary Actor | Service Tài chính (tác nhân hệ thống) |
| Supporting/External Actor | Module Đơn hàng · Module Kho · Chủ sân (quan sát sổ cái) |
| Priority | HIGH |
| Trigger | Hệ thống nhận sự kiện thanh toán thành công / nhận mua hàng / biến động tồn kho |
| Pre-Condition | Sân đã có tài khoản mặc định nhận thu bán hàng và các nhóm thu/chi tạo sẵn |
| Post-Condition | Một voucher cân đối được ghi vào sổ cái; số dư tài khoản cập nhật; cùng sự kiện không ghi lần thứ hai |
Sơ đồ luồng — Basic Flow & ngoại lệ
Basic Flow
Basic Flow
| Bước | Actor | Mô tả hành động |
|---|---|---|
| 1 | Event Bus | Chuyển sự kiện nghiệp vụ tới service Tài chính |
| 2 | Service Tài chính | Xác định loại voucher theo sự kiện: thanh toán bán hàng → RECEIPT, nhận mua hàng → PAYMENT, biến động kho → ADJUSTMENT |
| 3 | Service Tài chính | Lập bút toán cân đối (tổng DEBIT bằng tổng CREDIT) |
| 4 | Service Tài chính | Ghi voucher vào tài khoản mặc định / tài khoản đối ứng tương ứng, gắn nhóm thu/chi |
| 5 | Service Tài chính | Cập nhật số dư hiện hành của tài khoản |
| 6 | Service Tài chính | Đánh số voucher theo sân và theo loại |
Alternative Flow
Alternative Flow
| TT | Mã | Liên quan bước | Mô tả |
|---|---|---|---|
| 1 | AF_2A.1 | 2 | Sự kiện là chuyển tiền giữa hai tài khoản → ghi một voucher TRANSFER tổng bằng không |
| 2 | AF_4A.1 | 4 | Sự kiện thiếu nhóm phù hợp → ghi vào nhóm mặc định theo loại để Chủ sân phân loại lại sau |
Exception Flow
Exception Flow
| TT | Mã | Liên quan bước | Mô tả |
|---|---|---|---|
| 1 | EF_1.1 | 1 | Cùng một sự kiện được gửi lại → hệ thống nhận ra đã ghi và bỏ qua, không tạo voucher trùng |
| 2 | EF_3.1 | 3 | Bút toán không cân đối → hệ thống không ghi voucher và báo lỗi nội bộ để xử lý |
Business Rules
Business Rules
| TT | Mã | Quy tắc nghiệp vụ |
|---|---|---|
| 1 | BR8 | Mọi voucher đều cân đối: tổng DEBIT bằng tổng CREDIT |
| 2 | BR9 | Mỗi sự kiện nghiệp vụ ghi tối đa một voucher (không ghi trùng) |
| 3 | BR10 | Khoản thu bán hàng được ghi tự động vào tài khoản mặc định của sân |
| 4 | BR11 | Voucher được đánh số theo từng sân và từng loại |
UC4 — Tạo & huỷ voucher thủ công
| Mục | Nội dung |
|---|---|
| Use Case ID | UC_CORE08_VCH_004 |
| Use Case Name | Tạo và huỷ voucher thủ công |
| Use Case Description | Chủ sân ghi một phiếu thu / chi / chuyển / điều chỉnh thủ công theo quy trình nháp rồi phát hành; muốn huỷ thì ghi một bút toán đảo ngược cân đối, không xóa cứng lịch sử tài chính. |
| System Under Design | Finance Client · Service Tài chính |
| Primary Actor | Chủ sân |
| Supporting/External Actor | Quản lý ca |
| Priority | MEDIUM |
| Trigger | Chủ sân vào Sổ cái và nhấn [+ Tạo voucher] |
| Pre-Condition | Đã có tài khoản và nhóm thu/chi để gán cho bút toán |
| Post-Condition | Voucher cân đối được phát hành và hiển thị trong sổ cái với số thứ tự; voucher huỷ được ghi bằng bút toán đảo, bản gốc giữ nguyên |
Sơ đồ luồng — Basic Flow & ngoại lệ
Basic Flow
Basic Flow
| Bước | Actor | Mô tả hành động |
|---|---|---|
| 1 | Chủ sân | Trên màn Sổ cái, nhấn [+ Tạo voucher] |
| 2 | Chủ sân | Chọn loại voucher: RECEIPT · PAYMENT · TRANSFER · ADJUSTMENT |
| 3 | Chủ sân | Nhập tài khoản, nhóm thu/chi và các dòng tiền ở trạng thái nháp |
| 4 | Chủ sân | Nhấn [Phát hành] |
| 5 | Service Tài chính | Kiểm tra cân đối, cấp số thứ tự, ghi voucher và cập nhật số dư |
| 6 | Finance Client | Hiển thị voucher đã phát hành trong sổ cái |
Alternative Flow
Alternative Flow
| TT | Mã | Liên quan bước | Mô tả |
|---|---|---|---|
| 1 | AF_6A.1 | 6 | Chủ sân huỷ một voucher đã phát hành → hệ thống ghi một bút toán đảo ngược cân đối; voucher gốc được giữ lại |
| 2 | AF_3A.1 | 3 | Chủ sân lưu nháp và phát hành sau → voucher giữ ở trạng thái nháp tới khi được phát hành |
Exception Flow
Exception Flow
| TT | Mã | Liên quan bước | Mô tả |
|---|---|---|---|
| 1 | EF_4.1 | 4 | Tổng DEBIT khác tổng CREDIT → hệ thống chặn phát hành và yêu cầu cân đối lại |
| 2 | EF_5.1 | 5 | Người dùng không có quyền tạo voucher → hệ thống chặn thao tác |
Business Rules
Business Rules
| TT | Mã | Quy tắc nghiệp vụ |
|---|---|---|
| 1 | BR12 | Voucher chỉ phát hành được khi cân đối (tổng DEBIT bằng tổng CREDIT) |
| 2 | BR13 | Huỷ voucher thực hiện bằng bút toán đảo ngược cân đối, không xóa cứng lịch sử |
| 3 | BR14 | Voucher theo vòng đời Nháp → Đã phát hành → Đã huỷ |
| 4 | BR15 | Chỉ Chủ sân và Quản lý ca được tạo / huỷ voucher thủ công |
Non-Functional Requirements
Non-Functional Requirements
| TT | Loại | Yêu cầu |
|---|---|---|
| 1 | Thời gian thực | Trạng thái thanh toán đến Thu ngân tức thì, không phải làm mới thủ công |
| 2 | Toàn vẹn | Mọi voucher phải cân đối; số dư tài khoản luôn khớp tổng các dòng sổ cái đã ghi |
| 3 | Chống trùng | Mỗi kết quả thanh toán và mỗi sự kiện nghiệp vụ chỉ được xử lý một lần |
| 4 | Bảo mật | Thông tin xác thực nhà cung cấp mã hóa khi lưu, che bớt khi hiển thị, giới hạn theo từng sân |
| 5 | Truy vết | Lịch sử tài chính không bị xóa cứng; chỉnh sửa qua bút toán đảo ngược |
| 6 | Phân quyền | Mọi thao tác giới hạn theo từng sân và theo vai trò của người dùng |