|
- Name
+ Name
|
- [[o.employee_id.name]]
+ [[o.employee_id.name]]
|
- Designation
+ Designation
|
[[ o.employee_id.job_id.name or '' ]]
@@ -222,7 +209,7 @@
|
- Email
+ Email
|
[[ o.employee_id.work_email or '' ]]
@@ -240,13 +227,13 @@
|
- Reference
+ Reference
|
[[ o.number or '' ]]
|
- Bank Account
+ Bank Account
|
[[ o.employee_id.otherid or '' ]]
@@ -256,7 +243,7 @@
|
- Date From
+ Date From
|
[[ o.date_from or '']]
@@ -285,22 +272,25 @@
|
- Code
+ Code
|
- Name
+ Name
|
- Quantity
+ Quantity
|
- Amount
+ Amount
|
- Total
+ Total
|
+
+
+
[[repeatIn(get_payslip_lines(o.line_ids),'p') ]]
@@ -315,18 +305,21 @@
[[ p.quantity or '0.0']]
|
- [[ p.amount or '0.0']]
+ [[ p.amount or '0.0' ]]
|
[[ p.total or '0.0']] [[o.company_id and o.company_id.currency_id.symbol or '']]
|
+
+
+
-
+
-
+
@@ -343,16 +336,16 @@
|
-
+
-
+
-
+
- Authorized Signature
+ Authorized Signature
|
diff --git a/addons/hr_payroll/report/report_payslip_details.py b/addons/hr_payroll/report/report_payslip_details.py
index be40a2ec02a..d65065eb6f6 100644
--- a/addons/hr_payroll/report/report_payslip_details.py
+++ b/addons/hr_payroll/report/report_payslip_details.py
@@ -64,9 +64,8 @@ class payslip_details_report(report_sxw.rml_parse):
for key, value in result.iteritems():
rule_categories = rule_cate_obj.browse(self.cr, self.uid, [key])
parents = get_recursive_parent(rule_categories)
- category_total = 0
- for line in payslip_line.browse(self.cr, self.uid, value):
- category_total += line.total
+ self.cr.execute('''SELECT SUM(pl.total) FROM hr_payslip_line pl\
+ WHERE pl.id in %s''',(tuple(value),))
level = 0
for parent in parents:
res.append({
@@ -74,7 +73,7 @@ class payslip_details_report(report_sxw.rml_parse):
'name': parent.name,
'code': parent.code,
'level': level,
- 'total': category_total,
+ 'total': self.cr.fetchone()[0] or 0.0,
})
level += 1
for line in payslip_line.browse(self.cr, self.uid, value):
@@ -97,13 +96,18 @@ class payslip_details_report(report_sxw.rml_parse):
result.setdefault(obj[id].register_id.name, [])
result[obj[id].register_id.name].append(obj[id].id)
for key, value in result.iteritems():
+ self.cr.execute('''SELECT SUM(pl.total) FROM hr_payslip_line pl\
+ WHERE pl.id in %s''',(tuple(value),))
res.append({
'register_name': key,
+ 'total': self.cr.fetchone()[0] or 0.0,
})
for line in payslip_line.browse(self.cr, self.uid, value):
res.append({
'name': line.name,
'code': line.code,
+ 'quantity': line.quantity,
+ 'amount': line.amount,
'total': line.total,
})
return res
diff --git a/addons/hr_payroll/report/report_payslip_details.rml b/addons/hr_payroll/report/report_payslip_details.rml
index ee9d16479e7..395654151f5 100644
--- a/addons/hr_payroll/report/report_payslip_details.rml
+++ b/addons/hr_payroll/report/report_payslip_details.rml
@@ -100,56 +100,42 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
+
-
+
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
+
+
+
+
+
+
@@ -159,28 +145,31 @@
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -196,7 +185,7 @@
-
+
@@ -206,11 +195,11 @@
- [[repeatIn(objects,'o')]]
+ [[repeatIn(objects,'o')]]
|
- Pay Slip Details
+ Pay Slip Details
|
@@ -220,20 +209,20 @@
Note
- ([[o.name or removeParentNode('para') ]])
+ ([[o.name or removeParentNode('para')]])
|
- Name
+ Name
|
- [[o.employee_id.name]]
+ [[o.employee_id.name]]
|
- Designation
+ Designation
|
- [[ o.employee_id.job_id.name or '' ]]
+ [[ o.employee_id.job_id.name or '' ]]
|
@@ -245,17 +234,17 @@
|
- [[o.employee_id.address_home_id and o.employee_id.address_home_id.name or '' ]],[[o.employee_id.address_home_id and o.employee_id.address_home_id.street or '' ]],[[o.employee_id.address_home_id and o.employee_id.address_home_id.street2 or '' ]],[[o.employee_id.address_home_id and o.employee_id.address_home_id.zip or '' ]],[[o.employee_id.address_home_id and o.employee_id.address_home_id.city or '' ]],[[o.employee_id.address_home_id and o.employee_id.address_home_id.state_id and o.employee_id.address_home_id.state_id.name or '' ]] [[o.employee_id.address_home_id and o.employee_id.address_home_id.country_id and o.employee_id.address_home_id.country_id.name or '' ]]
+ [[o.employee_id.address_home_id and o.employee_id.address_home_id.name or '' ]],[[o.employee_id.address_home_id and o.employee_id.address_home_id.street or '' ]],[[o.employee_id.address_home_id and o.employee_id.address_home_id.street2 or '' ]],[[o.employee_id.address_home_id and o.employee_id.address_home_id.zip or '' ]],[[o.employee_id.address_home_id and o.employee_id.address_home_id.city or '' ]],[[o.employee_id.address_home_id and o.employee_id.address_home_id.state_id and o.employee_id.address_home_id.state_id.name or '' ]] [[o.employee_id.address_home_id and o.employee_id.address_home_id.country_id and o.employee_id.address_home_id.country_id.name or '' ]]
|
|
- Email
+ Email
|
- [[ o.employee_id.work_email or '' ]]
+ [[ o.employee_id.work_email or '' ]]
|
@@ -263,33 +252,33 @@
|
- [[ o.employee_id.identification_id or '' ]]
+ [[ o.employee_id.identification_id or '' ]]
|
|
- Reference
+ Reference
|
- [[ o.number or '' ]]
+ [[ o.number or '' ]]
|
- Bank Account
+ Bank Account
|
- [[ o.employee_id.otherid or '' ]]
+ [[ o.employee_id.otherid or '' ]]
|
|
- Date From
+ Date From
|
- [[ o.date_from or '']]
+ [[ o.date_from or '']]
|
@@ -297,37 +286,37 @@
|
- [[ o.date_to or '' ]]
+ [[ o.date_to or '' ]]
|
-
-
+
+
-
+
|
- Details by Salary Rule Category:
+ Details by Salary Rule Category:
|
|
- Code
+ Code
|
- Salary Rule Category
+ Salary Rule Category
|
- Name
+ Name
|
- Total
+ Total
|
@@ -335,69 +324,80 @@
- [[repeatIn(get_details_by_rule_category(o.details_by_salary_rule_category),'h') ]]
+ [[repeatIn(get_details_by_rule_category(o.details_by_salary_rule_category),'h') ]]
|
-
+
[[ h['code'] ]]
[[ h['level']!=0 and ( setTag('para','para',{'style':'terp_default_8'})) or removeParentNode('font')]]
|
- [[ '..'*h['level'] ]][[ h['rule_category'] ]][[ h['level']!=0 and ( setTag('para','para',{'style':'terp_default_8'})) or removeParentNode('font') ]]
+ [[ '..'*h['level'] ]][[ h['rule_category'] ]][[ h['level']!=0 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['name'] ]][[ h['level']!=0 and ( setTag('para','para',{'style':'terp_default_8'})) or removeParentNode('font')]]
|
- [[ h['total'] or '0.0' ]] [[o.company_id and o.company_id.currency_id.symbol or '']] [[ h['level']!=0 and ( setTag('para','para',{'style':'terp_default_10'})) or removeParentNode('font') ]]
+ [[ h['total'] or '0.0' ]] [[o.company_id and o.company_id.currency_id.symbol or '']] [[ h['level']==0 and ( setTag('para','para',{'style':'terp_default_10'})) or removeParentNode('font') ]]
|
-
+
-
-
+
|
- Payslip Lines by Contribution Register:
+ Payslip Lines by Contribution Register:
|
-
+
|
- Register Name
+ Register Name
|
- Code
+ Code
|
- Name
+ Name
|
- Total
+ Quantity/Rate
+ |
+
+ Amount
+ |
+
+ Total
|
- [[repeatIn(get_lines_by_contribution_register(o.details_by_salary_rule_category),'r')]]
-
+ [[repeatIn(get_lines_by_contribution_register(o.details_by_salary_rule_category),'r') ]]
+
|
- [[ r.get('register_name', False) ]][[ h.get('register_name', False) and ( setTag('para','para',{'style':'terp_default_8'})) or removeParentNode('font')]]
+ [[ r.get('register_name', False) ]][[ h.get('register_name', False) and ( setTag('para','para',{'style':'terp_default_8'})) or removeParentNode('font')]]
|
- [[ r['code'] ]]
+ [[ r['code'] ]]
|
- [[ r['name'] ]]
+ [[ r['name'] ]]
|
- [[ r['total'] or '0.0']] [[o.company_id and o.company_id.currency_id.symbol or '']]
+ [[ r['quantity'] or '0.0' ]]
+ |
+
+ [[ r['amount'] or '0.0' ]]
+ |
+
+ [[ r['total'] or '0.0']] [[ o.company_id and o.company_id.currency_id.symbol or '']][[ r.get('register_name', False) and ( setTag('para','para',{'style':'terp_default_10'})) or removeParentNode('font')]]
|
@@ -405,26 +405,27 @@
|
-
+
|
-
+
-
+
-
+
- Authorized Signature
+ Authorized Signature
|
-
+
+
|