Skip to Content
Odoo model · Enterprise

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.

  1. Odoo 16 not covered
  2. Odoo 17 not covered
  3. Odoo 18 hr_payroll
  4. Odoo 19 hr_payroll
  5. 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.

Odoo 17 to 18

Community only All changes in this step

Not covered: this step compares Community modules only and this model belongs to an Enterprise module.

Odoo 18 to 19

Community + Enterprise All changes in this step

Fields removed (5)

FieldTypeModuleNotes
analytic_account_idmany2onehr_payroll_account
appears_on_payroll_reportbooleanhr_payroll
condition_rangecharhr_payroll
condition_range_maxfloathr_payroll
condition_range_minfloathr_payroll

Fields added (23)

Show all 23
FieldTypeModule
analytic_distributionjsonhr_payroll_account
batch_payroll_move_linesbooleanhr_payroll_account
boldbooleanhr_payroll
colorcharhr_payroll
condition_domaincharhr_payroll
country_idmany2onehr_payroll
dependent_input_idmany2onehr_payroll
employee_move_linebooleanhr_payroll_account
indentedbooleanhr_payroll
input_default_booleanbooleanhr_payroll
input_default_valuefloathr_payroll
input_descriptioncharhr_payroll
input_sectionmany2onehr_payroll
input_suffixcharhr_payroll
input_unitselectionhr_payroll
input_usage_employeebooleanhr_payroll
input_usage_payslipbooleanhr_payroll
input_used_in_definitionbooleanhr_payroll
italicbooleanhr_payroll
l10n_mx_conceptmany2onel10n_mx_hr_payroll_account_edi
space_abovebooleanhr_payroll
titlebooleanhr_payroll
underlinebooleanhr_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

Odoo 19 to 20

Community + Enterprise All changes in this step

Fields removed (8)

FieldTypeModuleNotes
amount_other_input_idmany2onehr_payroll
category_idmany2onehr_payroll
condition_other_input_idmany2onehr_payroll
dependent_input_idmany2onehr_payroll
input_default_booleanbooleanhr_payroll
input_descriptioncharhr_payroll
input_unitselectionhr_payroll
struct_idmany2onehr_payroll

Fields added (28)

Show all 28
FieldTypeModule
category_idsmany2manyhr_payroll
country_codecharhr_payroll
created_by_userbooleanhr_payroll
display_in_pdf_extra_infobooleanhr_payroll
explanation_templatetexthr_payroll
hide_amountbooleanhr_payroll
input_namecharhr_payroll
input_selected_by_defaultbooleanhr_payroll
l10n_au_etp_typeselectionl10n_au_hr_payroll
l10n_au_input_uomselectionl10n_au_hr_payroll
l10n_au_paygw_treatmentselectionl10n_au_hr_payroll
l10n_au_payment_typeselectionl10n_au_hr_payroll
l10n_au_payroll_codeselectionl10n_au_hr_payroll
l10n_au_payroll_code_descriptionselectionl10n_au_hr_payroll
l10n_au_quantitybooleanl10n_au_hr_payroll
l10n_au_requires_detailsbooleanl10n_au_hr_payroll
l10n_au_superannuation_treatmentselectionl10n_au_hr_payroll
l10n_be_excluded_joint_committee_idsmany2manyl10n_be_hr_payroll
l10n_be_fiscal_nature_idsmany2manyl10n_be_hr_payroll
l10n_be_follow_pay_periodselectionl10n_be_hr_payroll
l10n_be_is_bonus_remunerationbooleanl10n_be_hr_payroll
l10n_be_joint_committee_idsmany2manyl10n_be_hr_payroll
l10n_be_remuneration_codecharl10n_be_hr_payroll
l10n_be_remuneration_frequencyintegerl10n_be_hr_payroll
modified_by_userbooleanhr_payroll
round_of_computationintegerhr_payroll
struct_idsmany2manyhr_payroll
user_instructionshtmlhr_payroll

Type changed (1)

FieldOdoo 19Odoo 20
appears_on_payslip booleanselection
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
FieldTypeLabelModule1617181920
account_creditmany2one account.accountCredit Accounthr_payroll_accountE
account_debitmany2one account.accountDebit Accounthr_payroll_accountE
activebooleanhr_payrollE
amount_fixfloatFixed Amounthr_payrollE
amount_other_input_idmany2one hr.payslip.input.typehr_payrollE
amount_percentagefloatPercentage (%)hr_payrollE
amount_percentage_basecharPercentage based onhr_payrollE
amount_python_computetextPython Codehr_payrollE
amount_selectselectionAmount Typehr_payrollE
analytic_account_idmany2one account.analytic.accountAnalytic Accounthr_payroll_accountE
analytic_distributionjsonhr_payroll_accountE
appears_on_employee_cost_dashboardbooleanContributes to Employer Costhr_payrollE
appears_on_payroll_reportbooleanView on Payroll Reportinghr_payrollE
appears_on_payslipselectionVisibilityhr_payrollE
batch_payroll_move_linesbooleanhr_payroll_accountE
boldbooleanBoldhr_payrollE
category_idmany2one hr.salary.rule.categoryCategoryhr_payrollE
category_idsmany2many hr.salary.rule.categoryCategorieshr_payrollE
codecharhr_payrollE
colorcharColorhr_payrollE
condition_domaincharApplicability Domainhr_payrollE
condition_other_input_idmany2one hr.payslip.input.typehr_payrollE
condition_pythontextPython Conditionhr_payrollE
condition_rangecharRange Based onhr_payrollE
condition_range_maxfloatMaximum Rangehr_payrollE
condition_range_minfloatMinimum Rangehr_payrollE
condition_selectselectionBased onhr_payrollE
country_codecharhr_payrollE
country_idmany2one res.countryhr_payrollE
created_by_userbooleanhr_payrollE
credit_tag_idsmany2many account.account.tagCredit Tax Gridshr_payroll_accountE
debit_tag_idsmany2many account.account.tagDebit Tax Gridshr_payroll_accountE
dependent_input_idmany2one hr.salary.ruleDependent Salary Inputhr_payrollE
display_in_pdf_extra_infobooleanShow in extra info sectionhr_payrollE
employee_move_linebooleanSet employee on account linehr_payroll_accountE
explanation_templatetextExplanation Templatehr_payrollE
hide_amountbooleanHide Amounthr_payrollE
indentedbooleanIndentedhr_payrollE
input_default_booleanbooleanSelected by Defaulthr_payrollE
input_default_valuefloatDefault Valuehr_payrollE
input_descriptioncharhr_payrollE
input_namecharhr_payrollE
input_sectionmany2one hr.salary.rule.sectionSectionhr_payrollE
input_selected_by_defaultbooleanSelected by Defaulthr_payrollE
input_suffixcharhr_payrollE
input_unitselectionUnithr_payrollE
input_usage_employeebooleanhr_payrollE
input_usage_payslipbooleanAvailable on Paysliphr_payrollE
input_used_in_definitionbooleanhr_payrollE
italicbooleanItalichr_payrollE
l10n_au_etp_typeselectionETP Typel10n_au_hr_payrollE
l10n_au_input_uomselectionInput UoMl10n_au_hr_payrollE
l10n_au_paygw_treatmentselectionPAYGW Treatmentl10n_au_hr_payrollE
l10n_au_payment_typeselectionPayment Typel10n_au_hr_payrollE
l10n_au_payroll_codeselectionSTP Codel10n_au_hr_payrollE
l10n_au_payroll_code_descriptionselectionPayroll Code Descriptionl10n_au_hr_payrollE
l10n_au_quantitybooleanAU Quantity Flagl10n_au_hr_payrollE
l10n_au_requires_detailsbooleanRequires Detailsl10n_au_hr_payrollE
l10n_au_superannuation_treatmentselectionSuperannuation Treatmentl10n_au_hr_payrollE
l10n_be_excluded_joint_committee_idsmany2many l10n.be.joint.committeeExcluded Joint Committeesl10n_be_hr_payrollE
l10n_be_fiscal_nature_idsmany2many l10n.be.281.mappingFiscal Naturel10n_be_hr_payrollE
l10n_be_follow_pay_periodselectionFollow Pay Periodl10n_be_hr_payrollE
l10n_be_is_bonus_remunerationbooleanl10n_be_hr_payrollE
l10n_be_joint_committee_idsmany2many l10n.be.joint.committeeJoint Committeesl10n_be_hr_payrollE
l10n_be_remuneration_codecharRemuneration Codel10n_be_hr_payrollE
l10n_be_remuneration_frequencyintegerRemuneration Frequencyl10n_be_hr_payrollE
l10n_ch_13th_month_hourly_includedbooleanl10n_ch_hr_payrollE
l10n_ch_13th_month_includedboolean13th Month Includedl10n_ch_hr_payrollE
l10n_ch_5_cents_roundingboolean5 cents roundingl10n_ch_hr_payrollE
l10n_ch_aanp_includedbooleanAANP Includedl10n_ch_hr_payrollE
l10n_ch_ac_includedbooleanAVS/AC Includedl10n_ch_hr_payrollE
l10n_ch_caf_statementcharCAF Statementl10n_ch_hr_payrollE
l10n_ch_codecharExternal Codel10n_ch_hr_payrollE
l10n_ch_gross_includedbooleanGross Includedl10n_ch_hr_payrollE
l10n_ch_ijm_includedbooleanIJM Includedl10n_ch_hr_payrollE
l10n_ch_is_periodicbooleanl10n_ch_hr_payrollE
l10n_ch_laac_includedbooleanLAAC Includedl10n_ch_hr_payrollE
l10n_ch_lpp_factorintegerLPP Factorl10n_ch_hr_payrollE
l10n_ch_lpp_forecastbooleanLPP Forecastl10n_ch_hr_payrollE
l10n_ch_lpp_retroactivebooleanLPP Retroactivel10n_ch_hr_payrollE
l10n_ch_salary_certificateselectionSalary Certificatel10n_ch_hr_payrollE
l10n_ch_source_tax_includedbooleanSource Tax Includedl10n_ch_hr_payrollE
l10n_ch_vacation_pay_includedbooleanl10n_ch_hr_payrollE
l10n_ch_wage_statementselectionMonthly Statisticl10n_ch_hr_payrollE
l10n_ch_yearly_statementselectionYearly Statisticl10n_ch_hr_payrollE
l10n_mx_conceptmany2one l10n.mx.conceptCFDI Conceptl10n_mx_hr_payroll_accountE
modified_by_userbooleanhr_payrollE
namecharhr_payrollE
not_computed_in_netbooleanExcluded from Nethr_payroll_accountE
notehtmlDescriptionhr_payrollE
partner_idmany2one res.partnerPartnerhr_payrollE
quantitycharhr_payrollE
round_of_computationintegerRound at which the rule is computedhr_payrollE
sequenceintegerhr_payrollE
space_abovebooleanSpace Abovehr_payrollE
split_move_linesbooleanSplit on nameshr_payroll_accountE
struct_idmany2one hr.payroll.structureSalary Structurehr_payrollE
struct_idsmany2many hr.payroll.structurePay Structureshr_payrollE
titlebooleanTitle onlyhr_payrollE
underlinebooleanUnderlinehr_payrollE
user_instructionshtmlUser Instructionshr_payrollE
Coverage. Odoo 16 to 17 and 17 to 18 compare Community modules only (the Enterprise 16 and 17 sources are not available to us). Odoo 18 to 19 and 19 to 20 include Community and Enterprise modules. Everything here comes from a static read of the Odoo source code: a field counts as removed only when no parent model, mixin or delegated model still provides it. Fields created dynamically at run time can be missed, and entries we could not confirm are marked as low confidence.