Bỏ qua để đến Nội dung
Soul of NOTE
  • Khóa học
  • Check-in
    • NOTE
    • Headspace Vietnam
    • Fosllea
  • Diễn đàn
  • Company
    • Blog
    • Success Stories
  • 0
  • 0
  • Đăng nhập
Soul of NOTE
  • 0
  • 0
    • Khóa học
    • Check-in
      • NOTE
      • Headspace Vietnam
      • Fosllea
    • Diễn đàn
    • Company
      • Blog
      • Success Stories
  • Đăng nhập

[T07] T07 — Odoo 19 Salary Rules: sequence + category quyết định tính toán

  • Tất cả blog
  • Knowledge Base
  • [T07] T07 — Odoo 19 Salary Rules: sequence + category quyết định tính toán
  • 15 tháng 3, 2026 bởi
    [T07] T07 — Odoo 19 Salary Rules: sequence + category quyết định tính toán
    Viet Nguyen
    ⚠️ HIGH  |  Category: Odoo Tips  |  ID: T07  |  Owner: CEO

    T07 — Odoo 19 Salary Rules: sequence + category quyết định tính toán

    Bài học

    Payslip tính lương theo sequence (thứ tự) và category (nhóm). Sai sequence = sai kết quả.

    Sequence chuẩn VN 2026

    seq 1   BASIC        = wage (category: BASIC)
    seq 2-4 OT150/200/300 = OT theo giờ (category: ALW → gộp vào GROSS)
    seq 5-9 ALW_LUNCH, ALW_OTHER, BONUS_* (category: ALW)
    seq 10  GROSS        = categories['BASIC'] + categories['ALW']
    seq 20  BHXH_NV      = -min(BASIC, 46.8M) × 8% (category: DED)
    seq 21  BHYT_NV      = -min(BASIC, 46.8M) × 1.5%
    seq 22  BHTN_NV      = -min(BASIC, 46.8M) × 1%
    seq 30  TNCN         = -biểu lũy tiến(TNTT) (category: DED)
    seq 50  NET          = GROSS + categories['DED'] (DED là số âm)
    

    Rules quan trọng

    Category ALW tự động vào GROSS

    Rules có category ALW → Odoo tự cộng vào categories['ALW']. GROSS dùng categories['BASIC'] + categories['ALW'] → bao gồm tất cả ALW.

    BHXH tính trên BASIC (không phải GROSS)

    BHXH_NV = -min(contract.wage, 46800000) * 0.08
    
  • Trần 46.8M (20 × lương cơ sở 2.34M)
  • OT, phụ cấp KHÔNG tính BHXH
  • TV, CTV, TT: BHXH = 0 (check contract_type keyword)
  • TNCN 5 bậc lũy tiến (2026)

    TNCT = GROSS - BHXH_NV - BHYT_NV - BHTN_NV - ALW_LUNCH - OT_exempt
    TNTT = TNCT - 15500000 - (children * 6200000)
    

    OT miễn 100% (Luật 109/2025)

    Ăn ca miễn toàn bộ (bỏ trần 730K)

    CTV: TNCN 10% cố định (không lũy tiến)

    if "CTV" in contract_type:
        TNCN = -GROSS * 0.10
    

    Gotchas

  • OT rules PHẢI seq < GROSS (2-4 < 10). Nếu sau → GROSS không include OT
  • TNCN PHẢI sau BHXH (30 > 20). Nếu trước → TNCN tính trên GROSS chưa trừ BHXH
  • Default rules Odoo có seq=0 → tính trước custom rules → duplicate (xem T05)
  • Áp dụng khi

  • Setup salary rules VN từ đầu
  • Debug payslip cho số liệu sai
  • Thêm rules mới (bonus, phụ cấp) — chọn đúng seq + category

  • 📚 Published from Company Knowledge Base — T07
    Last updated: 2026-03-11
    Review by: 2026-06-09

    trong Knowledge Base
    # Odoo Tips
    [T06] T06 — Odoo 19 Pay Run: bỏ qua NV im lặng (không báo lỗi)



    Bản quyền thuộc CÔNG TY TNHH NOTE
    Cung cấp bởi Odoo - Một nền tảng thương mại điện tử mã nguồn mở hàng đầu