From 06f47c3c3e86df249a0acfc9a77beef50afceb39 Mon Sep 17 00:00:00 2001 From: mtr Date: Tue, 26 Apr 2011 16:22:15 +0530 Subject: [PATCH] [IMP] hr_payroll:calculates total for salary head in payslip report bzr revid: mtr@mtr-20110426105215-aiijosjm7wv2rjjr --- addons/hr_payroll/report/report_payslip.py | 7 ++++++- addons/hr_payroll/report/report_payslip.rml | 16 +++++++++------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/addons/hr_payroll/report/report_payslip.py b/addons/hr_payroll/report/report_payslip.py index 31f99607a1e..84fc85e10c8 100644 --- a/addons/hr_payroll/report/report_payslip.py +++ b/addons/hr_payroll/report/report_payslip.py @@ -110,6 +110,7 @@ class payslip_report(report_sxw.rml_parse): res = [] result = {} ids = [] + for id in range(len(obj)): ids.append(obj[id].id) if ids: @@ -124,13 +125,17 @@ class payslip_report(report_sxw.rml_parse): for key, value in result.iteritems(): heads = salary_head.browse(self.cr, self.uid, [key]) parents = self.get_recursive_parent(heads) + head_total = 0 + for line in payslip_line.browse(self.cr, self.uid, value): + head_total += line.total level = 0 for parent in parents: res.append({ 'salary_head': parent.name, 'name': parent.name, 'code': parent.code, - 'level': level + 'level': level, + 'total': head_total, }) level += 1 lines = payslip_line.browse(self.cr, self.uid, value) diff --git a/addons/hr_payroll/report/report_payslip.rml b/addons/hr_payroll/report/report_payslip.rml index 58d558f42cb..76b28a65fb2 100644 --- a/addons/hr_payroll/report/report_payslip.rml +++ b/addons/hr_payroll/report/report_payslip.rml @@ -178,6 +178,7 @@ + @@ -193,6 +194,7 @@ + @@ -229,7 +231,7 @@ Designation - [[ o.employee_id.contract_id and o.employee_id.contract_id.job_id.name or '' ]] + [[ o.employee_id.job_id.name or '' ]] @@ -266,7 +268,7 @@ - Slip ID + Reference [[ o.number or '' ]] @@ -275,7 +277,7 @@ Bank Details - [[ o.employee_id.otherid or '' ]] + [[ o.employee_id.bank_account_id.acc_number or '' ]] @@ -370,17 +372,17 @@ [[ h['code'] ]] - [[ h.get('total', False) and ( setTag('para','para',{'style':'terp_default_8'})) or removeParentNode('font') ]] + [[ h['level']!=0 and ( setTag('para','para',{'style':'terp_default_8'})) or removeParentNode('font') ]] - [[ '..'*h['level'] ]][[ h['salary_head'] ]][[ h.get('total', False) and ( setTag('para','para',{'style':'terp_default_9'})) or removeParentNode('font') ]] + [[ '..'*h['level'] ]][[ h['salary_head'] ]][[ h['level']!=0 and ( setTag('para','para',{'style':'terp_default_9'})) or removeParentNode('font') ]] - [[ h['name'] ]][[ h.get('total', False) and ( setTag('para','para',{'style':'terp_default_8'})) or removeParentNode('font') ]] + [[ h['name'] ]][[ h['level']!=0 and ( setTag('para','para',{'style':'terp_default_8'})) or removeParentNode('font') ]] - [[ h['total'] ]] + [[ h['total'] ]][[ h['level']!=0 and ( setTag('para','para',{'style':'terp_default_10'})) or removeParentNode('font') ]]