Repository
odoo/odoo · module folder
Module version
0.1.0
Category
Human Resources
Folder size
0.12 MB
License
LGPL-3
Application
No
Auto-installable
No
Website
None
Last tracking update
2026-08-07 05:07:20
Authors
Maintainers
None
Committers
Fabien Pinckaers, Raphael Collet, Christophe Simonis, Martin Trigaux, Nicolas Martinelli, qdp-odoo, Géry Debongnie, GitHub, Olivier Colson, Yannick Tivisse, qsm-odoo, Christophe Monniez, Jorge Pinna Puissant, Adrian Torres, Xavier-Do
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
None
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 form Inherits hr_contract.hr_contract_view_form
hr_department_view_kanban hr.department.kanban.inherit hr.department kanban Inherits hr.hr_department_view_kanban
hr_payslip_run_form_inherit hr.payslip.run.form.inherit hr.payslip.run form Inherits hr_payroll.hr_payslip_run_form
hr_payslip_run_search_inherit hr.payslip.run.search.inherit hr.payslip.run search 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 form 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
HTTP endpoints (0)

No HTTP endpoints found for this module.

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

Loading…

Loading…

Loading…

Loading…

Loading…