diff --git a/hr_payroll_slip_ytd/__manifest__.py b/hr_payroll_slip_ytd/__manifest__.py index eff0199d..a66480ff 100755 --- a/hr_payroll_slip_ytd/__manifest__.py +++ b/hr_payroll_slip_ytd/__manifest__.py @@ -1,7 +1,7 @@ { 'name': 'Payroll Report Year to Date', 'author': 'Hibou Corp. ', - 'version': '12.0.1.0.0', + 'version': '12.0.1.1.0', 'category': 'Human Resources', 'sequence': 95, 'summary': 'Show YTD computations on Payslip Report', diff --git a/hr_payroll_slip_ytd/models/payslip.py b/hr_payroll_slip_ytd/models/payslip.py index 1dd7cbcf..fe46d655 100644 --- a/hr_payroll_slip_ytd/models/payslip.py +++ b/hr_payroll_slip_ytd/models/payslip.py @@ -9,11 +9,20 @@ class Payslip(models.Model): from_date = str(self.date_to.year) + '-01-01' state_allowed = ('done', 'verify') if not allow_draft else ('done', 'verify', 'draft') self.env.cr.execute(""" - SELECT sum(total) as sum + SELECT sum(total) as total, + sum(quantity) as quantity, + sum(amount) as amount FROM hr_payslip as hp JOIN hr_payslip_line as pi ON hp.id = pi.slip_id WHERE hp.employee_id = %s AND hp.state in %s AND hp.date_to >= %s AND hp.date_to <= %s AND pi.code = %s""", (self.employee_id.id, state_allowed, from_date, to_date, code)) - return self.env.cr.fetchone()[0] or 0.0 + res = self.env.cr.dictfetchone() + if res: + # Can return dictionary with NULL aka Nones + for key in res: + res[key] = res[key] or 0.0 + else: + res = {'total': 0.0, 'quantity': 0.0, 'amount': 0.0} + return res diff --git a/hr_payroll_slip_ytd/views/payslip_views.xml b/hr_payroll_slip_ytd/views/payslip_views.xml index 1e80ce7c..dbe60014 100644 --- a/hr_payroll_slip_ytd/views/payslip_views.xml +++ b/hr_payroll_slip_ytd/views/payslip_views.xml @@ -3,12 +3,17 @@ \ No newline at end of file