diff --git a/addons/hr_timesheet/report/user_timesheet.py b/addons/hr_timesheet/report/user_timesheet.py index 93c425af995..404876b029d 100644 --- a/addons/hr_timesheet/report/user_timesheet.py +++ b/addons/hr_timesheet/report/user_timesheet.py @@ -44,6 +44,12 @@ class report_custom(report_rml): def create_xml(self, cr, uid, ids, data, context): + # Get the user id from the selected employee record + emp_id = data['form']['employee_id'] + emp_obj = pooler.get_pool(cr.dbname).get('hr.employee') + user_id = emp_obj.browse(cr, uid, emp_id).user_id.id + empl_name = emp_obj.browse(cr, uid, emp_id).name + # Computing the dates (start of month: som, and end of month: eom) som = datetime.date(data['form']['year'], data['form']['month'], 1) eom = som + datetime.timedelta(lengthmonth(som.year, som.month)) @@ -63,7 +69,7 @@ class report_custom(report_rml): "and product_uom_id = unit.id "\ "and line.user_id=%s and line.date >= %s and line.date < %s " "order by line.date", - (uid, som.strftime('%Y-%m-%d'), eom.strftime('%Y-%m-%d'))) + (user_id, som.strftime('%Y-%m-%d'), eom.strftime('%Y-%m-%d'))) # Sum attendence by account, then by day accounts = {} @@ -84,7 +90,7 @@ class report_custom(report_rml): %s %s - ''' % (str(rml_obj.formatLang(time.strftime("%Y-%m-%d"),date=True))+' ' + str(time.strftime("%H:%M")),pooler.get_pool(cr.dbname).get('res.users').browse(cr,uid,uid).company_id.name) + ''' % (str(rml_obj.formatLang(time.strftime("%Y-%m-%d"),date=True))+' ' + str(time.strftime("%H:%M")),pooler.get_pool(cr.dbname).get('res.users').browse(cr,uid,user_id).company_id.name) account_xml = [] for account, telems in accounts.iteritems(): @@ -96,10 +102,6 @@ class report_custom(report_rml): account_xml.append('\n'.join([xml % (day, amount) for day, amount in telems.iteritems()])) account_xml.append('') - # Computing the employee - cr.execute("select name from res_users where id=%s", (str(uid))) - emp = cr.fetchone()[0] - # Computing the xml xml = ''' @@ -107,7 +109,7 @@ class report_custom(report_rml): %s %s - ''' % (header_xml,toxml(emp), '\n'.join(date_xml) + '\n'.join(account_xml)) + ''' % (header_xml,toxml(empl_name), '\n'.join(date_xml) + '\n'.join(account_xml)) return xml report_custom('report.hr.analytical.timesheet', 'hr.employee', '', 'addons/hr_timesheet/report/user_timesheet.xsl') diff --git a/addons/hr_timesheet/report/users_timesheet.py b/addons/hr_timesheet/report/users_timesheet.py index 5a52e9ce9c8..f7f78d72fd7 100644 --- a/addons/hr_timesheet/report/users_timesheet.py +++ b/addons/hr_timesheet/report/users_timesheet.py @@ -33,7 +33,7 @@ def lengthmonth(year, month): return 29 return [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month] -def emp_create_xml(cr, id, som, eom): +def emp_create_xml(cr, id, som, eom, emp): # Computing the attendence by analytical account cr.execute( "select line.date, (unit_amount * unit.factor) as amount "\ @@ -58,10 +58,6 @@ def emp_create_xml(cr, id, som, eom): ''' time_xml = ([xml % (day, amount) for day, amount in month.iteritems()]) - # Computing the employee - cr.execute("select name from resource_resource where id=%s", (id,)) - emp = cr.fetchone()[0] - # Computing the xml xml = ''' @@ -94,8 +90,9 @@ class report_custom(report_rml): emp_obj = pooler.get_pool(cr.dbname).get('hr.employee') for id in data['form']['employee_ids']: user = emp_obj.browse(cr, uid, id).user_id.id + empl_name = emp_obj.browse(cr, uid, id).name if user: - emp_xml += emp_create_xml(cr, id, som, eom) + emp_xml += emp_create_xml(cr, user, som, eom, empl_name) # Computing the xml #Without this, report don't show non-ascii characters (TO CHECK) date_xml = '\n'.join(date_xml)