Skip to content

Tóm tắt quyết định (Decision Brief) — Tổng hợp tài chính đơn hàng

Phiên bản: 3.0 | Ngày: 30/04/2026 | Độ phức tạp: M | Module: ecommerce + settings | Trạng thái: Sẵn sàng review


Mục đích: cửa vào full package — PO, Sếp, Tech Lead, Delivery đọc file này trước. Văn phong: theo templates/_LANGUAGE_RULES.md + _STYLE_GUIDE.md. Canonical: nếu xung đột với source-of-truth.md, ưu tiên SoT. Brief chỉ tóm tắt, không duplicate execution detail.

Tài liệu đầu vào chuẩn

FileVai trò
source-of-truth.mdTruth chuẩn + Phương án đã chốt
evidence-pack.mdBằng chứng code/screen/config
prd.md / ui-spec.md / dev-spec.md / qa-test-plan.md / handoff.mdOwner cho chi tiết

1) Tóm tắt 5 phút

  • Vấn đề: Lễ tân/Manager đang phải mở 3-4 tab (Thanh toán + Hoa hồng + Vật tư + Ghi chú) để biết 1 đơn thu/nợ/chi/lãi bao nhiêu — mỗi đơn mất 3-5 phút.
  • Giải pháp: Thêm section "Tài chính" trong sidebar trái chi tiết đơn dịch vụ (/e/service-order/:id), tổng hợp doanh thu + đã thu + còn nợ + chi phí + lợi nhuận tạm tính từ action backend GetOrderFinancialSummary.
  • Giá trị: Giảm thời gian xem tài chính đơn từ 3-5 phút xuống dưới 5 giây cho 100% đơn dịch vụ.
  • Phân quyền: 2 action mới — view_financial_summary (Manager/Lễ tân/Kế toán) và view_financial_pnl (Admin/BOD), thay đổi được qua Dynamic Permission UI hiện có.
  • Rủi ro lớn nhất: Negative invoice / refund sign behavior cần test kỹ — customer_paid_amount có thể có dấu sai làm số "Đã thu" lệch.

2) Bản đồ package

FileĐọc khi cầnPhụ trách
source-of-truth.mdĐối chiếu canonical truth / conflictPO/BA + TL
evidence-pack.mdXem bằng chứng code/screen/dbPO/BA + TL
prd.mdDuyệt phạm vi nghiệp vụ, DEC, FR/AC, công thứcPO/BA
ui-spec.mdThiết kế/triển khai màn hìnhUI/UX + FE
dev-spec.mdTriển khai action/migration/permissionTL + BE/FE
qa-test-plan.mdTest oracle + regression scopeQA
handoff.mdGiao việc, timeline, RACITL + Delivery

3) Khóa phạm vi

Trong phạm vi

#Nội dungTham chiếu
1Section "Tài chính" trong sidebar /e/service-order/:idprd.md FR-001
2Action backend GetOrderFinancialSummary aggregate cross-sourceprd.md FR-002
3App Settings: nhóm fixed_cost { rate }prd.md FR-003
4Snapshot fixed_cost_rate + fixed_cost_amount vào order mớiprd.md FR-004
5Hook invoice_complete cập nhật fixed cost high-water markprd.md FR-005
62 permission action view_financial_summary, view_financial_pnlprd.md FR-006
7Cảnh báo đơn lỗ (cho user có view_financial_pnl)prd.md FR-007

Ngoài phạm vi

#Không làmLý do
1Chi phí vật tư cộng vào P&LĐịnh lượng vật tư chưa khóa — Phase 2
2Báo cáo tài chính tổng (BCTC)Khác mục đích — feature này per-order
3Tài chính cho đơn product/prepaid/internalDay-1 chỉ service order
4Export Excel financial summaryPhase 2
5Notification cảnh báo lỗ qua SMS/EmailPhase 2
6Per-branch fixed cost rateDay-1 system-wide; Phase 2 nếu cần
7Backfill fixed_cost_rate cho order cũTránh đảo P&L lịch sử

4) Quyết định đã khóa (highlight)

Quyết địnhÝ nghĩa nghiệp vụRef
Build action backend, KHÔNG aggregate FECross-DB + nhiều nguồn dữ liệu, FE không đủ contextsource-of-truth.md DEC-001
Phân quyền qua Dynamic Permission v2POS/CRM có thể được cấp action sau, không hard-code roleDEC-003
fixed_cost_amount là high-water markTránh refund làm giảm overhead đã phát sinhDEC-012
Vật tư trạng thái Đang phát triển, không cộng P&LĐịnh lượng chưa khóa, tránh số saiDEC-006
Cảnh báo lỗ ghi rõ "Chưa gồm chi phí vật tư"Minh bạch với user, tránh hiểu nhầmDEC-015

5) Bản đồ ảnh hưởng

Khu vựcReuse / Extend / Build mớiChú ý chínhRef
UI sidebar🔧 Extend OrderReceiverInfoChèn section TÀI CHÍNH trước DỮ LIỆUui-spec.md
App Settings UI🔧 Extend SystemTable order groupThêm field Tỷ lệ chi phí cố định (%)ui-spec.md
Backend action🆕 Build mới GetOrderFinancialSummary (theo pattern GetListTourLimit)Aggregate parent invoice + commission + tour + (vật tư pending) + fixed costdev-spec.md
DB schema🔧 Extend ecommerce.orderThêm fixed_cost_rate NUMERIC, fixed_cost_amount BIGINTdev-spec.md C4
Hasura metadata🔧 ExtendThêm action permission + 2 module actiondev-spec.md C5
Permission seed🔧 ExtendMigration insert module_permission_action + default role_module.actionsdev-spec.md C8
Event handler🔧 Extend invoice_complete.goUpdate fixed cost high-water markdev-spec.md C5
QA / RegressionManager/Admin xem đơn hiện có; thanh toán + hoàn tiền; permission revokeNegative invoice sign bugqa-test-plan.md

6) Rủi ro và blocker

MứcRủi ro / blockerPhụ tráchCách xử lý
CaoNegative invoice customer_paid_amount sign behavior chưa rõBE DevQA blocker test 4 case: thanh toán → hoàn 1 phần → hoàn full → thanh toán lại
Trung bìnhOrder cũ chưa có fixed_cost_rateTLUI ẩn dòng fixed cost nếu rate=NULL; document trong handoff
Trung bìnhPermission revoke không có hiệu lực ngayFE DevRefetch sau permission change; document UX rõ "cần refresh trang"
ThấpSidebar overflow trên màn nhỏUI/UXCSS max-height + overflow-y cho left side

7) Tóm tắt bàn giao

NhómViệc chínhFile cần đọc
PO/BAChốt phạm vi, DEC, công thức, PDdecision-brief.md, prd.md
UI/UXWireframe section TÀI CHÍNH, copy state, cảnh báo lỗui-spec.md
FEMount component sidebar, state machine, permission gatingui-spec.md, dev-spec.md
BEAction handler, migration, hook invoice_complete, permission seeddev-spec.md
QATest theo FR/AC + 4 negative invoice case + permission matrixqa-test-plan.md
TL / DeliveryChia việc, theo dõi blocker, sign-offhandoff.md

8) Điểm còn mở

IDCâu hỏiPhụ tráchHạnẢnh hưởng nếu chưa chốt
PD-001Đơn đã hủy có cộng tỷ suất lợi nhuận chi nhánh không?PO + BOD02/05/2026Day-1 mặc định KHÔNG cộng — block report tỷ suất chi nhánh nếu đổi
PD-002Tour cost include phần đã trả KTV chưa?TL + Kế toán03/05/2026Day-1 include theo tour_money — block formula nếu đổi