Indian Payroll

l10n_in_hr_payroll
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/12.0/l10n_in_hr_payroll
VERSION
VERSION 0.1.0
CATEGORY
CATEGORYHuman Resources
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Martin Trigaux, Fabien Pinckaers, Christophe Simonis, Nicolas Martinelli, qdp-odoo, Géry Debongnie, GitHub, Olivier Colson, Yannick Tivisse, qsm-odoo, Christophe Monniez, Jorge Pinna Puissant, Adrian Torres, Xavier-Do
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:57:02
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - hr_payroll
    - hr_contract
    - hr
    - base_setup
    - base
    - web
    - mail
    - bus
    - web_tour
    - resource
    - hr_holidays
    - calendar
    - decimal_precision
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Indian Payroll Salary Rules.
============================

    -Configuration of hr_payroll for India localization
    -All main contributions rules for India payslip.
    * New payslip report
    * Employee Contracts
    * Allow to configure Basic / Gross / Net Salary
    * Employee PaySlip
    * Allowance / Deduction
    * Integrated with Leaves Management
    * Medical Allowance, Travel Allowance, Child Allowance, ...
    - Payroll Advice and Report
    - Yearly Salary by Head and Yearly Salary by Employee Report
    

Code Analysis

Views touched (19)
XML IDNameModelTypeStatus
hr_contract_form_in_inherit hr.contract.form.in.inherit hr.contract data Inherits hr_contract.hr_contract_view_form
hr_department_view_kanban hr.department.kanban.inherit hr.department data Inherits hr.hr_department_view_kanban
hr_payslip_run_form_inherit hr.payslip.run.form.inherit hr.payslip.run data Inherits hr_payroll.hr_payslip_run_form
hr_payslip_run_search_inherit hr.payslip.run.search.inherit hr.payslip.run data Inherits hr_payroll.hr_payslip_run_filter
report_hrsalarybymonth report_hrsalarybymonth ir.ui.view qweb New
report_hryearlysalary report_hryearlysalary ir.ui.view qweb New
report_payrolladvice report_payrolladvice ir.ui.view qweb New
report_payslipdetails report_payslipdetails ir.ui.view qweb New
view_advice_line_form advice.line.form hr.payroll.advice.line form New
view_hr_bank_advice_form hr.payroll.advice.form hr.payroll.advice form New
view_hr_bank_advice_tree hr.payroll.advice.tree hr.payroll.advice tree New
view_hr_payroll_advice_filter hr.payroll.advice.select hr.payroll.advice search New
view_payment_advice_search payment.advice.report.search payment.advice.report search New
view_payment_advice_tree payment.advice.report.tree payment.advice.report tree New
view_payslip_search payslip.report.search payslip.report search New
view_payslip_tree payslip.report.tree payslip.report tree New
view_res_company_da res.company.form.l10n_in_hr_payroll.inherit res.company data Inherits base.view_company_form
view_salary_employee_month Hr monthly Employee Salary hr.salary.employee.month form New
view_yearly_salary_detail Employee Yearly Salary yearly.salary.detail form New
Models touched (14)

New fields (6)
  • driver_salay Boolean
    help='Check this box if you provide allowance for driver' string='Driver Salary'
  • house_rent_allowance_metro_nonmetro Float
    digits=dp.get_precision('Payroll') help='HRA is an allowance given by the employer to the employee for taking care of his rental or accommodation expenses for metro city it is 50% and for non metro 40%. \nHRA computed as percentage(%)' string='House Rent Allowance (%)'
  • medical_insurance Float
    digits=dp.get_precision('Payroll') help='Deduction towards company provided medical insurance' string='Medical Insurance'
  • supplementary_allowance Float
    digits=dp.get_precision('Payroll') string='Supplementary Allowance'
  • tds Float
    digits=dp.get_precision('Payroll') help='Amount for Tax Deduction at Source' string='TDS'
  • voluntary_provident_fund Float
    digits=dp.get_precision('Payroll') help='VPF is a safe option wherein you can contribute more than the PF ceiling of 12% that has been mandated by the government and VPF computed as percentage(%)' string='Voluntary Provident Fund (%)'
Public methods (0)

No public methods.

New fields (11)
  • bank_id Many2one → res.bank
    help='Select the Bank from which the salary is going to be paid' readonly=True states={'draft': [('readonly', False)]} string='Bank' args: 'res.bank'
  • batch_id Many2one → hr.payslip.run
    readonly=True string='Batch' args: 'hr.payslip.run'
  • chaque_nos Char
    string='Cheque Numbers'
  • company_id Many2one → res.company
    default=<expr> readonly=True required=True states={'draft': [('readonly', False)]} string='Company' args: 'res.company'
  • date Date
    default=_get_default_date help='Advice Date is used to search Payslips' readonly=True required=True states={'draft': [('readonly', False)]}
  • line_ids One2many → hr.payroll.advice.line
    copy=True readonly=True states={'draft': [('readonly', False)]} string='Employee Salary' args: 'hr.payroll.advice.line', 'advice_id'
  • name Char
    readonly=True required=True states={'draft': [('readonly', False)]}
  • neft Boolean
    help='Check this box if your company use online transfer for salary' string='NEFT Transaction'
  • note Text
    default='Please make the payroll transfer from above account number to the below mentioned account numbers towards employee salaries:' string='Description'
  • number Char
    readonly=True string='Reference'
  • state Selection
    default='draft' index=True readonly=True string='Status' args: [('draft', 'Draft'), ('confirm', 'Confirmed'), ('cancel', 'Cancelled')]
Public methods (4)
  • cancel_sheet(self)
    @api.multi
    Marks Advice as cancelled.
  • compute_advice(self)
    @api.multi
    Advice - Create Advice lines in Payment Advice and compute Advice lines.
  • confirm_sheet(self)
    @api.multi
    confirm Advice - confirmed Advice after computing Advice Lines..
  • set_to_draft(self)
    @api.multi
    Resets Advice as draft.

New fields (8)
  • advice_id Many2one → hr.payroll.advice
    string='Bank Advice' args: 'hr.payroll.advice'
  • bysal Float
    digits=dp.get_precision('Payroll') string='By Salary'
  • company_id Many2one → res.company
    readonly=False related='advice_id.company_id' store=True string='Company' args: 'res.company'
  • debit_credit Char
    default='C' string='C/D'
  • employee_id Many2one → hr.employee
    required=True string='Employee' args: 'hr.employee'
  • ifsc Boolean
    readonly=False related='advice_id.neft' string='IFSC'
  • ifsc_code Char
    string='IFSC Code'
  • name Char
    required=True args: 'Bank Account No.'
Public methods (1)
  • onchange_employee_id(self)
    @api.onchange('employee_id')

New fields (1)
  • advice_id Many2one → hr.payroll.advice
    copy=False string='Bank Advice' args: 'hr.payroll.advice'
Public methods (0)

No public methods.

New fields (1)
  • available_advice Boolean
    copy=False help='If this box is checked which means that Payment Advice exists for current batch' readonly=False string='Made Payment Advice?'
Public methods (2)
  • create_advice(self)
    @api.multi
  • draft_payslip_run(self)
    @api.multi

New fields (4)
  • category_id Many2one → hr.salary.rule.category
    default=_get_default_category required=True string='Category' args: 'hr.salary.rule.category'
  • employee_ids Many2many → hr.employee
    required=True string='Employees' args: 'hr.employee', 'payroll_year_rel', 'payroll_year_id', 'employee_id'
  • end_date Date
    default=_get_default_end_date required=True string='End Date'
  • start_date Date
    default=_get_default_start_date required=True string='Start Date'
Public methods (1)
  • print_report(self)
    @api.multi
    To get the date and print the report @return: return report

New fields (16)
  • bank_id Many2one → res.bank
    readonly=True string='Bank' args: 'res.bank'
  • bysal Float
    readonly=True string='By Salary'
  • cheque_nos Char
    readonly=True string='Cheque Numbers'
  • company_id Many2one → res.company
    readonly=True string='Company' args: 'res.company'
  • date Date
    readonly=True
  • day Char
    readonly=True
  • employee_bank_no Char
    required=True string='Employee Bank Account'
  • employee_id Many2one → hr.employee
    readonly=True string='Employee' args: 'hr.employee'
  • ifsc_code Char
    readonly=True string='IFSC Code'
  • month Selection
    readonly=True args: [('01', 'January'), ('02', 'February'), ('03', 'March'), ('04', 'April'), ('05', 'May'), ('06', 'June'), ('07', 'July'), ('08', 'August'), ('09', 'September'), ('10', 'October'), ('11', 'November'), ('12', 'December')]
  • name Char
    readonly=True
  • nbr Integer
    readonly=True string='# Payment Lines'
  • neft Boolean
    readonly=True string='NEFT Transaction'
  • number Char
    readonly=True
  • state Selection
    index=True readonly=True string='Status' args: [('draft', 'Draft'), ('confirm', 'Confirmed'), ('cancel', 'Cancelled')]
  • year Char
    readonly=True
Public methods (1)
  • init(self)
    @api.model_cr

New fields (15)
  • category_id Many2one → hr.salary.rule.category
    readonly=True string='Category' args: 'hr.salary.rule.category'
  • company_id Many2one → res.company
    readonly=True string='Company' args: 'res.company'
  • date_from Date
    readonly=True string='Date From'
  • date_to Date
    readonly=True string='Date To'
  • day Char
    readonly=True size=128
  • employee_id Many2one → hr.employee
    readonly=True string='Employee' args: 'hr.employee'
  • month Selection
    readonly=True args: [('01', 'January'), ('02', 'February'), ('03', 'March'), ('04', 'April'), ('05', 'May'), ('06', 'June'), ('07', 'July'), ('08', 'August'), ('09', 'September'), ('10', 'October'), ('11', 'November'), ('12', 'December')]
  • name Char
    readonly=True
  • nbr Integer
    readonly=True string='# Payslip lines'
  • number Char
    readonly=True
  • paid Boolean
    readonly=True string='Made Payment Order ? '
  • state Selection
    readonly=True string='Status' args: [('draft', 'Draft'), ('done', 'Done'), ('cancel', 'Rejected')]
  • struct_id Many2one → hr.payroll.structure
    readonly=True string='Structure' args: 'hr.payroll.structure'
  • total Float
    readonly=True
  • year Char
    readonly=True size=4
Public methods (1)
  • init(self)
    @api.model_cr

New fields (0)

No new fields.

Public methods (5)
  • get_employee(self, form, mnths, total_mnths)
  • get_months_tol(self)
  • get_periods(self, form)
  • get_salary(self, form, emp_id, emp_salary, total_mnths, mnths)
  • get_total(self, mnths_total)

New fields (0)

No new fields.

Public methods (8)
  • cal_monthly_amt(self, form, emp_id)
  • get_allow(self)
  • get_deduct(self)
  • get_employee(self, form)
  • get_employee_detail(self, form, obj)
  • get_periods(self, form)
  • get_total(self)
  • salary_list(self, salaries)

New fields (0)

No new fields.

Public methods (3)
  • get_bysal_total(self)
  • get_detail(self, line_ids)
  • get_month(self, input_date)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • dearness_allowance Boolean
    default=True help='Check this box if your company provide Dearness Allowance to employee' string='Dearness Allowance'
Public methods (0)

No public methods.

New fields (3)
  • date_from Date
    default=_get_default_date_from required=True string='Start Date'
  • date_to Date
    default=_get_default_date_to required=True string='End Date'
  • employee_ids Many2many → hr.employee
    required=True string='Employees' args: 'hr.employee', 'payroll_emp_rel', 'payroll_id', 'employee_id'
Public methods (1)
  • print_report(self)
    @api.multi
    To get the date and print the report @return: return report
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/11.0/l10n_in_hr_payroll
VERSION
VERSION 0.1.0
CATEGORY
CATEGORYLocalization
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Martin Trigaux, Olivier Dony, Christophe Simonis, Xavier Morel, Goffin Simon, Richard Mathot, qdp-odoo, GitHub, Yannick Tivisse, Laurent Smet, Adrien Dieudonne, Nans Lefebvre
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:53:44
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - hr_payroll
    - hr_contract
    - hr
    - base_setup
    - base
    - web
    - mail
    - bus
    - web_tour
    - resource
    - hr_holidays
    - calendar
    - decimal_precision
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Indian Payroll Salary Rules.
============================

    -Configuration of hr_payroll for India localization
    -All main contributions rules for India payslip.
    * New payslip report
    * Employee Contracts
    * Allow to configure Basic / Gross / Net Salary
    * Employee PaySlip
    * Allowance / Deduction
    * Integrated with Leaves Management
    * Medical Allowance, Travel Allowance, Child Allowance, ...
    - Payroll Advice and Report
    - Yearly Salary by Head and Yearly Salary by Employee Report
    

Code Analysis

Views touched (19)
XML IDNameModelTypeStatus
hr_contract_form_in_inherit hr.contract.form.in.inherit hr.contract data Inherits hr_contract.hr_contract_view_form
hr_department_view_kanban hr.department.kanban.inherit hr.department data Inherits hr.hr_department_view_kanban
hr_payslip_run_form_inherit hr.payslip.run.form.inherit hr.payslip.run data Inherits hr_payroll.hr_payslip_run_form
hr_payslip_run_search_inherit hr.payslip.run.search.inherit hr.payslip.run data Inherits hr_payroll.hr_payslip_run_filter
report_hrsalarybymonth report_hrsalarybymonth ir.ui.view qweb New
report_hryearlysalary report_hryearlysalary ir.ui.view qweb New
report_payrolladvice report_payrolladvice ir.ui.view qweb New
report_payslipdetails report_payslipdetails ir.ui.view qweb New
view_advice_line_form advice.line.form hr.payroll.advice.line form New
view_hr_bank_advice_form hr.payroll.advice.form hr.payroll.advice form New
view_hr_bank_advice_tree hr.payroll.advice.tree hr.payroll.advice tree New
view_hr_payroll_advice_filter hr.payroll.advice.select hr.payroll.advice search New
view_payment_advice_search payment.advice.report.search payment.advice.report search New
view_payment_advice_tree payment.advice.report.tree payment.advice.report tree New
view_payslip_search payslip.report.search payslip.report search New
view_payslip_tree payslip.report.tree payslip.report tree New
view_res_company_da res.company.form.l10n_in_hr_payroll.inherit res.company data Inherits base.view_company_form
view_salary_employee_month Hr monthly Employee Salary hr.salary.employee.month form New
view_yearly_salary_detail Employee Yearly Salary yearly.salary.detail form New
Models touched (14)

New fields (6)
  • driver_salay Boolean
    help='Check this box if you provide allowance for driver' string='Driver Salary'
  • house_rent_allowance_metro_nonmetro Float
    digits=dp.get_precision('Payroll') help='HRA is an allowance given by the employer to the employee for taking care of his rental or accommodation expenses for metro city it is 50% and for non metro 40%. \nHRA computed as percentage(%)' string='House Rent Allowance (%)'
  • medical_insurance Float
    digits=dp.get_precision('Payroll') help='Deduction towards company provided medical insurance' string='Medical Insurance'
  • supplementary_allowance Float
    digits=dp.get_precision('Payroll') string='Supplementary Allowance'
  • tds Float
    digits=dp.get_precision('Payroll') help='Amount for Tax Deduction at Source' string='TDS'
  • voluntary_provident_fund Float
    digits=dp.get_precision('Payroll') help='VPF is a safe option wherein you can contribute more than the PF ceiling of 12% that has been mandated by the government and VPF computed as percentage(%)' string='Voluntary Provident Fund (%)'
Public methods (0)

No public methods.

New fields (11)
  • bank_id Many2one → res.bank
    help='Select the Bank from which the salary is going to be paid' readonly=True states={'draft': [('readonly', False)]} string='Bank' args: 'res.bank'
  • batch_id Many2one → hr.payslip.run
    readonly=True string='Batch' args: 'hr.payslip.run'
  • chaque_nos Char
    string='Cheque Numbers'
  • company_id Many2one → res.company
    default=<expr> readonly=True required=True states={'draft': [('readonly', False)]} string='Company' args: 'res.company'
  • date Date
    default=_get_default_date help='Advice Date is used to search Payslips' readonly=True required=True states={'draft': [('readonly', False)]}
  • line_ids One2many → hr.payroll.advice.line
    copy=True readonly=True states={'draft': [('readonly', False)]} string='Employee Salary' args: 'hr.payroll.advice.line', 'advice_id'
  • name Char
    readonly=True required=True states={'draft': [('readonly', False)]}
  • neft Boolean
    help='Check this box if your company use online transfer for salary' string='NEFT Transaction'
  • note Text
    default='Please make the payroll transfer from above account number to the below mentioned account numbers towards employee salaries:' string='Description'
  • number Char
    readonly=True string='Reference'
  • state Selection
    default='draft' index=True readonly=True string='Status' args: [('draft', 'Draft'), ('confirm', 'Confirmed'), ('cancel', 'Cancelled')]
Public methods (4)
  • cancel_sheet(self)
    @api.multi
    Marks Advice as cancelled.
  • compute_advice(self)
    @api.multi
    Advice - Create Advice lines in Payment Advice and compute Advice lines.
  • confirm_sheet(self)
    @api.multi
    confirm Advice - confirmed Advice after computing Advice Lines..
  • set_to_draft(self)
    @api.multi
    Resets Advice as draft.

New fields (8)
  • advice_id Many2one → hr.payroll.advice
    string='Bank Advice' args: 'hr.payroll.advice'
  • bysal Float
    digits=dp.get_precision('Payroll') string='By Salary'
  • company_id Many2one → res.company
    related='advice_id.company_id' store=True string='Company' args: 'res.company'
  • debit_credit Char
    default='C' string='C/D'
  • employee_id Many2one → hr.employee
    required=True string='Employee' args: 'hr.employee'
  • ifsc Boolean
    related='advice_id.neft' string='IFSC'
  • ifsc_code Char
    string='IFSC Code'
  • name Char
    required=True args: 'Bank Account No.'
Public methods (1)
  • onchange_employee_id(self)
    @api.onchange('employee_id')

New fields (1)
  • advice_id Many2one → hr.payroll.advice
    copy=False string='Bank Advice' args: 'hr.payroll.advice'
Public methods (0)

No public methods.

New fields (1)
  • available_advice Boolean
    copy=False help='If this box is checked which means that Payment Advice exists for current batch' readonly=False string='Made Payment Advice?'
Public methods (2)
  • create_advice(self)
    @api.multi
  • draft_payslip_run(self)
    @api.multi

New fields (4)
  • category_id Many2one → hr.salary.rule.category
    default=_get_default_category required=True string='Category' args: 'hr.salary.rule.category'
  • employee_ids Many2many → hr.employee
    required=True string='Employees' args: 'hr.employee', 'payroll_year_rel', 'payroll_year_id', 'employee_id'
  • end_date Date
    default=_get_default_end_date required=True string='End Date'
  • start_date Date
    default=_get_default_start_date required=True string='Start Date'
Public methods (1)
  • print_report(self)
    @api.multi
    To get the date and print the report @return: return report

New fields (16)
  • bank_id Many2one → res.bank
    readonly=True string='Bank' args: 'res.bank'
  • bysal Float
    readonly=True string='By Salary'
  • cheque_nos Char
    readonly=True string='Cheque Numbers'
  • company_id Many2one → res.company
    readonly=True string='Company' args: 'res.company'
  • date Date
    readonly=True
  • day Char
    readonly=True
  • employee_bank_no Char
    required=True string='Employee Bank Account'
  • employee_id Many2one → hr.employee
    readonly=True string='Employee' args: 'hr.employee'
  • ifsc_code Char
    readonly=True string='IFSC Code'
  • month Selection
    readonly=True args: [('01', 'January'), ('02', 'February'), ('03', 'March'), ('04', 'April'), ('05', 'May'), ('06', 'June'), ('07', 'July'), ('08', 'August'), ('09', 'September'), ('10', 'October'), ('11', 'November'), ('12', 'December')]
  • name Char
    readonly=True
  • nbr Integer
    readonly=True string='# Payment Lines'
  • neft Boolean
    readonly=True string='NEFT Transaction'
  • number Char
    readonly=True
  • state Selection
    index=True readonly=True string='Status' args: [('draft', 'Draft'), ('confirm', 'Confirmed'), ('cancel', 'Cancelled')]
  • year Char
    readonly=True
Public methods (1)
  • init(self)
    @api.model_cr

New fields (15)
  • category_id Many2one → hr.salary.rule.category
    readonly=True string='Category' args: 'hr.salary.rule.category'
  • company_id Many2one → res.company
    readonly=True string='Company' args: 'res.company'
  • date_from Date
    readonly=True string='Date From'
  • date_to Date
    readonly=True string='Date To'
  • day Char
    readonly=True size=128
  • employee_id Many2one → hr.employee
    readonly=True string='Employee' args: 'hr.employee'
  • month Selection
    readonly=True args: [('01', 'January'), ('02', 'February'), ('03', 'March'), ('04', 'April'), ('05', 'May'), ('06', 'June'), ('07', 'July'), ('08', 'August'), ('09', 'September'), ('10', 'October'), ('11', 'November'), ('12', 'December')]
  • name Char
    readonly=True
  • nbr Integer
    readonly=True string='# Payslip lines'
  • number Char
    readonly=True
  • paid Boolean
    readonly=True string='Made Payment Order ? '
  • state Selection
    readonly=True string='Status' args: [('draft', 'Draft'), ('done', 'Done'), ('cancel', 'Rejected')]
  • struct_id Many2one → hr.payroll.structure
    readonly=True string='Structure' args: 'hr.payroll.structure'
  • total Float
    readonly=True
  • year Char
    readonly=True size=4
Public methods (1)
  • init(self)
    @api.model_cr

New fields (0)

No new fields.

Public methods (6)
  • get_employee(self, form, mnths, total_mnths)
  • get_months_tol(self)
  • get_periods(self, form)
  • get_report_values(self, docids, data=None)
    @api.model
  • get_salary(self, form, emp_id, emp_salary, total_mnths, mnths)
  • get_total(self, mnths_total)

New fields (0)

No new fields.

Public methods (9)
  • cal_monthly_amt(self, form, emp_id)
  • get_allow(self)
  • get_deduct(self)
  • get_employee(self, form)
  • get_employee_detail(self, form, obj)
  • get_periods(self, form)
  • get_report_values(self, docids, data=None)
    @api.model
  • get_total(self)
  • salary_list(self, salaries)

New fields (0)

No new fields.

Public methods (4)
  • get_bysal_total(self)
  • get_detail(self, line_ids)
  • get_month(self, input_date)
  • get_report_values(self, docids, data=None)
    @api.model

New fields (0)

No new fields.

Public methods (1)
  • get_report_values(self, docids, data=None)
    @api.model

New fields (1)
  • dearness_allowance Boolean
    default=True help='Check this box if your company provide Dearness Allowance to employee' string='Dearness Allowance'
Public methods (0)

No public methods.

New fields (3)
  • date_from Date
    default=_get_default_date_from required=True string='Start Date'
  • date_to Date
    default=_get_default_date_to required=True string='End Date'
  • employee_ids Many2many → hr.employee
    required=True string='Employees' args: 'hr.employee', 'payroll_emp_rel', 'payroll_id', 'employee_id'
Public methods (1)
  • print_report(self)
    @api.multi
    To get the date and print the report @return: return report
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/10.0/l10n_in_hr_payroll
VERSION
VERSION 0.1.0
CATEGORY
CATEGORYLocalization
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSChristophe Matthieu, Martin Trigaux, Fabien Pinckaers, Olivier Dony, Thibault Delavallée, Denis Ledoux, Christophe Simonis, Goffin Simon, Nicolas Martinelli, Julien Legros, Richard Mathot, qdp-odoo, Jeremy Kersten, Yannick Tivisse, Denis Vermylen (dve)
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:50:49
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
Indian Payroll Salary Rules.
============================

    -Configuration of hr_payroll for India localization
    -All main contributions rules for India payslip.
    * New payslip report
    * Employee Contracts
    * Allow to configure Basic / Gross / Net Salary
    * Employee PaySlip
    * Allowance / Deduction
    * Integrated with Holiday Management
    * Medical Allowance, Travel Allowance, Child Allowance, ...
    - Payroll Advice and Report
    - Yearly Salary by Head and Yearly Salary by Employee Report
    

Code Analysis

Views touched (19)
XML IDNameModelTypeStatus
hr_contract_form_in_inherit hr.contract.form.in.inherit hr.contract data Inherits hr_payroll.hr_contract_form_inherit
hr_department_view_kanban hr.department.kanban.inherit hr.department data Inherits hr.hr_department_view_kanban
hr_payslip_run_form_inherit hr.payslip.run.form.inherit hr.payslip.run data Inherits hr_payroll.hr_payslip_run_form
hr_payslip_run_search_inherit hr.payslip.run.search.inherit hr.payslip.run data Inherits hr_payroll.hr_payslip_run_filter
report_hrsalarybymonth report_hrsalarybymonth ir.ui.view qweb New
report_hryearlysalary report_hryearlysalary ir.ui.view qweb New
report_payrolladvice report_payrolladvice ir.ui.view qweb New
report_payslipdetails report_payslipdetails ir.ui.view qweb New
view_advice_line_form advice.line.form hr.payroll.advice.line form New
view_hr_bank_advice_form hr.payroll.advice.form hr.payroll.advice form New
view_hr_bank_advice_tree hr.payroll.advice.tree hr.payroll.advice tree New
view_hr_payroll_advice_filter hr.payroll.advice.select hr.payroll.advice search New
view_payment_advice_search payment.advice.report.search payment.advice.report search New
view_payment_advice_tree payment.advice.report.tree payment.advice.report tree New
view_payslip_search payslip.report.search payslip.report search New
view_payslip_tree payslip.report.tree payslip.report tree New
view_res_company_da res.company.form.l10n_in_hr_payroll.inherit res.company data Inherits base.view_company_form
view_salary_employee_month Hr monthly Employee Salary hr.salary.employee.month form New
view_yearly_salary_detail Employee Yearly Salary yearly.salary.detail form New
Models touched (14)

New fields (6)
  • driver_salay Boolean
    help='Check this box if you provide allowance for driver' string='Driver Salary'
  • house_rent_allowance_metro_nonmetro Float
    digits=dp.get_precision('Payroll') help='HRA is an allowance given by the employer to the employee for taking care of his rental or accommodation expenses for metro city it is 50% and for non metro 40%. \nHRA computed as percentage(%)' string='House Rent Allowance (%)'
  • medical_insurance Float
    digits=dp.get_precision('Payroll') help='Deduction towards company provided medical insurance' string='Medical Insurance'
  • supplementary_allowance Float
    digits=dp.get_precision('Payroll') string='Supplementary Allowance'
  • tds Float
    digits=dp.get_precision('Payroll') help='Amount for Tax Deduction at Source' string='TDS'
  • voluntary_provident_fund Float
    digits=dp.get_precision('Payroll') help='VPF is a safe option wherein you can contribute more than the PF ceiling of 12% that has been mandated by the government and VPF computed as percentage(%)' string='Voluntary Provident Fund (%)'
Public methods (0)

No public methods.

New fields (11)
  • bank_id Many2one → res.bank
    help='Select the Bank from which the salary is going to be paid' readonly=True states={'draft': [('readonly', False)]} string='Bank' args: 'res.bank'
  • batch_id Many2one → hr.payslip.run
    readonly=True string='Batch' args: 'hr.payslip.run'
  • chaque_nos Char
    string='Cheque Numbers'
  • company_id Many2one → res.company
    default=<expr> readonly=True required=True states={'draft': [('readonly', False)]} string='Company' args: 'res.company'
  • date Date
    default=_get_default_date help='Advice Date is used to search Payslips' readonly=True required=True states={'draft': [('readonly', False)]}
  • line_ids One2many → hr.payroll.advice.line
    copy=True readonly=True states={'draft': [('readonly', False)]} string='Employee Salary' args: 'hr.payroll.advice.line', 'advice_id'
  • name Char
    readonly=True required=True states={'draft': [('readonly', False)]}
  • neft Boolean
    help='Check this box if your company use online transfer for salary' string='NEFT Transaction'
  • note Text
    default='Please make the payroll transfer from above account number to the below mentioned account numbers towards employee salaries:' string='Description'
  • number Char
    readonly=True string='Reference'
  • state Selection
    default='draft' index=True readonly=True string='Status' args: [('draft', 'Draft'), ('confirm', 'Confirmed'), ('cancel', 'Cancelled')]
Public methods (4)
  • cancel_sheet(self)
    @api.multi
    Marks Advice as cancelled.
  • compute_advice(self)
    @api.multi
    Advice - Create Advice lines in Payment Advice and compute Advice lines.
  • confirm_sheet(self)
    @api.multi
    confirm Advice - confirmed Advice after computing Advice Lines..
  • set_to_draft(self)
    @api.multi
    Resets Advice as draft.

New fields (8)
  • advice_id Many2one → hr.payroll.advice
    string='Bank Advice' args: 'hr.payroll.advice'
  • bysal Float
    digits=dp.get_precision('Payroll') string='By Salary'
  • company_id Many2one → res.company
    related='advice_id.company_id' store=True string='Company' args: 'res.company'
  • debit_credit Char
    default='C' string='C/D'
  • employee_id Many2one → hr.employee
    required=True string='Employee' args: 'hr.employee'
  • ifsc Boolean
    related='advice_id.neft' string='IFSC'
  • ifsc_code Char
    string='IFSC Code'
  • name Char
    required=True args: 'Bank Account No.'
Public methods (1)
  • onchange_employee_id(self)
    @api.onchange('employee_id')

New fields (1)
  • advice_id Many2one → hr.payroll.advice
    copy=False string='Bank Advice' args: 'hr.payroll.advice'
Public methods (0)

No public methods.

New fields (1)
  • available_advice Boolean
    copy=False help='If this box is checked which means that Payment Advice exists for current batch' readonly=False string='Made Payment Advice?'
Public methods (2)
  • create_advice(self)
    @api.multi
  • draft_payslip_run(self)
    @api.multi

New fields (4)
  • category_id Many2one → hr.salary.rule.category
    default=_get_default_category required=True string='Category' args: 'hr.salary.rule.category'
  • employee_ids Many2many → hr.employee
    required=True string='Employees' args: 'hr.employee', 'payroll_year_rel', 'payroll_year_id', 'employee_id'
  • end_date Date
    default=_get_default_end_date required=True string='End Date'
  • start_date Date
    default=_get_default_start_date required=True string='Start Date'
Public methods (1)
  • print_report(self)
    @api.multi
    To get the date and print the report @return: return report

New fields (16)
  • bank_id Many2one → res.bank
    readonly=True string='Bank' args: 'res.bank'
  • bysal Float
    readonly=True string='By Salary'
  • cheque_nos Char
    readonly=True string='Cheque Numbers'
  • company_id Many2one → res.company
    readonly=True string='Company' args: 'res.company'
  • date Date
    readonly=True
  • day Char
    readonly=True
  • employee_bank_no Char
    required=True string='Employee Bank Account'
  • employee_id Many2one → hr.employee
    readonly=True string='Employee' args: 'hr.employee'
  • ifsc_code Char
    readonly=True string='IFSC Code'
  • month Selection
    readonly=True args: [('01', 'January'), ('02', 'February'), ('03', 'March'), ('04', 'April'), ('05', 'May'), ('06', 'June'), ('07', 'July'), ('08', 'August'), ('09', 'September'), ('10', 'October'), ('11', 'November'), ('12', 'December')]
  • name Char
    readonly=True
  • nbr Integer
    readonly=True string='# Payment Lines'
  • neft Boolean
    readonly=True string='NEFT Transaction'
  • number Char
    readonly=True
  • state Selection
    index=True readonly=True string='Status' args: [('draft', 'Draft'), ('confirm', 'Confirmed'), ('cancel', 'Cancelled')]
  • year Char
    readonly=True
Public methods (1)
  • init(self)
    @api.model_cr

New fields (15)
  • category_id Many2one → hr.salary.rule.category
    readonly=True string='Category' args: 'hr.salary.rule.category'
  • company_id Many2one → res.company
    readonly=True string='Company' args: 'res.company'
  • date_from Date
    readonly=True string='Date From'
  • date_to Date
    readonly=True string='Date To'
  • day Char
    readonly=True size=128
  • employee_id Many2one → hr.employee
    readonly=True string='Employee' args: 'hr.employee'
  • month Selection
    readonly=True args: [('01', 'January'), ('02', 'February'), ('03', 'March'), ('04', 'April'), ('05', 'May'), ('06', 'June'), ('07', 'July'), ('08', 'August'), ('09', 'September'), ('10', 'October'), ('11', 'November'), ('12', 'December')]
  • name Char
    readonly=True
  • nbr Integer
    readonly=True string='# Payslip lines'
  • number Char
    readonly=True
  • paid Boolean
    readonly=True string='Made Payment Order ? '
  • state Selection
    readonly=True string='Status' args: [('draft', 'Draft'), ('done', 'Done'), ('cancel', 'Rejected')]
  • struct_id Many2one → hr.payroll.structure
    readonly=True string='Structure' args: 'hr.payroll.structure'
  • total Float
    readonly=True
  • year Char
    readonly=True size=4
Public methods (1)
  • init(self)
    @api.model_cr

New fields (0)

No new fields.

Public methods (6)
  • get_employee(self, form, mnths, total_mnths)
  • get_months_tol(self)
  • get_periods(self, form)
  • get_salary(self, form, emp_id, emp_salary, total_mnths, mnths)
  • get_total(self, mnths_total)
  • render_html(self, docids, data=None)
    @api.model

New fields (0)

No new fields.

Public methods (9)
  • cal_monthly_amt(self, form, emp_id)
  • get_allow(self)
  • get_deduct(self)
  • get_employee(self, form)
  • get_employee_detail(self, form, obj)
  • get_periods(self, form)
  • get_total(self)
  • render_html(self, docids, data=None)
    @api.model
  • salary_list(self, salaries)

New fields (0)

No new fields.

Public methods (5)
  • convert(self, amount, cur)
  • get_bysal_total(self)
  • get_detail(self, line_ids)
  • get_month(self, input_date)
  • render_html(self, docids, data=None)
    @api.model

New fields (0)

No new fields.

Public methods (1)
  • render_html(self, docids, data=None)
    @api.model

New fields (1)
  • dearness_allowance Boolean
    default=True help='Check this box if your company provide Dearness Allowance to employee' string='Dearness Allowance'
Public methods (0)

No public methods.

New fields (3)
  • date_from Date
    default=_get_default_date_from required=True string='Start Date'
  • date_to Date
    default=_get_default_date_to required=True string='End Date'
  • employee_ids Many2many → hr.employee
    required=True string='Employees' args: 'hr.employee', 'payroll_emp_rel', 'payroll_id', 'employee_id'
Public methods (1)
  • print_report(self)
    @api.multi
    To get the date and print the report @return: return report
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/9.0/l10n_in_hr_payroll
VERSION
VERSION 1.0
CATEGORY
CATEGORYLocalization
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Christophe Matthieu, Martin Trigaux, Olivier Dony, Thibault Delavallée, Christophe Simonis, Nicolas Martinelli, Richard Mathot, qdp-odoo, Aaron Bohy, Yannick Tivisse, Martin Geubelle
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:48:31
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
Indian Payroll Salary Rules.
============================

    -Configuration of hr_payroll for India localization
    -All main contributions rules for India payslip.
    * New payslip report
    * Employee Contracts
    * Allow to configure Basic / Gross / Net Salary
    * Employee PaySlip
    * Allowance / Deduction
    * Integrated with Holiday Management
    * Medical Allowance, Travel Allowance, Child Allowance, ...
    - Payroll Advice and Report
    - Yearly Salary by Head and Yearly Salary by Employee Report
    

Code Analysis

Views touched (19)
XML IDNameModelTypeStatus
hr_contract_form_in_inherit hr.contract.form.in.inherit hr.contract data Inherits hr_payroll.hr_contract_form_inherit
hr_department_view_kanban hr.department.kanban.inherit hr.department data Inherits hr.hr_department_view_kanban
hr_payslip_run_form_inherit hr.payslip.run.form.inherit hr.payslip.run data Inherits hr_payroll.hr_payslip_run_form
hr_payslip_run_search_inherit hr.payslip.run.search.inherit hr.payslip.run data Inherits hr_payroll.hr_payslip_run_filter
report_hrsalarybymonth report_hrsalarybymonth ir.ui.view qweb New
report_hryearlysalary report_hryearlysalary ir.ui.view qweb New
report_payrolladvice report_payrolladvice ir.ui.view qweb New
report_payslipdetails report_payslipdetails ir.ui.view qweb New
view_advice_line_form advice.line.form hr.payroll.advice.line form New
view_hr_bank_advice_form hr.payroll.advice.form hr.payroll.advice form New
view_hr_bank_advice_tree hr.payroll.advice.tree hr.payroll.advice tree New
view_hr_payroll_advice_filter hr.payroll.advice.select hr.payroll.advice search New
view_payment_advice_search payment.advice.report.search payment.advice.report search New
view_payment_advice_tree payment.advice.report.tree payment.advice.report tree New
view_payslip_search payslip.report.search payslip.report search New
view_payslip_tree payslip.report.tree payslip.report tree New
view_res_company_da res.company.inherit res.company data Inherits base.view_company_form
view_salary_employee_month Hr monthly Employee Salary hr.salary.employee.month form New
view_yearly_salary_detail Employee Yearly Salary yearly.salary.detail form New
Models touched (2)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/8.0/l10n_in_hr_payroll
VERSION
VERSION 1.0
CATEGORY
CATEGORYLocalization
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOpenERP SA
MAINTAINERS
MAINTAINERSOpenERP SA
COMMITTERS
COMMITTERSRaphael Collet, Atul Patel (OpenERP), Odoo Translation Bot, Martin Trigaux, Ajay Chauhan (OpenERP), Antony Lesuisse, Olivier Dony, Thibault Delavallée, Vo Minh Thu, Launchpad Translations on behalf of openerp, Quentin (OpenERP), Fabien Meghazi, ggh-openerp, Christophe Simonis, Simon Lejeune, Amit Bhavsar (Open ERP), Richard Mathot, Géry Debongnie, ged-odoo, Rakesh Sindhav (OpenERP), Sunil Sharma
WEBSITE
WEBSITEhttp://www.openerp.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:45:40
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
Indian Payroll Salary Rules.
============================

    -Configuration of hr_payroll for India localization
    -All main contributions rules for India payslip.
    * New payslip report
    * Employee Contracts
    * Allow to configure Basic / Gross / Net Salary
    * Employee PaySlip
    * Allowance / Deduction
    * Integrated with Holiday Management
    * Medical Allowance, Travel Allowance, Child Allowance, ...
    - Payroll Advice and Report
    - Yearly Salary by Head and Yearly Salary by Employee Report
    

Code Analysis

Views touched (18)
XML IDNameModelTypeStatus
hr_contract_form_in_inherit hr.contract.form.in.inherit hr.contract data Inherits hr_payroll.hr_contract_form_inherit
hr_payslip_run_form_inherit hr.payslip.run.form.inherit hr.payslip.run data Inherits hr_payroll.hr_payslip_run_form
hr_payslip_run_search_inherit hr.payslip.run.search.inherit hr.payslip.run data Inherits hr_payroll.hr_payslip_run_filter
report_hrsalarybymonth report_hrsalarybymonth ir.ui.view qweb New
report_hryearlysalary report_hryearlysalary ir.ui.view qweb New
report_payrolladvice report_payrolladvice ir.ui.view qweb New
report_payslipdetails report_payslipdetails ir.ui.view qweb New
view_advice_line_form advice.line.form hr.payroll.advice.line form New
view_hr_bank_advice_form hr.payroll.advice.form hr.payroll.advice form New
view_hr_bank_advice_tree hr.payroll.advice.tree hr.payroll.advice tree New
view_hr_payroll_advice_filter hr.payroll.advice.select hr.payroll.advice search New
view_payment_advice_search payment.advice.report.search payment.advice.report search New
view_payment_advice_tree payment.advice.report.tree payment.advice.report tree New
view_payslip_search payslip.report.search payslip.report search New
view_payslip_tree payslip.report.tree payslip.report tree New
view_res_company_da res.company.inherit res.company data Inherits base.view_company_form
view_salary_employee_month Hr monthly Employee Salary hr.salary.employee.month form New
view_yearly_salary_detail Employee Yearly Salary yearly.salary.detail form New
Models touched (2)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/7.0/l10n_in_hr_payroll
VERSION
VERSION 1.0
CATEGORY
CATEGORYLocalization
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOpenERP SA
MAINTAINERS
MAINTAINERSOpenERP SA
COMMITTERS
COMMITTERSJagdish Panchal (Open ERP), Twinkle Christian (OpenERP), Cecile Tonglet, Atul Patel (OpenERP), Odoo Translation Bot, Christophe Matthieu, pankita shah (Open ERP), Martin Trigaux, Fabien Pinckaers, Meera Trambadia (OpenERP), Olivier Dony, Vo Minh Thu, Launchpad Translations on behalf of openerp, Quentin (OpenERP), Nimesh (Open ERP), Mayur Maheshwari (OpenERP), Christophe Simonis, Khushboo Bhatt (Open ERP), Ankita Patel (OpenERP), Digvijay Singh, Mustufa Rangwala (OpenERP), Nicolas Bessi
WEBSITE
WEBSITEhttp://www.openerp.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:43:11
ODOO DEPENDENCIES
ODOO DEPENDENCIES 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
Indian Payroll Salary Rules.
============================

    -Configuration of hr_payroll for India localization
    -All main contributions rules for India payslip.
    * New payslip report
    * Employee Contracts
    * Allow to configure Basic / Gross / Net Salary
    * Employee PaySlip
    * Allowance / Deduction
    * Integrated with Holiday Management
    * Medical Allowance, Travel Allowance, Child Allowance, ...
    - Payroll Advice and Report
    - Yearly Salary by Head and Yearly Salary by Employee Report
    

Code Analysis

Views touched (14)
XML IDNameModelTypeStatus
hr_contract_form_in_inherit hr.contract.form.in.inherit hr.contract data Inherits hr_payroll.hr_contract_form_inherit
hr_payslip_run_form_inherit hr.payslip.run.form.inherit hr.payslip.run data Inherits hr_payroll.hr_payslip_run_form
hr_payslip_run_search_inherit hr.payslip.run.search.inherit hr.payslip.run data Inherits hr_payroll.hr_payslip_run_filter
view_advice_line_form advice.line.form hr.payroll.advice.line form New
view_hr_bank_advice_form hr.payroll.advice.form hr.payroll.advice form New
view_hr_bank_advice_tree hr.payroll.advice.tree hr.payroll.advice tree New
view_hr_payroll_advice_filter hr.payroll.advice.select hr.payroll.advice search New
view_payment_advice_search payment.advice.report.search payment.advice.report search New
view_payment_advice_tree payment.advice.report.tree payment.advice.report tree New
view_payslip_search payslip.report.search payslip.report search New
view_payslip_tree payslip.report.tree payslip.report tree New
view_res_company_da res.company.inherit res.company data Inherits base.view_company_form
view_salary_employee_month Hr monthly Employee Salary hr.salary.employee.month form New
view_yearly_salary_detail Employee Yearly Salary yearly.salary.detail form New
Models touched (0)

No models found for this module.