薪酬

在 Odoo 中,工资由五个因素计算和确定:工资:ref:结构类型 <payroll/structure-types>、工资:ref:结构 <payroll/structures>规则规则参数其他输入类型。这些因素共同决定了每位员工的工资计算方式。

每个*结构类型*包含一个或多个*结构*。每个*结构*包含一组*规则*,每条*规则*使用*参数*来定义如何计算具体金额。还可以添加其他输入(如奖金或扣款)来调整最终工资。

计算工资单时,Odoo 会根据员工的 工作记录 计算工作时间,然后应用员工分配的结构类型中的相关结构、规则和参数来确定其总工资。

工资结构类型

在 Odoo 中,*结构类型*将相关的工资结构分组。当合同指定结构类型时,**仅**使用该类型内的结构来计算员工的工资。每种结构类型包含多个独立的结构,每个结构都包含一组用于处理工时表条目的规则。

结构类型定义了工资配置的关键方面,包括员工的发薪频率、工作时间、默认工资结构,以及工资是固定(基于月薪)还是可变(基于小时)。

Example

例如,名为 Employee 的结构类型包含两种不同的结构:Regular Pay`(正常薪酬)结构,包含处理正常薪酬的所有单独规则;以及 `End of Year Bonus`(年终奖金)结构,**仅**包含年终奖金的规则。两者都属于同一个 `Employee 结构类型。

通过导航至 工资应用 ‣ 配置 ‣ 结构类型 查看现有的*结构类型*。

Two default structure types are preconfigured in Odoo: Employee and Worker.

通常,:guilabel:Employee`(员工)用于月薪制员工,因此 :guilabel:`默认工资类型固定工资;而 Worker`(工人)通常用于按小时计薪的员工,因此工资类型为 :guilabel:`小时工资

Note

If using a country-specific payroll localizations, it is recommended to use the structure in the corresponding country localization document.

当前可使用的所有已配置结构类型的列表。

新结构类型

如果默认结构类型不满足公司需求,请转至 工资应用 ‣ 配置 ‣ 结构类型 并点击 新建 以创建自定义结构类型。

Warning

创建新工资结构类型时,请确保符合所有地方和国家法律。配置工资结构时与财务部门确认,以确保满足所有要求。

继续在字段中输入以下信息:

  • 结构类型:输入新结构类型的名称,如 `Employee`(员工)或 `Worker`(工人)。

  • 国家:从下拉菜单中选择新结构类型适用的国家。

  • :guilabel:`工资类型`:为结构选择工资类型:

    • 固定工资:适用于每个发薪期收到相同工资的月薪制员工。

    • 小时工资:适用于根据发薪期内工作小时数计薪的员工。

  • 默认计划发薪:从下拉菜单中为新结构类型选择典型的发薪时间表。这表示此特定类型结构的发薪频率。

  • 默认工作时间:从下拉菜单中为新结构类型选择默认工作时间。当前选定公司的所有可用工作时间都会显示在下拉菜单中。默认工作时间为 标准每周40小时 选项。如果所需的工作时间未出现在列表中,可以:ref:创建一组新的默认工作时间 <payroll/new-default-working-hours>

  • 正常薪酬结构:输入正常薪酬结构的名称。生成工资单时将其用作默认选项。

  • 默认工作记录类型:选择用于为员工创建所有工作记录的默认工作记录类型。

创建新结构类型时要填写的新结构类型表格。

新的默认工作时间

要创建新的默认工作时间,请在新结构类型表单的 默认工作时间 字段中输入新工作时间的名称。点击 创建并编辑。将弹出默认工作时间表单。该表单有两个部分:常规信息部分和按天和时间列出所有单独工作时间的选项卡。完成表单后,点击 保存并关闭

  • 名称:输入新默认工作时间的名称。应具有描述性且易于理解,如 标准每周20小时

  • 弹性工作时间:勾选此复选框以允许员工在保持每日总工时不变的情况下调整开始和结束时间。

  • 公司全职时间:输入员工被视为全职员工每周需要工作的小时数。通常约为40小时,此数字会根据员工的就业状态(全职与兼职)影响其可以获得的福利类型。

  • 日均小时数:根据 工作时间 选项卡中的设置自动填充。此项通过确定每个工作日可调度的资源量来影响资源计划。

  • 工时率:该百分比根据 公司全职时数工作时间 选项卡中配置的工时自动生成。该数值应介于 0.00%100% 之间;如果超过 100%,则表明工作时间或 公司全职时数 需要调整。

  • 公司:从下拉菜单中选择适用此默认工作时间的系统公司。如果该工时适用于所有公司,请将此字段留空。

  • 时区:从下拉菜单中选择适用于此默认工作时间的时区。

  • 工作时间 选项卡:此选项卡列出每天的具体工时。创建新的默认工作时间表单时,系统会预填充默认的每周 40 小时工时,且每天分为三个时段。

    每天包括上午(8:00–12:00)、午餐(12:00–13:00)和下午(13:00–17:00)时段,采用 24 小时制配置。

    如需调整工时,请点击相应字段并通过下拉菜单修改,或直接输入所需时间。

    Note

    工作时间是公司特定的,不能在不同公司之间共享。

    Tip

    如果每周的工作时间不固定,而是采用隔周(双周)排班,请点击表单顶部的 切换到双周日历 按钮。这将使 工作时间 选项卡显示两周的可调节工时。

工资结构

工资结构 指的是员工在特定框架下获得报酬的不同情形,并由各种工资规则具体定义。

公司在每种结构类型下所需的结构数量取决于员工薪酬支付方式的多样性及其计算逻辑。例如,“奖金(Bonus)”就是一种常见的额外结构。

要查看每种结构类型下的所有具体结构,请前往 工资表应用 ‣ 配置 ‣ 结构

每种 结构类型 都会列出与其关联的所有结构。每个结构都包含一组定义其逻辑的规则。

所有可用的工资结构。

点击某个结构以查看其 工资规则。这些规则定义了员工工资单的具体计算逻辑。

Note

安装 工资表本地化模块 后,系统会自动安装相应的工资结构并显示在此列表中。

常规薪资(Regular Pay)的结构详情,列出了所有具体的工资规则。

薪酬规则

每个 工资结构 都包含一组 工资规则,用于计算薪资中的各项金额。这些规则通常由本地化包预设,直接影响最终工资的计算。

Warning

在必要时才应对规则进行修改或新建。

要查看所有规则,请前往 工资表应用 ‣ 配置 ‣ 规则。点击某个结构(例如 常规薪资)即可查看其包含的所有规则。

添加新规则

要新建规则,请点击 新建,系统将加载空白的 工资规则 表单。在表单上半部分填写以下信息:

  • 规则名称:输入规则名称。该名称将直接显示在员工工资单上。

  • 代码:输入新规则的代码。代码区分大小写,被视为 规则 ID。此字段为 必填项

  • 类别:从下拉菜单中选择规则所属的类别,或输入新类别。类别用于对规则进行分组,并计算该类别的总额。

  • 工资结构:从下拉菜单中选择适用此规则的工资结构。此字段为 必填项

  • 序列:输入一个数字以确定该规则在所有规则中的计算顺序。系统按序列号从小到大依次处理。较小序列号的规则先计算,其计算结果可供后续较大序列号的规则使用。此字段为 必填项

  • 显示在工资单上:勾选此项可使该规则项目显示在员工工资单 PDF 中。

  • 计入雇主成本:勾选此项,在计算该工资单的 雇主总成本 时将包含此项金额。

常规选项卡

填写 常规 选项卡的以下部分。这些配置决定了规则计算的 时机方式

条件
  • 条件基于:通过下拉菜单选择何时计算该规则并将其作为一行显示在工资单视图中。选项包括:

    • 始终为真:规则始终参与计算。选择此项后无需进一步配置条件。

    • 工资输入:为结构引入动态福利。它会作为字段显示在 员工 表单的 工资表 选项卡、工资单的 输入 选项卡,或两者中。该字段的数值将计入规则金额。选择此项后,必须配置以下额外字段:

      • 输入位置:指定此字段应出现的位置及其所属对象:员工工资单 或两者。如果选择两者,工资单上的初始值将默认取自员工记录,但在特定的工资运行中可以直接在工资单上进行覆盖。

      • 分组:将多个输入项合并到表单视图中的一个可折叠部分。默认情况下仅提供 输入 选项。

      • 单位:选择单选按钮以确定福利数值的显示方式。选项包括:

        • 货币:带有币种符号的数值。

        • 数量:纯数字。

        • 百分比:带有 % 符号的数值。

        • 复选框:表示布尔值(是/否)。

      • 输入说明:输入简短描述,解释该输入项的适用场景。

      • 默认值:输入默认数值(金额、数量或百分比),具体取决于所选的 单位。如有需要,可在右侧字段添加 后缀,例如 每公里

        Note

        如果 单位 选择为 复选框,该字段将变为 默认选中。勾选此项可使该规则默认启用。

      • 依赖于:选择另一个具有工资输入项的规则,并利用其数值来决定当前规则是否应被隐藏。

    • 其他输入:选择此项以检查是否存在相同 类型 的工资单行。选择后会出现 其他输入条件 字段。请从下拉菜单中选择规则所依据的输入类型,如 扣除报销 等。

    • Python 表达式:选择此项以通过 Python 脚本计算规则。脚本将基于本地字典(localdict)进行求值。右侧列出了 可用变量输出 规范:

      • 可用变量

        • payslip`hr.payslip`(工资单)对象。

        • employee`hr.employee`(员工)对象。

        • version`hr.version`(版本)对象。

        • result_rules:包含(此前已计算完毕的)规则金额、数量、比率和总额的字典。

        • categories:包含已计算工资规则类别的字典(该类别下所有规则金额的总和):

          • total:规则总额

          • amount:规则金额

          • quantity:规则数量

          • rate:规则比率

          • ytd:规则本年累计值(Year To Date)

        • worked_days:包含已计算工作日的字典。每个键是工作分录类型代码,每个值是一个 worked_days 对象。该对象包含多个变量,最重要的包括:

          • number_of_days:在该工资单周期内,以此工作分录类型登记的天数。

          • number_of_hours:在该工资单周期内,以此工作分录类型登记的小时数。

          • is_paid:该工作分录类型在此工资结构中是否被视为有薪(若为否,则作为无薪分录添加)。

        • inputs:包含已计算输入项的字典。 是其他输入类型代码, 是具有相同代码的工资单输入行总和。

      • 输出

        • result:布尔值。如果规则应计算,则为 True,否则为 False

  • :选择此选项以使规则 在符合 适用范围(域) 时应用。选择后,请配置下方出现的筛选条件。

计算方式

本部分决定规则的最终值,由基本金额、数量和比率组成。规则总额公式为:总额 = 金额 * 数量 * (比率/100)

Important

如果 条件基于 字段设为 工资输入,则此字段 不会 出现。

从下拉菜单中为 金额类型 字段选择以下选项之一:

  • 百分比 (%):定义总额计算的数值。选择后,需配置以下字段:

    • 百分比基于:使用 localdict 评估 Python 表达式,其结果将作为规则金额。

    • 数量:使用 localdict 评估 Python 表达式,其结果将作为规则数量。

    • 百分比 (%):分配给规则比率的小数值。

  • 固定金额:定义固定的金额和数量,比率默认为 100%。

    • 数量:使用 localdict 评估 Python 表达式,其结果将作为规则数量。

    • 固定金额:输入分配给规则金额的小数值。

  • 其他输入:选择此项可从具有相同 其他输入类型 的工资单输入行中获取规则金额(比率默认为 100%,数量为 1.0)。选择后下方会出现 其他输入金额 字段,请选择其输入类型,如 扣除小费报销费用

  • Python 代码:这是比 百分比 (%) 更复杂的版本。你可以编写完整的 Python 脚本并使用 localdict 进行评估。这包含一个 可用变量 列表和 输出 规范。

    • 可用变量

      • payslip:hr.payslip(工资单)对象

      • employee:hr.employee(员工)对象

      • version:hr.version(版本)对象

      • result_rules:包含(此前已计算完毕的)规则金额、数量、比率和总额的字典。键为规则代码,值为包含以下键的子字典:

        • total:规则总额

        • amount:规则金额

        • quantity:规则数量

        • rate:规则比率

        • ytd:规则本年累计值(Year To Date)

      • categories:包含已计算工资规则类别的字典(该类别下所有规则金额的总和)。键为类别代码,值为该类别下规则总额之和。

      • worked_days:包含已计算工作日的字典。 为工作分录类型代码, 为包含多个变量的 worked_days 对象,最重要的变量包括:

        • number_of_days:在该工资单周期内,以此工作分录类型登记的天数。

        • number_of_hours:在该工资单周期内,以此工作分录类型登记的小时数。

        • is_paid:决定此工作分录类型是否以此工资结构中的无薪分录形式添加。

      • inputs:包含已计算输入项的字典。 为其他输入类型代码, 为具有相同代码的工资单输入行之和。

    • 输出

      • result:浮点数,规则的基本金额

      • result_rate:浮点数,默认为 100.0 (%)

      • result_qty:浮点数,数量,默认为 1

      • result_name:字符串,明细行名称。默认为工资规则的名称(在名称需依赖于规则计算结果时非常有用)。

公司缴费/贡献

通过下拉菜单选择参与向员工支付薪资的第三方机构(如社会保险机构)。

显示选项卡

本部分决定规则在员工工资单 PDF 上的呈现方式,并定义其视觉样式。

首先,通过颜色选择器为规则选择 颜色。其次,勾选 标题 复选框可以 显示工资规则的 标题说明,并隐藏具体的数值。

勾选 缩进上方空格粗体下划线斜体 复选框以启用相应样式。

最后,为规则输入 说明,该内容将显示在规则名称下方。

会计选项卡

本部分决定规则如何影响各类会计日记账,以及员工净工资的计算方式。请配置以下字段:

  • 借方科目:从下拉菜单中选择该规则对应的借方科目。

  • 贷方科目:从下拉菜单中选择该规则对应的贷方科目。

  • 按名称拆分:启用此选项可根据工资单明细行名称拆分该规则的会计分录。这能为扣减、报销或工资调整提供更高的账务可见性。

  • 从净额中排除:勾选此项可将会计分录中的此规则计算结果从净工资规则中排除。应设置特定的借方和贷方科目对其进行独立归类。

  • 在分录行设置员工:勾选此项可使员工姓名显示在日记账分录行中。

Important

仅当安装了 会计(Accounting) 应用时,此选项卡才 可见

规则参数

规则参数告知 Odoo 如何计算工资单的每一行。要查看已配置的规则参数,请前往 工资表应用 ‣ 配置 ‣ 规则参数

系统将显示所有规则参数。点击单个参数即可查看详情。

每个规则参数都会显示规则名称、代码、激活状态以及参数值。

Example

加班费的规则参数告知 Odoo,当员工工作超过 40 小时时,将获得 1.5 倍的报酬。

其他输入类型

在创建工资单时,有时需要针对特定情况添加额外分录,例如小费、佣金、报销费用或扣除额。这些输入项可以在 工资表应用 ‣ 配置 ‣ 其他输入类型 中找到。

创建工资单新分录时可选的其他工资单输入类型列表。

如果需要列表中未列出的新输入类型,请点击 新建。输入 说明代码,并在 结构适用范围 字段中选择其适用的工资结构。

如果该输入项属于工资扣押/抵减项,请勾选 在工资抵减中可用 复选框。

Important

代码 用于工资规则中的计算。如果 结构适用范围 留空,则表示该输入类型适用于所有工资单,而非特定结构专用。

已填写的“新建输入类型”表单。