Salary Rule Variables

hr_salary_rule_variable
REPOSITORY
REPOSITORYOCA/hr
GIT
GIThttps://github.com/OCA/hr.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/hr/tree/10.0/hr_salary_rule_variable
VERSION
VERSION 1.0
CATEGORY
CATEGORYGeneric Modules/Human Resources
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Savoir-faire Linux
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Savoir-faire Linux
COMMITTERS
COMMITTERSPedro M. Baeza, Stéphane Bidoul (ACSONE), Iryna Vushnevska
WEBSITE
WEBSITEhttps://www.savoirfairelinux.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:19:57
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - hr_payroll
    - hr_contract
    - base_action_rule
    - base
    - resource
    - mail
    - base_setup
    - web_kanban
    - web
    - bus
    - web_tour
    - hr
    - hr_holidays
    - calendar
    - web_calendar
    - product
    - decimal_precision
    - report
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Salary Rule Variables
=====================
Salary rule variables are amounts or python expressions that change over
the years. This module allows to compute these variables and reference
them from salary rules.

The purpose of this module is to be able to adapt a complexe salary structures
(e.g. the canadian income tax structure) from one year to another without
going each time through the whole testing procedure.

Numbers change but the whole logic stays the same.

How to use it
-------------
In the python script of a salary rule, you may call it via the payslip
browsable object:
    variable = payslip.get_rule_variable(rule_id, payslip.date_from)

rule_id always refer to the current rule.

If you need more than one variable for a salary rule, use a python dict.

Contributors
------------
* David Dufresne <david.dufresne@savoirfairelinux.com>
* Pierre Lamarche <pierre.lamarche@savoirfairelinux.com>

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
hr_salary_rule_variable_form hr.salary.rule.variable.form hr.salary.rule.variable form New
hr_salary_rule_variable_list hr.salary.rule.variable.tree hr.salary.rule.variable tree New
view_hr_salary_rule_variable_filter hr.salary.rule.variable.select hr.salary.rule.variable search New
Models touched (3)

New fields (0)

No new fields.

Public methods (1)
  • get_rule_variable(self, cr, uid, ids, rule_id, date, localdict=False, context=None)
    Gets a salary rule variable related to a salary rule for a period of time This method is called from the salary rule: payslip.get_rule_variable(rule_id, payslip.date_from) By using the optional argument localdict, you can pass the value of salary rule already computed. Example: payslip.get_rule_variable(rule_id, payslip.date_from, GROSS) returns: fixed amount (a float) or a python object (most likely a dict)

New fields (0)

No new fields.

Public methods (1)
  • compute_rule(self, cr, uid, rule_id, localdict, context=None)

New fields (0)

No new fields.

Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/hr
GIT
GIThttps://github.com/OCA/hr.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/hr/tree/9.0/hr_salary_rule_variable
VERSION
VERSION 1.0
CATEGORY
CATEGORYGeneric Modules/Human Resources
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Savoir-faire Linux
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Savoir-faire Linux
COMMITTERS
COMMITTERSStéphane Bidoul (ACSONE)
WEBSITE
WEBSITEhttps://www.savoirfairelinux.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:15:21
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - hr_payroll
    - hr
    - base_setup
    - base
    - web_kanban
    - web
    - mail
    - bus
    - resource
    - web_tip
    - hr_contract
    - base_action_rule
    - hr_holidays
    - calendar
    - web_calendar
    - report
    - decimal_precision
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Salary Rule Variables
=====================
Salary rule variables are amounts or python expressions that change over
the years. This module allows to compute these variables and reference
them from salary rules.

The purpose of this module is to be able to adapt a complexe salary structures
(e.g. the canadian income tax structure) from one year to another without
going each time through the whole testing procedure.

Numbers change but the whole logic stays the same.

How to use it
-------------
In the python script of a salary rule, you may call it via the payslip
browsable object:
    variable = payslip.get_rule_variable(rule_id, payslip.date_from)

rule_id always refer to the current rule.

If you need more than one variable for a salary rule, use a python dict.

Contributors
------------
* David Dufresne <david.dufresne@savoirfairelinux.com>
* Pierre Lamarche <pierre.lamarche@savoirfairelinux.com>

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
hr_salary_rule_variable_form hr.salary.rule.variable.form hr.salary.rule.variable form New
hr_salary_rule_variable_list hr.salary.rule.variable.tree hr.salary.rule.variable tree New
view_hr_salary_rule_variable_filter hr.salary.rule.variable.select hr.salary.rule.variable search New
Models touched (3)

New fields (0)

No new fields.

Public methods (1)
  • get_rule_variable(self, cr, uid, ids, rule_id, date, localdict=False, context=None)
    Gets a salary rule variable related to a salary rule for a period of time This method is called from the salary rule: payslip.get_rule_variable(rule_id, payslip.date_from) By using the optional argument localdict, you can pass the value of salary rule already computed. Example: payslip.get_rule_variable(rule_id, payslip.date_from, GROSS) returns: fixed amount (a float) or a python object (most likely a dict)

New fields (0)

No new fields.

Public methods (1)
  • compute_rule(self, cr, uid, rule_id, localdict, context=None)

New fields (0)

No new fields.

Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/hr
GIT
GIThttps://github.com/OCA/hr.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/hr/tree/8.0/hr_salary_rule_variable
VERSION
VERSION 1.0
CATEGORY
CATEGORYGeneric Modules/Human Resources
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Savoir-faire Linux
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Savoir-faire Linux
COMMITTERS
COMMITTERSStéphane Bidoul, Stéphane Bidoul (ACSONE)
WEBSITE
WEBSITEhttps://www.savoirfairelinux.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:11:23
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - hr_payroll
    - hr
    - base_setup
    - base
    - web_kanban
    - web
    - mail
    - resource
    - board
    - hr_contract
    - base_action_rule
    - hr_holidays
    - calendar
    - web_calendar
    - decimal_precision
    - report
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Salary Rule Variables
=====================
Salary rule variables are amounts or python expressions that change over
the years. This module allows to compute these variables and reference
them from salary rules.

The purpose of this module is to be able to adapt a complexe salary structures
(e.g. the canadian income tax structure) from one year to another without
going each time through the whole testing procedure.

Numbers change but the whole logic stays the same.

How to use it
-------------
In the python script of a salary rule, you may call it via the payslip
browsable object:
    variable = payslip.get_rule_variable(rule_id, payslip.date_from)

rule_id always refer to the current rule.

If you need more than one variable for a salary rule, use a python dict.

Contributors
------------
* David Dufresne <david.dufresne@savoirfairelinux.com>
* Pierre Lamarche <pierre.lamarche@savoirfairelinux.com>

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
hr_salary_rule_variable_form hr.salary.rule.variable.form hr.salary.rule.variable form New
hr_salary_rule_variable_list hr.salary.rule.variable.tree hr.salary.rule.variable tree New
view_hr_salary_rule_variable_filter hr.salary.rule.variable.select hr.salary.rule.variable search New
Models touched (3)

New fields (0)

No new fields.

Public methods (1)
  • get_rule_variable(self, cr, uid, ids, rule_id, date, localdict=False, context=None)
    Gets a salary rule variable related to a salary rule for a period of time This method is called from the salary rule: payslip.get_rule_variable(rule_id, payslip.date_from) By using the optional argument localdict, you can pass the value of salary rule already computed. Example: payslip.get_rule_variable(rule_id, payslip.date_from, GROSS) returns: fixed amount (a float) or a python object (most likely a dict)

New fields (0)

No new fields.

Public methods (1)
  • compute_rule(self, cr, uid, rule_id, localdict, context=None)

New fields (0)

No new fields.

Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/hr
GIT
GIThttps://github.com/OCA/hr.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/hr/tree/7.0/hr_salary_rule_variable
VERSION
VERSION 1.1
CATEGORY
CATEGORYGeneric Modules/Human Resources
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Savoir-faire Linux
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Savoir-faire Linux
COMMITTERS
COMMITTERSAlexandre Fayolle, OCA Transbot, Rudolf Schnapka, dufresnedavid
WEBSITE
WEBSITEhttps://www.savoirfairelinux.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:07:14
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/hr:
    - hr_salary_rule_reference
odoo/odoo:
    - hr_payroll
    - hr
    - base_setup
    - base
    - web_kanban
    - web
    - mail
    - resource
    - process
    - board
    - hr_contract
    - hr_holidays
    - base_calendar
    - base_status
    - base_action_rule
    - decimal_precision
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Salary Rule Variables
=====================
Salary rule variables are amounts or python expressions that change over
the years. This module allows to compute these variables and reference
them from salary rules.

The purpose of this module is to be able to adapt a complexe salary structures
(e.g. the canadian income tax structure) from one year to another without
going each time through the whole testing procedure.

Numbers change but the whole logic stays the same.

How to use it
-------------
In the python script of a salary rule, you may call it via the payslip
browsable object:
    variable = payslip.get_rule_variable(rule_id, payslip.date_from)

rule_id always refer to the current rule.

If you need more than one variable for a salary rule, use a python dict.

Contributors
------------
* David Dufresne <david.dufresne@savoirfairelinux.com>
* Pierre Lamarche <pierre.lamarche@savoirfairelinux.com>

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
hr_salary_rule_variable_form hr.salary.rule.variable.form hr.salary.rule.variable form New
hr_salary_rule_variable_list hr.salary.rule.variable.tree hr.salary.rule.variable tree New
view_hr_salary_rule_variable_filter hr.salary.rule.variable.select hr.salary.rule.variable search New
Models touched (3)

New fields (0)

No new fields.

Public methods (1)
  • get_rule_variable(self, cr, uid, ids, rule_id, date, localdict=False, context=None)
    Depecreted Keep for backward compatibility

New fields (0)

No new fields.

Public methods (1)
  • variable(self, cr, uid, ids, date, localdict=False, context=None)
    Get a salary rule variable related to a salary rule for a period of time This method is called from the salary rule: rule.variable(payslip.date_from) By using the optional argument localdict, you can pass the value of salary rule already computed. Example: rule.variable(payslip.date_from, {'GROSS': GROSS}) :rtype: fixed amount (a float) or a python object (most likely a dict)

New fields (0)

No new fields.

Public methods (0)

No public methods.