diff --git a/addons/l10n_in_hr_payroll/__openerp__.py b/addons/l10n_in_hr_payroll/__openerp__.py index 27528fbddcf..c605756417e 100644 --- a/addons/l10n_in_hr_payroll/__openerp__.py +++ b/addons/l10n_in_hr_payroll/__openerp__.py @@ -30,12 +30,13 @@ Indian Payroll Rules. ======================= - * Employee Details + -Configuration of hr_payroll for India localization + -All main contributions rules for India payslip. + * New payslip report * Employee Contracts - * Passport based Contract - * Allowances / Deductions * Allow to configure Basic / Grows / Net Salary * Employee PaySlip + * Allowance / Deduction * Monthly Payroll Register * Integrated with Holiday Management * Medical Allowance, Travel Allowance, Child Allowance, ... diff --git a/addons/l10n_in_hr_payroll/data/hr.salary.rule.csv b/addons/l10n_in_hr_payroll/data/hr.salary.rule.csv index 0877a73d02a..04e265e136f 100644 --- a/addons/l10n_in_hr_payroll/data/hr.salary.rule.csv +++ b/addons/l10n_in_hr_payroll/data/hr.salary.rule.csv @@ -1,8 +1,7 @@ "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","Allowance",23,"CHEAONE","hr_payroll_rule_child1","range","employee.children", -2,"fix",2,10,,2400,"Education Allowance","Allowance",24,"CHEATWO","hr_payroll_rule_child1","range","employee.children", +1,"fix",1,1,,1200,"Education Allowance For One Child","Allowance",23,"CHEAONE","hr_payroll_rule_child1","range","employee.children", +2,"fix",2,10,,2400,"Education Allowance For Two Child","Allowance",24,"CHEATWO","hr_payroll_rule_child1","range","employee.children", ,,,,,,,,,,,,, -3,"fix",1,1,,300,"Child Hostel Allowance","Allowance",26,"CHOONE","hr_payroll_rule_child2","range","employee.children", -4,"fix",2,10,,600,"Child Hostel Allowance","Allowance",27,"CHOTWO","hr_payroll_rule_child2","range","employee.children", - +3,"fix",1,1,,300,"Child Hostel Allowance For One Child","Allowance",26,"CHOONE","hr_payroll_rule_child2","range","employee.children", +4,"fix",2,10,,600,"Child Hostel Allowance For Two Child","Allowance",27,"CHOTWO","hr_payroll_rule_child2","range","employee.children", ,,,,,,,,,,,,, diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py index 9444afd74e0..8d85ebbdf09 100644 --- a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py @@ -20,7 +20,7 @@ ############################################################################## import time -from datetime import datetime, timedelta +from datetime import datetime from calendar import isleap from dateutil.relativedelta import relativedelta @@ -58,13 +58,13 @@ class hr_employee(osv.osv): """ @param cr: the current row, from the database cursor, @param uid: the current user’s ID for security checks, - @param ids: List of Openday’s IDs + @param ids: List of employee’s IDs @return: No. of years of experience. @param context: A standard dictionary for contextual values """ res = {} - c_date = time.strftime('%Y-%m-%d') DATETIME_FORMAT = "%Y-%m-%d" + c_date = time.strftime(DATETIME_FORMAT) current_date = datetime.strptime(c_date,DATETIME_FORMAT) for employee in self.browse(cr, uid, ids, context=context): if employee.join_date: @@ -86,7 +86,7 @@ class hr_employee(osv.osv): _columns = { 'join_date': fields.date('Join Date', help="joining date of employee "), - 'number_of_year':fields.function(_compute_year, string='No. of Years of Service', type="float", help="Total years of work experience."), + 'number_of_year':fields.function(_compute_year, string='No. of Years of Service', type="float", store=True, help="Total years of work experience."), } hr_employee() 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 index 0d8d1664700..c21a1aed02b 100644 --- a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml @@ -1,7 +1,7 @@ - + HRAM @@ -9,7 +9,7 @@ result = (contract.wage + DA) * 0.50 House Rent Allowance for metro city - + 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. @@ -24,7 +24,7 @@ Income tax exemption for HRA will be least of following: HRANM House Rent Allowance for non metro city - + 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. @@ -35,16 +35,13 @@ Income tax exemption for HRA will be least of following: - code - - worked_days.WORK100.number_of_days FC - python - result = bool(contract.food_coupon_amount) + none Food Coupons Allowance + code result = worked_days.WORK100.number_of_days * contract.food_coupon_amount - + @@ -54,42 +51,30 @@ Income tax exemption for HRA will be least of following: percentage contract.wage - + DA is calculated in % - - 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 + Child 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. CHEAH Child Hostel Allowance - python result = bool(employee.children) fix - In case the children are in hostel, the exemption available is Rs.300 per month per child for up to 2 children. - + In case the children are in hostel, the exemption available for child. + @@ -98,7 +83,7 @@ Maximum for 2 children, so max 2400 per annum becomes non-taxable. fix - + This allowance is normally given as an additional benefit to employees and is fully taxable. @@ -107,7 +92,7 @@ Maximum for 2 children, so max 2400 per annum becomes non-taxable. City Compensatory Allowance none - + code result = (contract.wage + DA) * 0.10 @@ -118,7 +103,7 @@ Maximum for 2 children, so max 2400 per annum becomes non-taxable. City Allowance for Metro city none - + fix 850.0 @@ -128,7 +113,7 @@ Maximum for 2 children, so max 2400 per annum becomes non-taxable. City Allowance for Non Metro city none - + fix 800.0 @@ -139,7 +124,7 @@ Maximum for 2 children, so max 2400 per annum becomes non-taxable. 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. @@ -164,7 +149,7 @@ number of years of service (date of joining – date of retirement/leaving job)< fix 1666 - + 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. @@ -175,7 +160,7 @@ number of years of service (date of joining – date of retirement/leaving job)< 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) @@ -189,7 +174,7 @@ number of years of service (date of joining – date of retirement/leaving job)< fix - + This would be fully taxable based on incentive. @@ -199,7 +184,7 @@ number of years of service (date of joining – date of retirement/leaving job)< fix - + This component is on-taxable up to 15000 per year (or Rs 1250 per month) on producing medical bills. @@ -209,7 +194,7 @@ number of years of service (date of joining – date of retirement/leaving job)< 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. @@ -219,7 +204,7 @@ number of years of service (date of joining – date of retirement/leaving job)< fix - + Some sections of employees mat get allowance for purchase of office dress/uniform.In such case, the component would become non-taxable. @@ -229,7 +214,7 @@ number of years of service (date of joining – date of retirement/leaving job)< fix 1500 - + 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. @@ -240,7 +225,7 @@ number of years of service (date of joining – date of retirement/leaving job)< fix - + @@ -249,7 +234,7 @@ number of years of service (date of joining – date of retirement/leaving job)< fix 1800 - + 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. @@ -259,7 +244,7 @@ number of years of service (date of joining – date of retirement/leaving job)< fix - + Employer may also provide reimbursement of internet expenses and thus this would become non taxable. @@ -271,7 +256,7 @@ number of years of service (date of joining – date of retirement/leaving job)< result = bool(contract.driver_salay) fix - + Rs. 900 per month (non taxable) @@ -281,7 +266,7 @@ number of years of service (date of joining – date of retirement/leaving job)< fix - + 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. @@ -292,7 +277,7 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, fix - + gift is from relaives whould be non taxable with no limits. @@ -303,7 +288,7 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, code result = contract.house_rent_income none - + Income from house property.30% of the rental income can be reduced as a standard deduction. @@ -315,7 +300,7 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, result = contract.saving_bank_account python result = bool(contract.saving_bank_account) - + @@ -324,7 +309,7 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, fix - + @@ -336,7 +321,7 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, code result = contract.other_income Bank account/NSC/Post Office/SCSS interest - + @@ -345,7 +330,7 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, fix - + @@ -356,7 +341,7 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, result = contract.short_term_gain python result = bool(contract.short_term_gain) - + If stocks/equity mutual funds are sold before one year, 15% tax would be payable on such gains. STT should have been on transaction. @@ -368,11 +353,11 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, result = contract.long_term_gain python result = bool(contract.long_term_gain) - + 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. - + PTD Professional Tax @@ -381,7 +366,7 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, result = bool(contract.professional_tax) code result = -(contract.professional_tax) - + 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 filled. @@ -403,10 +388,10 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, Voluntarily Provident Fund Contribution python - result = bool(contract.voluntarily_provident_fund) + result = bool(contract.voluntary_provident_fund) code - result = -(contract.wage + DA) * contract.voluntarily_provident_fund / 100 - + result = -(contract.wage + DA) * contract.voluntary_provident_fund / 100 + 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 he 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/- @@ -489,7 +474,7 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, code result = - (contract.wage + DA) * 8.33 / 100 Employer contribution does not become part of employee’s income and hence income tax is not payable on this part. - + @@ -498,7 +483,7 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, code result = - (contract.wage + DA) * 0.10 - + Any amount contributed by your employer to your NPS account is treated as part of your salary and is included in your income but you can claim deduction under Section 80C for this too.thus, effectively making it exempt from tax within the limit of 10% of your basic salary. This is very useful and tax efficient for you particularly if you fall in the maximum tax. @@ -508,7 +493,7 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, code result = - (contract.wage + DA) * 0.10 - + Employee can claim deduction even of employer's contribution to NPS. 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 index d6b8eb02724..29323b458d5 100644 --- a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_view.xml +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_view.xml @@ -11,20 +11,20 @@ - + + + + - - - - +