diff --git a/addons/hr_timesheet/report/user_timesheet.py b/addons/hr_timesheet/report/user_timesheet.py index 1d1742c0add..737652fbccd 100644 --- a/addons/hr_timesheet/report/user_timesheet.py +++ b/addons/hr_timesheet/report/user_timesheet.py @@ -61,23 +61,25 @@ class report_custom(report_rml): date_xml.append('') date_xml.append('2.5cm%s,2cm\n' % (',0.7cm' * lengthmonth(som.year, som.month))) - # Computing the attendence by analytical account - cr.execute( - "select line.date, (unit_amount * unit.factor) as amount, account_id, account.name "\ - "from account_analytic_line as line, hr_analytic_timesheet as hr, "\ - "account_analytic_account as account, product_uom as unit "\ - "where hr.line_id=line.id and line.account_id=account.id "\ - "and product_uom_id = unit.id "\ - "and line.user_id=%s and line.date >= %s and line.date < %s " - "order by line.date", - (user_id, som.strftime('%Y-%m-%d'), eom.strftime('%Y-%m-%d'))) - # Sum attendence by account, then by day accounts = {} - for presence in cr.dictfetchall(): - day = int(presence['date'][-2:]) - account = accounts.setdefault((presence['account_id'], presence['name']), {}) - account[day] = account.get(day, 0.0) + presence['amount'] + header_xml = '' + if user_id: + # Computing the attendence by analytical account + cr.execute( + "select line.date, (unit_amount * unit.factor) as amount, account_id, account.name "\ + "from account_analytic_line as line, hr_analytic_timesheet as hr, "\ + "account_analytic_account as account, product_uom as unit "\ + "where hr.line_id=line.id and line.account_id=account.id "\ + "and product_uom_id = unit.id "\ + "and line.user_id=%s and line.date >= %s and line.date < %s " + "order by line.date", + (user_id, som.strftime('%Y-%m-%d'), eom.strftime('%Y-%m-%d'))) + + for presence in cr.dictfetchall(): + day = int(presence['date'][-2:]) + account = accounts.setdefault((presence['account_id'], presence['name']), {}) + account[day] = account.get(day, 0.0) + presence['amount'] xml = ''' @@ -85,13 +87,14 @@ class report_custom(report_rml): ''' rpt_obj = pooler.get_pool(cr.dbname).get('hr.employee') - rml_obj=report_sxw.rml_parse(cr, uid, rpt_obj._name,context) - header_xml = ''' -
- %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,user_id).company_id.name) + rml_obj = report_sxw.rml_parse(cr, uid, rpt_obj._name,context) + if user_id: + header_xml = ''' +
+ %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,user_id).company_id.name) account_xml = [] for account, telems in accounts.iteritems():