Module Bảng lương (Payroll)

Tính lương tự động, quản lý quy tắc và xử lý hàng loạt trong Odoo 19

Module Payroll là phân hệ xử lý bảng lương thực tế trong Odoo 19, tập trung vào tạo và tính phiếu lương theo kỳ, chạy lương theo lô, cấu hình cấu trúc lương và xây dựng quy tắc lương bằng điều kiện và công thức.

Module tích hợp chặt chẽ với Work Entries để tính toán ngày công, hỗ trợ tham số quy tắc có lịch sử hiệu lực theo thời gian, và cung cấp khả năng tự động khấu trừ qua Salary Adjustments.

Odoo 19
Payroll
Automatic Calculation
Batch Processing
Salary Rules
Work Entries

Tính năng chính

Điểm chính

  • Tạo và tính phiếu lương (Payslip) tự động theo kỳ với công thức linh hoạt

  • Chạy lương theo lô (Pay Runs) để xử lý hàng loạt nhiều nhân viên

  • Cấu hình cấu trúc lương (Payroll Structure) và loại cấu trúc (Structure Type)

  • Xây dựng quy tắc lương (Salary Rules) bằng điều kiện và công thức Python

  • Quản lý tham số quy tắc (Rule Parameters) có lịch sử hiệu lực theo thời gian

  • Tự động khấu trừ định kỳ qua Salary Adjustments

  • Phân tích dữ liệu Payroll và Work Entries qua báo cáo pivot/list

  • Dashboard cảnh báo để phát hiện bất thường trước khi chốt lương


Thuật ngữ quan trọng

FieldsTrường dữ liệuDescription
PayslipPhiếu lươngChứng từ lương của nhân viên cho một kỳ cụ thể
Pay RunLô chạy lươngNhóm nhiều phiếu lương cùng kỳ để xử lý hàng loạt
Salary StructureCấu trúc lươngBộ quy tắc lương áp dụng cho nhân viên
Salary RuleQuy tắc lươngCông thức tính các khoản lương (lương cơ bản, phụ cấp, khấu trừ)
Rule ParameterTham số quy tắcGiá trị tham số có lịch sử thay đổi theo thời gian
Worked DaysNgày côngSố ngày làm việc thực tế trong kỳ lương
Salary InputsĐầu vào lươngDữ liệu nhập thêm (thưởng, phạt, tạm ứng)
Salary AdjustmentĐiều chỉnh lươngKhoản trừ hoặc cộng định kỳ tự động
Gross SalaryLương gộpTổng lương trước khi khấu trừ
Net SalaryLương thực nhậnLương sau khi trừ các khoản khấu trừ

Trạng thái phiếu lương

Các trạng thái của Payslip

Trạng tháiÝ nghĩaHành động có thể thực hiện
DraftPhiếu lương nháp, chưa tính toánCompute Sheet để tính lương
Done / ValidatedĐã tính và xác nhận, chờ thanh toánMark as Paid hoặc Set to Draft
PaidĐã thanh toán cho nhân viênRevert to Done nếu cần điều chỉnh
CancelledĐã hủy, không còn hiệu lựcSet to Draft để tái sử dụng

Cấu trúc menu chính

Module Payroll tổ chức menu theo các nhóm chức năng chính: Dashboard, Employees, Work Entries, Payslips, Reporting và Configuration.

Điểm chính

  • Dashboard: Tổng quan và cảnh báo hệ thống

  • Employees: Quản lý nhân viên và Salary Adjustments

  • Work Entries: Dữ liệu công làm nền tảng cho tính lương

  • Payslips: Phiếu lương và Pay Runs (lô chạy lương)

  • Reporting: Work Entries Analysis, Headcount, Payslip Lines, Work Days Lines, Other Inputs

  • Configuration: Settings, Salary (Rules, Parameters, Categories, Structures, Structure Types, Other Input Types), Dashboard Warnings


Cấu hình cấu trúc lương

Trước khi chạy lương, cần cấu hình Structure Types và Structures để xác định chu kỳ trả lương, lịch làm việc và bộ quy tắc áp dụng.

Các bước thực hiện

  • 1. Vào Payroll → Configuration → Salary → Structure Types

  • 2. Thiết lập chu kỳ trả lương mặc định (default_schedule_pay): hàng tháng, hai tuần, hàng tuần

  • 3. Chọn lịch làm việc mặc định (default_resource_calendar_id)

  • 4. Xác định loại work entry mặc định (default_work_entry_type_id)

  • 5. Vào Payroll → Configuration → Salary → Structures

  • 6. Tạo hoặc chỉnh sửa Structure, gắn các Salary Rules cần áp dụng

  • 7. Bật/tắt sử dụng worked day lines theo nhu cầu


Quy tắc lương và tham số

Salary Rules là trái tim của hệ thống tính lương, cho phép định nghĩa điều kiện áp dụng và cách tính cho từng khoản lương.

Điểm chính

  • Khai báo điều kiện bằng condition_select: domain, input, python hoặc always

  • Khai báo cách tính bằng amount_select: fixed amount, percentage, input, hoặc python code

  • Sử dụng Python code trong condition_python và amount_python_compute để tính toán phức tạp

  • Các biến có sẵn: payslip, employee, version, result_rules, categories, worked_days, inputs

  • Rule Parameters cho phép quản lý tham số theo mã (code) với lịch sử thay đổi theo thời gian

  • Tab History trong Rule Parameters lưu giá trị theo date_from để dễ dàng điều chỉnh


Quy trình chạy bảng lương

Quy trình chuẩn để chạy lương hàng tháng hoặc theo kỳ trong Odoo Payroll.

Các bước thực hiện

  • 1. Chuẩn hóa dữ liệu: Kiểm tra Work Entries, Employee Record (version_id) và Salary Adjustments

  • 2. Tạo Pay Run: Vào Payslips → Pay Runs, tạo mới và chọn kỳ (date_start, date_end), structure, schedule

  • 3. Generate Payslips: Nhấn nút Generate Payslips để tạo phiếu lương cho tất cả nhân viên đủ điều kiện

  • 4. Tính lương: Nhấn Compute trong Pay Run để tính tất cả payslip, hoặc Compute Sheet trên từng payslip riêng lẻ

  • 5. Kiểm tra: Xem lại các dòng lương, kiểm tra issues/warning_count trên từng payslip

  • 6. Chốt lương: Nhấn Confirm (action_validate) để chuyển lô sang Done

  • 7. Thanh toán: Nhấn Mark as Paid (action_paid) khi đã thanh toán cho nhân viên


Điều chỉnh lương (Salary Adjustments)

Salary Adjustments cho phép khai báo các khoản khấu trừ hoặc điều chỉnh định kỳ tự động, như khoản vay, tạm ứng, hoặc các khoản phạt.

Điểm chính

  • Truy cập tại Employees → Salary Adjustments

  • Thiết lập theo nhân viên, loại input (Other Input Type), số tiền hàng kỳ (monthly_amount)

  • Xác định tổng số tiền (total_amount) và thời gian hiệu lực (date_start, date_end)

  • Trạng thái: open (đang chạy) hoặc close (đã hoàn thành)

  • Thao tác: Mark as Completed, Running, Split (khi nhiều nhân viên)

  • Hệ thống tự động thêm vào Salary Inputs của payslip trong kỳ hiệu lực


Salary Inputs trên phiếu lương

Ngoài các khoản tính tự động từ Salary Rules, có thể nhập thêm các khoản phát sinh cho kỳ hiện tại.

Điểm chính

  • Mở payslip, vào tab Salary Inputs

  • Nhấn Add Inputs (action_configure_payslip_inputs) để thêm khoản mới

  • Chọn loại input (Other Input Type) và nhập số tiền

  • Các input này sẽ được sử dụng trong công thức salary rule để tính ra kết quả cuối

  • Thích hợp cho thưởng đột xuất, phạt, hoặc các khoản không định kỳ


Dashboard và cảnh báo

Dashboard Payroll cung cấp tổng quan và cảnh báo về các vấn đề cần xử lý trước khi chốt lương.

Điểm chính

  • Truy cập Dashboard qua menu Payroll → Dashboard

  • Cấu hình cảnh báo tại Configuration → Dashboard → Warnings

  • Mỗi warning có evaluation_code (Python) và có thể bật/tắt theo quốc gia

  • Trên payslip có hệ thống issues, warning_count, error_count

  • Kiểm tra và xử lý cảnh báo trước khi Confirm để tránh sai sót


Báo cáo và phân tích

Module cung cấp nhiều báo cáo phân tích để theo dõi chi phí lương, ngày công và các khoản đầu vào.

Điểm chính

  • Work Entries Analysis: Phân tích ngày công theo nhân viên, loại work entry, thời gian

  • Headcount: Thống kê số lượng nhân viên

  • Payslip Lines: Phân tích chi tiết các dòng lương theo rule, category

  • Payslip Work Days Lines: Phân tích ngày công trên phiếu lương

  • Payslip Other Inputs: Phân tích các khoản đầu vào khác

  • Hỗ trợ view Pivot, Graph, List để phân tích đa chiều


In chứng từ và xuất báo cáo

Hệ thống hỗ trợ in phiếu lương và xuất báo cáo thanh toán để phục vụ quy trình nghiệp vụ.

Điểm chính

  • Payslip PDF: In phiếu lương chi tiết (action_report_payslip)

  • Payslip Light: In phiếu lương rút gọn (action_report_light_payslip)

  • Contribution Registers: Báo cáo đóng góp (action_report_register)

  • Payment Report: Tạo file thanh toán hàng loạt từ Pay Run hoặc Payslip

  • Hỗ trợ xuất PDF và các định dạng khác tùy cấu hình


Quyền hạn và bảo mật

Record rules đảm bảo phân quyền theo công ty (multi-company) và vai trò người dùng.

Các nhóm quyền chính

GroupTên hiển thịPhạm vi quyền
group_hr_payroll_userOfficer: Manage all contractsQuản lý hợp đồng, work entries và tạo payslips
group_hr_payroll_managerAdministratorToàn quyền phân hệ Payroll, cấu hình rules và structures
group_payslip_displayDisplay payslip PDFQuyền hiển thị và in PDF phiếu lương

Mẹo sử dụng thực tế

Điểm chính

  • Chốt dữ liệu Work Entries trước khi bấm Compute để giảm sai lệch bảng lương

  • Quản lý Rule Parameters theo lịch sử hiệu lực thay vì sửa trực tiếp hard-code trong nhiều rules

  • Chuẩn hóa mã rule (code) và category từ đầu để dễ kiểm tra báo cáo/pivot

  • Dùng Pay Run cho xử lý hàng loạt; chỉ dùng payslip off-cycle cho ngoại lệ

  • Theo dõi issues/warning_count trên payslip trước khi Confirm

  • Với Salary Adjustments nhiều nhân viên, dùng Split để dễ kiểm soát trạng thái từng người

  • Backup dữ liệu trước khi chạy lương kỳ đầu tiên hoặc khi thay đổi cấu trúc lương lớn