SRS_Doanh thu & Báo cáo
Giới thiệu & tài liệu liên quan
Đặc tả yêu cầu phần mềm cho module Doanh thu & Báo cáo (OW-07). Xem thêm Tổng quan module · UC · UI.
1/ Luồng Sequence
2/ Luồng di chuyển màn hình
3/ Đặc tả chi tiết theo màn hình
MH1: Dashboard doanh thu theo chu kỳ
Mô tả màn hình: Dashboard KPI tổng doanh thu / số đơn / lợi nhuận gộp kèm bộ lọc khoảng thời gian, nút chọn nhóm chu kỳ (Ngày / Tháng / Năm), biểu đồ xu hướng và bảng số liệu chi tiết có dòng tổng cộng.
Sự kiện 1 — Chọn khoảng thời gian & nhóm chu kỳ
| STT | Tác nhân | Mô tả |
|---|---|---|
| 1 | Chủ sân | Chọn khoảng thời gian (preset nhanh hoặc khoảng tùy chỉnh) |
| 2 | Chủ sân | Chọn kiểu nhóm chu kỳ: Ngày / Tháng / Năm |
| 3 | Reports Server | Hợp lệ: Trả về KPI, chuỗi theo chu kỳ và bảng chi tiết theo phạm vi chi nhánh |
Không hợp lệ — Sự kiện 1
| STT | Trường hợp | Thông báo | Vị trí · Loại | Xử lý |
|---|---|---|---|---|
| 1 | Khoảng ngày Từ muộn hơn Đến | "Ngày bắt đầu phải sớm hơn hoặc bằng ngày kết thúc." | Dưới bộ lọc ngày · lỗi | Chặn truy vấn, giữ kết quả cũ |
| 2 | Chưa chọn khoảng ngày | "Vui lòng chọn khoảng thời gian từ - đến." | Dưới bộ lọc ngày · cảnh báo | Nhắc chọn trước khi tải báo cáo |
Sự kiện 2 — Xem biểu đồ & bảng chi tiết
| STT | Tác nhân | Mô tả |
|---|---|---|
| 1 | Chủ sân | Xem biểu đồ xu hướng và bảng số liệu theo chu kỳ đã chọn |
| 2 | Reports Server | Hợp lệ: Mỗi chu kỳ hiển thị doanh thu gộp · giảm giá · thuế · doanh thu thuần · số đơn; chu kỳ rỗng hiển thị 0 |
Không hợp lệ — Sự kiện 2
| STT | Trường hợp | Thông báo | Vị trí · Loại | Xử lý |
|---|---|---|---|---|
| 1 | Không có đơn nào trong khoảng | "Không có dữ liệu trong khoảng thời gian đã chọn." | Vùng biểu đồ · thông tin | Hiển thị tổng bằng 0, biểu đồ trống |
| 2 | Không có quyền xem báo cáo | "Bạn không có quyền xem báo cáo này." | Toàn màn hình · cảnh báo | Ẩn dữ liệu, chỉ hiện thông báo |
MH2: Báo cáo sản phẩm & danh mục
Mô tả màn hình: Bảng xếp hạng sản phẩm bán chạy theo doanh thu / số lượng, biểu đồ phân rã theo danh mục và khu vực đào sâu chi tiết một danh mục được chọn.
Sự kiện 1 — Xếp hạng & phân rã
| STT | Tác nhân | Mô tả |
|---|---|---|
| 1 | Quản lý ca | Chọn khoảng ngày và tiêu chí xếp hạng (doanh thu / số lượng) |
| 2 | Reports Server | Hợp lệ: Trả về top sản phẩm và phân rã doanh số theo danh mục |
Không hợp lệ — Sự kiện 1
| STT | Trường hợp | Thông báo | Vị trí · Loại | Xử lý |
|---|---|---|---|---|
| 1 | Chưa chọn khoảng ngày | "Vui lòng chọn khoảng thời gian từ - đến." | Dưới bộ lọc ngày · cảnh báo | Chặn truy vấn |
| 2 | Không có đơn hoàn tất | "Không có dữ liệu bán hàng trong khoảng này." | Vùng bảng · thông tin | Hiển thị bảng rỗng, tổng 0 |
Sự kiện 2 — Đào sâu một danh mục
| STT | Tác nhân | Mô tả |
|---|---|---|
| 1 | Quản lý ca | Chọn một danh mục để xem chi tiết |
| 2 | Reports Server | Hợp lệ: Trả về chi tiết riêng của danh mục được chọn |
MH3: Báo cáo ca thu ngân X/Z
Mô tả màn hình: Màn hình ca với hành động lấy báo cáo X giữa ca, khối nhập tiền mặt đếm thực tế khi đóng ca và báo cáo Z hiển thị đối soát tiền mặt cùng tổng hợp doanh số.
Sự kiện 1 — Lấy báo cáo X (giữa ca)
| STT | Tác nhân | Mô tả |
|---|---|---|
| 1 | Thu ngân | Nhấn lấy báo cáo X trên ca đang mở |
| 2 | Shift Server | Hợp lệ: Trả về tổng tiền mặt & doanh số tạm thời, không làm thay đổi ca |
Không hợp lệ — Sự kiện 1
| STT | Trường hợp | Thông báo | Vị trí · Loại | Xử lý |
|---|---|---|---|---|
| 1 | Chưa có ca nào đang mở | "Vui lòng mở ca với quỹ đầu ca trước khi lấy báo cáo." | Toàn màn hình · cảnh báo | Chuyển sang luồng mở ca |
Sự kiện 2 — Đóng ca & xem báo cáo Z
| STT | Tác nhân | Mô tả |
|---|---|---|
| 1 | Thu ngân | Đếm tiền mặt thực tế, nhập số đếm, xác nhận đóng ca |
| 2 | Shift Server | Tính tiền mặt dự kiến so với thực tế và chênh lệch |
| 3 | Shift Server | Hợp lệ: Khóa snapshot báo cáo Z và hiển thị đối soát + tổng hợp doanh số |
Không hợp lệ — Sự kiện 2
| STT | Trường hợp | Thông báo | Vị trí · Loại | Xử lý |
|---|---|---|---|---|
| 1 | Ca đã được đóng trước đó | "Ca này đã đóng. Chỉ có thể xem lại báo cáo Z." | Hộp thoại · cảnh báo | Chặn đóng lần hai, mở báo cáo Z đã khóa |
| 2 | Bỏ trống số tiền mặt đếm thực tế | "Vui lòng nhập số tiền mặt đã đếm." | Dưới ô đếm tiền · lỗi | Chặn đóng ca |
MH4: Xuất & lịch gửi báo cáo
Mô tả màn hình: Hộp thoại chọn loại báo cáo, định dạng (PDF / Excel) và khoảng thời gian; tùy chọn cài lịch gửi tự động; thông báo trạng thái tạo file và liên kết tải.
Sự kiện 1 — Yêu cầu xuất báo cáo
| STT | Tác nhân | Mô tả |
|---|---|---|
| 1 | Chủ sân | Chọn báo cáo, định dạng và khoảng thời gian, nhấn [Xuất] |
| 2 | Reports Server | Thêm yêu cầu vào hàng xử lý bất đồng bộ, báo "đang tạo" |
| 3 | Reports Server | Hợp lệ: Tạo file nhiều sheet và gửi thông báo kèm liên kết tải |
Không hợp lệ — Sự kiện 1
| STT | Trường hợp | Thông báo | Vị trí · Loại | Xử lý |
|---|---|---|---|---|
| 1 | Kỳ chọn không có dữ liệu | "Không có dữ liệu để xuất trong kỳ này." | Trong hộp thoại · cảnh báo | Chặn xuất |
| 2 | Tạo file thất bại | "Tạo báo cáo không thành công, vui lòng thử lại." | Thông báo · lỗi | Cho thử lại |
Sự kiện 2 — Cài lịch gửi tự động
| STT | Tác nhân | Mô tả |
|---|---|---|
| 1 | Chủ sân | Bật lịch gửi và chọn tần suất (ngày / tuần / tháng) |
| 2 | Reports Server | Hợp lệ: Lưu lịch và tự sinh, gửi báo cáo theo tần suất đã chọn |
4/ Trường hợp đặc biệt
Case đặc biệt cần xử lý
- Case: Báo cáo chỉ đọc. Mọi báo cáo tổng hợp trên đơn đã hoàn tất và không bao giờ thay đổi dữ liệu giao dịch gốc.
- Case: Báo cáo Z là điểm kết thúc. Mỗi ca chỉ có đúng một báo cáo Z; sau khi đóng ca và khóa snapshot thì con số không đổi, chỉ cho xem lại.
- Case: Cách ly chi nhánh. Người dùng chỉ thấy số liệu chi nhánh được phân công; dữ liệu chi nhánh khác không bao giờ xuất hiện trong báo cáo hay file xuất.
- Case: Khoảng rỗng. Khoảng thời gian không có đơn nào khớp trả về tổng bằng 0 và biểu đồ trống thay vì báo lỗi.
- Case: Liên kết tải hết hạn. Liên kết tải file xuất hết hạn sau 24h; người dùng yêu cầu tạo lại để nhận liên kết mới.