Skip to content

Tài liệu Đặc tả Use Case

Module: CMS Multi-Room Booking & Purchasing


Thông tin tài liệu

Thuộc tínhGiá trị
Tên tài liệuĐặc tả Use Case – Module Booking & Purchasing
Hệ thốngCMS Multi-Room Booking & Purchasing
Phiên bản1.1
Ngày tạo2026-06-09
Cập nhật2026-06-09 - bổ sung phân hệ Kế toán & Công nợ (UC-13…UC-18); tích hợp Open Questions thành Quyết định đã chốt; thêm Phụ lục A - Ghi chú khảo sát yêu cầu
Trạng tháiDraft
Người tạoBusiness Analyst Team
Phạm viQuản lý booking đa phòng, quy trình mua phòng từ supplier, và kế toán/công nợ

Mục lục

  1. Giới thiệu
  2. Phạm vi & Mục tiêu
  3. Thuật ngữ & Định nghĩa
  4. Danh sách Actor
  5. Use Case Diagram tổng quan
  6. Mô hình dữ liệu (ERD)
  7. Đặc tả Use Case - Booking & Purchasing
  8. Đặc tả Use Case - Kế toán & Công nợ
  9. Order Status Lifecycle
  10. Tổng hợp Business Rules
  11. Quyết định nghiệp vụ đã chốt
  12. Phụ lục A - Ghi chú khảo sát yêu cầu

1. Giới thiệu

Công ty hoạt động theo mô hình trung gian phân phối phòng/căn hộ:

  1. Khách hàng đặt phòng trên các nền tảng OTA (Agoda, Trip.com, Booking.com, …).
  2. Công ty nhận booking từ OTA.
  3. Công ty đi thuê/mua phòng thực tế từ Host hoặc Supplier.
  4. Công ty bán lại cho khách và hưởng phần chênh lệch giá.

CMS được xây dựng nhằm thay thế quy trình vận hành thủ công hiện tại trên Lark Base, giải quyết bài toán cốt lõi:

Một booking từ OTA có thể chứa nhiều phòng thuộc nhiều room type. Hệ thống phải xử lý hoàn toàn tự động, tránh việc nhân viên phải copy record thủ công như hiện nay.


2. Phạm vi & Mục tiêu

2.1. Trong phạm vi (In-scope)

  • Đồng bộ và tạo booking đơn/đa phòng từ OTA.
  • Quản lý vòng đời booking (xem, chỉnh sửa, hủy).
  • Quy trình purchasing: tìm phòng, gán supplier, gán phòng thực tế.
  • Cơ chế notification theo purchase lead time của property.
  • Quản lý cancellation policy ở cấp property.
  • Audit trail đầy đủ, không hard delete.

2.2. Ngoài phạm vi (Out-of-scope)

  • Tự động mua phòng (CMS chỉ thông báo, nhân viên xử lý thủ công).
  • Cancellation policy ở cấp room type.
  • Workflow phê duyệt khi thay đổi booking sau purchasing (giai đoạn hiện tại).

2.3. Nguyên tắc thiết kế

Nguyên tắcMô tả
Single BookingMột booking chỉ tồn tại duy nhất một lần trong hệ thống, không tách booking con phục vụ purchasing.
Tách Booking & PurchasingKhách mua "room type"; công ty mua "room thực tế" - hai lớp dữ liệu độc lập.
Audit-firstMọi thay đổi đều được ghi nhận; không cho phép hard delete.
ScalableKhông giới hạn số phòng, số supplier; không phụ thuộc cấu trúc OTA.

3. Thuật ngữ & Định nghĩa

Thuật ngữĐịnh nghĩa
Booking / OrderĐơn đặt phòng duy nhất từ một khách hàng qua OTA.
Order Item / Room RequestMột dòng yêu cầu phòng theo room type với quantity tương ứng.
Room TypeLoại phòng khách đặt (Studio, 1BR, 2BR, …).
Purchasing RecordBản ghi mua một phòng thực tế từ supplier.
Actual RoomPhòng vật lý thực tế được gán cho khách sau khi mua.
Supplier / HostBên cung cấp phòng cho công ty.
PropertyTòa nhà/khu căn hộ chứa các phòng; nơi cấu hình lead time & cancellation policy.
Purchase Lead TimeSố ngày trước check-in mà CMS phát sinh notification để purchasing.
Cancellation PolicyChính sách hủy cấu hình ở cấp property, dùng tính phí hủy.

4. Danh sách Actor

ActorLoạiMô tả
OTA IntegrationHệ thống ngoàiĐồng bộ booking và update từ OTA về CMS.
Operation StaffNgười dùngQuản lý booking, chỉnh sửa, hủy, xem lịch sử.
Purchasing StaffNgười dùngTìm và mua phòng từ supplier, hoàn tất purchasing.
Accounting StaffNgười dùngTheo dõi doanh thu, chi phí, công nợ phải thu/phải trả theo purchasing record; ghi nhận thanh toán & đối soát.
SystemTác nhân tự độngXử lý workflow tự động, scheduler, notification; tự sinh bút toán công nợ (AR/AP) từ booking & purchasing record.

5. Use Case Diagram tổng quan

5.1. Quan hệ giữa các Use Case


6. Mô hình dữ liệu (ERD)

Ghi chú hạch toán: Theo quyết định nghiệp vụ, kế toán hạch toán theo Purchasing Record (xem QĐ-02). Do đó mỗi PURCHASING_RECORD sinh đúng một bản ghi PAYABLE (công nợ phải trả supplier); mỗi ORDER sinh RECEIVABLE (công nợ phải thu từ OTA/khách). PAYMENT.type phân biệt RECEIPT (thu) và DISBURSEMENT (chi); ref_id trỏ tới RECEIVABLE hoặc PAYABLE tương ứng.


7. Đặc tả Use Case - Booking & Purchasing


UC-01 - Create Single Room Booking

TrườngMô tả
Use Case IDUC-01
Tên Use CaseTạo booking đơn phòng
Primary ActorOTA Integration
StakeholdersOperation Staff, Accounting Staff
TriggerOTA gửi booking mới (1 phòng)
PreconditionsOTA booking hợp lệ; dữ liệu khách & property tồn tại
PostconditionsBooking được tạo ở trạng thái Pending Purchase
PriorityHigh
Tần suấtCao

Main Flow

StepAction
1OTA gửi payload booking
2CMS validate dữ liệu (khách, ngày, giá, room type)
3CMS tạo Order
4CMS tạo Order Item (quantity = 1)
5CMS chuyển trạng thái sang Pending Purchase
6CMS ghi audit log "Create Booking"

Alternative Flow

IDĐiều kiệnXử lý
A1Booking trùng OTA Order IDBỏ qua tạo mới, ghi nhận là duplicate

Exception Flow

IDĐiều kiệnXử lý
E1Dữ liệu OTA không hợp lệTừ chối tạo, đẩy vào hàng đợi lỗi để Operation kiểm tra

Business Rules

Rule IDMô tả
BR-01Mỗi booking phải có ít nhất 1 Order Item

UC-02 - Create Multi-Room Booking

TrườngMô tả
Use Case IDUC-02
Tên Use CaseTạo booking nhiều phòng
Primary ActorOTA Integration
StakeholdersOperation Staff, Purchasing Staff
TriggerOTA gửi booking nhiều phòng / nhiều room type
PreconditionsOTA booking hợp lệ
PostconditionsMột Order duy nhất chứa nhiều Order Item được tạo
PriorityCritical
Tần suấtCao

Main Flow

StepAction
1OTA gửi booking (ví dụ: Studio × 2, 1BR × 1)
2CMS validate dữ liệu
3CMS tạo một Order duy nhất
4CMS tạo các Order Item tương ứng từng room type
5CMS lưu quantity cho từng room type
6CMS chuyển trạng thái sang Pending Purchase
7CMS hiển thị booking trên màn hình vận hành & ghi audit log

Sequence Diagram

Business Rules

Rule IDMô tả
BR-02Một booking có thể có nhiều room type
BR-03Một room type có thể có quantity > 1
BR-04Toàn bộ room thuộc cùng booking nằm trong cùng một Order

UC-03 - View Booking Details

TrườngMô tả
Use Case IDUC-03
Tên Use CaseXem chi tiết booking
Primary ActorOperation Staff
StakeholdersAccounting Staff, Purchasing Staff
TriggerNgười dùng mở một booking
PreconditionsBooking tồn tại; người dùng có quyền truy cập
PostconditionsHiển thị đầy đủ dữ liệu booking
PriorityMedium

Main Flow

StepAction
1Người dùng chọn booking từ danh sách
2CMS tải dữ liệu booking & các quan hệ liên quan
3CMS hiển thị màn hình chi tiết

Thông tin hiển thị

NhómNội dung
Booking InformationOrder ID, trạng thái, check-in/out, giá bán
Customer InformationTên, liên hệ
OTA InformationOTA Order ID, nguồn OTA
Order ItemsRoom type, quantity, trạng thái từng item
Purchasing RecordsSupplier, giá mua, actual room
Assigned RoomsDanh sách phòng thực tế đã gán
Audit LogsTimeline thay đổi

UC-04 - Notify Purchasing Window

TrườngMô tả
Use Case IDUC-04
Tên Use CaseThông báo cửa sổ purchasing
Primary ActorSystem (Scheduler)
StakeholdersPurchasing Staff
TriggerDaily scheduler (chạy định kỳ hằng ngày)
PreconditionsProperty có cấu hình purchasing lead time
PostconditionsNotification được tạo cho các booking đến hạn
PriorityHigh

Main Flow

StepAction
1System quét các booking ở trạng thái Pending Purchase
2Tính số ngày còn lại tới check-in
3So sánh với purchase_lead_time của property
4Nếu tới ngưỡng → tạo notification cho Purchasing Staff
5Ghi nhận đã gửi notification (tránh trùng)

Activity Diagram

Business Rules

Rule IDMô tả
BR-05Lead time được cấu hình ở cấp Property
BR-06CMS chỉ notify, không tự động purchasing

UC-05 - Create Purchasing Record

TrườngMô tả
Use Case IDUC-05
Tên Use CaseTạo bản ghi purchasing
Primary ActorPurchasing Staff
StakeholdersAccounting Staff, Operation Staff
TriggerNgười dùng thực hiện purchasing cho một phòng
PreconditionsBooking ở trạng thái Pending Purchase / Partially Purchased
PostconditionsPurchasing Record được tạo & gán phòng thực tế
PriorityCritical

Main Flow

StepAction
1Chọn Order Item cần mua
2Chọn Supplier
3Nhập giá mua (purchase price)
4Chọn Property
5Chọn Actual Room
6Lưu Purchasing Record
7Cập nhật trạng thái Order Item / Order (Partially Purchased) & ghi audit

Alternative Flow

IDĐiều kiệnXử lý
A1Không tìm được phòng đúng room typeChuyển sang UC-07 Replace Room Type
A2Mua từ nhiều supplier cho cùng room typeTạo nhiều Purchasing Record riêng

Business Rules

Rule IDMô tả
BR-07Một booking có thể có nhiều supplier
BR-08Một supplier có thể cung cấp nhiều room
BR-09Actual Room được xác định sau khi mua

UC-06 - Complete Purchasing

TrườngMô tả
Use Case IDUC-06
Tên Use CaseHoàn tất purchasing
Primary ActorPurchasing Staff
StakeholdersOperation Staff, Accounting Staff
TriggerĐã mua đủ toàn bộ phòng trong booking
PreconditionsTất cả room đã có Purchasing Record, supplier & actual room
PostconditionsBooking chuyển trạng thái Purchased
PriorityCritical

Main Flow

StepAction
1Hệ thống kiểm tra tất cả Order Item của booking
2Xác nhận mọi phòng đã có Purchasing Record + Supplier + Actual Room
3Purchasing Staff xác nhận hoàn tất
4CMS cập nhật trạng thái Purchased & ghi audit

Exception Flow

IDĐiều kiệnXử lý
E1Còn phòng chưa có Purchasing RecordChặn hoàn tất, hiển thị danh sách phòng thiếu

Business Rules

Rule IDMô tả
BR-10Purchasing chỉ hoàn tất khi toàn bộ room đã được mua, gán supplier & gán actual room
BR-11Không cho phép Purchased khi còn room thiếu

UC-07 - Replace Room Type

TrườngMô tả
Use Case IDUC-07
Tên Use CaseThay đổi room type
Primary ActorPurchasing Staff
StakeholdersOperation Staff
TriggerKhông mua được room đúng yêu cầu khách
PreconditionsBooking chưa Purchased
PostconditionsBooking được cập nhật room type & lưu audit
PriorityHigh

Main Flow

StepAction
1Chọn room/Order Item cần thay
2Chọn room type mới (ví dụ: Studio → 2BR)
3Nhập lý do thay đổi (bắt buộc)
4Xác nhận thay đổi
5Ghi audit log "Replace Room Type" (old/new value + reason)

Business Rules

Rule IDMô tả
BR-12Bắt buộc nhập lý do khi replace
BR-13Không được xóa lịch sử - chỉ thêm bản ghi mới

UC-08 - Modify Booking Before Purchasing

TrườngMô tả
Use Case IDUC-08
Tên Use CaseChỉnh sửa booking trước purchasing
Primary ActorOperation Staff
StakeholdersPurchasing Staff
TriggerNgười dùng chỉnh sửa booking
PreconditionsBooking chưa Purchased
PostconditionsBooking được cập nhật & ghi audit
PriorityHigh

Allowed Actions

Hành độngCho phép
Tăng số lượng phòngCho phép
Giảm số lượng phòngCho phép
Đổi room typeCho phép
Đổi ngày check-inCho phép
Đổi ngày check-outCho phép

Main Flow

StepAction
1Người dùng mở booking & chọn chỉnh sửa
2Thực hiện thay đổi (quantity / room type / ngày)
3CMS validate ràng buộc nghiệp vụ
4Lưu thay đổi & ghi audit log (old/new value)

Business Rules

Rule IDMô tả
BR-26Mọi thay đổi phải được audit (áp dụng chung)

UC-09 - Modify Booking After Purchasing

TrườngMô tả
Use Case IDUC-09
Tên Use CaseChỉnh sửa booking sau purchasing
Primary ActorOperation Staff
StakeholdersAccounting Staff
TriggerNgười dùng chỉnh sửa booking đã Purchased
PreconditionsBooking ở trạng thái Purchased
PostconditionsBooking được cập nhật (giảm quantity) hoặc thao tác bị từ chối
PriorityHigh

Allowed / Restricted Actions

Hành độngSau Purchasing
Tăng số lượng phòngKhông cho phép
Đổi room typeKhông cho phép
Đổi ngày check-inKhông cho phép
Đổi ngày check-outKhông cho phép
Giảm số lượng phòngCho phép (có thể bị charge từ 50% đến 100% tùy vào đã mua hay chưa)

Decision Flow

Business Rules

Rule IDMô tả
BR-14Không cho tăng quantity
BR-15Không cho đổi room type
BR-16Không cho đổi check-in date
BR-17Không cho đổi check-out date
BR-18Cho phép giảm quantity
BR-19Giảm quantity có thể bị charge (tới 100% theo policy)
BR-27Không cho phép Partial Cancellation sau khi Purchased (QĐ-01)
BR-30Hiện chưa áp dụng workflow phê duyệt cho thay đổi sau Purchased (QĐ-04)

UC-10 - Cancel Booking

TrườngMô tả
Use Case IDUC-10
Tên Use CaseHủy booking
Primary ActorOTA Integration, Operation Staff
StakeholdersAccounting Staff, Purchasing Staff
TriggerKhách hủy booking / OTA gửi yêu cầu hủy
PreconditionsBooking tồn tại & chưa Cancelled
PostconditionsBooking chuyển Cancelled; cancellation fee được tính
PriorityHigh

Main Flow

StepAction
1Nhận yêu cầu hủy
2Xác định cancellation policy của property
3Tính cancellation fee theo policy & trạng thái purchasing
4Cập nhật trạng thái Cancelled (soft delete)
5Ghi audit log "Cancellation"

Sequence Diagram

Business Rules

Rule IDMô tả
BR-20Cancellation policy cấu hình theo Property (không theo room type)
BR-21Có thể charge đến 100% sau khi purchasing hoàn tất
BR-27Không cho phép Partial Cancellation sau khi Purchased (QĐ-01)

UC-11 - OTA Booking Update

TrườngMô tả
Use Case IDUC-11
Tên Use CaseXử lý update từ OTA
Primary ActorOTA Integration
StakeholdersOperation Staff
TriggerOTA gửi update cho booking đã tồn tại
PreconditionsBooking tồn tại
PostconditionsUpdate được đưa vào queue chờ user quyết định
PriorityMedium

Main Flow

StepAction
1Nhận OTA update
2Kiểm tra trạng thái booking hiện tại
3Đưa update vào queue xử lý (không tự áp dụng)
4User quyết định approve / reject
5Ghi audit log kết quả xử lý

Alternative Flow

IDĐiều kiệnXử lý
A1Update là yêu cầu hủyChuyển sang UC-10 Cancel Booking
A2Booking đã PurchasedThường reject hoặc xử lý như cancellation

Business Rules

Rule IDMô tả
BR-22Không tự động update booking đã Purchased
BR-23OTA update thường được xử lý như cancellation hoặc reject

UC-12 - View Audit History

TrườngMô tả
Use Case IDUC-12
Tên Use CaseXem lịch sử audit
Primary ActorOperation Staff
StakeholdersAccounting Staff, Management
TriggerNgười dùng mở lịch sử thay đổi của booking
PreconditionsBooking tồn tại
PostconditionsHiển thị timeline thay đổi đầy đủ
PriorityMedium

Audit Events được ghi nhận

Sự kiệnSự kiện
Create BookingReplace Room Type
Modify BookingPurchasing Update
Add RoomSupplier Change
Remove RoomCancellation
Status Change-

Thông tin Audit (mỗi bản ghi)

TrườngMô tả
UserNgười thực hiện thay đổi
TimestampThời điểm thay đổi
ActionLoại hành động
Old ValueGiá trị cũ
New ValueGiá trị mới
ReasonLý do (nếu áp dụng)

Business Rules

Rule IDMô tả
BR-24Không cho hard delete booking
BR-25Không cho hard delete purchasing records
BR-26Mọi thay đổi phải được audit

8. Đặc tả Use Case - Kế toán & Công nợ

8.1. Mô hình kế toán

Kế toán theo dõi 3 chỉ tiêu trên mỗi booking:

Chỉ tiêuNguồn dữ liệuDiễn giải
Doanh thu (Revenue)ORDER.selling_priceGiá bán cho khách qua OTA → công nợ phải thu.
Chi phí (Cost)Tổng PURCHASING_RECORD.purchase_priceGiá mua phòng từ supplier → công nợ phải trả.
Lợi nhuận (Margin)Revenue − CostPhần chênh lệch công ty hưởng.

Hai loại công nợ:

  • Công nợ phải thu (AR – Receivable): công ty thu từ OTA/khách, gắn với ORDER.
  • Công nợ phải trả (AP – Payable): công ty trả cho supplier, gắn với từng PURCHASING_RECORD.

Nguyên tắc hạch toán: Kế toán hạch toán theo Purchasing Record, không theo Booking (xem QĐ-02). Mỗi Purchasing Record là một đơn vị công nợ phải trả độc lập, cho phép một booking có nhiều supplier với nhiều dòng công nợ riêng biệt.

8.2. Use Case Diagram - Phân hệ Kế toán

8.3. Vòng đời một dòng công nợ (AR/AP)


UC-13 - View Booking Financial Summary

TrườngMô tả
Use Case IDUC-13
Tên Use CaseXem tổng quan tài chính của booking
Primary ActorAccounting Staff
StakeholdersOperation Staff, Management
TriggerNgười dùng mở tab "Tài chính" của một booking
PreconditionsBooking tồn tại; có ít nhất 1 Purchasing Record để tính chi phí
PostconditionsHiển thị doanh thu, chi phí, margin & trạng thái công nợ
PriorityHigh

Main Flow

StepAction
1Người dùng mở tab Tài chính của booking
2CMS lấy selling_price (doanh thu / phải thu)
3CMS tổng hợp purchase_price từ tất cả Purchasing Record (chi phí / phải trả)
4CMS tính Margin = Doanh thu − Chi phí
5CMS hiển thị breakdown theo từng supplier & trạng thái thanh toán

Thông tin hiển thị

NhómNội dung
Doanh thuGiá bán, công nợ phải thu, đã thu, còn lại
Chi phíTổng giá mua, danh sách Purchasing Record theo supplier
MarginLợi nhuận tuyệt đối & tỷ suất (%)
Công nợTrạng thái AR/AP (Open / Partially Settled / Settled)
Điều chỉnhPhí hủy, charge giảm quantity (nếu có)

Business Rules

Rule IDMô tả
BR-28Kế toán hạch toán theo Purchasing Record, không theo Booking
BR-31Chi phí booking = tổng giá mua của các Purchasing Record

UC-14 - Track Supplier Payables

TrườngMô tả
Use Case IDUC-14
Tên Use CaseTheo dõi công nợ phải trả Supplier
Primary ActorAccounting Staff
Secondary ActorSystem (tự sinh bút toán AP)
StakeholdersPurchasing Staff, Management
TriggerPurchasing Record được tạo / người dùng mở danh sách phải trả
PreconditionsTồn tại ít nhất 1 Purchasing Record
PostconditionsMỗi Purchasing Record có một bản ghi Payable được theo dõi
PriorityCritical

Main Flow

StepAction
1System tự sinh Payable khi Purchasing Record được tạo (amount = purchase_price)
2Accounting mở danh sách công nợ phải trả, lọc theo supplier / property / kỳ
3CMS hiển thị: supplier, booking, giá mua, đã trả, còn lại, trạng thái
4Accounting đối chiếu với hóa đơn/chứng từ supplier
5Khi thanh toán → chuyển sang UC-16 Record Payment & Settlement

Business Rules

Rule IDMô tả
BR-29Không đổi Supplier của Purchasing Record sau khi Purchased nếu đơn không phát sinh thay đổi
BR-32Mỗi Purchasing Record sinh đúng một bản ghi Payable
BR-34Một Payable chỉ Settled khi outstanding = 0

UC-15 - Track Receivables

TrườngMô tả
Use Case IDUC-15
Tên Use CaseTheo dõi công nợ phải thu (OTA/Khách)
Primary ActorAccounting Staff
Secondary ActorSystem (tự sinh bút toán AR)
StakeholdersOperation Staff, Management
TriggerBooking được tạo / người dùng mở danh sách phải thu
PreconditionsBooking tồn tại với giá bán hợp lệ
PostconditionsMỗi Order có bản ghi Receivable được theo dõi
PriorityHigh

Main Flow

StepAction
1System sinh Receivable từ selling_price của Order
2Accounting mở danh sách phải thu, lọc theo OTA / kỳ / trạng thái
3CMS hiển thị: booking, OTA, số phải thu, đã thu, còn lại
4Khi nhận tiền từ OTA → UC-16 Record Payment & Settlement

Alternative Flow

IDĐiều kiệnXử lý
A1Booking bị hủy có phí hủyCMS điều chỉnh Receivable theo cancellation fee (BR-35)
A2Giảm quantity sau Purchased có chargeGhi nhận khoản charge vào Receivable

Business Rules

Rule IDMô tả
BR-33Mỗi Order sinh Receivable theo giá bán
BR-35Phí hủy / charge giảm quantity được hạch toán vào công nợ phải thu

UC-16 - Record Payment & Settlement

TrườngMô tả
Use Case IDUC-16
Tên Use CaseGhi nhận thanh toán & đối soát công nợ
Primary ActorAccounting Staff
StakeholdersSupplier, OTA, Management
TriggerPhát sinh thu tiền từ OTA hoặc chi tiền cho supplier
PreconditionsTồn tại công nợ AR/AP ở trạng thái Open hoặc Partially Settled
PostconditionsSố dư công nợ được cập nhật; ghi audit log
PriorityHigh

Main Flow

StepAction
1Chọn dòng công nợ (Receivable / Payable)
2Nhập số tiền thanh toán, ngày, phương thức, ghi chú
3CMS tạo bản ghi Payment (RECEIPT / DISBURSEMENT)
4CMS cập nhật outstanding và trạng thái công nợ
5CMS ghi audit log "Payment Recorded"

Sequence Diagram

Business Rules

Rule IDMô tả
BR-36Số tiền thanh toán không vượt quá outstanding của công nợ
BR-37Không cho hard delete bút toán/thanh toán; chỉ điều chỉnh bằng bút toán mới

UC-17 - System-wide Debt Tracking (List View)

TrườngMô tả
Use Case IDUC-17
Tên Use CaseMàn hình theo dõi công nợ toàn hệ thống (List View)
Primary ActorAccounting Staff
StakeholdersManagement, Operation Staff
TriggerNgười dùng mở màn hình "Công nợ" trên menu kế toán
PreconditionsNgười dùng có quyền truy cập phân hệ kế toán
PostconditionsHiển thị danh sách công nợ toàn hệ thống kèm tổng hợp
PriorityCritical

Đây là màn hình riêng dành cho kế toán, tổng hợp công nợ AR + AP của toàn bộ hệ thống dưới dạng list view - không phụ thuộc vào việc mở từng booking.

Main Flow

StepAction
1Người dùng mở màn hình Công nợ
2CMS tải toàn bộ dòng công nợ AR/AP (phân trang)
3Người dùng áp dụng bộ lọc & sắp xếp
4CMS hiển thị danh sách + thẻ KPI tổng hợp
5Người dùng có thể drill-down vào booking (UC-13) hoặc xuất báo cáo (UC-18)

Bộ lọc (Filters)

FilterGiá trị
Loại công nợPhải thu (AR) / Phải trả (AP) / Tất cả
Trạng tháiOpen / Partially Settled / Settled / Overdue
SupplierChọn 1 hoặc nhiều supplier
OTAAgoda / Trip.com / Booking.com / …
PropertyChọn property
Khoảng thời gianTheo ngày tạo / ngày đến hạn / check-in
Quá hạnChỉ hiển thị công nợ quá hạn

Cột hiển thị (Columns)

CộtMô tả
LoạiAR / AP
Booking IDMã booking liên quan
OTA Order IDMã đơn OTA
Đối tácOTA (với AR) / Supplier (với AP)
PropertyTòa nhà liên quan
Check-in / outNgày lưu trú
Số tiềnTổng công nợ
Đã thanh toánĐã thu / đã trả
Còn lại (Outstanding)Số dư còn lại
Đến hạnNgày đến hạn thanh toán
Trạng tháiOpen / Partially Settled / Settled / Overdue

Thẻ tổng hợp (KPI Cards)

KPIDiễn giải
Tổng phải thuΣ outstanding của AR
Tổng phải trảΣ outstanding của AP
Net (AR − AP)Chênh lệch ròng
Công nợ quá hạnΣ outstanding các dòng Overdue

Bố cục màn hình (Wireframe)

text
┌───────────────────────────────────────────────────────────────────────────┐
│  CÔNG NỢ TOÀN HỆ THỐNG                              [ Xuất báo cáo ▼ ]      │
├───────────────────────────────────────────────────────────────────────────┤
│  Phải thu: 1,250,000,000   Phải trả: 880,000,000   Net: 370,000,000        │
│  Quá hạn: 95,000,000                                                        │
├───────────────────────────────────────────────────────────────────────────┤
│ [Loại▼] [Trạng thái▼] [Supplier▼] [OTA▼] [Property▼] [Từ ngày–Đến ngày] 🔍 │
├──────┬───────────┬──────────┬──────────┬──────────┬──────────┬─────────────┤
│ Loại │ Booking   │ Đối tác  │ Số tiền  │ Đã TT    │ Còn lại  │ Trạng thái  │
├──────┼───────────┼──────────┼──────────┼──────────┼──────────┼─────────────┤
│ AP   │ #123-R1   │ Supp A   │  5,000k  │  0       │  5,000k  │ Open        │
│ AP   │ #123-R2   │ Supp B   │  4,500k  │  4,500k  │  0       │ Settled     │
│ AR   │ #123      │ Agoda    │ 12,000k  │  6,000k  │  6,000k  │ Partial     │
│ AR   │ #145      │ Trip.com │  8,000k  │  0       │  8,000k  │ Overdue     │
└──────┴───────────┴──────────┴──────────┴──────────┴──────────┴─────────────┘
        ◀ 1 2 3 … ▶                                    Hiển thị 1–20 / 248

Activity Flow

Business Rules

Rule IDMô tả
BR-38List view tổng hợp công nợ AR + AP của toàn hệ thống
BR-39Công nợ quá ngày đến hạn mà outstanding > 0 → trạng thái Overdue

UC-18 - Export Financial / Debt Report

TrườngMô tả
Use Case IDUC-18
Tên Use CaseXuất báo cáo công nợ / tài chính
Primary ActorAccounting Staff
StakeholdersManagement
TriggerNgười dùng nhấn "Xuất báo cáo"
PreconditionsCó dữ liệu công nợ phù hợp bộ lọc hiện tại
PostconditionsFile báo cáo được tạo & tải về
PriorityMedium

Main Flow

StepAction
1Người dùng giữ nguyên/điều chỉnh bộ lọc trên màn hình Công nợ
2Chọn định dạng xuất (Excel / CSV / PDF)
3CMS tổng hợp dữ liệu theo bộ lọc
4CMS sinh file kèm dòng tổng hợp (subtotal/total)
5Người dùng tải file về

Business Rules

Rule IDMô tả
BR-40Báo cáo xuất theo đúng bộ lọc đang áp dụng trên màn hình

9. Order Status Lifecycle

9.1. Bảng chuyển trạng thái

Từ trạng tháiTới trạng tháiĐiều kiện / Use Case
DraftConfirmedValidate OTA thành công
ConfirmedPending PurchaseBooking sẵn sàng (UC-01/UC-02)
Pending PurchasePartially PurchasedTạo một phần Purchasing Record (UC-05)
Partially PurchasedPurchasedHoàn tất toàn bộ purchasing (UC-06)
PurchasedChecked InKhách nhận phòng
Checked InChecked OutKhách trả phòng
(bất kỳ active)CancelledHủy booking (UC-10)

10. Tổng hợp Business Rules

Rule IDUse CaseMô tả
BR-01UC-01Mỗi booking phải có ít nhất 1 Order Item
BR-02UC-02Một booking có thể có nhiều room type
BR-03UC-02Một room type có thể có quantity > 1
BR-04UC-02Toàn bộ room thuộc cùng booking nằm trong cùng một Order
BR-05UC-04Lead time được cấu hình ở cấp Property
BR-06UC-04CMS chỉ notify, không tự purchasing
BR-07UC-05Một booking có thể có nhiều supplier
BR-08UC-05Một supplier có thể cung cấp nhiều room
BR-09UC-05Actual Room được xác định sau khi mua
BR-10UC-06Purchasing chỉ hoàn tất khi toàn bộ room đã mua/gán đủ
BR-11UC-06Không cho phép Purchased khi còn room thiếu
BR-12UC-07Bắt buộc nhập lý do khi replace
BR-13UC-07Không được xóa lịch sử
BR-14UC-09Không cho tăng quantity sau purchasing
BR-15UC-09Không cho đổi room type sau purchasing
BR-16UC-09Không cho đổi check-in date sau purchasing
BR-17UC-09Không cho đổi check-out date sau purchasing
BR-18UC-09Cho phép giảm quantity sau purchasing
BR-19UC-09Giảm quantity có thể bị charge
BR-20UC-10Cancellation policy cấu hình theo Property
BR-21UC-10Có thể charge đến 100% sau khi purchasing
BR-22UC-11Không tự động update booking đã Purchased
BR-23UC-11OTA update xử lý như cancellation hoặc reject
BR-24UC-12Không cho hard delete booking
BR-25UC-12Không cho hard delete purchasing records
BR-26UC-08/09/12Mọi thay đổi phải được audit
BR-27UC-09/UC-10Không cho phép Partial Cancellation sau khi Purchased (QĐ-01)
BR-28UC-13/UC-14Kế toán hạch toán theo Purchasing Record, không theo Booking (QĐ-02)
BR-29UC-14Không đổi Supplier của Purchasing Record sau Purchased nếu đơn không phát sinh thay đổi (QĐ-03)
BR-30UC-09Chưa áp dụng workflow phê duyệt khi thay đổi booking sau Purchased (QĐ-04)
BR-31UC-13Chi phí booking = tổng giá mua của các Purchasing Record
BR-32UC-14Mỗi Purchasing Record sinh đúng một bản ghi Payable
BR-33UC-15Mỗi Order sinh Receivable theo giá bán
BR-34UC-14Một Payable chỉ Settled khi outstanding = 0
BR-35UC-15Phí hủy / charge giảm quantity được hạch toán vào công nợ phải thu
BR-36UC-16Số tiền thanh toán không vượt quá outstanding
BR-37UC-16Không cho hard delete bút toán/thanh toán; điều chỉnh bằng bút toán mới
BR-38UC-17List view tổng hợp công nợ AR + AP toàn hệ thống
BR-39UC-17Outstanding > 0 quá ngày đến hạn → trạng thái Overdue
BR-40UC-18Báo cáo xuất theo đúng bộ lọc đang áp dụng

11. Quyết định nghiệp vụ đã chốt

Các vấn đề trước đây còn để mở (Open Questions) đã được chốttích hợp trực tiếp vào các use case & business rule liên quan. Bảng dưới đây dùng để truy vết quyết định → nơi áp dụng.

Mã QĐVấn đềQuyết địnhÁp dụng tại
QĐ-01Có cho phép Partial Cancellation sau khi Purchased không?KhôngUC-09, UC-10 → BR-27
QĐ-02Kế toán hạch toán theo Booking hay Purchasing Record?Theo Purchasing RecordUC-13, UC-14 → BR-28; ERD (PAYABLE/RECEIVABLE)
QĐ-03Purchasing Record có được đổi Supplier sau Purchased không?Không, nếu đơn không phát sinh thay đổiUC-14 → BR-29
QĐ-04Có cần workflow phê duyệt khi thay đổi booking sau Purchased không?Hiện tại chưaUC-09 → BR-30 (ghi nhận cho giai đoạn sau)

Ghi chú thiết kế: Hệ thống phải hỗ trợ mở rộng - không giới hạn số phòng mỗi room type, không giới hạn số supplier, và không phụ thuộc vào cấu trúc hiện tại của OTA. Mọi mở rộng quy mô kinh doanh trong tương lai không được yêu cầu thay đổi data model cốt lõi (Booking → Order Item → Purchasing Record → Actual Room).


Phụ lục A - Ghi chú khảo sát yêu cầu

Phụ lục này ghi lại các phát hiện trong quá trình trao đổi yêu cầu (requirement discovery) và truy vết mỗi phát hiện tới use case / business rule / quyết định tương ứng trong tài liệu chính.

Bảng truy vết tổng hợp

MụcPhát hiệnTruy vết
A.1"Đơn nhiều căn" = một booking chứa nhiều roomUC-02, BR-02→BR-04
A.2Loại bỏ thao tác copy thủ công của Lark Base§1 Giới thiệu, UC-02
A.3Purchasing theo Purchase Lead Time, không tự độngUC-04, BR-05, BR-06
A.4Một booking mua từ nhiều supplierUC-05, BR-07, BR-08; UC-14
A.5Khách đặt room type, mua room thực tếUC-05, BR-09; ERD
A.6Cho phép thay thế room type khi không mua đượcUC-07, BR-12, BR-13
A.7Audit log, không hard deleteUC-12, BR-24→BR-26
A.8Cancellation policy ở cấp PropertyUC-10, BR-20
A.9Giới hạn chỉnh sửa sau purchasingUC-09, BR-14→BR-19, BR-27
A.10KPI không bị ảnh hưởng bởi booking nhiều roomGhi chú phạm vi (xem A.10)
A.11OTA update xử lý như hủy / từ chốiUC-11, BR-22, BR-23
A.12Không giới hạn số room/supplier - scalable§2.3, Ghi chú thiết kế

A.1. Làm rõ Multi-Room Booking

Ban đầu xuất hiện khái niệm "đơn nhiều căn". Sau khi trao đổi với người dùng, xác nhận:

  • "Đơn nhiều căn" thực chất là một booking chứa nhiều room.
  • Ví dụ: Studio × 2, 1BR × 1.
  • Booking vẫn là một Order duy nhất → CMS không cần tạo nhiều booking riêng biệt.
  • Booking sẽ chứa nhiều room requests (Order Item).

Truy vết: UC-02 Create Multi-Room Booking; BR-02 (nhiều room type), BR-03 (quantity > 1), BR-04 (cùng một Order).


A.2. Quy trình hiện tại trên Lark Base

Hiện tại dữ liệu được quản lý trên Lark Base. Khi booking có nhiều room:

  • Nhân viên phải copy record thủ công.
  • Các record có phần lớn dữ liệu giống nhau.
  • Khác biệt chủ yếu nằm ở thông tin purchasing.

Mục tiêu của CMS:

  • Loại bỏ thao tác copy thủ công.
  • Tự động quản lý room requests và purchasing records.

Truy vết: §1 Giới thiệu (bài toán cốt lõi); UC-02 tự động tạo Order Items.


A.3. Purchasing Workflow

Purchasing không diễn ra ngay khi nhận booking. Mỗi Property được cấu hình Purchase Lead Time (ví dụ: 3 / 5 / 7 ngày).

Trước ngày check-in N ngày:

  • Hệ thống gửi notification.
  • Nhân viên purchasing thực hiện xử lý.
  • CMS không tự động purchasing.

Truy vết: UC-04 Notify Purchasing Window; BR-05 (lead time ở Property), BR-06 (chỉ notify, không tự purchasing).


A.4. Xử lý Supplier

Một booking có thể được mua từ nhiều supplier. Ví dụ Studio × 2:

  • Supplier A cung cấp 1 room.
  • Supplier B cung cấp 1 room.

Accounting có thể cần theo dõi chi phí theo supplier. Data model phải hỗ trợ nhiều supplier cho cùng booking.

Truy vết: UC-05 Create Purchasing Record; BR-07 (nhiều supplier), BR-08 (một supplier nhiều room); UC-14 theo dõi công nợ theo supplier.


A.5. Gán Actual Room

Khách đặt room type; purchasing mua room thực tế. Ví dụ khách đặt Studio × 2 → purchasing gán Room 101, Room 203.

  • CMS phải quản lý tới room cụ thể.
  • Room có thể được gán sau khi purchasing hoàn tất.

Truy vết: UC-05 (chọn Actual Room); BR-09 (actual room xác định sau khi mua); ERD: PURCHASING_RECORD → ACTUAL_ROOM.


A.6. Kịch bản Room Replacement

Có trường hợp không mua được đúng room type. Ví dụ khách đặt Studio × 2 nhưng purchasing chỉ tìm được Studio × 1 + 2BR × 1.

  • Hệ thống cần cho phép thay thế room type.
  • Mọi thay đổi phải được audit.

Truy vết: UC-07 Replace Room Type; BR-12 (bắt buộc nhập lý do), BR-13 (không xóa lịch sử).


A.7. Audit History

Người dùng yêu cầu lưu lịch sử thay đổi qua Audit Log, lưu: User, Timestamp, Action, Old Value, New Value, Reason.

  • Không sử dụng hard delete.
  • Khi xóa dữ liệu → chuyển trạng thái Removed / Cancelled, vẫn giữ lịch sử.

Truy vết: UC-12 View Audit History; BR-24, BR-25 (không hard delete), BR-26 (mọi thay đổi phải audit).


A.8. Cancellation Policy

Cancellation Policy được cấu hình ở cấp Property, không cần tới cấp Room Type.

  • Chưa xác định có hỗ trợ cấu hình toàn hệ thống (global default) hay không → cần làm rõ ở giai đoạn sau.

Truy vết: UC-10 Cancel Booking; BR-20 (policy theo Property). Điểm mở: policy toàn hệ thống chưa chốt.


A.9. Chỉnh sửa Booking sau Purchasing

Sau khi purchasing hoàn tất:

Hành độngTrạng thái
Tăng quantityKhông cho phép
Đổi room typeKhông cho phép
Đổi check-in dateKhông cho phép
Đổi check-out dateKhông cho phép
Giảm quantityCho phép (có thể charge tới 100%)

Truy vết: UC-09 Modify Booking After Purchasing; BR-14→BR-19; BR-27 (không partial cancellation sau Purchased).


A.10. Ảnh hưởng KPI

Hiện tại KPI không bị ảnh hưởng bởi booking nhiều room:

  • Một booking vẫn được giao cho cùng một nhân viên vận hành.
  • Không cần tách KPI theo room.

Truy vết: Ghi chú phạm vi - không phát sinh use case; thiết kế data model giữ booking là đơn vị giao việc.


A.11. OTA Booking Updates

OTA đôi khi gửi thay đổi booking. Nghiệp vụ hiện tại:

  • Hủy booking, hoặc
  • Từ chối thay đổi.

Không tự động cập nhật booking đã purchasing.

Truy vết: UC-11 OTA Booking Update; BR-22 (không tự update booking đã Purchased), BR-23 (xử lý như cancellation/reject).


A.12. Cân nhắc Khả năng mở rộng

Hiện tại: tối đa khoảng 5 room cho mỗi room type. Tuy nhiên hệ thống cần:

  • Không giới hạn số lượng room.
  • Không giới hạn số lượng supplier.
  • Hỗ trợ mở rộng business trong tương lai.

Truy vết: §2.3 Nguyên tắc thiết kế (Scalable); Ghi chú thiết kế cuối §11. Data model cốt lõi không phụ thuộc số lượng hiện tại.

PTX Channel Manager — Tài Liệu Nội Bộ