diff --git a/addons/hr_payroll/hr_payroll_demo.xml b/addons/hr_payroll/hr_payroll_demo.xml index 36ac3e23a7b..33b345591eb 100644 --- a/addons/hr_payroll/hr_payroll_demo.xml +++ b/addons/hr_payroll/hr_payroll_demo.xml @@ -31,6 +31,12 @@ House Rent Allowance + Rent receipts can be shown for taking tax benefit for living in a rented house.Income tax exemption for HRA will be least of following: + 1. The actual amount of HRA received as a part of salary. + 2. 40% (if living in non-metro area) or 50% (if living in metro area) of (basic salary+Dearness allowance (DA)). + 3. Rent paid minus 10% of (basic salary+DA). + Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1upoomH73 + @@ -50,6 +56,8 @@ Professional Tax + Professional tax deducted from salary by employer should be removed from taxable salary before computation of income tax. + Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uugbJcaM diff --git a/addons/l10n_in_hr_payroll/__init__.py b/addons/l10n_in_hr_payroll/__init__.py new file mode 100644 index 00000000000..dd0fa2330b7 --- /dev/null +++ b/addons/l10n_in_hr_payroll/__init__.py @@ -0,0 +1,26 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2010 Tiny SPRL (). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +import hr_payroll +import l10n_in_hr_payroll +import report + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: \ No newline at end of file diff --git a/addons/l10n_in_hr_payroll/__openerp__.py b/addons/l10n_in_hr_payroll/__openerp__.py new file mode 100644 index 00000000000..27528fbddcf --- /dev/null +++ b/addons/l10n_in_hr_payroll/__openerp__.py @@ -0,0 +1,55 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2010 Tiny SPRL (). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## +{ + 'name': 'India payroll', + 'category': 'Localization', + 'init_xml': [], + 'author': 'OpenERP SA', + 'website':'http://www.openerp.com', + 'depends': ['hr_payroll'], + 'version': '1.0', + 'description': """ +Indian Payroll Rules. +======================= + + * 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 + * Medical Allowance, Travel Allowance, Child Allowance, ... + """, + + 'active': False, + 'update_xml': [ + 'l10n_in_hr_payroll_view.xml', + 'l10n_in_hr_payroll_data.xml', + 'data/hr.salary.rule.csv', + 'l10n_in_hr_payroll_report.xml', + ], + 'demo_xml': ['l10n_in_hr_payroll_demo.xml'], + 'installable': True +} + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: \ No newline at end of file diff --git a/addons/l10n_in_hr_payroll/data/hr.salary.rule.csv b/addons/l10n_in_hr_payroll/data/hr.salary.rule.csv new file mode 100644 index 00000000000..2b6b4fbd847 --- /dev/null +++ b/addons/l10n_in_hr_payroll/data/hr.salary.rule.csv @@ -0,0 +1,10 @@ +"id","amount_select","condition_range_min","condition_range_max","amount_percentage","amount_fix","name","category_id","sequence","code","parent_rule_id/id","condition_select","condition_range","amount_percentage_base" +1,"fix",1,1,,1200,"Education Allowance","Child Education Allowance",23,"CHEAONE","hr_payroll_rule_child1","range","employee.children", +2,"fix",2,10,,2400,"Education Allowance","Child Education Allowance",24,"CHEATWO","hr_payroll_rule_child1","range","employee.children", +,,,,,,,,,,,,, +,,,,,,,,,,,,, +5,"fix",0,2999,,0,"Professional Tax for Gujarat","Deduction",121,"PT0","hr_payslip_line_professionaltax_guj","range","categories.GROSS", +6,"fix",3000,5999,,-20,"Professional Tax for Gujarat","Deduction",121,"PT20","hr_payslip_line_professionaltax_guj","range","categories.GROSS", +7,"fix",6000,8999,,-80,"Professional Tax for Gujarat","Deduction",121,"PT80","hr_payslip_line_professionaltax_guj","range","categories.GROSS", +8,"fix",9000,11999,,-150,"Professional Tax for Gujarat","Deduction",121,"PT150","hr_payslip_line_professionaltax_guj","range","categories.GROSS", +9,"fix",12000,1000000,,-200,"Professional Tax for Gujarat","Deduction",121,"PT200","hr_payslip_line_professionaltax_guj","range","categories.GROSS", diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py new file mode 100644 index 00000000000..dc075b0be36 --- /dev/null +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py @@ -0,0 +1,34 @@ +#-*- coding:utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2011 OpenERP SA (). All Rights Reserved +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +from osv import fields, osv +import decimal_precision as dp + +class hr_contract_in(osv.osv): + _inherit = 'hr.contract' + + _columns = { + 'tds': fields.float('TDS', digits_compute=dp.get_precision('Payroll')), + } + +hr_contract_in() + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: \ No newline at end of file diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml new file mode 100644 index 00000000000..e5286409100 --- /dev/null +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml @@ -0,0 +1,416 @@ + + + + + + + + Child Education Allowance + CEA + + + + + + + DA + Dearness Allowance + + percentage + contract.wage + + + DA is calculated in % + for more details:http://www.citehr.com/26809-how-calculate-dearness-allowance-da.html + + + + CEA + Child Education Allowance + + fix + none + + Per school going child 1200 per annum is non-taxable. Maximum for 2 children, so max 2400 per annum becomes non-taxable. + + + + CHEA + Education Allowance + + + python + result = bool(employee.children) + fix + Per school going child 1200 per annum is non-taxable. Maximum for 2 children, so max 2400 per annum becomes non-taxable. + + + + + + MGMTA + Grade/Special/Management/Supplementary Allowance + + fix + + + This allowance is normally given as an additional benefit to employees and is fully taxable. + for more details : http://www.rupeetalk.com/finance-basics/income-tax-basics/income-tax-guides/tax-implications-of-salary-components.php + + + + CCA + City Compensatory Allowance + + fix + + + 10% of basic+da is the maximum. + for more details :http://www.citehr.com/250071-what-cca-allowance.html + + + + ARRE + Arrears + + fix + + + Generally arrears are fully taxable, but employee may claim exemption u/s 89(1). + One would need to compute income tax on the arrears if it would have been received in actual year. + Now difference of income tax between payment year and actual year would be allowed for deduction. + Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uurtGGGd + + + + GRA + Gratuity + + none + code + result = (categories.NET/26) * 15 * 5 + + Covered under the Payment of Gratuity Act, 1971: (Last drawn monthly basic salary + dearness allowance)/26 x 15 days x number of years of service (date of joining – date of retirement/leaving job) + + + + + LTA + Leave Travel Allowance + + percentage + contract.wage + + + As per Income tax rules of India, if transport bills for LTA are not provided, + the amount will be taxed. E.g. If an employee has LTA allowance as Rs 50,000 in his CTC(cost to company), + and he provides proofs of Rs 40,000 (boarding pass, air tickets, taxi vouchers) then income tax will be + deducted for rest of the Rs 10,000. Does not matter whats the amount of LTA in an employee’s package, + income tax laws only permits domestic air tickets only for LTA claim. + Read more: http://www.pankajbatra.com/news/lta-proof-reimbursement-to-employer-not-required-supreme-court-india-ruling/#ixzz1uutlHSez + + + + LE + Leave Encashment + + none + fix + 0.0 + + Payment by way of leave encashment received by Central and State Govt. + employees at the time of retirement in respect of the period of earned + leave at credit is fully exempt. In case of other employees, the exemption + is to be limited to minimum of all below: + 1.The actual amount received + 2.The cash equivalent of leave balance (max 30 days per year of service) + 3.Maximum of 10 months of leave encashment, based on last 10 months average salary + 4.Rs. 3 Lakh + Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uuunHwjE + + + + + PI + Performance Incentive/Bonus + + fix + + + This would be fully taxable based on incentive. + + + + MEDA + Medical Reimbursement + + fix + + + This component is on-taxable up to 15000 per year (or Rs 1250 per month) on producing medical bills. + + + + PERJ + Periodical Journals + + fix + + + Some employers may provide component for buying magazines, + journals and books as a part of knowledge enhancement for business growth. + This part would become non taxable on providing original bills. + + + + UNIF + Uniform/Dress Allowance + + fix + + + Some sections of employees mat get allowance for purchase of office dress/uniform. + In such case, the component would become non-taxable. + + + + TELR + Telephone Reimbursement + + fix + + + In some of the cases, companies may provide a component for telephone bills. + Employees may provide actual phone usage bills to reimburse this component and make it non-taxable. + Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uuvaUK7A + + + + + CAR + Car Expenses Reimbursement + + fix + + + In case company provides component for this and employee use self owned car for official + and personal purposes, Rs 1800 per month would be non-taxable on showing bills for fuel or + can maintenance. This amount would be Rs 2400 in case car is more capacity than 1600cc. + Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uuw12Cjj + + + + INT + Internet Expense + + fix + + + Employer may also provide reimbursement of internet expenses and thus this would become non taxable. + + + + DRI + Driver Salary + + fix + + + Rs. 900 per month (non taxable) + + + + GFNR + Gifts From Non-Relatives + + fix + + + gift gift is from non relatives person worth more than Rs.50000, + one is liable to pay the tax what ever he received excess of the limit or Rs 50,000. + + + + GFR + Gifts From Relatives + + fix + + + gift is from relaives whould be non taxable with no limits. + + + + HRI + House Rent Income + + fix + + Income from house property + + 30% of the rental income can be reduced as a standard deduction + + + + OTI + Other Income + + python + result = bool(contract.others) + code + result = contract.others + Bank account/NSC/Post Office/SCSS interest + + + + + STG + Short Term Gains from Share Trading/Equity MFs + + fix + + + if stocks/equity mutual funds are sold before one year, + 15% tax would be payable on such gains. STT should have been on transaction. + Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uuwSxEvI + + + + LTG + Long Term Gains from Share Trading/Equity MFs + + fix + + + If stocks/equity mutual funds are kept for more than a year before sale, + it would be long term gains and such gains would be fully exempt from income tax. + Securities transaction tax (STT) must have been paid on transactions for availing + this exemption. + Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uuwtRkCT + + + + + PTG + Professional Tax for Gujarat + + fix + + + + + PROFESSIONAL TAX FOR COMPANY SHOULD BE PAID ON OR BEFORE 30TH SEPT, + THE AMOUNT IS Rs. 2000 PER YEAR. THERE IS NO PAYMENT FORM TO BE FLLED. + Attribution: http://www.citehr.com/249518-companys-professional-tax-gujarat.html#ixzz1uuyvgt2L + + + + TDS + Tax Deducted at Source + + python + result = bool(contract.tds) + code + result = -(contract.tds) + + As per income tax rules, all payment which are taxable in nature should be + done after deduction of taxes at the source itself. Hence employer compute + income tax on salary payment and deduct it every month. This TDS is based + on employee’s saving/investment declaration at the start of year. If + investments for tax saving is not done, large amount may be deducted in last few months. + Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uv0gPhgQ + + + + VPF + Voluntarily Provident Fund Contribution + + fix + + + + VPF is a safe option wherein you can contribute more than the PF ceiling of 12% + that has been mandated by the government. This additional amount enjoys all the + benefits of PF except that the employer is not liable to contribute any extra amount + apart from 12%. An added advantage is that the interest rate is equal to the interest + rate of PF and the withdrawal is tax free. Please note that the maximum contribution + towards VPF is 100% of your Basic. The highest rate of interest (close to 9%) makes + it a very attractive saving scheme. Because of these advantages many employees chose + not to close their PF account even after getting employment else where other than India. + Employees also get a major tax break on their entire contribution to the fund up to a + ceiling of Rs. 70,000/- + for more details:http://www.dotcominfoway.com/blog/vpf-or-voluntary-provident-fund-special-benefits-for-employees + + + + CPT + Dedution for Company Provided Transport + + fix + + + + + + LWF + Dedution Towards State Labour Welfare Fund + + fix + + + The LWF is applicable to all the members of the organisation except the + Management staff (Staffs having authority to sign on the cheque/official + documents on behalf of the organisation) + Employee Contribution is Rs. 3.00 and Employer contribution Rs. 6.00 + Total Rs 9.00 and deposited to the LWF office. + It is half yearly contribution (June and December) + Attribution: http://www.citehr.com/270132-labour-welfare-fund-deduction-salary.html + + + + CGTI + Dedution Towards Company Provided Group Term Insurance + + fix + + + + + + DLA + Dedution Towards Leave Availed + + fix + + + + + + CMT + Dedution Towards Company Provided Medical Insurance + + fix + + + + + + ODE + Other Dedution from Employer + + fix + + + + + + EPC + Employer's PF Contribution + + code + result = (rules.PF.amount_percentage * contract.wage)/100 + + + + + diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_demo.xml b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_demo.xml new file mode 100644 index 00000000000..3160e238a6f --- /dev/null +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_demo.xml @@ -0,0 +1,16 @@ + + + + + + + + IND + Indian Employee + + + + + + + diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_report.xml b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_report.xml new file mode 100644 index 00000000000..e3fff82fc38 --- /dev/null +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_report.xml @@ -0,0 +1,14 @@ + + + + + + + + diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_view.xml b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_view.xml new file mode 100644 index 00000000000..cb9a2d93a81 --- /dev/null +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_view.xml @@ -0,0 +1,21 @@ + + + + + + hr.contract.form.in.inherit + hr.contract + form + 20 + + + + + + + + + + + + diff --git a/addons/l10n_in_hr_payroll/report/__init__.py b/addons/l10n_in_hr_payroll/report/__init__.py new file mode 100644 index 00000000000..c90599352c2 --- /dev/null +++ b/addons/l10n_in_hr_payroll/report/__init__.py @@ -0,0 +1,27 @@ +#!/usr/bin/env python +#-*- coding:utf-8 -*- + +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2009 Tiny SPRL (). All Rights Reserved +# d$ +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +import report_payslip_details + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/l10n_in_hr_payroll/report/report_payslip_details.py b/addons/l10n_in_hr_payroll/report/report_payslip_details.py new file mode 100644 index 00000000000..cfd29f8afba --- /dev/null +++ b/addons/l10n_in_hr_payroll/report/report_payslip_details.py @@ -0,0 +1,38 @@ +#!/usr/bin/env python +#-*- coding:utf-8 -*- + +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2009 Tiny SPRL (). All Rights Reserved +# d$ +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +from report import report_sxw +from hr_payroll import report + +class payslip_details_report_in(report.report_payslip_details.payslip_details_report): + + def __init__(self, cr, uid, name, context): + super(payslip_details_report_in, self).__init__(cr, uid, name, context) + self.localcontext.update({ + 'get_details_by_rule_category': self.get_details_by_rule_category, + }) + +report_sxw.report_sxw('report.paylip.details.in', 'hr.payslip', 'l10n_in_hr_payroll/report/report_payslip_details.rml', parser=payslip_details_report_in) + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/l10n_in_hr_payroll/report/report_payslip_details.rml b/addons/l10n_in_hr_payroll/report/report_payslip_details.rml new file mode 100644 index 00000000000..a7ab3db3185 --- /dev/null +++ b/addons/l10n_in_hr_payroll/report/report_payslip_details.rml @@ -0,0 +1,372 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [[repeatIn(objects,'o')]] + + + + Pay Slip Details + + + + + [[o.credit_note==False and removeParentNode('para')]] + Credit + + Note + + ([[o.name or removeParentNode('para')]]) + + + + Name + + + [[o.employee_id.name]] + + + Designation + + + [[ o.employee_id.job_id.name or '' ]] + + + + + + + + Address + + + + [[o.employee_id.address_home_id and o.employee_id.address_home_id.name or '' ]],[[o.employee_id.address_home_id and o.employee_id.address_home_id.street or '' ]],[[o.employee_id.address_home_id and o.employee_id.address_home_id.street2 or '' ]],[[o.employee_id.address_home_id and o.employee_id.address_home_id.zip or '' ]],[[o.employee_id.address_home_id and o.employee_id.address_home_id.city or '' ]],[[o.employee_id.address_home_id and o.employee_id.address_home_id.state_id and o.employee_id.address_home_id.state_id.name or '' ]] [[o.employee_id.address_home_id and o.employee_id.address_home_id.country_id and o.employee_id.address_home_id.country_id.name or '' ]] + + + + + + + Email + + + [[ o.employee_id.work_email or '' ]] + + + + Identification No + + + + [[ o.employee_id.identification_id or '' ]] + + + + + + + Reference + + + [[ o.number or '' ]] + + + Bank Account + + + [[ o.employee_id.otherid or '' ]] + + + + + + + Date From + + + [[ o.date_from or '']] + + + + Date To + + + + [[ o.date_to or '' ]] + + + + + + + + + + + + + + Details by Salary Rule Category: + + + + + + + Code + + + Salary Rule Category + + + Total + + + + + + +
+ [[repeatIn(get_details_by_rule_category(o.details_by_salary_rule_category),'h') ]] + + + + + [[ h['code'] ]] + [[ h['level']!=0 and ( setTag('para','para',{'style':'terp_default_8'})) or removeParentNode('font')]] + + + + [[ '..'*h['level'] ]][[ h['rule_category'] ]][[ h['level']!=0 and ( setTag('para','para',{'style':'terp_default_8'})) or removeParentNode('font') ]] + + + [[ formatLang(h['total']) ]] [[o.company_id and o.company_id.currency_id.symbol or '']] [[ h['level']==0 and ( setTag('para','para',{'style':'terp_default_10'})) or removeParentNode('font') ]] + + + +
+ + + + + + + + + + + + + + + + + + + + + + Authorized Signature + + + + + + +
+
+ diff --git a/addons/l10n_in_hr_payroll/security/hr.salary.rule.csv b/addons/l10n_in_hr_payroll/security/hr.salary.rule.csv new file mode 100644 index 00000000000..f18a77cd01b --- /dev/null +++ b/addons/l10n_in_hr_payroll/security/hr.salary.rule.csv @@ -0,0 +1,3 @@ +"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink" +"access_hr_salary_head","hr.salary.head","model_hr_salary_head","base.group_hr_user",1,1,1,1 +"access_hr_salary_rule","hr.salary.rule","model_hr_salary_rule","base.group_hr_user",1,1,1,1