Thanh toán partial + multiple + Credit Note
Thanh toán partial + multiple + Credit Note
Phần tiêu đề “Thanh toán partial + multiple + Credit Note”Real-world payment không phải luôn 100% full. Trang này cover 4 cases: partial, multiple installments, overpay, và Credit Note.
Case 1 — Partial (trả 1 phần)
Phần tiêu đề “Case 1 — Partial (trả 1 phần)”KH có Invoice 100M, trả 50M trước, còn 50M trả sau.
1. Register Payment đợt 1
Phần tiêu đề “1. Register Payment đợt 1”Trên Invoice → click “Register Payment” → điền:
- Amount: 50,000,000 (không phải 100M mặc định)
- Payment Date: today
Odoo tạo Payment 50M linked Invoice.
2. State thay đổi
Phần tiêu đề “2. State thay đổi”- Invoice.payment_state → Partial (không Paid)
- Amount residual: 50,000,000 (còn thiếu)
- Chatter: “Partial payment 50M registered”
3. Đợt 2 (khi KH trả nốt)
Phần tiêu đề “3. Đợt 2 (khi KH trả nốt)”Trên cùng Invoice → click “Register Payment” lần 2 → 50,000,000
Odoo tạo Payment thứ 2. Invoice.payment_state → Paid (100%).
Case 2 — Multiple installments theo Payment Term
Phần tiêu đề “Case 2 — Multiple installments theo Payment Term”HĐ có Payment Term 30/70:
- Đợt 1: 30% ngay khi Post (advance)
- Đợt 2: 70% sau 30 ngày
Post Invoice → Odoo tự tạo 2 payment lines dự kiến trong Invoice tab “Journal Items”.
FC Register mỗi đợt khi KH trả:
- Đợt 1 (30% = 30M): Register Payment → chọn journal item “30%” → confirm
- Đợt 2 (70% = 70M): Register Payment → chọn journal item “70%” → confirm
Payment state Invoice = Paid khi cả 2 done.
Case 3 — Overpay (KH trả dư)
Phần tiêu đề “Case 3 — Overpay (KH trả dư)”KH trả 105M cho Invoice 100M (thừa 5M do KH nhầm).
1. Register Payment 105M
Phần tiêu đề “1. Register Payment 105M”Trên Invoice → Register Payment → Amount 105,000,000
2. Odoo detect overpayment
Phần tiêu đề “2. Odoo detect overpayment”Modal cảnh báo: “Payment exceeds invoice amount by 5,000,000. Create outstanding credit?”
Chọn:
- Yes: Odoo tạo Outstanding Credit 5M — sẽ dùng cho Invoice sau
- No: FC cancel, sửa lại amount cho match
3. Nếu chọn Yes → Outstanding Credit
Phần tiêu đề “3. Nếu chọn Yes → Outstanding Credit”- Invoice.payment_state = Paid
- Partner có 5M credit chờ dùng
- Invoice tiếp theo có thể apply credit này → giảm 5M
Hoặc option khác: tạo Payment thứ 2 refund 5M cho KH.
Case 4 — Underpay stuck lâu
Phần tiêu đề “Case 4 — Underpay stuck lâu”KH trả 50M, hứa trả 50M sau, nhưng 3 tháng không trả → Invoice stuck Partial 3 tháng.
Actions:
- Follow-up qua nhắc nợ: cron overdue reminder tự gửi email
- Escalation: Manual call, gặp trực tiếp
- Nếu KH không thể trả:
- Option A: Giảm giá còn lại — tạo Credit Note offset 50M → Invoice paid
- Option B: Ghi nhận bad debt — write off 50M (Kế toán advance)
- Option C: Kiện toà — path legal
Credit Note — hoàn tiền / offset
Phần tiêu đề “Credit Note — hoàn tiền / offset”Credit Note = Invoice âm, dùng để:
- Refund KH sau khi cancel HĐ
- Giảm giá cho Invoice đã Post
- Sửa lỗi Invoice sau khi Post
Tạo Credit Note
Phần tiêu đề “Tạo Credit Note”1. Mở Invoice cần credit
Phần tiêu đề “1. Mở Invoice cần credit”Hoá đơn → Customer Invoices → mở INV-2026-125
2. Click “Add Credit Note”
Phần tiêu đề “2. Click “Add Credit Note””Nút trên header (chỉ hoạt động với Invoice Posted).
3. Modal Wizard
Phần tiêu đề “3. Modal Wizard”Chọn 1 trong 3 mode:
Mode A — Full Refund:
- Huỷ toàn bộ Invoice gốc
- Credit Note amount = -amount_gốc
- Auto reconcile với Invoice → Invoice cancel
Mode B — Partial Refund:
- Refund 1 phần (nhập amount tự)
- Credit Note amount = -X
- Reconcile với Invoice → Invoice.amount_residual = amount_gốc - X
Mode C — Full Refund + New Draft:
- Full refund như Mode A
- Auto tạo Invoice draft mới → FC edit + post lại
4. Confirm
Phần tiêu đề “4. Confirm”Credit Note tạo, state Draft. Post → journal entry đối ứng.
5. Refund tiền cho KH (nếu Mode A/B + KH đã paid Invoice gốc)
Phần tiêu đề “5. Refund tiền cho KH (nếu Mode A/B + KH đã paid Invoice gốc)”- Register Payment trên Credit Note với direction = “Send Money”
- Journal: Bank (tiền ra)
- Amount: âm (auto)
- Payment Date: ngày chuyển tiền cho KH
Credit Note usage examples
Phần tiêu đề “Credit Note usage examples”- HĐ terminate ngày 15/8
- Invoice tháng 8 đã post cho cả tháng (31 ngày)
- KH đã trả full
- Tạo Partial Credit Note = 50% (16/31 ngày = 51%)
- Refund tiền KH
- Post nhầm 250M, đúng phải 200M (dư 50M)
- Tạo Partial Credit Note 50M
- Invoice residual = 200M - 0 = 200M (nếu KH chưa trả)
- Nếu KH đã trả 250M → refund 50M
- HĐ có clause: đạt milestone X thì giảm 10%
- Tháng có milestone → tạo Credit Note 10% × Invoice tháng đó
- Reconcile → Invoice residual = 90%
Huỷ HĐ đã thanh toán (advanced)
Phần tiêu đề “Huỷ HĐ đã thanh toán (advanced)”Case phức tạp — HĐ Posted + Paid, cần cancel hoàn toàn:
- Tạo Full Credit Note (Mode A)
- Post Credit Note → journal entry đối ứng
- Register Payment trên Credit Note = “Send Money” back to KH
- Nếu KH đồng ý keep credit thay refund → skip step 3, để Outstanding Credit chờ Invoice sau
Reconciliation manual
Phần tiêu đề “Reconciliation manual”Nếu Payment không auto-link Invoice:
- Kế toán → Reconciliation
- Odoo show list Payment chưa match với Invoice
- Click Payment → Odoo suggest Invoice matching (theo partner, amount)
- Click “Reconcile” → link Payment ↔ Invoice
- Invoice.payment_state update
KH trả 1 khoản cho 2 Invoices
Phần tiêu đề “KH trả 1 khoản cho 2 Invoices”- Register Payment lần 1 với Invoice A (partial hoặc full)
- Payment còn dư → Register lần 2 apply cho Invoice B
- Hoặc: Register 1 lần với full amount, reconcile manual sau
Credit Note có ảnh hưởng revenue report không?
Phần tiêu đề “Credit Note có ảnh hưởng revenue report không?”Có. Revenue = Sum(Invoice) - Sum(Credit Note). Nếu bỏ Credit Note trong report, doanh thu inflated.
Muốn nhìn Payment history của Invoice
Phần tiêu đề “Muốn nhìn Payment history của Invoice”Invoice form → smart button “N Payments” → click → xem list tất cả payments (partial + full) linked
Payment ghi sai date fiscal period
Phần tiêu đề “Payment ghi sai date fiscal period”- Nếu period chưa lock: sửa Payment.date → Odoo tự relocate journal entry
- Nếu period lock: cancel Payment → tạo lại với date đúng