[IMP] hr_payroll: Improve code of contribution report and update the help on register_id of rule object

bzr revid: psi@tinyerp.co.in-20110602130043-lhfiercyh6bqp82p
This commit is contained in:
psi (Open ERP)
2011-06-02 18:30:43 +05:30
parent eef6f323af
commit 0e076c4060
2 changed files with 19 additions and 23 deletions
+4 -4
View File
@@ -540,7 +540,7 @@ class hr_payslip(osv.osv):
inputs = {}
for input_line in payslip.input_line_ids:
inputs[input_line.code] = input_line
categories_obj = BrowsableObject(self.pool, cr, uid, payslip.employee_id.id, categories_dict)
input_obj = InputLine(self.pool, cr, uid, payslip.employee_id.id, inputs)
worked_days_obj = WorkedDays(self.pool, cr, uid, payslip.employee_id.id, worked_days)
@@ -764,7 +764,7 @@ class hr_salary_rule(osv.osv):
'amount_python_compute':fields.text('Python Code'),
'amount_percentage_base':fields.char('Percentage based on',size=1024, required=False, readonly=False, help='result will be affected to a variable'),
'child_ids':fields.one2many('hr.salary.rule', 'parent_rule_id', 'Child Salary Rule'),
'register_id':fields.many2one('hr.contribution.register', 'Contribution Register', help="Contribution register based on company"),
'register_id':fields.many2one('hr.contribution.register', 'Contribution Register', help="Contribution register for the rule"),
'input_ids': fields.one2many('hr.rule.input', 'input_id', 'Inputs'),
'note':fields.text('Description'),
}
@@ -776,7 +776,7 @@ class hr_salary_rule(osv.osv):
# employee: hr.employee object
# contract: hr.contract object
# rules: object containing the rules code (previously computed)
# categories: object containing the computed salary rule categories (sum of amount of all rules belonging to that category).
# categories: object containing the computed salary rule categories (sum of amount of all rules belonging to that category).
# worked_days: object containing the computed worked days.
# inputs: object containing the computed inputs.
@@ -791,7 +791,7 @@ result = contract.wage * 0.10''',
# employee: hr.employee object
# contract: hr.contract object
# rules: object containing the rules code (previously computed)
# categories: object containing the computed salary rule categories (sum of amount of all rules belonging to that category).
# categories: object containing the computed salary rule categories (sum of amount of all rules belonging to that category).
# worked_days: object containing the computed worked days
# inputs: object containing the computed inputs
@@ -4,7 +4,7 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>). All Rights Reserved
# d$
#
# This program is free software: you can redistribute it and/or modify
@@ -47,30 +47,26 @@ class contribution_register_report(report_sxw.rml_parse):
def _get_payslip_lines(self, obj):
payslip_obj = self.pool.get('hr.payslip')
payslip_line = self.pool.get('hr.payslip.line')
payslip_lines = []
res = []
result = {}
self.regi_total = 0.0
self.cr.execute("SELECT pl.id, pl.slip_id from hr_payslip_line as pl "\
self.cr.execute("SELECT pl.id from hr_payslip_line as pl "\
"LEFT JOIN hr_payslip AS hp on (pl.slip_id = hp.id) "\
"WHERE (hp.date_from >= %s) AND (hp.date_to <= %s) "\
"AND pl.register_id = %s "\
"GROUP BY pl.slip_id, pl.sequence, pl.id, pl.category_id "\
"ORDER BY pl.sequence",
"ORDER BY pl.slip_id, pl.sequence",
(self.date_from, self.date_to, obj.id))
for x in self.cr.fetchall():
result.setdefault(x[1], [])
result[x[1]].append(x[0])
for key, value in result.iteritems():
for line in payslip_line.browse(self.cr, self.uid, value):
res.append({
'payslip_name': payslip_obj.browse(self.cr, self.uid, [key])[0].name,
'name': line.name,
'code': line.code,
'quantity': line.quantity,
'amount': line.amount,
'total': line.total,
})
self.regi_total += line.total
payslip_lines = [x[0] for x in self.cr.fetchall()]
for line in payslip_line.browse(self.cr, self.uid, payslip_lines):
res.append({
'payslip_name': line.slip_id.name,
'name': line.name,
'code': line.code,
'quantity': line.quantity,
'amount': line.amount,
'total': line.total,
})
self.regi_total += line.total
return res
report_sxw.report_sxw('report.contribution.register.lines', 'hr.contribution.register', 'hr_payroll/report/report_contribution_register.rml', parser=contribution_register_report)