| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/12.0/hr_payroll |
| VERSION | |
| VERSION | 0.1.0 |
| CATEGORY | |
| CATEGORY | Human Resources |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Christophe Simonis, Joren Van Onder, qdp-odoo, GitHub, Yannick Tivisse, Alexandre Kühn, qsm-odoo, Christophe Monniez, Jorge Pinna Puissant, Xavier-Do, Andrea Grazioso (agr-odoo), alt-odoo, Kinjal Mehta, Touati Djamel (otd) |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:57:01 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - hr_contract - hr - base_setup - base - web - bus - web_tour - resource - hr_holidays - calendar - decimal_precision |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
hr_contract_advantage_template_view_form |
hr.contract.advantage.template.form | hr.contract.advantage.template | form | New |
hr_contract_advantage_template_view_tree |
hr.contract.advantage.template.tree | hr.contract.advantage.template | tree | New |
hr_contract_form_inherit |
hr.contract.view.form.inherit | hr.contract | xpath | Inherits hr_contract.hr_contract_view_form |
hr_contribution_register_filter |
hr.contribution.register.search | hr.contribution.register | search | New |
hr_contribution_register_form |
hr.contribution.register.form | hr.contribution.register | form | New |
hr_contribution_register_tree |
hr.contribution.register.tree | hr.contribution.register | tree | New |
hr_contribution_register_view_kanban |
hr.contribution.register.kanban | hr.contribution.register | kanban | New |
hr_payroll_structure_view_kanban |
hr.payroll.structure.kanban | hr.payroll.structure | kanban | New |
hr_payslip_run_filter |
hr.payslip.run.search | hr.payslip.run | search | New |
hr_payslip_run_form |
hr.payslip.run.form | hr.payslip.run | form | New |
hr_payslip_run_tree |
hr.payslip.run.tree | hr.payslip.run | tree | New |
hr_payslip_run_view_kanban |
hr.payslip.run.kanban | hr.payslip.run | kanban | New |
hr_payslip_view_kanban |
hr.payslip.kanban | hr.payslip | kanban | New |
hr_salary_rule_category_form |
hr.salary.rule.category.form | hr.salary.rule.category | form | New |
hr_salary_rule_category_tree |
hr.salary.rule.category.tree | hr.salary.rule.category | tree | New |
hr_salary_rule_form |
hr.salary.rule.form | hr.salary.rule | form | New |
hr_salary_rule_list |
hr.salary.rule.list | hr.salary.rule | tree | New |
hr_salary_rule_tree |
hr.salary.rule.tree | hr.salary.rule | tree | New |
hr_salary_rule_view_kanban |
hr.salary.rule.kanban | hr.salary.rule | kanban | New |
payroll_hr_employee_view_form |
payroll.hr.employee.view.form | hr.employee | button | Inherits hr.view_employee_form |
report_contributionregister |
report_contributionregister | ir.ui.view | qweb | New |
report_payslip |
report_payslip | ir.ui.view | qweb | New |
report_payslipdetails |
report_payslipdetails | ir.ui.view | qweb | New |
res_config_settings_view_form |
res.config.settings.view.form.inherit.hr.payroll | res.config.settings | xpath | Inherits base.res_config_settings_view_form |
view_hr_employee_grade_form |
hr.payroll.structure.form | hr.payroll.structure | form | New |
view_hr_payroll_structure_filter |
hr.payroll.structure.select | hr.payroll.structure | search | New |
view_hr_payroll_structure_list_view |
hr.payroll.structure.tree | hr.payroll.structure | tree | New |
view_hr_payroll_structure_tree |
hr.payroll.structure.tree | hr.payroll.structure | tree | New |
view_hr_payslip_by_employees |
hr_payroll_payslip_employees | hr.payslip.employees | form | New |
view_hr_payslip_filter |
hr.payslip.select | hr.payslip | search | New |
view_hr_payslip_form |
hr.payslip.form | hr.payslip | form | New |
view_hr_payslip_line_filter |
hr.payslip.line.select | hr.payslip.line | search | New |
view_hr_payslip_line_form |
hr.payslip.line.form | hr.payslip.line | form | New |
view_hr_payslip_line_tree |
hr.payslip.line.tree | hr.payslip.line | tree | New |
view_hr_payslip_tree |
hr.payslip.tree | hr.payslip | tree | New |
view_hr_rule_filter |
hr.salary.rule.select | hr.salary.rule | search | New |
view_hr_salary_rule_category_filter |
hr.salary.rule.category.select | hr.salary.rule.category | search | New |
view_payslip_lines_contribution_register |
payslip.lines.contribution.register | payslip.lines.contribution.register | form | New |
resource_calendar_id
Many2one
help="Employee's working schedule."
required=True
schedule_pay
Selection
default='monthly'
help='Defines the frequency of the wage payment.'
index=True
string='Scheduled Pay'
args: [('monthly', 'Monthly'), ('quarterly', 'Quarterly'), ('semi-annually', 'Semi-annually'), ('annually', 'Annually'), ('weekly', 'Weekly'), ('bi-weekly', 'Bi-weekly'), ('bi-monthly', 'Bi-monthly')]
struct_id
Many2one → hr.payroll.structure
string='Salary Structure'
args: 'hr.payroll.structure'
get_all_structures(self)
get_attribute(self, code, attribute)
set_attribute_value(self, code, active)
code
Char
required=True
args: 'Code'
default_value
Float
lower_bound
Float
help='Lower bound authorized by the employer for this advantage'
args: 'Lower Bound'
name
Char
required=True
args: 'Name'
upper_bound
Float
help='Upper bound authorized by the employer for this advantage'
args: 'Upper Bound'
No public methods.
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
name
Char
required=True
note
Text
string='Description'
partner_id
Many2one → res.partner
string='Partner'
args: 'res.partner'
register_line_ids
One2many → hr.payslip.line
readonly=True
string='Register Line'
args: 'hr.payslip.line', 'register_id'
No public methods.
payslip_count
Integer
compute='_compute_payslip_count'
groups='hr_payroll.group_hr_payroll_user'
string='Payslip Count'
slip_ids
One2many → hr.payslip
readonly=True
string='Payslips'
args: 'hr.payslip', 'employee_id'
No public methods.
children_ids
One2many → hr.payroll.structure
copy=True
string='Children'
args: 'hr.payroll.structure', 'parent_id'
code
Char
required=True
string='Reference'
company_id
Many2one → res.company
copy=False
default=<expr>
required=True
string='Company'
args: 'res.company'
name
Char
required=True
note
Text
string='Description'
parent_id
Many2one → hr.payroll.structure
default=_get_parent
string='Parent'
args: 'hr.payroll.structure'
rule_ids
Many2many → hr.salary.rule
string='Salary Rules'
args: 'hr.salary.rule', 'hr_structure_salary_rule_rel', 'struct_id', 'rule_id'
copy(self, default=None)
get_all_rules(self)
company_id
Many2one → res.company
copy=False
default=<expr>
readonly=True
states={'draft': [('readonly', False)]}
string='Company'
args: 'res.company'
contract_id
Many2one → hr.contract
readonly=True
states={'draft': [('readonly', False)]}
string='Contract'
args: 'hr.contract'
credit_note
Boolean
help='Indicates this payslip has a refund of another'
readonly=True
states={'draft': [('readonly', False)]}
string='Credit Note'
date_from
Date
default=<expr>
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Date From'
date_to
Date
default=<expr>
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Date To'
details_by_salary_rule_category
One2many → hr.payslip.line
compute='_compute_details_by_salary_rule_category'
string='Details by Salary Rule Category'
args: 'hr.payslip.line'
employee_id
Many2one → hr.employee
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Employee'
args: 'hr.employee'
input_line_ids
One2many → hr.payslip.input
readonly=True
states={'draft': [('readonly', False)]}
string='Payslip Inputs'
args: 'hr.payslip.input', 'payslip_id'
line_ids
One2many → hr.payslip.line
readonly=True
states={'draft': [('readonly', False)]}
string='Payslip Lines'
args: 'hr.payslip.line', 'slip_id'
name
Char
readonly=True
states={'draft': [('readonly', False)]}
string='Payslip Name'
note
Text
readonly=True
states={'draft': [('readonly', False)]}
string='Internal Note'
number
Char
copy=False
readonly=True
states={'draft': [('readonly', False)]}
string='Reference'
paid
Boolean
copy=False
readonly=True
states={'draft': [('readonly', False)]}
string='Made Payment Order ? '
payslip_count
Integer
compute='_compute_payslip_count'
string='Payslip Computation Details'
payslip_run_id
Many2one → hr.payslip.run
copy=False
readonly=True
states={'draft': [('readonly', False)]}
string='Payslip Batches'
args: 'hr.payslip.run'
state
Selection
copy=False
default='draft'
help="* When the payslip is created the status is 'Draft'\n \n* If the payslip is under verification, the status is 'Waiting'.\n \n* If the payslip is confirmed then status is set to 'Done'.\n \n* When user cancel payslip the status is 'Rejected'."
index=True
readonly=True
string='Status'
args: [('draft', 'Draft'), ('verify', 'Waiting'), ('done', 'Done'), ('cancel', 'Rejected')]
struct_id
Many2one → hr.payroll.structure
help="Defines the rules that have to be applied to this payslip, accordingly to the contract chosen. If you let empty the field contract, this field isn't mandatory anymore and thus the rules applied will be all the rules set on the structure of all contracts of the employee valid for the chosen period"
readonly=True
states={'draft': [('readonly', False)]}
string='Structure'
args: 'hr.payroll.structure'
worked_days_line_ids
One2many → hr.payslip.worked_days
copy=True
readonly=True
states={'draft': [('readonly', False)]}
string='Payslip Worked Days'
args: 'hr.payslip.worked_days', 'payslip_id'
action_payslip_cancel(self)
action_payslip_done(self)
action_payslip_draft(self)
check_done(self)
compute_sheet(self)
copy(self, default=None)
get_contract(self, employee, date_from, date_to)
get_inputs(self, contracts, date_from, date_to)
get_salary_line_total(self, code)
get_worked_day_lines(self, contracts, date_from, date_to)
onchange_contract(self)
onchange_employee(self)
onchange_employee_id(self, date_from, date_to, employee_id=False, contract_id=False)
refund_sheet(self)
unlink(self)
employee_ids
Many2many → hr.employee
compute_sheet(self)
amount
Float
help='It is used in computation. For e.g. A rule for sales having 1% commission of basic salary for per product can defined in expression like result = inputs.SALEURO.amount * contract.wage*0.01.'
code
Char
help='The code that can be used in the salary rules'
required=True
contract_id
Many2one → hr.contract
help='The contract for which applied this input'
required=True
string='Contract'
args: 'hr.contract'
name
Char
required=True
string='Description'
payslip_id
Many2one → hr.payslip
index=True
ondelete='cascade'
required=True
string='Pay Slip'
args: 'hr.payslip'
sequence
Integer
default=10
index=True
required=True
No public methods.
amount
Float
digits=dp.get_precision('Payroll')
contract_id
Many2one → hr.contract
index=True
required=True
string='Contract'
args: 'hr.contract'
employee_id
Many2one → hr.employee
required=True
string='Employee'
args: 'hr.employee'
quantity
Float
default=1.0
digits=dp.get_precision('Payroll')
rate
Float
default=100.0
digits=dp.get_precision('Payroll Rate')
string='Rate (%)'
salary_rule_id
Many2one → hr.salary.rule
required=True
string='Rule'
args: 'hr.salary.rule'
slip_id
Many2one → hr.payslip
ondelete='cascade'
required=True
string='Pay Slip'
args: 'hr.payslip'
total
Float
compute='_compute_total'
digits=dp.get_precision('Payroll')
store=True
string='Total'
create(self, vals_list)
credit_note
Boolean
help='If its checked, indicates that all payslips generated from here are refund payslips.'
readonly=True
states={'draft': [('readonly', False)]}
string='Credit Note'
date_end
Date
default=<expr>
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Date To'
date_start
Date
default=<expr>
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Date From'
name
Char
readonly=True
required=True
states={'draft': [('readonly', False)]}
slip_ids
One2many → hr.payslip
readonly=True
states={'draft': [('readonly', False)]}
string='Payslips'
args: 'hr.payslip', 'payslip_run_id'
state
Selection
copy=False
default='draft'
index=True
readonly=True
string='Status'
args: [('draft', 'Draft'), ('close', 'Close')]
close_payslip_run(self)
draft_payslip_run(self)
unlink(self)
code
Char
help='The code that can be used in the salary rules'
required=True
contract_id
Many2one → hr.contract
help='The contract for which applied this input'
required=True
string='Contract'
args: 'hr.contract'
name
Char
required=True
string='Description'
number_of_days
Float
string='Number of Days'
number_of_hours
Float
string='Number of Hours'
payslip_id
Many2one → hr.payslip
index=True
ondelete='cascade'
required=True
string='Pay Slip'
args: 'hr.payslip'
sequence
Integer
default=10
index=True
required=True
No public methods.
code
Char
help='The code that can be used in the salary rules'
required=True
input_id
Many2one → hr.salary.rule
required=True
string='Salary Rule Input'
args: 'hr.salary.rule'
name
Char
required=True
string='Description'
No public methods.
active
Boolean
default=True
help='If the active field is set to false, it will allow you to hide the salary rule without removing it.'
amount_fix
Float
digits=dp.get_precision('Payroll')
string='Fixed Amount'
amount_percentage
Float
digits=dp.get_precision('Payroll Rate')
help='For example, enter 50.0 to apply a percentage of 50%'
string='Percentage (%)'
amount_percentage_base
Char
help='result will be affected to a variable'
string='Percentage based on'
amount_python_compute
Text
default="\n # Available variables:\n #----------------------\n # payslip: object containing the payslips\n # employee: hr.employee object\n # contract: hr.contract object\n # rules: object containing the rules code (previously computed)\n # categories: object containing the computed salary rule categories (sum of amount of all rules belonging to that category).\n # worked_days: object containing the computed worked days.\n # inputs: object containing the computed inputs.\n\n # Note: returned value have to be set in the variable 'result'\n\n result = contract.wage * 0.10"
string='Python Code'
amount_select
Selection
default='fix'
help='The computation method for the rule amount.'
index=True
required=True
string='Amount Type'
args: [('percentage', 'Percentage (%)'), ('fix', 'Fixed Amount'), ('code', 'Python Code')]
appears_on_payslip
Boolean
default=True
help='Used to display the salary rule on payslip.'
string='Appears on Payslip'
category_id
Many2one → hr.salary.rule.category
required=True
string='Category'
args: 'hr.salary.rule.category'
child_ids
One2many → hr.salary.rule
copy=True
string='Child Salary Rule'
args: 'hr.salary.rule', 'parent_rule_id'
code
Char
help='The code of salary rules can be used as reference in computation of other rules. In that case, it is case sensitive.'
required=True
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
condition_python
Text
default="\n # Available variables:\n #----------------------\n # payslip: object containing the payslips\n # employee: hr.employee object\n # contract: hr.contract object\n # rules: object containing the rules code (previously computed)\n # categories: object containing the computed salary rule categories (sum of amount of all rules belonging to that category).\n # worked_days: object containing the computed worked days\n # inputs: object containing the computed inputs\n\n # Note: returned value have to be set in the variable 'result'\n\n result = rules.NET > categories.NET * 0.10"
help='Applied this rule for calculation if condition is true. You can specify condition like basic > 1000.'
required=True
string='Python Condition'
condition_range
Char
default='contract.wage'
help='This will be used to compute the % fields values; in general it is on basic, but you can also use categories code fields in lowercase as a variable names (hra, ma, lta, etc.) and the variable basic.'
string='Range Based on'
condition_range_max
Float
help='The maximum amount, applied for this rule.'
string='Maximum Range'
condition_range_min
Float
help='The minimum amount, applied for this rule.'
string='Minimum Range'
condition_select
Selection
default='none'
required=True
string='Condition Based on'
args: [('none', 'Always True'), ('range', 'Range'), ('python', 'Python Expression')]
input_ids
One2many → hr.rule.input
copy=True
string='Inputs'
args: 'hr.rule.input', 'input_id'
name
Char
required=True
translate=True
note
Text
string='Description'
parent_rule_id
Many2one → hr.salary.rule
index=True
string='Parent Salary Rule'
args: 'hr.salary.rule'
quantity
Char
default='1.0'
help='It is used in computation for percentage and fixed amount. For e.g. A rule for Meal Voucher having fixed amount of 1€ per worked day can have its quantity defined in expression like worked_days.WORK100.number_of_days.'
register_id
Many2one → hr.contribution.register
help='Eventual third party involved in the salary payment of the employees.'
string='Contribution Register'
args: 'hr.contribution.register'
sequence
Integer
default=5
help='Use to arrange calculation sequence'
index=True
required=True
No public methods.
children_ids
One2many → hr.salary.rule.category
string='Children'
args: 'hr.salary.rule.category', 'parent_id'
code
Char
required=True
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
name
Char
required=True
translate=True
note
Text
string='Description'
parent_id
Many2one → hr.salary.rule.category
help='Linking a salary category to its parent is used only for the reporting purpose.'
string='Parent'
args: 'hr.salary.rule.category'
No public methods.
date_from
Date
default=datetime.now().strftime('%Y-%m-01')
required=True
string='Date From'
date_to
Date
default=<expr>
required=True
string='Date To'
print_report(self)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (2)get_details_by_rule_category(self, payslip_lines)
get_lines_by_contribution_register(self, payslip_lines)
module_account_accountant
Boolean
string='Account'
module_l10n_be_hr_payroll
Boolean
string='Belgium Payroll'
module_l10n_fr_hr_payroll
Boolean
string='French Payroll'
module_l10n_in_hr_payroll
Boolean
string='Indian Payroll'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/11.0/hr_payroll |
| VERSION | |
| VERSION | 0.1.0 |
| CATEGORY | |
| CATEGORY | Human Resources |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Olivier Dony, Thibault Delavallée, Christophe Simonis, Nicolas Martinelli, Nicolas Lempereur, qdp-odoo, GitHub, Olivier Colson, Yannick Tivisse, qsm-odoo, Odoo Online, Laurent Smet, DVE, Adrien Dieudonne, RomainLibert |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/page/employees |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:53:42 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - hr_contract - hr - base_setup - base - web - bus - web_tour - resource - hr_holidays - calendar - decimal_precision |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
hr_contract_advantage_template_view_form |
hr.contract.advantage.template.form | hr.contract.advantage.template | form | New |
hr_contract_advantage_template_view_tree |
hr.contract.advantage.template.tree | hr.contract.advantage.template | tree | New |
hr_contract_form_inherit |
hr.contract.view.form.inherit | hr.contract | xpath | Inherits hr_contract.hr_contract_view_form |
hr_contribution_register_filter |
hr.contribution.register.search | hr.contribution.register | search | New |
hr_contribution_register_form |
hr.contribution.register.form | hr.contribution.register | form | New |
hr_contribution_register_tree |
hr.contribution.register.tree | hr.contribution.register | tree | New |
hr_contribution_register_view_kanban |
hr.contribution.register.kanban | hr.contribution.register | kanban | New |
hr_payroll_structure_view_kanban |
hr.payroll.structure.kanban | hr.payroll.structure | kanban | New |
hr_payslip_run_filter |
hr.payslip.run.search | hr.payslip.run | search | New |
hr_payslip_run_form |
hr.payslip.run.form | hr.payslip.run | form | New |
hr_payslip_run_tree |
hr.payslip.run.tree | hr.payslip.run | tree | New |
hr_payslip_run_view_kanban |
hr.payslip.run.kanban | hr.payslip.run | kanban | New |
hr_payslip_view_kanban |
hr.payslip.kanban | hr.payslip | kanban | New |
hr_salary_rule_category_form |
hr.salary.rule.category.form | hr.salary.rule.category | form | New |
hr_salary_rule_category_tree |
hr.salary.rule.category.tree | hr.salary.rule.category | tree | New |
hr_salary_rule_form |
hr.salary.rule.form | hr.salary.rule | form | New |
hr_salary_rule_list |
hr.salary.rule.list | hr.salary.rule | tree | New |
hr_salary_rule_tree |
hr.salary.rule.tree | hr.salary.rule | tree | New |
hr_salary_rule_view_kanban |
hr.salary.rule.kanban | hr.salary.rule | kanban | New |
payroll_hr_employee_view_form |
payroll.hr.employee.view.form | hr.employee | button | Inherits hr.view_employee_form |
report_contributionregister |
report_contributionregister | ir.ui.view | qweb | New |
report_payslip |
report_payslip | ir.ui.view | qweb | New |
report_payslipdetails |
report_payslipdetails | ir.ui.view | qweb | New |
res_config_settings_view_form |
res.config.settings.view.form.inherit.hr.payroll | res.config.settings | xpath | Inherits base.res_config_settings_view_form |
view_hr_employee_grade_form |
hr.payroll.structure.form | hr.payroll.structure | form | New |
view_hr_payroll_structure_filter |
hr.payroll.structure.select | hr.payroll.structure | search | New |
view_hr_payroll_structure_list_view |
hr.payroll.structure.tree | hr.payroll.structure | tree | New |
view_hr_payroll_structure_tree |
hr.payroll.structure.tree | hr.payroll.structure | tree | New |
view_hr_payslip_by_employees |
hr_payroll_payslip_employees | hr.payslip.employees | form | New |
view_hr_payslip_filter |
hr.payslip.select | hr.payslip | search | New |
view_hr_payslip_form |
hr.payslip.form | hr.payslip | form | New |
view_hr_payslip_line_filter |
hr.payslip.line.select | hr.payslip.line | search | New |
view_hr_payslip_line_form |
hr.payslip.line.form | hr.payslip.line | form | New |
view_hr_payslip_line_tree |
hr.payslip.line.tree | hr.payslip.line | tree | New |
view_hr_payslip_tree |
hr.payslip.tree | hr.payslip | tree | New |
view_hr_rule_filter |
hr.salary.rule.select | hr.salary.rule | search | New |
view_hr_salary_rule_category_filter |
hr.salary.rule.category.select | hr.salary.rule.category | search | New |
view_payslip_lines_contribution_register |
payslip.lines.contribution.register | payslip.lines.contribution.register | form | New |
resource_calendar_id
Many2one
help="Employee's working schedule."
required=True
schedule_pay
Selection
default='monthly'
help='Defines the frequency of the wage payment.'
index=True
string='Scheduled Pay'
args: [('monthly', 'Monthly'), ('quarterly', 'Quarterly'), ('semi-annually', 'Semi-annually'), ('annually', 'Annually'), ('weekly', 'Weekly'), ('bi-weekly', 'Bi-weekly'), ('bi-monthly', 'Bi-monthly')]
struct_id
Many2one → hr.payroll.structure
string='Salary Structure'
args: 'hr.payroll.structure'
get_all_structures(self)
get_attribute(self, code, attribute)
set_attribute_value(self, code, active)
code
Char
required=True
args: 'Code'
default_value
Float
lower_bound
Float
help='Lower bound authorized by the employer for this advantage'
args: 'Lower Bound'
name
Char
required=True
args: 'Name'
upper_bound
Float
help='Upper bound authorized by the employer for this advantage'
args: 'Upper Bound'
No public methods.
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
name
Char
required=True
note
Text
string='Description'
partner_id
Many2one → res.partner
string='Partner'
args: 'res.partner'
register_line_ids
One2many → hr.payslip.line
readonly=True
string='Register Line'
args: 'hr.payslip.line', 'register_id'
No public methods.
payslip_count
Integer
compute='_compute_payslip_count'
groups='hr_payroll.group_hr_payroll_user'
string='Payslips'
slip_ids
One2many → hr.payslip
readonly=True
string='Payslips'
args: 'hr.payslip', 'employee_id'
No public methods.
children_ids
One2many → hr.payroll.structure
copy=True
string='Children'
args: 'hr.payroll.structure', 'parent_id'
code
Char
required=True
string='Reference'
company_id
Many2one → res.company
copy=False
default=<expr>
required=True
string='Company'
args: 'res.company'
name
Char
required=True
note
Text
string='Description'
parent_id
Many2one → hr.payroll.structure
default=_get_parent
string='Parent'
args: 'hr.payroll.structure'
rule_ids
Many2many → hr.salary.rule
string='Salary Rules'
args: 'hr.salary.rule', 'hr_structure_salary_rule_rel', 'struct_id', 'rule_id'
copy(self, default=None)
get_all_rules(self)
company_id
Many2one → res.company
copy=False
default=<expr>
readonly=True
states={'draft': [('readonly', False)]}
string='Company'
args: 'res.company'
contract_id
Many2one → hr.contract
readonly=True
states={'draft': [('readonly', False)]}
string='Contract'
args: 'hr.contract'
credit_note
Boolean
help='Indicates this payslip has a refund of another'
readonly=True
states={'draft': [('readonly', False)]}
string='Credit Note'
date_from
Date
default=time.strftime('%Y-%m-01')
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Date From'
date_to
Date
default=<expr>
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Date To'
details_by_salary_rule_category
One2many → hr.payslip.line
compute='_compute_details_by_salary_rule_category'
string='Details by Salary Rule Category'
args: 'hr.payslip.line'
employee_id
Many2one → hr.employee
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Employee'
args: 'hr.employee'
input_line_ids
One2many → hr.payslip.input
readonly=True
states={'draft': [('readonly', False)]}
string='Payslip Inputs'
args: 'hr.payslip.input', 'payslip_id'
line_ids
One2many → hr.payslip.line
readonly=True
states={'draft': [('readonly', False)]}
string='Payslip Lines'
args: 'hr.payslip.line', 'slip_id'
name
Char
readonly=True
states={'draft': [('readonly', False)]}
string='Payslip Name'
note
Text
readonly=True
states={'draft': [('readonly', False)]}
string='Internal Note'
number
Char
copy=False
readonly=True
states={'draft': [('readonly', False)]}
string='Reference'
paid
Boolean
copy=False
readonly=True
states={'draft': [('readonly', False)]}
string='Made Payment Order ? '
payslip_count
Integer
compute='_compute_payslip_count'
string='Payslip Computation Details'
payslip_run_id
Many2one → hr.payslip.run
copy=False
readonly=True
states={'draft': [('readonly', False)]}
string='Payslip Batches'
args: 'hr.payslip.run'
state
Selection
copy=False
default='draft'
help="* When the payslip is created the status is 'Draft'\n \n* If the payslip is under verification, the status is 'Waiting'.\n \n* If the payslip is confirmed then status is set to 'Done'.\n \n* When user cancel payslip the status is 'Rejected'."
index=True
readonly=True
string='Status'
args: [('draft', 'Draft'), ('verify', 'Waiting'), ('done', 'Done'), ('cancel', 'Rejected')]
struct_id
Many2one → hr.payroll.structure
help="Defines the rules that have to be applied to this payslip, accordingly to the contract chosen. If you let empty the field contract, this field isn't mandatory anymore and thus the rules applied will be all the rules set on the structure of all contracts of the employee valid for the chosen period"
readonly=True
states={'draft': [('readonly', False)]}
string='Structure'
args: 'hr.payroll.structure'
worked_days_line_ids
One2many → hr.payslip.worked_days
copy=True
readonly=True
states={'draft': [('readonly', False)]}
string='Payslip Worked Days'
args: 'hr.payslip.worked_days', 'payslip_id'
action_payslip_cancel(self)
action_payslip_done(self)
action_payslip_draft(self)
check_done(self)
compute_sheet(self)
get_contract(self, employee, date_from, date_to)
get_inputs(self, contracts, date_from, date_to)
get_salary_line_total(self, code)
get_worked_day_lines(self, contracts, date_from, date_to)
onchange_contract(self)
onchange_employee(self)
onchange_employee_id(self, date_from, date_to, employee_id=False, contract_id=False)
refund_sheet(self)
unlink(self)
employee_ids
Many2many → hr.employee
compute_sheet(self)
amount
Float
help='It is used in computation. For e.g. A rule for sales having 1% commission of basic salary for per product can defined in expression like result = inputs.SALEURO.amount * contract.wage*0.01.'
code
Char
help='The code that can be used in the salary rules'
required=True
contract_id
Many2one → hr.contract
help='The contract for which applied this input'
required=True
string='Contract'
args: 'hr.contract'
name
Char
required=True
string='Description'
payslip_id
Many2one → hr.payslip
index=True
ondelete='cascade'
required=True
string='Pay Slip'
args: 'hr.payslip'
sequence
Integer
default=10
index=True
required=True
No public methods.
amount
Float
digits=dp.get_precision('Payroll')
contract_id
Many2one → hr.contract
index=True
required=True
string='Contract'
args: 'hr.contract'
employee_id
Many2one → hr.employee
required=True
string='Employee'
args: 'hr.employee'
quantity
Float
default=1.0
digits=dp.get_precision('Payroll')
rate
Float
default=100.0
digits=dp.get_precision('Payroll Rate')
string='Rate (%)'
salary_rule_id
Many2one → hr.salary.rule
required=True
string='Rule'
args: 'hr.salary.rule'
slip_id
Many2one → hr.payslip
ondelete='cascade'
required=True
string='Pay Slip'
args: 'hr.payslip'
total
Float
compute='_compute_total'
digits=dp.get_precision('Payroll')
store=True
string='Total'
create(self, values)
credit_note
Boolean
help='If its checked, indicates that all payslips generated from here are refund payslips.'
readonly=True
states={'draft': [('readonly', False)]}
string='Credit Note'
date_end
Date
default=<expr>
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Date To'
date_start
Date
default=time.strftime('%Y-%m-01')
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Date From'
name
Char
readonly=True
required=True
states={'draft': [('readonly', False)]}
slip_ids
One2many → hr.payslip
readonly=True
states={'draft': [('readonly', False)]}
string='Payslips'
args: 'hr.payslip', 'payslip_run_id'
state
Selection
copy=False
default='draft'
index=True
readonly=True
string='Status'
args: [('draft', 'Draft'), ('close', 'Close')]
close_payslip_run(self)
draft_payslip_run(self)
code
Char
help='The code that can be used in the salary rules'
required=True
contract_id
Many2one → hr.contract
help='The contract for which applied this input'
required=True
string='Contract'
args: 'hr.contract'
name
Char
required=True
string='Description'
number_of_days
Float
string='Number of Days'
number_of_hours
Float
string='Number of Hours'
payslip_id
Many2one → hr.payslip
index=True
ondelete='cascade'
required=True
string='Pay Slip'
args: 'hr.payslip'
sequence
Integer
default=10
index=True
required=True
No public methods.
code
Char
help='The code that can be used in the salary rules'
required=True
input_id
Many2one → hr.salary.rule
required=True
string='Salary Rule Input'
args: 'hr.salary.rule'
name
Char
required=True
string='Description'
No public methods.
active
Boolean
default=True
help='If the active field is set to false, it will allow you to hide the salary rule without removing it.'
amount_fix
Float
digits=dp.get_precision('Payroll')
string='Fixed Amount'
amount_percentage
Float
digits=dp.get_precision('Payroll Rate')
help='For example, enter 50.0 to apply a percentage of 50%'
string='Percentage (%)'
amount_percentage_base
Char
help='result will be affected to a variable'
string='Percentage based on'
amount_python_compute
Text
default="\n # Available variables:\n #----------------------\n # payslip: object containing the payslips\n # employee: hr.employee object\n # contract: hr.contract object\n # rules: object containing the rules code (previously computed)\n # categories: object containing the computed salary rule categories (sum of amount of all rules belonging to that category).\n # worked_days: object containing the computed worked days.\n # inputs: object containing the computed inputs.\n\n # Note: returned value have to be set in the variable 'result'\n\n result = contract.wage * 0.10"
string='Python Code'
amount_select
Selection
default='fix'
help='The computation method for the rule amount.'
index=True
required=True
string='Amount Type'
args: [('percentage', 'Percentage (%)'), ('fix', 'Fixed Amount'), ('code', 'Python Code')]
appears_on_payslip
Boolean
default=True
help='Used to display the salary rule on payslip.'
string='Appears on Payslip'
category_id
Many2one → hr.salary.rule.category
required=True
string='Category'
args: 'hr.salary.rule.category'
child_ids
One2many → hr.salary.rule
copy=True
string='Child Salary Rule'
args: 'hr.salary.rule', 'parent_rule_id'
code
Char
help='The code of salary rules can be used as reference in computation of other rules. In that case, it is case sensitive.'
required=True
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
condition_python
Text
default="\n # Available variables:\n #----------------------\n # payslip: object containing the payslips\n # employee: hr.employee object\n # contract: hr.contract object\n # rules: object containing the rules code (previously computed)\n # categories: object containing the computed salary rule categories (sum of amount of all rules belonging to that category).\n # worked_days: object containing the computed worked days\n # inputs: object containing the computed inputs\n\n # Note: returned value have to be set in the variable 'result'\n\n result = rules.NET > categories.NET * 0.10"
help='Applied this rule for calculation if condition is true. You can specify condition like basic > 1000.'
required=True
string='Python Condition'
condition_range
Char
default='contract.wage'
help='This will be used to compute the % fields values; in general it is on basic, but you can also use categories code fields in lowercase as a variable names (hra, ma, lta, etc.) and the variable basic.'
string='Range Based on'
condition_range_max
Float
help='The maximum amount, applied for this rule.'
string='Maximum Range'
condition_range_min
Float
help='The minimum amount, applied for this rule.'
string='Minimum Range'
condition_select
Selection
default='none'
required=True
string='Condition Based on'
args: [('none', 'Always True'), ('range', 'Range'), ('python', 'Python Expression')]
input_ids
One2many → hr.rule.input
copy=True
string='Inputs'
args: 'hr.rule.input', 'input_id'
name
Char
required=True
translate=True
note
Text
string='Description'
parent_rule_id
Many2one → hr.salary.rule
index=True
string='Parent Salary Rule'
args: 'hr.salary.rule'
quantity
Char
default='1.0'
help='It is used in computation for percentage and fixed amount. For e.g. A rule for Meal Voucher having fixed amount of 1€ per worked day can have its quantity defined in expression like worked_days.WORK100.number_of_days.'
register_id
Many2one → hr.contribution.register
help='Eventual third party involved in the salary payment of the employees.'
string='Contribution Register'
args: 'hr.contribution.register'
sequence
Integer
default=5
help='Use to arrange calculation sequence'
index=True
required=True
No public methods.
children_ids
One2many → hr.salary.rule.category
string='Children'
args: 'hr.salary.rule.category', 'parent_id'
code
Char
required=True
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
name
Char
required=True
translate=True
note
Text
string='Description'
parent_id
Many2one → hr.salary.rule.category
help='Linking a salary category to its parent is used only for the reporting purpose.'
string='Parent'
args: 'hr.salary.rule.category'
No public methods.
date_from
Date
default=datetime.now().strftime('%Y-%m-01')
required=True
string='Date From'
date_to
Date
default=<expr>
required=True
string='Date To'
print_report(self)
No new fields.
Public methods (1)get_report_values(self, docids, data=None)
No new fields.
Public methods (3)get_details_by_rule_category(self, payslip_lines)
get_lines_by_contribution_register(self, payslip_lines)
get_report_values(self, docids, data=None)
module_account_accountant
Boolean
string='Account Accountant'
module_l10n_be_hr_payroll
Boolean
string='Belgium Payroll'
module_l10n_fr_hr_payroll
Boolean
string='French Payroll'
module_l10n_in_hr_payroll
Boolean
string='Indian Payroll'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/10.0/hr_payroll |
| VERSION | |
| VERSION | 0.1.0 |
| CATEGORY | |
| CATEGORY | Human Resources |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Odoo Translation Bot, Christophe Matthieu, Martin Trigaux, Fabien Pinckaers, Olivier Dony, Thibault Delavallée, Denis Ledoux, Christophe Simonis, Goffin Simon, Simon Lejeune, Nicolas Martinelli, Julien Legros, qdp-odoo, Jeremy Kersten, Yannick Tivisse |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/page/employees |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:50:48 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - hr_contract - base_action_rule - base - resource - 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 |
Generic Payroll system.
=======================
* Employee Details
* Employee Contracts
* Passport based Contract
* Allowances/Deductions
* Allow to configure Basic/Gross/Net Salary
* Employee Payslip
* Monthly Payroll Register
* Integrated with Holiday Management
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
hr_contract_form_inherit |
hr.contract.view.form.inherit | hr.contract | xpath | Inherits hr_contract.hr_contract_view_form |
hr_contribution_register_filter |
hr.contribution.register.search | hr.contribution.register | search | New |
hr_contribution_register_form |
hr.contribution.register.form | hr.contribution.register | form | New |
hr_contribution_register_tree |
hr.contribution.register.tree | hr.contribution.register | tree | New |
hr_payslip_run_filter |
hr.payslip.run.search | hr.payslip.run | search | New |
hr_payslip_run_form |
hr.payslip.run.form | hr.payslip.run | form | New |
hr_payslip_run_tree |
hr.payslip.run.tree | hr.payslip.run | tree | New |
hr_salary_rule_category_form |
hr.salary.rule.category.form | hr.salary.rule.category | form | New |
hr_salary_rule_category_tree |
hr.salary.rule.category.tree | hr.salary.rule.category | tree | New |
hr_salary_rule_category_tree_view |
hr.salary.rule.category.tree.view | hr.salary.rule.category | tree | New |
hr_salary_rule_form |
hr.salary.rule.form | hr.salary.rule | form | New |
hr_salary_rule_list |
hr.salary.rule.list | hr.salary.rule | tree | New |
hr_salary_rule_tree |
hr.salary.rule.tree | hr.salary.rule | tree | New |
payroll_hr_employee_view_form |
payroll.hr.employee.view.form | hr.employee | div | Inherits hr.view_employee_form |
report_contributionregister |
report_contributionregister | ir.ui.view | qweb | New |
report_payslip |
report_payslip | ir.ui.view | qweb | New |
report_payslipdetails |
report_payslipdetails | ir.ui.view | qweb | New |
view_hr_employee_grade_form |
hr.payroll.structure.form | hr.payroll.structure | form | New |
view_hr_payroll_configuration |
Configure Payroll | hr.payroll.config.settings | form | New |
view_hr_payroll_structure_filter |
hr.payroll.structure.select | hr.payroll.structure | search | New |
view_hr_payroll_structure_list_view |
hr.payroll.structure.tree | hr.payroll.structure | tree | New |
view_hr_payroll_structure_tree |
hr.payroll.structure.tree | hr.payroll.structure | tree | New |
view_hr_payslip_by_employees |
hr_payroll_payslip_employees | hr.payslip.employees | form | New |
view_hr_payslip_filter |
hr.payslip.select | hr.payslip | search | New |
view_hr_payslip_form |
hr.payslip.form | hr.payslip | form | New |
view_hr_payslip_line_filter |
hr.payslip.line.select | hr.payslip.line | search | New |
view_hr_payslip_line_form |
hr.payslip.line.form | hr.payslip.line | form | New |
view_hr_payslip_line_tree |
hr.payslip.line.tree | hr.payslip.line | tree | New |
view_hr_payslip_tree |
hr.payslip.tree | hr.payslip | tree | New |
view_hr_rule_filter |
hr.salary.rule.select | hr.salary.rule | search | New |
view_hr_salary_rule_category_filter |
hr.salary.rule.category.select | hr.salary.rule.category | search | New |
view_payslip_lines_contribution_register |
payslip.lines.contribution.register | payslip.lines.contribution.register | form | New |
schedule_pay
Selection
default='monthly'
index=True
string='Scheduled Pay'
args: [('monthly', 'Monthly'), ('quarterly', 'Quarterly'), ('semi-annually', 'Semi-annually'), ('annually', 'Annually'), ('weekly', 'Weekly'), ('bi-weekly', 'Bi-weekly'), ('bi-monthly', 'Bi-monthly')]
struct_id
Many2one → hr.payroll.structure
string='Salary Structure'
args: 'hr.payroll.structure'
get_all_structures(self)
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
name
Char
required=True
note
Text
string='Description'
partner_id
Many2one → res.partner
string='Partner'
args: 'res.partner'
register_line_ids
One2many → hr.payslip.line
readonly=True
string='Register Line'
args: 'hr.payslip.line', 'register_id'
No public methods.
payslip_count
Integer
compute='_compute_payslip_count'
groups='hr_payroll.group_hr_payroll_user'
string='Payslips'
slip_ids
One2many → hr.payslip
readonly=True
string='Payslips'
args: 'hr.payslip', 'employee_id'
No public methods.
module_hr_payroll_account
Boolean
help='Create journal entries from payslips'
string='Link your payroll to accounting system'
No public methods.
children_ids
One2many → hr.payroll.structure
copy=True
string='Children'
args: 'hr.payroll.structure', 'parent_id'
code
Char
required=True
string='Reference'
company_id
Many2one → res.company
copy=False
default=<expr>
required=True
string='Company'
args: 'res.company'
name
Char
required=True
note
Text
string='Description'
parent_id
Many2one → hr.payroll.structure
default=_get_parent
string='Parent'
args: 'hr.payroll.structure'
rule_ids
Many2many → hr.salary.rule
string='Salary Rules'
args: 'hr.salary.rule', 'hr_structure_salary_rule_rel', 'struct_id', 'rule_id'
copy(self, default=None)
get_all_rules(self)
company_id
Many2one → res.company
copy=False
default=<expr>
readonly=True
states={'draft': [('readonly', False)]}
string='Company'
args: 'res.company'
contract_id
Many2one → hr.contract
readonly=True
states={'draft': [('readonly', False)]}
string='Contract'
args: 'hr.contract'
credit_note
Boolean
help='Indicates this payslip has a refund of another'
readonly=True
states={'draft': [('readonly', False)]}
string='Credit Note'
date_from
Date
default=time.strftime('%Y-%m-01')
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Date From'
date_to
Date
default=<expr>
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Date To'
details_by_salary_rule_category
One2many → hr.payslip.line
compute='_compute_details_by_salary_rule_category'
string='Details by Salary Rule Category'
args: 'hr.payslip.line'
employee_id
Many2one → hr.employee
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Employee'
args: 'hr.employee'
input_line_ids
One2many → hr.payslip.input
readonly=True
states={'draft': [('readonly', False)]}
string='Payslip Inputs'
args: 'hr.payslip.input', 'payslip_id'
line_ids
One2many → hr.payslip.line
readonly=True
states={'draft': [('readonly', False)]}
string='Payslip Lines'
args: 'hr.payslip.line', 'slip_id'
name
Char
readonly=True
states={'draft': [('readonly', False)]}
string='Payslip Name'
note
Text
readonly=True
states={'draft': [('readonly', False)]}
string='Internal Note'
number
Char
copy=False
readonly=True
states={'draft': [('readonly', False)]}
string='Reference'
paid
Boolean
copy=False
readonly=True
states={'draft': [('readonly', False)]}
string='Made Payment Order ? '
payslip_count
Integer
compute='_compute_payslip_count'
string='Payslip Computation Details'
payslip_run_id
Many2one → hr.payslip.run
copy=False
readonly=True
states={'draft': [('readonly', False)]}
string='Payslip Batches'
args: 'hr.payslip.run'
state
Selection
copy=False
default='draft'
help="* When the payslip is created the status is 'Draft'\n \n* If the payslip is under verification, the status is 'Waiting'.\n \n* If the payslip is confirmed then status is set to 'Done'.\n \n* When user cancel payslip the status is 'Rejected'."
index=True
readonly=True
string='Status'
args: [('draft', 'Draft'), ('verify', 'Waiting'), ('done', 'Done'), ('cancel', 'Rejected')]
struct_id
Many2one → hr.payroll.structure
help="Defines the rules that have to be applied to this payslip, accordingly to the contract chosen. If you let empty the field contract, this field isn't mandatory anymore and thus the rules applied will be all the rules set on the structure of all contracts of the employee valid for the chosen period"
readonly=True
states={'draft': [('readonly', False)]}
string='Structure'
args: 'hr.payroll.structure'
worked_days_line_ids
One2many → hr.payslip.worked_days
copy=True
readonly=True
states={'draft': [('readonly', False)]}
string='Payslip Worked Days'
args: 'hr.payslip.worked_days', 'payslip_id'
action_payslip_cancel(self)
action_payslip_done(self)
action_payslip_draft(self)
check_done(self)
compute_sheet(self)
get_contract(self, employee, date_from, date_to)
get_inputs(self, contract_ids, date_from, date_to)
get_payslip_lines(self, contract_ids, payslip_id)
get_worked_day_lines(self, contract_ids, date_from, date_to)
onchange_contract(self)
onchange_employee(self)
onchange_employee_id(self, date_from, date_to, employee_id=False, contract_id=False)
refund_sheet(self)
unlink(self)
employee_ids
Many2many → hr.employee
compute_sheet(self)
amount
Float
help='It is used in computation. For e.g. A rule for sales having 1% commission of basic salary for per product can defined in expression like result = inputs.SALEURO.amount * contract.wage*0.01.'
code
Char
help='The code that can be used in the salary rules'
required=True
contract_id
Many2one → hr.contract
help='The contract for which applied this input'
required=True
string='Contract'
args: 'hr.contract'
name
Char
required=True
string='Description'
payslip_id
Many2one → hr.payslip
index=True
ondelete='cascade'
required=True
string='Pay Slip'
args: 'hr.payslip'
sequence
Integer
default=10
index=True
required=True
No public methods.
amount
Float
digits=dp.get_precision('Payroll')
contract_id
Many2one → hr.contract
index=True
required=True
string='Contract'
args: 'hr.contract'
employee_id
Many2one → hr.employee
required=True
string='Employee'
args: 'hr.employee'
quantity
Float
default=1.0
digits=dp.get_precision('Payroll')
rate
Float
default=100.0
digits=dp.get_precision('Payroll Rate')
string='Rate (%)'
salary_rule_id
Many2one → hr.salary.rule
required=True
string='Rule'
args: 'hr.salary.rule'
slip_id
Many2one → hr.payslip
ondelete='cascade'
required=True
string='Pay Slip'
args: 'hr.payslip'
total
Float
compute='_compute_total'
digits=dp.get_precision('Payroll')
store=True
string='Total'
create(self, values)
credit_note
Boolean
help='If its checked, indicates that all payslips generated from here are refund payslips.'
readonly=True
states={'draft': [('readonly', False)]}
string='Credit Note'
date_end
Date
default=<expr>
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Date To'
date_start
Date
default=time.strftime('%Y-%m-01')
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Date From'
name
Char
readonly=True
required=True
states={'draft': [('readonly', False)]}
slip_ids
One2many → hr.payslip
readonly=True
states={'draft': [('readonly', False)]}
string='Payslips'
args: 'hr.payslip', 'payslip_run_id'
state
Selection
copy=False
default='draft'
index=True
readonly=True
string='Status'
args: [('draft', 'Draft'), ('close', 'Close')]
close_payslip_run(self)
draft_payslip_run(self)
code
Char
help='The code that can be used in the salary rules'
required=True
contract_id
Many2one → hr.contract
help='The contract for which applied this input'
required=True
string='Contract'
args: 'hr.contract'
name
Char
required=True
string='Description'
number_of_days
Float
string='Number of Days'
number_of_hours
Float
string='Number of Hours'
payslip_id
Many2one → hr.payslip
index=True
ondelete='cascade'
required=True
string='Pay Slip'
args: 'hr.payslip'
sequence
Integer
default=10
index=True
required=True
No public methods.
code
Char
help='The code that can be used in the salary rules'
required=True
input_id
Many2one → hr.salary.rule
required=True
string='Salary Rule Input'
args: 'hr.salary.rule'
name
Char
required=True
string='Description'
No public methods.
active
Boolean
default=True
help='If the active field is set to false, it will allow you to hide the salary rule without removing it.'
amount_fix
Float
digits=dp.get_precision('Payroll')
string='Fixed Amount'
amount_percentage
Float
digits=dp.get_precision('Payroll Rate')
help='For example, enter 50.0 to apply a percentage of 50%'
string='Percentage (%)'
amount_percentage_base
Char
help='result will be affected to a variable'
string='Percentage based on'
amount_python_compute
Text
default="\n # Available variables:\n #----------------------\n # payslip: object containing the payslips\n # employee: hr.employee object\n # contract: hr.contract object\n # rules: object containing the rules code (previously computed)\n # categories: object containing the computed salary rule categories (sum of amount of all rules belonging to that category).\n # worked_days: object containing the computed worked days.\n # inputs: object containing the computed inputs.\n\n # Note: returned value have to be set in the variable 'result'\n\n result = contract.wage * 0.10"
string='Python Code'
amount_select
Selection
default='fix'
help='The computation method for the rule amount.'
index=True
required=True
string='Amount Type'
args: [('percentage', 'Percentage (%)'), ('fix', 'Fixed Amount'), ('code', 'Python Code')]
appears_on_payslip
Boolean
default=True
help='Used to display the salary rule on payslip.'
string='Appears on Payslip'
category_id
Many2one → hr.salary.rule.category
required=True
string='Category'
args: 'hr.salary.rule.category'
child_ids
One2many → hr.salary.rule
copy=True
string='Child Salary Rule'
args: 'hr.salary.rule', 'parent_rule_id'
code
Char
help='The code of salary rules can be used as reference in computation of other rules. In that case, it is case sensitive.'
required=True
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
condition_python
Text
default="\n # Available variables:\n #----------------------\n # payslip: object containing the payslips\n # employee: hr.employee object\n # contract: hr.contract object\n # rules: object containing the rules code (previously computed)\n # categories: object containing the computed salary rule categories (sum of amount of all rules belonging to that category).\n # worked_days: object containing the computed worked days\n # inputs: object containing the computed inputs\n\n # Note: returned value have to be set in the variable 'result'\n\n result = rules.NET > categories.NET * 0.10"
help='Applied this rule for calculation if condition is true. You can specify condition like basic > 1000.'
required=True
string='Python Condition'
condition_range
Char
default='contract.wage'
help='This will be used to compute the % fields values; in general it is on basic, but you can also use categories code fields in lowercase as a variable names (hra, ma, lta, etc.) and the variable basic.'
string='Range Based on'
condition_range_max
Float
help='The maximum amount, applied for this rule.'
string='Maximum Range'
condition_range_min
Float
help='The minimum amount, applied for this rule.'
string='Minimum Range'
condition_select
Selection
default='none'
required=True
string='Condition Based on'
args: [('none', 'Always True'), ('range', 'Range'), ('python', 'Python Expression')]
input_ids
One2many → hr.rule.input
copy=True
string='Inputs'
args: 'hr.rule.input', 'input_id'
name
Char
required=True
note
Text
string='Description'
parent_rule_id
Many2one → hr.salary.rule
index=True
string='Parent Salary Rule'
args: 'hr.salary.rule'
quantity
Char
default='1.0'
help='It is used in computation for percentage and fixed amount. For e.g. A rule for Meal Voucher having fixed amount of 1€ per worked day can have its quantity defined in expression like worked_days.WORK100.number_of_days.'
register_id
Many2one → hr.contribution.register
help='Eventual third party involved in the salary payment of the employees.'
string='Contribution Register'
args: 'hr.contribution.register'
sequence
Integer
default=5
help='Use to arrange calculation sequence'
index=True
required=True
compute_rule(self, localdict)
satisfy_condition(self, localdict)
children_ids
One2many → hr.salary.rule.category
string='Children'
args: 'hr.salary.rule.category', 'parent_id'
code
Char
required=True
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
name
Char
required=True
note
Text
string='Description'
parent_id
Many2one → hr.salary.rule.category
help='Linking a salary category to its parent is used only for the reporting purpose.'
string='Parent'
args: 'hr.salary.rule.category'
No public methods.
date_from
Date
default=datetime.now().strftime('%Y-%m-01')
required=True
string='Date From'
date_to
Date
default=<expr>
required=True
string='Date To'
print_report(self)
No new fields.
Public methods (1)render_html(self, docids, data=None)
No new fields.
Public methods (3)get_details_by_rule_category(self, payslip_lines)
get_lines_by_contribution_register(self, payslip_lines)
render_html(self, docids, data=None)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/9.0/hr_payroll |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Human Resources |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Christophe Matthieu, Martin Trigaux, Fabien Pinckaers, Olivier Dony, Thibault Delavallée, Denis Ledoux, Christophe Simonis, Xavier Morel, Goffin Simon, Nicolas Martinelli, Jérome Maes, Richard Mathot, qdp-odoo, Géry Debongnie, Aaron Bohy, Yannick Tivisse, qsm-odoo, Denis Vermylen (dve) |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/page/employees |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:48:30 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - hr - base_setup - base - web_kanban - web - 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 |
Generic Payroll system.
=======================
* Employee Details
* Employee Contracts
* Passport based Contract
* Allowances/Deductions
* Allow to configure Basic/Gross/Net Salary
* Employee Payslip
* Monthly Payroll Register
* Integrated with Holiday Management
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
hr_contract_form_inherit |
hr.contract.view.form.inherit | hr.contract | data | Inherits hr_contract.hr_contract_view_form |
hr_contribution_register_filter |
hr.contribution.register.search | hr.contribution.register | search | New |
hr_contribution_register_form |
hr.contribution.register.form | hr.contribution.register | form | New |
hr_contribution_register_tree |
hr.contribution.register.tree | hr.contribution.register | tree | New |
hr_payslip_run_filter |
hr.payslip.run.search | hr.payslip.run | search | New |
hr_payslip_run_form |
hr.payslip.run.form | hr.payslip.run | form | New |
hr_payslip_run_tree |
hr.payslip.run.tree | hr.payslip.run | tree | New |
hr_salary_rule_category_form |
hr.salary.rule.category.form | hr.salary.rule.category | form | New |
hr_salary_rule_category_tree |
hr.salary.rule.category.tree | hr.salary.rule.category | tree | New |
hr_salary_rule_category_tree_view |
hr.salary.rule.category.tree.view | hr.salary.rule.category | tree | New |
hr_salary_rule_form |
hr.salary.rule.form | hr.salary.rule | form | New |
hr_salary_rule_list |
hr.salary.rule.list | hr.salary.rule | tree | New |
hr_salary_rule_tree |
hr.salary.rule.tree | hr.salary.rule | tree | New |
payroll_hr_employee_view_form |
payroll.hr.employee.view.form | hr.employee | data | Inherits hr.view_employee_form |
report_contributionregister |
report_contributionregister | ir.ui.view | qweb | New |
report_payslip |
report_payslip | ir.ui.view | qweb | New |
report_payslipdetails |
report_payslipdetails | ir.ui.view | qweb | New |
view_hr_employee_grade_form |
hr.payroll.structure.form | hr.payroll.structure | form | New |
view_hr_payroll_configuration |
Configure Payroll | hr.payroll.config.settings | form | New |
view_hr_payroll_structure_filter |
hr.payroll.structure.select | hr.payroll.structure | search | New |
view_hr_payroll_structure_list_view |
hr.payroll.structure.tree | hr.payroll.structure | tree | New |
view_hr_payroll_structure_tree |
hr.payroll.structure.tree | hr.payroll.structure | tree | New |
view_hr_payslip_by_employees |
hr_payroll_payslip_employees | hr.payslip.employees | form | New |
view_hr_payslip_filter |
hr.payslip.select | hr.payslip | search | New |
view_hr_payslip_form |
hr.payslip.form | hr.payslip | form | New |
view_hr_payslip_line_filter |
hr.payslip.line.select | hr.payslip.line | search | New |
view_hr_payslip_line_form |
hr.payslip.line.form | hr.payslip.line | form | New |
view_hr_payslip_line_tree |
hr.payslip.line.tree | hr.payslip.line | tree | New |
view_hr_payslip_tree |
hr.payslip.tree | hr.payslip | tree | New |
view_hr_rule_filter |
hr.salary.rule.select | hr.salary.rule | search | New |
view_hr_salary_rule_category_filter |
hr.salary.rule.category.select | hr.salary.rule.category | search | New |
view_payslip_lines_contribution_register |
payslip.lines.contribution.register | payslip.lines.contribution.register | form | New |
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/8.0/hr_payroll |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Human Resources |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | OpenERP SA |
| MAINTAINERS | |
| MAINTAINERS | OpenERP SA |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Stephane Wirtel, Odoo Translation Bot, Christophe Matthieu, Martin Trigaux, Ajay Chauhan (OpenERP), Foram Katharotiya (OpenERP), Fabien Pinckaers, Antony Lesuisse, Olivier Dony, Thibault Delavallée, Vo Minh Thu, Launchpad Translations on behalf of openerp, Quentin (OpenERP), Denis Ledoux, Fabien Meghazi, ggh-openerp, Christophe Simonis, Xavier Morel, Joren Van Onder, Simon Lejeune, Nicolas Martinelli, Amit Bhavsar (Open ERP), Richard Mathot, Géry Debongnie, Aaron Bohy, Richard Mathot (OpenERP), ged-odoo, Jeremy Kersten, Gery Debongnie, Randhir Mayatra rma-openerp, Yogesh Parekh (OpenERP), Rakesh Sindhav (OpenERP) |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/page/employees |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:45:39 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - hr - base_setup - base - web_kanban - web - 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 |
Generic Payroll system.
=======================
* Employee Details
* Employee Contracts
* Passport based Contract
* Allowances/Deductions
* Allow to configure Basic/Gross/Net Salary
* Employee Payslip
* Monthly Payroll Register
* Integrated with Holiday Management
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
hr_contract_form_inherit |
hr.contract.view.form.inherit | hr.contract | data | Inherits hr_contract.hr_contract_view_form |
hr_contribution_register_filter |
hr.contribution.register.search | hr.contribution.register | search | New |
hr_contribution_register_form |
hr.contribution.register.form | hr.contribution.register | form | New |
hr_contribution_register_tree |
hr.contribution.register.tree | hr.contribution.register | tree | New |
hr_payslip_run_filter |
hr.payslip.run.search | hr.payslip.run | search | New |
hr_payslip_run_form |
hr.payslip.run.form | hr.payslip.run | form | New |
hr_payslip_run_tree |
hr.payslip.run.tree | hr.payslip.run | tree | New |
hr_salary_rule_category_form |
hr.salary.rule.category.form | hr.salary.rule.category | form | New |
hr_salary_rule_category_tree |
hr.salary.rule.category.tree | hr.salary.rule.category | tree | New |
hr_salary_rule_category_tree_view |
hr.salary.rule.category.tree.view | hr.salary.rule.category | tree | New |
hr_salary_rule_form |
hr.salary.rule.form | hr.salary.rule | form | New |
hr_salary_rule_list |
hr.salary.rule.list | hr.salary.rule | tree | New |
hr_salary_rule_tree |
hr.salary.rule.tree | hr.salary.rule | tree | New |
payroll_hr_employee_view_form |
payroll.hr.employee.view.form | hr.employee | data | Inherits hr.view_employee_form |
report_contributionregister |
report_contributionregister | ir.ui.view | qweb | New |
report_payslip |
report_payslip | ir.ui.view | qweb | New |
report_payslipdetails |
report_payslipdetails | ir.ui.view | qweb | New |
view_hr_config_inherit |
hr settings for payroll | hr.config.settings | xpath | Inherits hr.view_human_resources_configuration |
view_hr_employee_grade_form |
hr.payroll.structure.form | hr.payroll.structure | form | New |
view_hr_payroll_structure_filter |
hr.payroll.structure.select | hr.payroll.structure | search | New |
view_hr_payroll_structure_list_view |
hr.payroll.structure.tree | hr.payroll.structure | tree | New |
view_hr_payroll_structure_tree |
hr.payroll.structure.tree | hr.payroll.structure | tree | New |
view_hr_payslip_by_employees |
hr_payroll_payslip_employees | hr.payslip.employees | form | New |
view_hr_payslip_filter |
hr.payslip.select | hr.payslip | search | New |
view_hr_payslip_form |
hr.payslip.form | hr.payslip | form | New |
view_hr_payslip_line_filter |
hr.payslip.line.select | hr.payslip.line | search | New |
view_hr_payslip_line_form |
hr.payslip.line.form | hr.payslip.line | form | New |
view_hr_payslip_line_tree |
hr.payslip.line.tree | hr.payslip.line | tree | New |
view_hr_payslip_tree |
hr.payslip.tree | hr.payslip | tree | New |
view_hr_rule_filter |
hr.salary.rule.select | hr.salary.rule | search | New |
view_hr_salary_rule_category_filter |
hr.salary.rule.category.select | hr.salary.rule.category | search | New |
view_payslip_lines_contribution_register |
payslip.lines.contribution.register | payslip.lines.contribution.register | form | New |
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/7.0/hr_payroll |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Human Resources |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | OpenERP SA |
| MAINTAINERS | |
| MAINTAINERS | OpenERP SA |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Jagdish Panchal (Open ERP), Twinkle Christian (OpenERP), Cecile Tonglet, Rucha (Open ERP), Atul Patel (OpenERP), Randhir Mayatra (OpenERP), Stephane Wirtel, Odoo Translation Bot, Turkesh Patel (Open ERP), Numerigraphe - Lionel Sausin, Christophe Matthieu, Pinakin Nayi (OpenERP), DBR (OpenERP), Antonin Bourguignon, Martin Trigaux, Ajay Chauhan (OpenERP), Purnendu Singh (OpenERP), Saurang Suthar (OpenERP), Fabien Pinckaers, Bharat Devnani (OpenERP), Meera Trambadia (OpenERP), Olivier Dony, Rajesh Prajapati (OpenERP), Twinkle (OpenERP), Tejas Tank, Vo Minh Thu, Hardik, pso (OpenERP), Sbh (Openerp), Amit Patel (OpenERP), Launchpad Translations on behalf of openerp, vta vta@openerp.com, Quentin (OpenERP), Kuldeep Joshi (OpenERP), Nimesh (Open ERP), ara@tinyerp.com, Mayur Maheshwari (OpenERP), Jigar Amin - OpenERP, Sanjay Gohel (Open ERP), Khushboo Bhatt (Open ERP), Amit Patel, Jigar Amin, Amit (OpenERP), Rifakat |
| WEBSITE | |
| WEBSITE | http://www.openerp.com |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:43:09 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - hr - base_setup - base - web_kanban - web - 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 |
Generic Payroll system.
=======================
* Employee Details
* Employee Contracts
* Passport based Contract
* Allowances/Deductions
* Allow to configure Basic/Gross/Net Salary
* Employee Payslip
* Monthly Payroll Register
* Integrated with Holiday Management
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
hr_contract_form_inherit |
hr.contract.view.form.inherit | hr.contract | data | Inherits hr_contract.hr_contract_view_form |
hr_contribution_register_filter |
hr.contribution.register.search | hr.contribution.register | search | New |
hr_contribution_register_form |
hr.contribution.register.form | hr.contribution.register | form | New |
hr_contribution_register_tree |
hr.contribution.register.tree | hr.contribution.register | tree | New |
hr_payslip_run_filter |
hr.payslip.run.search | hr.payslip.run | search | New |
hr_payslip_run_form |
hr.payslip.run.form | hr.payslip.run | form | New |
hr_payslip_run_tree |
hr.payslip.run.tree | hr.payslip.run | tree | New |
hr_salary_rule_category_form |
hr.salary.rule.category.form | hr.salary.rule.category | form | New |
hr_salary_rule_category_tree |
hr.salary.rule.category.tree | hr.salary.rule.category | tree | New |
hr_salary_rule_category_tree_view |
hr.salary.rule.category.tree.view | hr.salary.rule.category | tree | New |
hr_salary_rule_form |
hr.salary.rule.form | hr.salary.rule | form | New |
hr_salary_rule_list |
hr.salary.rule.list | hr.salary.rule | tree | New |
hr_salary_rule_tree |
hr.salary.rule.tree | hr.salary.rule | tree | New |
payroll_hr_employee_view_form |
payroll.hr.employee.view.form | hr.employee | data | Inherits hr.view_employee_form |
view_hr_config_inherit |
hr settings for payroll | hr.config.settings | xpath | Inherits hr.view_human_resources_configuration |
view_hr_employee_grade_form |
hr.payroll.structure.form | hr.payroll.structure | form | New |
view_hr_payroll_structure_filter |
hr.payroll.structure.select | hr.payroll.structure | search | New |
view_hr_payroll_structure_list_view |
hr.payroll.structure.tree | hr.payroll.structure | tree | New |
view_hr_payroll_structure_tree |
hr.payroll.structure.tree | hr.payroll.structure | tree | New |
view_hr_payslip_by_employees |
hr_payroll_payslip_employees | hr.payslip.employees | form | New |
view_hr_payslip_filter |
hr.payslip.select | hr.payslip | search | New |
view_hr_payslip_form |
hr.payslip.form | hr.payslip | form | New |
view_hr_payslip_line_filter |
hr.payslip.line.select | hr.payslip.line | search | New |
view_hr_payslip_line_form |
hr.payslip.line.form | hr.payslip.line | form | New |
view_hr_payslip_line_tree |
hr.payslip.line.tree | hr.payslip.line | tree | New |
view_hr_payslip_tree |
hr.payslip.tree | hr.payslip | tree | New |
view_hr_rule_filter |
hr.salary.rule.select | hr.salary.rule | search | New |
view_hr_salary_rule_category_filter |
hr.salary.rule.category.select | hr.salary.rule.category | search | New |
view_payslip_lines_contribution_register |
payslip.lines.contribution.register | payslip.lines.contribution.register | form | New |
No models found for this module.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/6.1/hr_payroll |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Human Resources |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | OpenERP SA |
| MAINTAINERS | |
| MAINTAINERS | OpenERP SA |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Rucha (Open ERP), Stephane Wirtel, Purnendu Singh (OpenERP), Fabien Pinckaers, Antony Lesuisse, Meera Trambadia (OpenERP), Olivier Dony, Divyesh Makwana (Open ERP), Vo Minh Thu, Launchpad Translations on behalf of openerp, Quentin (OpenERP), Mayur Maheshwari (OpenERP), vro, niv-openerp, Christophe Simonis, Ujjvala Collins (OpenERP), Xavier Morel, Ravish Murari (OpenERP), Serpent Consulting Services, Amit (OpenERP), Minh Tran, Mustufa Rangwala (OpenERP), Thibault Francois, Carlos Vásquez, Els Van Vossel, Israel Fermin Montilla, Hardik Ansodariy (OpenERP), rch-openerp, ARA (OpenERP), mtr, Mustufa Rangwala, psi (Open ERP), RavishchanraMurari (Open ERP), Osenda |
| WEBSITE | |
| WEBSITE | http://www.openerp.com |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:41:35 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - hr - base_setup - base - base_tools - resource - process - board - hr_contract - hr_holidays - crm - base_action_rule - base_calendar - fetchmail - decimal_precision |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
Generic Payroll system.
=======================
* Employee Details
* Employee Contracts
* Passport based Contract
* Allowances / Deductions
* Allow to configure Basic / Grows / Net Salary
* Employee Payslip
* Monthly Payroll Register
* Integrated with Holiday Management
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
hr_contract.hr_hr_employee_view_form2 |
hr.hr.employee.view.form2 | hr.employee | data | Inherits hr.view_employee_form |
hr_contract_form_inherit |
hr.contract.view.form.inherit | hr.contract | data | Inherits hr_contract.hr_contract_view_form |
hr_contribution_register_filter |
hr.contribution.register.search | hr.contribution.register | search | New |
hr_contribution_register_form |
hr.contribution.register.form | hr.contribution.register | form | New |
hr_contribution_register_tree |
hr.contribution.register.tree | hr.contribution.register | tree | New |
hr_payslip_run_filter |
hr.payslip.run.search | hr.payslip.run | search | New |
hr_payslip_run_form |
hr.payslip.run.form | hr.payslip.run | form | New |
hr_payslip_run_tree |
hr.payslip.run.tree | hr.payslip.run | tree | New |
hr_salary_rule_category_form |
hr.salary.rule.category.form | hr.salary.rule.category | form | New |
hr_salary_rule_category_tree |
hr.salary.rule.category.tree | hr.salary.rule.category | tree | New |
hr_salary_rule_category_tree_view |
hr.salary.rule.category.tree.view | hr.salary.rule.category | tree | New |
hr_salary_rule_form |
hr.salary.rule.form | hr.salary.rule | form | New |
hr_salary_rule_list |
hr.salary.rule.list | hr.salary.rule | tree | New |
hr_salary_rule_tree |
hr.salary.rule.tree | hr.salary.rule | tree | New |
view_hr_employee_grade_form |
hr.payroll.structure.form | hr.payroll.structure | form | New |
view_hr_payroll_structure_filter |
hr.payroll.structure.select | hr.payroll.structure | search | New |
view_hr_payroll_structure_list_view |
hr.payroll.structure.tree | hr.payroll.structure | tree | New |
view_hr_payroll_structure_tree |
hr.payroll.structure.tree | hr.payroll.structure | tree | New |
view_hr_payslip_by_employees |
hr_payroll_payslip_employees | hr.payslip.employees | form | New |
view_hr_payslip_filter |
hr.payslip.select | hr.payslip | search | New |
view_hr_payslip_form |
hr.payslip.form | hr.payslip | form | New |
view_hr_payslip_line_filter |
hr.payslip.line.select | hr.payslip.line | search | New |
view_hr_payslip_line_form |
hr.payslip.line.form | hr.payslip.line | form | New |
view_hr_payslip_line_tree |
hr.payslip.line.tree | hr.payslip.line | tree | New |
view_hr_payslip_tree |
hr.payslip.tree | hr.payslip | tree | New |
view_hr_rule_filter |
hr.salary.rule.select | hr.salary.rule | search | New |
view_hr_salary_rule_category_filter |
hr.salary.rule.category.select | hr.salary.rule.category | search | New |
view_payslip_lines_contribution_register |
payslip.lines.contribution.register | payslip.lines.contribution.register | form | New |
No models found for this module.