用途
本技能用于指导 HR 经理和薪酬会计正确设置 Odoo 的 HR 与 Payroll 模块。它覆盖工资结构创建(含 Python 计算规则)、休假政策、员工合同类型,以及薪酬到会计日记账的过账流程。
适用时机
- 创建包含应发工资、扣款和实发工资的工资结构。
- 配置年假、病假和公共假日政策。
- 排查工资单金额错误或规则贡献缺失的问题。
- 设置薪酬日记账以正确过账到会计模块。
使用方式
- 激活:提及 @odoo-hr-payroll-setup 并描述你的薪酬场景。
- 配置:获得工资规则和休假分配的分步设置指导。
- 调试:粘贴工资规则或工资单问题,获得根因分析。
示例
示例 1:含扣款的工资结构
菜单:Payroll → Configuration → Salary Structures → New
名称:US Employee Monthly 工资单代码:MONTHLY
规则(自上而下执行——顺序很重要):
| Code | Name | Formula | Category |
|---|---|---|---|
| BASIC | Basic Wage | contract.wage | Basic |
| GROSS | Gross | BASIC | Gross |
| SS | Social Security (6.2%) | -GROSS * 0.062 | Deduction |
| MED | Medicare (1.45%) | -GROSS * 0.0145 | Deduction |
| FIT | Federal Income Tax | -GROSS * inputs.FIT_RATE.amount | Deduction |
| NET | Net Salary | GROSS + SS + MED + FIT | Net |
联邦所得税:标准 Odoo 美国本地化并未暴露单一的 l10n_us_w4_rate 字段。应使用输入(salary input type)按员工传入预扣税率,或安装社区美国薪酬模块(OCA l10n_us_hr_payroll),后者可正确处理 W4 申报状态。
示例 2:配置休假类型
菜单:Time Off → Configuration → Time Off Types → New
名称:Annual Leave / PTO 审批:Time Off Officer 休假验证:Time Off Officer(单一审批人) 或:"Both" 表示 HR + 经理双重审批
分配:
- ☑ 员工可自行分配休假
- 需要审批:否
负余额:不允许(员工不能为负)
然后创建初始分配: 菜单:Time Off → Managers → Allocations → New
- 员工:[每位员工]
- 休假类型:Annual Leave / PTO
- 分配:15 天
- 有效期:1 月 1 日 – 12 月 31 日 [当前年份]
示例 3:薪酬日记账分录结果
验证薪酬批次后,Odoo 生成:
借 Salary Expense Account $5,000.00
贷 Social Security Payable $310.00
贷 Medicare Payable $72.50
贷 Federal Tax Payable (varies)
贷 Salary Payable $4,617.50+
支付实发工资时:
借 Salary Payable $4,617.50
贷 Bank Account $4,617.50
雇主税(如 FUTA、SUTA)作为单独的日记账分录过账。
最佳实践
✅ 应做:在构建自定义规则之前,先安装你所在国家的薪酬本地化模块(l10n_us_hr_payroll、l10n_mx_hr_payroll 等)——它提供预配置的税务结构。
✅ 应做:使用工资规则输入(inputs.ALLOWANCE.amount)传入可变值(奖金、津贴、预扣税率),而不是在规则公式中硬编码。
✅ 应做:归档旧的工资结构而不是删除它们——活跃的工资单会引用其结构,删除结构会导致出错。
✅ 应做:在生成工资单之前,始终设置一个日期和薪资正确的活跃员工合同。
❌ 不应做:手动编辑已过账的工资单——如需更正,应取消并重新生成工资单批次。
❌ 不应做:在扣款规则中使用 contract.wage 而不核实结构是按月还是按年——始终检查合同工资周期。
限制
- Odoo Payroll 仅限企业版——社区版不包含 Payroll 模块(hr_payroll)。
- 美国特定合规(W2、941、州 SUI/SDI 申报)需要基础本地化之外的额外模块;Odoo 不直接生成税务申报表。
- 不覆盖多国薪酬(不同国家的员工需要单独的结构和本地化)。
- 通过工资单进行费用报销(如里程、居家办公)需要自定义工资规则输入,标准 HR Payroll 文档未覆盖。