hr.salary.rule
Salary Rule. Defined in module hr_payroll; exists in Odoo 18, 19, 20. Across the upgrade steps we tracked: 51 fields added, 13 removed, 0 renamed, 1 type changes.
Defines how specific components of a salary (e.g., basic wage, allowances, taxes, deductions) are computed and applied to a payslip based on conditions and Python expressions.
- Odoo 16 not covered
- Odoo 17 not covered
- Odoo 18 hr_payroll
- Odoo 19 hr_payroll
- Odoo 20 hr_payroll
This is an Enterprise model: Odoo 16 and 17 Enterprise sources are not part of the data, so those versions show as not covered.
Not covered: this step compares Community modules only and this model belongs to an Enterprise module.
Fields removed (5)
| Field | Type | Module | Notes |
|---|---|---|---|
| analytic_account_id | many2one | hr_payroll_account | |
| appears_on_payroll_report | boolean | hr_payroll | |
| condition_range | char | hr_payroll | |
| condition_range_max | float | hr_payroll | |
| condition_range_min | float | hr_payroll |
Fields added (23)
Show all 23
| Field | Type | Module |
|---|---|---|
| analytic_distribution | json | hr_payroll_account |
| batch_payroll_move_lines | boolean | hr_payroll_account |
| bold | boolean | hr_payroll |
| color | char | hr_payroll |
| condition_domain | char | hr_payroll |
| country_id | many2one | hr_payroll |
| dependent_input_id | many2one | hr_payroll |
| employee_move_line | boolean | hr_payroll_account |
| indented | boolean | hr_payroll |
| input_default_boolean | boolean | hr_payroll |
| input_default_value | float | hr_payroll |
| input_description | char | hr_payroll |
| input_section | many2one | hr_payroll |
| input_suffix | char | hr_payroll |
| input_unit | selection | hr_payroll |
| input_usage_employee | boolean | hr_payroll |
| input_usage_payslip | boolean | hr_payroll |
| input_used_in_definition | boolean | hr_payroll |
| italic | boolean | hr_payroll |
| l10n_mx_concept | many2one | l10n_mx_hr_payroll_account_edi |
| space_above | boolean | hr_payroll |
| title | boolean | hr_payroll |
| underline | boolean | hr_payroll |
Now also inherits analytic.mixin (fields from these parents are listed on their own pages).
No longer inherits mail.thread.
7 views of this model removed
- hr_payroll.hr_salary_rule_view_kanban
- l10n_ch_hr_payroll_elm_transmission.l10n_ch_hr_payroll_salary_rule
- l10n_ch_hr_payroll_elm_transmission.l10n_ch_hr_payroll_salary_rule_tree
- l10n_ch_hr_payroll_elm_transmission.l10n_ch_wage_type_search_view
- l10n_ch_hr_payroll_elm_transmission.swissdec_wage_types_form
- l10n_ch_hr_payroll_elm_transmission.swissdec_wage_types_tree
- l10n_ch_hr_payroll_elm_transmission_account.swissdec_wage_types_tree
Fields removed (8)
| Field | Type | Module | Notes |
|---|---|---|---|
| amount_other_input_id | many2one | hr_payroll | |
| category_id | many2one | hr_payroll | |
| condition_other_input_id | many2one | hr_payroll | |
| dependent_input_id | many2one | hr_payroll | |
| input_default_boolean | boolean | hr_payroll | |
| input_description | char | hr_payroll | |
| input_unit | selection | hr_payroll | |
| struct_id | many2one | hr_payroll |
Fields added (28)
Show all 28
| Field | Type | Module |
|---|---|---|
| category_ids | many2many | hr_payroll |
| country_code | char | hr_payroll |
| created_by_user | boolean | hr_payroll |
| display_in_pdf_extra_info | boolean | hr_payroll |
| explanation_template | text | hr_payroll |
| hide_amount | boolean | hr_payroll |
| input_name | char | hr_payroll |
| input_selected_by_default | boolean | hr_payroll |
| l10n_au_etp_type | selection | l10n_au_hr_payroll |
| l10n_au_input_uom | selection | l10n_au_hr_payroll |
| l10n_au_paygw_treatment | selection | l10n_au_hr_payroll |
| l10n_au_payment_type | selection | l10n_au_hr_payroll |
| l10n_au_payroll_code | selection | l10n_au_hr_payroll |
| l10n_au_payroll_code_description | selection | l10n_au_hr_payroll |
| l10n_au_quantity | boolean | l10n_au_hr_payroll |
| l10n_au_requires_details | boolean | l10n_au_hr_payroll |
| l10n_au_superannuation_treatment | selection | l10n_au_hr_payroll |
| l10n_be_excluded_joint_committee_ids | many2many | l10n_be_hr_payroll |
| l10n_be_fiscal_nature_ids | many2many | l10n_be_hr_payroll |
| l10n_be_follow_pay_period | selection | l10n_be_hr_payroll |
| l10n_be_is_bonus_remuneration | boolean | l10n_be_hr_payroll |
| l10n_be_joint_committee_ids | many2many | l10n_be_hr_payroll |
| l10n_be_remuneration_code | char | l10n_be_hr_payroll |
| l10n_be_remuneration_frequency | integer | l10n_be_hr_payroll |
| modified_by_user | boolean | hr_payroll |
| round_of_computation | integer | hr_payroll |
| struct_ids | many2many | hr_payroll |
| user_instructions | html | hr_payroll |
Type changed (1)
| Field | Odoo 19 | Odoo 20 |
|---|---|---|
| appears_on_payslip | boolean | selection |
1 views of this model removed
- l10n_mx_hr_payroll_account_edi.hr_salary_rule_view_form_l10n_mx_edi
All fields declared on hr.salary.rule (101)
Fields this model declares itself in any version, with the versions they exist in. Inherited fields (mail.thread and other mixins) are on the parent model's page.
present not present not covered (Enterprise, Odoo 16 and 17)
Show all 101 fields
| Field | Type | Label | Module | 16 | 17 | 18 | 19 | 20 |
|---|---|---|---|---|---|---|---|---|
| account_credit | many2one account.account | Credit Account | hr_payroll_accountE | |||||
| account_debit | many2one account.account | Debit Account | hr_payroll_accountE | |||||
| active | boolean | hr_payrollE | ||||||
| amount_fix | float | Fixed Amount | hr_payrollE | |||||
| amount_other_input_id | many2one hr.payslip.input.type | hr_payrollE | ||||||
| amount_percentage | float | Percentage (%) | hr_payrollE | |||||
| amount_percentage_base | char | Percentage based on | hr_payrollE | |||||
| amount_python_compute | text | Python Code | hr_payrollE | |||||
| amount_select | selection | Amount Type | hr_payrollE | |||||
| analytic_account_id | many2one account.analytic.account | Analytic Account | hr_payroll_accountE | |||||
| analytic_distribution | json | hr_payroll_accountE | ||||||
| appears_on_employee_cost_dashboard | boolean | Contributes to Employer Cost | hr_payrollE | |||||
| appears_on_payroll_report | boolean | View on Payroll Reporting | hr_payrollE | |||||
| appears_on_payslip | selection | Visibility | hr_payrollE | |||||
| batch_payroll_move_lines | boolean | hr_payroll_accountE | ||||||
| bold | boolean | Bold | hr_payrollE | |||||
| category_id | many2one hr.salary.rule.category | Category | hr_payrollE | |||||
| category_ids | many2many hr.salary.rule.category | Categories | hr_payrollE | |||||
| code | char | hr_payrollE | ||||||
| color | char | Color | hr_payrollE | |||||
| condition_domain | char | Applicability Domain | hr_payrollE | |||||
| condition_other_input_id | many2one hr.payslip.input.type | hr_payrollE | ||||||
| condition_python | text | Python Condition | hr_payrollE | |||||
| condition_range | char | Range Based on | hr_payrollE | |||||
| condition_range_max | float | Maximum Range | hr_payrollE | |||||
| condition_range_min | float | Minimum Range | hr_payrollE | |||||
| condition_select | selection | Based on | hr_payrollE | |||||
| country_code | char | hr_payrollE | ||||||
| country_id | many2one res.country | hr_payrollE | ||||||
| created_by_user | boolean | hr_payrollE | ||||||
| credit_tag_ids | many2many account.account.tag | Credit Tax Grids | hr_payroll_accountE | |||||
| debit_tag_ids | many2many account.account.tag | Debit Tax Grids | hr_payroll_accountE | |||||
| dependent_input_id | many2one hr.salary.rule | Dependent Salary Input | hr_payrollE | |||||
| display_in_pdf_extra_info | boolean | Show in extra info section | hr_payrollE | |||||
| employee_move_line | boolean | Set employee on account line | hr_payroll_accountE | |||||
| explanation_template | text | Explanation Template | hr_payrollE | |||||
| hide_amount | boolean | Hide Amount | hr_payrollE | |||||
| indented | boolean | Indented | hr_payrollE | |||||
| input_default_boolean | boolean | Selected by Default | hr_payrollE | |||||
| input_default_value | float | Default Value | hr_payrollE | |||||
| input_description | char | hr_payrollE | ||||||
| input_name | char | hr_payrollE | ||||||
| input_section | many2one hr.salary.rule.section | Section | hr_payrollE | |||||
| input_selected_by_default | boolean | Selected by Default | hr_payrollE | |||||
| input_suffix | char | hr_payrollE | ||||||
| input_unit | selection | Unit | hr_payrollE | |||||
| input_usage_employee | boolean | hr_payrollE | ||||||
| input_usage_payslip | boolean | Available on Payslip | hr_payrollE | |||||
| input_used_in_definition | boolean | hr_payrollE | ||||||
| italic | boolean | Italic | hr_payrollE | |||||
| l10n_au_etp_type | selection | ETP Type | l10n_au_hr_payrollE | |||||
| l10n_au_input_uom | selection | Input UoM | l10n_au_hr_payrollE | |||||
| l10n_au_paygw_treatment | selection | PAYGW Treatment | l10n_au_hr_payrollE | |||||
| l10n_au_payment_type | selection | Payment Type | l10n_au_hr_payrollE | |||||
| l10n_au_payroll_code | selection | STP Code | l10n_au_hr_payrollE | |||||
| l10n_au_payroll_code_description | selection | Payroll Code Description | l10n_au_hr_payrollE | |||||
| l10n_au_quantity | boolean | AU Quantity Flag | l10n_au_hr_payrollE | |||||
| l10n_au_requires_details | boolean | Requires Details | l10n_au_hr_payrollE | |||||
| l10n_au_superannuation_treatment | selection | Superannuation Treatment | l10n_au_hr_payrollE | |||||
| l10n_be_excluded_joint_committee_ids | many2many l10n.be.joint.committee | Excluded Joint Committees | l10n_be_hr_payrollE | |||||
| l10n_be_fiscal_nature_ids | many2many l10n.be.281.mapping | Fiscal Nature | l10n_be_hr_payrollE | |||||
| l10n_be_follow_pay_period | selection | Follow Pay Period | l10n_be_hr_payrollE | |||||
| l10n_be_is_bonus_remuneration | boolean | l10n_be_hr_payrollE | ||||||
| l10n_be_joint_committee_ids | many2many l10n.be.joint.committee | Joint Committees | l10n_be_hr_payrollE | |||||
| l10n_be_remuneration_code | char | Remuneration Code | l10n_be_hr_payrollE | |||||
| l10n_be_remuneration_frequency | integer | Remuneration Frequency | l10n_be_hr_payrollE | |||||
| l10n_ch_13th_month_hourly_included | boolean | l10n_ch_hr_payrollE | ||||||
| l10n_ch_13th_month_included | boolean | 13th Month Included | l10n_ch_hr_payrollE | |||||
| l10n_ch_5_cents_rounding | boolean | 5 cents rounding | l10n_ch_hr_payrollE | |||||
| l10n_ch_aanp_included | boolean | AANP Included | l10n_ch_hr_payrollE | |||||
| l10n_ch_ac_included | boolean | AVS/AC Included | l10n_ch_hr_payrollE | |||||
| l10n_ch_caf_statement | char | CAF Statement | l10n_ch_hr_payrollE | |||||
| l10n_ch_code | char | External Code | l10n_ch_hr_payrollE | |||||
| l10n_ch_gross_included | boolean | Gross Included | l10n_ch_hr_payrollE | |||||
| l10n_ch_ijm_included | boolean | IJM Included | l10n_ch_hr_payrollE | |||||
| l10n_ch_is_periodic | boolean | l10n_ch_hr_payrollE | ||||||
| l10n_ch_laac_included | boolean | LAAC Included | l10n_ch_hr_payrollE | |||||
| l10n_ch_lpp_factor | integer | LPP Factor | l10n_ch_hr_payrollE | |||||
| l10n_ch_lpp_forecast | boolean | LPP Forecast | l10n_ch_hr_payrollE | |||||
| l10n_ch_lpp_retroactive | boolean | LPP Retroactive | l10n_ch_hr_payrollE | |||||
| l10n_ch_salary_certificate | selection | Salary Certificate | l10n_ch_hr_payrollE | |||||
| l10n_ch_source_tax_included | boolean | Source Tax Included | l10n_ch_hr_payrollE | |||||
| l10n_ch_vacation_pay_included | boolean | l10n_ch_hr_payrollE | ||||||
| l10n_ch_wage_statement | selection | Monthly Statistic | l10n_ch_hr_payrollE | |||||
| l10n_ch_yearly_statement | selection | Yearly Statistic | l10n_ch_hr_payrollE | |||||
| l10n_mx_concept | many2one l10n.mx.concept | CFDI Concept | l10n_mx_hr_payroll_accountE | |||||
| modified_by_user | boolean | hr_payrollE | ||||||
| name | char | hr_payrollE | ||||||
| not_computed_in_net | boolean | Excluded from Net | hr_payroll_accountE | |||||
| note | html | Description | hr_payrollE | |||||
| partner_id | many2one res.partner | Partner | hr_payrollE | |||||
| quantity | char | hr_payrollE | ||||||
| round_of_computation | integer | Round at which the rule is computed | hr_payrollE | |||||
| sequence | integer | hr_payrollE | ||||||
| space_above | boolean | Space Above | hr_payrollE | |||||
| split_move_lines | boolean | Split on names | hr_payroll_accountE | |||||
| struct_id | many2one hr.payroll.structure | Salary Structure | hr_payrollE | |||||
| struct_ids | many2many hr.payroll.structure | Pay Structures | hr_payrollE | |||||
| title | boolean | Title only | hr_payrollE | |||||
| underline | boolean | Underline | hr_payrollE | |||||
| user_instructions | html | User Instructions | hr_payrollE |