Bỏ qua để đến nội dung

Wizard "Sinh lịch hoá đơn dự kiến"

Wizard này generate lịch thanh toán dự kiến từ SO / HĐ để Sales rep + KH cùng xem trước dòng tiền trước khi ký. Không tạo Invoice thực — chỉ preview.

  • Sales rep tạo báo giá xong → KH hỏi “tổng cộng tôi trả bao nhiêu/tháng trong 30 năm?”
  • Manager duyệt HĐ lớn → cần xem cash flow forecast
  • FC forecast doanh thu 12 tháng tới cho báo cáo

Bước 1. Mở SO / HĐ có nhiều billing items

Phần tiêu đề “Bước 1. Mở SO / HĐ có nhiều billing items”

Vd: HĐ thuê 30 năm với 3 billing items:

  • Line 1: Tiền thuê 50,000 VND/m²/year × 5000 m² (yearly)
  • Line 2: Phí QL 2,000 VND/m²/month × 5000 m² (monthly)
  • Line 3: Phí kết nối điện 100,000,000 VND (one-time, milestone “Bàn giao”)

Bước 2. Tab ”📊 CPQ — Lịch thanh toán”

Phần tiêu đề “Bước 2. Tab ”📊 CPQ — Lịch thanh toán””

Trên form SO / HĐ, có tab ”📊 CPQ — Lịch thanh toán” — tab này auto-refresh từ billing_items.

Nếu tab đã có sẵn data → skip wizard. Wizard chỉ dùng để regenerate hoặc preview trước khi save.

Bước 3. Click nút ”🧮 Sinh lịch hoá đơn dự kiến”

Phần tiêu đề “Bước 3. Click nút ”🧮 Sinh lịch hoá đơn dự kiến””

Trên tab, header có nút này. Click → wizard modal mở.

FieldDefaultÝ nghĩa
Ngày bắt đầuNgày ký HĐRecurring bắt đầu từ ngày này
Số tháng preview24Sinh lịch cho N tháng tới (tối đa 360 = 30 năm)
Include one-timeInclude billing items one-time (default có)
Group by monthNhóm dòng tiền theo tháng thay vì per-item

Wizard chạy logic:

  1. Foreach billing_item:
    • Cadence = monthly → sinh 1 dòng mỗi tháng
    • Cadence = quarterly → sinh 1 dòng mỗi 3 tháng
    • Cadence = yearly → sinh 1 dòng mỗi 12 tháng
    • Cadence = one-time → sinh 1 dòng tại ngày milestone
  2. Normalize amount:
    • Yearly amount / 12 → monthly equivalent
    • Quarterly / 3 → monthly equivalent
  3. Escalation apply:
    • Nếu billing_item có escalation_pct → mỗi N năm tăng %
  4. Aggregate: nếu Group by month → sum tất cả items cùng tháng

Wizard show table:

#Ngày dự kiếnMô tảRecurringOne-timeTổngVATCó VAT
11/8/2026Tháng 8/202621,666,667100,000,000121,666,66712,166,667133,833,334
21/9/2026Tháng 9/202621,666,667021,666,6672,166,66723,833,334
251/8/2028Tháng 8/202822,750,000022,750,0002,275,00025,025,000

Footer show:

  • Tổng doanh thu 24 tháng: 550,833,333 VND
  • Tổng VAT: 55,083,333 VND
  • Grand total có VAT: 605,916,666 VND

Parkone chuẩn hoá mọi cadence về monthly-equivalent để so sánh + tổng hợp:

Monthly = Amount cadence-native / cadence_months
cadence_months:
monthly = 1
quarterly = 3
yearly = 12
one_time = duration_months (spread evenly)
  • Line “Tiền thuê 50,000,000 VND/year” → monthly = 4,166,667 VND
  • Line “Phí QL 2,500,000 VND/month” → monthly = 2,500,000 VND
  • Line “Phí điện 100,000,000 VND one-time (spread 12 tháng)” → monthly = 8,333,333 VND

Tổng monthly = 15,000,000 VND. Yearly = 180,000,000 VND. 30 năm = 5,400,000,000 VND.

Nếu Lease Policy có escalation_pct = 5%, escalation_years = 5 (mỗi 5 năm tăng 5%):

Năm 1-5: giá gốc 50,000 VND/m²/year
Năm 6-10: 52,500 VND (+5%)
Năm 11-15: 55,125 VND (+5% compound)
Năm 16-20: 57,881
Năm 21-25: 60,775
Năm 26-30: 63,814

Wizard tự apply, không cần Đại nhập.

Sau khi click Generate, wizard replace table trong tab ”📊 CPQ — Lịch thanh toán” của SO / HĐ. Đại có thể:

  • Refresh nhiều lần (đổi Ngày bắt đầu / Số tháng preview)
  • Export Excel (icon ⬇️)
  • Print PDF (nút “In lịch thanh toán”)
  • Đổi cadence billing_item từ monthlyyearly
  • Regenerate → wizard show 1 dòng lớn tại tháng 1 thay vì 12 dòng nhỏ

Wizard rounding về đầu năm. Nếu HĐ ký giữa năm, escalation tính từ năm đầu tiên full.

Nếu billing_item one-time không có milestone_id gán → wizard treat như “spread evenly” over duration.

Muốn cụ thể: gán milestone → wizard sẽ show tại đúng date của milestone.

Trên tab CPQ → click “In lịch thanh toán” → PDF render qua Doc Engine.

Template PDF default có branding công ty (logo, header, footer) — customize được. Xem Doc Engine → Tạo template.

  • Verify checkbox “Include one-time” tick khi Generate
  • Verify billing_item one-time có milestone_id gán + milestone date < end date

Header HĐ show total_amount = sum(monthly-equivalent × duration_months). Wizard show từng dòng cụ thể theo cadence gốc + escalation.

Có thể chênh do rounding (nhỏ), hoặc escalation apply (lớn hơn total header khi apply nhiều năm).

Verify: click “So sánh” (nếu có) hoặc export cả 2 xem diff.

Lịch quá dài (30 năm = 360 dòng) — hiển thị lag

Phần tiêu đề “Lịch quá dài (30 năm = 360 dòng) — hiển thị lag”

Set “Số tháng preview” = 24 hoặc 60. Không preview full 360 trong UI.

Export Excel để xem full nếu cần.

Chia sẻ: