Giao diện
Phiếu lương
Quyền truy cập: Xem cần quyền xem module Bảng lương (PAYROLL_VIEW); phát hành phiếu cần quyền "Tạo phiếu lương" (PAYSLIP_GENERATE) hoặc Admin bảng lương (PAYROLL_ADMIN) · Điều hướng: Bảng lương > Phiếu lương (
/manage/payroll/payslips)
Phiếu lương là bản diễn giải chi tiết tiền lương của từng nhân viên trong một kỳ lương, gồm đầy đủ các khoản thu nhập và các khoản khấu trừ dẫn tới con số lương thực nhận. Mỗi phiếu được sinh ra từ một kỳ lương đã chốt (finalized), sau khi số liệu đã đi qua toàn bộ quy trình tính, kiểm tra và phê duyệt. Màn hình này là nơi admin HR phát hành phiếu, xuất PDF, gửi email cho nhân viên và tra cứu lại từng phiếu đã ban hành.
Lưu ý: Nhân viên không xem phiếu lương tại đây. Họ tự xem và tải phiếu của riêng mình bên app Nhân viên (noova-employee) qua quyền PAYSLIP_VIEW_OWN và PAYSLIP_DOWNLOAD_OWN. Màn Phiếu lương ở noova-manage phục vụ nghiệp vụ HR: phát hành, in ấn và gửi phiếu.
Tổng quan
Màn "Phiếu Lương" (PayslipsManager) liệt kê toàn bộ phiếu lương đã phát hành. Mỗi dòng gắn với một nhân viên trong một kỳ lương cụ thể và chứa breakdown đầy đủ: lương cơ bản, phụ cấp, tiền làm thêm giờ, thưởng, các khoản bảo hiểm bắt buộc, thuế thu nhập cá nhân và lương thực nhận. Phiếu lương được đóng băng theo dữ liệu đã tính của kỳ, nên các con số trên phiếu phản ánh đúng thời điểm chốt kỳ.
Module Bảng lương thuộc nhóm HR và chỉ hiển thị khi đã bật tại Cài đặt hệ thống > Tính năng (cờ __payroll, đồng thời cần biến môi trường ALLOW_PAYROLL_FEATURE được bật ở phía máy chủ).
Giao diện danh sách phiếu lương
Mỗi phiếu trong danh sách hiển thị các trường sau:
| Trường | Mô tả |
|---|---|
| Mã phiếu | Mã định danh của phiếu lương |
| Nhân viên | Tên, mã nhân viên, chức danh và đơn vị (phòng ban) |
| Kỳ | Tháng/năm của kỳ lương, kèm khoảng từ ngày đến ngày |
| Ngày thanh toán | Ngày dự kiến chi trả của kỳ |
| Lương cơ bản | Lương cơ bản đã prorate theo ngày công thực (baseSalary) |
| Phụ cấp | Tổng các khoản phụ cấp (allowances) |
| Lương OT | Tiền làm thêm giờ (overtimePay) |
| Thưởng | Tiền thưởng trong kỳ (bonuses) |
| Lương gộp | Tổng thu nhập trước khấu trừ (grossSalary) |
| Bảo hiểm | Các khoản BHXH/BHYT/BHTN phần nhân viên |
| Thuế TNCN | Thu nhập tính thuế, số người phụ thuộc, giảm trừ và số thuế |
| Lương thực nhận | Số tiền nhân viên thực nhận (netSalary) |
| Đã gửi email | Đánh dấu phiếu đã được gửi email hay chưa |
Các khoản thu nhập và khấu trừ
Phiếu lương được cấu thành từ hai nhóm: các khoản cộng vào lương gộp (thu nhập) và các khoản trừ khỏi lương gộp (khấu trừ). Kết quả cuối cùng là lương thực nhận.
Các khoản thu nhập
| Khoản | Nguồn và cách tính |
|---|---|
| Lương cơ bản | Lấy từ hồ sơ Lương thưởng phúc lợi, prorate theo ngày công: lương một ngày = lương cơ bản / mẫu số (mặc định 26), lương thực = lương cơ bản trừ đi (lương một ngày × số ngày nghỉ không lương) |
| Phụ cấp | Phụ cấp chịu thuế và không chịu thuế lấy từ hồ sơ lương của nhân viên |
| Lương OT | Tiền làm thêm giờ theo từng nhóm giờ (ngày thường, cuối tuần, ngày lễ, ban đêm) với hệ số tương ứng; chỉ phần vượt trên đơn giá giờ thường mới chịu thuế, phần còn lại được miễn thuế |
| Thưởng | Tiền thưởng quy đổi từ Cơ chế thưởng (với kỳ thưởng) hoặc thưởng ngoài kỳ (off-cycle) |
| = Lương gộp | Tổng của các khoản thu nhập ở trên (grossSalary) |
Các khoản khấu trừ
| Khoản | Cách tính (theo cấu hình luật hiện hành) |
|---|---|
| BHXH (phần nhân viên) | 8% trên lương đóng bảo hiểm, có trần (trần BHXH+BHYT = 20 lần lương cơ sở) |
| BHYT (phần nhân viên) | 1,5% trên lương đóng bảo hiểm, có trần |
| BHTN (phần nhân viên) | 1% trên lương đóng bảo hiểm, trần theo lương tối thiểu vùng (20 lần) |
| Thuế TNCN | Tính lũy tiến 7 bậc trên thu nhập tính thuế |
| Đoàn phí công đoàn | 1% trên nền BHXH+BHYT, có trần 234.000đ/tháng |
| Tạm ứng phải trừ | Khoản tạm ứng đã nhận trong kỳ được trừ lại (advanceDeduction) |
| Khấu trừ khác | Các khoản trừ khác nếu có |
| = Lương thực nhận | Lương gộp trừ tổng các khoản khấu trừ trên (netSalary) |
Tổng tỷ lệ bảo hiểm phần nhân viên là 10,5% (BHXH 8% + BHYT 1,5% + BHTN 1%). Ngoài các khoản trừ trên phiếu, chủ sử dụng lao động còn đóng thêm phần của mình (BHXH 17,5% + BHYT 3% + BHTN 1%, tổng 21,5%) nhưng phần này không trừ vào lương thực nhận của nhân viên.
Quan trọng: Công thức lương thực nhận là: lương gộp trừ bảo hiểm nhân viên, trừ thuế TNCN, trừ đoàn phí nhân viên, trừ tạm ứng phải trừ, trừ khấu trừ khác. Các tỷ lệ, mức giảm trừ và trần nêu trên lấy từ bản Tham số luật đang áp dụng, không cố định trong phiếu.
Cách tính thu nhập tính thuế
Con số thuế TNCN trên phiếu dựa trên thu nhập tính thuế, được tính như sau:
Thu nhập tính thuế = thu nhập chịu thuế trừ bảo hiểm bắt buộc (phần nhân viên) trừ giảm trừ bản thân trừ (giảm trừ người phụ thuộc × số người phụ thuộc). Kết quả không âm (nếu ra số âm thì tính bằng 0).
Theo cấu hình luật hiện hành (bản seed nhãn "VN 2024-07-01 (áp dụng 2026)"): giảm trừ bản thân là 11.000.000đ/tháng, giảm trừ mỗi người phụ thuộc là 4.400.000đ/tháng. Biểu thuế lũy tiến 7 bậc theo thu nhập tính thuế/tháng:
| Bậc | Thu nhập tính thuế/tháng | Thuế suất |
|---|---|---|
| 1 | Đến 5.000.000đ | 5% |
| 2 | Đến 10.000.000đ | 10% |
| 3 | Đến 18.000.000đ | 15% |
| 4 | Đến 32.000.000đ | 20% |
| 5 | Đến 52.000.000đ | 25% |
| 6 | Đến 80.000.000đ | 30% |
| 7 | Trên 80.000.000đ | 35% |
Lưu ý: Cá nhân không cư trú (non_resident) chịu thuế khoán 20% trên toàn bộ thu nhập chịu thuế và không được áp giảm trừ. Tình trạng cư trú, mã số thuế, số người phụ thuộc và tình trạng thành viên công đoàn lấy từ hồ sơ nhân viên.
Thao tác trên phiếu lương
Phát hành phiếu lương
Phiếu lương được tạo từ một kỳ lương đã chốt. Sau khi kỳ đạt trạng thái finalized, admin phát hành phiếu bằng chức năng "Tạo phiếu lương" (payslip.generate / payroll.payslips.create). Hệ thống sinh phiếu cho từng nhân viên trong kỳ với đầy đủ breakdown đã tính.
Xem chi tiết phiếu lương
Nhấn vào một phiếu để mở trang chi tiết (PayslipDetailManager, /manage/payroll/payslips/:payslipId). Trang này hiển thị đầy đủ diễn giải từng khoản (salaryBreakdown) và thông tin nhân viên (employeeInfo) của phiếu. Tại trang chi tiết, admin có thể xuất PDF hoặc gửi email cho riêng phiếu đó.
Xuất PDF và gửi email
Từ danh sách, admin có thể xử lý phiếu theo từng phiếu hoặc hàng loạt:
| Thao tác | Mô tả |
|---|---|
| Tạo PDF từng phiếu | Xuất một phiếu ra file PDF (generatePDF) |
| Tạo PDF hàng loạt | Xuất PDF cho nhiều phiếu cùng lúc (generateBulkPDF) |
| Gửi email từng phiếu | Gửi phiếu qua email cho một nhân viên (sendEmail) |
| Gửi email hàng loạt | Gửi phiếu cho nhiều nhân viên cùng lúc (sendBulkEmail) |
| Tải phiếu | Tải file phiếu về máy (download) |
| Đánh dấu đã xem | Đánh dấu trạng thái đã xem của phiếu |
Lương ngoại tệ
Với nhân viên hưởng lương bằng ngoại tệ, hệ thống quy đổi về VND theo tỷ giá tại màn Tỷ giá để tính bảo hiểm và thuế. Phiếu lương lưu cả lương thực nhận theo VND lẫn lương thực nhận theo nguyên tệ (netInPayCurrency = net VND chia cho tỷ giá).
Quan trọng: Nếu một nhân viên hưởng ngoại tệ mà kỳ lương thiếu tỷ giá tương ứng, nhân viên đó bị chặn khỏi kỳ (lý do fx-missing) và sẽ không có phiếu lương cho tới khi bổ sung tỷ giá. Hãy khai báo đủ tỷ giá trước khi phát hành phiếu.

