[IMP] hr_payroll:improved code in 'onchange_employee_id' function for condition_based_on=range

bzr revid: mtr@mtr-20110324120213-14fuj571041mfqcm
This commit is contained in:
mtr 2011-03-24 17:32:13 +05:30
parent 9f43efede6
commit efbd32bb3b
1 changed files with 37 additions and 31 deletions

View File

@ -463,7 +463,7 @@ class hr_payslip(osv.osv):
if res:
result[record.id] = [x[0] for x in res]
return result
def _compute(self, cr, uid, id, value, context=None):
rule_obj = self.pool.get('hr.salary.rule')
contrib = rule_obj.browse(cr, uid, id, context=context)
@ -977,11 +977,12 @@ class hr_payslip(osv.osv):
val = rul.amount * amt
amt = val
value = line.amount * amt
if line.condition_range_min or line.condition_range_max:
if ((value < line.condition_range_min) or (value > line.condition_range_max)):
value = 0.0
else:
value = value
if line.condition_select == 'range':
if line.condition_range_min or line.condition_range_max:
if ((value < line.condition_range_min) or (value > line.condition_range_max)):
value = 0.0
else:
value = value
else:
value = value
except Exception, e:
@ -992,11 +993,12 @@ class hr_payslip(osv.osv):
if line.parent_rule_id:
for rul in [line.parent_rule_id]:
value = value
if line.condition_range_min or line.condition_range_max:
if ((line.amount < line.condition_range_min) or (line.amount > line.condition_range_max)):
value = value
else:
value = line.amount
if line.condition_select == 'range':
if line.condition_range_min or line.condition_range_max:
if ((line.amount < line.condition_range_min) or (line.amount > line.condition_range_max)):
value = value
else:
value = line.amount
else:
value = line.amount
@ -1008,11 +1010,12 @@ class hr_payslip(osv.osv):
if line.parent_rule_id:
for rul in [line.parent_rule_id]:
value = val
if line.condition_range_min or line.condition_range_max:
if ((line.amount < line.condition_range_min) or (line.amount > line.condition_range_max)):
value = value
else:
value = val
if line.condition_select == 'range':
if line.condition_range_min or line.condition_range_max:
if ((line.amount < line.condition_range_min) or (line.amount > line.condition_range_max)):
value = value
else:
value = val
else:
value = val
@ -1116,11 +1119,12 @@ class hr_payslip(osv.osv):
val = rul.amount * amt
amt = val
value = salary_rule.amount * amt * days
if salary_rule.condition_range_min or salary_rule.condition_range_max:
if ((value < salary_rule.condition_range_min) or (value > salary_rule.condition_range_max)):
value = 0.0
else:
value = value
if line.condition_select == 'range':
if salary_rule.condition_range_min or salary_rule.condition_range_max:
if ((value < salary_rule.condition_range_min) or (value > salary_rule.condition_range_max)):
value = 0.0
else:
value = value
else:
value = value
@ -1132,11 +1136,12 @@ class hr_payslip(osv.osv):
if salary_rule.parent_rule_id:
for rul in [salary_rule.parent_rule_id]:
value = salary_rule.amount * days
if salary_rule.condition_range_min or salary_rule.condition_range_max:
if ((salary_rule.amount < salary_rule.condition_range_min) or (salary_rule.amount > salary_rule.condition_range_max)):
value = 0.0
else:
value = salary_rule.amount * days
if line.condition_select == 'range':
if salary_rule.condition_range_min or salary_rule.condition_range_max:
if ((salary_rule.amount < salary_rule.condition_range_min) or (salary_rule.amount > salary_rule.condition_range_max)):
value = 0.0
else:
value = salary_rule.amount * days
else:
value = salary_rule.amount * days
@ -1148,11 +1153,12 @@ class hr_payslip(osv.osv):
if salary_rule.parent_rule_id:
for rul in [salary_rule.parent_rule_id]:
value = val
if salary_rule.condition_range_min or salary_rule.condition_range_max:
if ((salary_rule.amount < salary_rule.condition_range_min) or (salary_rule.amount > salary_rule.condition_range_max)):
value = value
else:
value = val
if line.condition_select == 'range':
if salary_rule.condition_range_min or salary_rule.condition_range_max:
if ((salary_rule.amount < salary_rule.condition_range_min) or (salary_rule.amount > salary_rule.condition_range_max)):
value = value
else:
value = val
else:
value = val
res['amount'] = salary_rule.amount