From bbe0731143782018769c7bbc2d56dcb8302d3119 Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Thu, 20 Oct 2016 12:59:13 -0700 Subject: [PATCH] FIX] hr_payroll: fix payroll rules using a BrowableObject.sum(). Since commit edcb318; using a python rule that uses the 'sum' function on a BrowsableObject was resulting in a UserError. Courtesy of jaredkipe --- addons/hr_payroll/models/hr_payroll.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/addons/hr_payroll/models/hr_payroll.py b/addons/hr_payroll/models/hr_payroll.py index c2700586b3a..dc8ac6d0569 100644 --- a/addons/hr_payroll/models/hr_payroll.py +++ b/addons/hr_payroll/models/hr_payroll.py @@ -388,9 +388,10 @@ class HrPayslip(models.Model): return localdict class BrowsableObject(object): - def __init__(self, employee_id, dict): + def __init__(self, employee_id, dict, env): self.employee_id = employee_id self.dict = dict + self.env = env def __getattr__(self, attr): return attr in self.dict and self.dict.__getitem__(attr) or 0.0 @@ -455,11 +456,11 @@ class HrPayslip(models.Model): for input_line in payslip.input_line_ids: inputs_dict[input_line.code] = input_line - categories = BrowsableObject(payslip.employee_id.id, {}) - inputs = InputLine(payslip.employee_id.id, inputs_dict) - worked_days = WorkedDays(payslip.employee_id.id, worked_days_dict) - payslips = Payslips(payslip.employee_id.id, payslip) - rules = BrowsableObject(payslip.employee_id.id, rules_dict) + categories = BrowsableObject(payslip.employee_id.id, {}, self.env) + inputs = InputLine(payslip.employee_id.id, inputs_dict, self.env) + worked_days = WorkedDays(payslip.employee_id.id, worked_days_dict, self.env) + payslips = Payslips(payslip.employee_id.id, payslip, self.env) + rules = BrowsableObject(payslip.employee_id.id, rules_dict, self.env) baselocaldict = {'categories': categories, 'rules': rules, 'payslip': payslips, 'worked_days': worked_days, 'inputs': inputs} #get the ids of the structures on the contracts and their parent id as well