From 1c9e8ba077b296ec9c334800915fbbf76c81310c Mon Sep 17 00:00:00 2001 From: Oliver Laurent Date: Fri, 18 Jul 2014 11:53:19 +0200 Subject: [PATCH] [FIX] hr_timesheet: handle case when has never signed in The search may return zero results if an employee has never signed in. In this case the browse would have failed. --- addons/hr_attendance/hr_attendance.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/addons/hr_attendance/hr_attendance.py b/addons/hr_attendance/hr_attendance.py index 5495ebe4d25..e171c0c79c2 100644 --- a/addons/hr_attendance/hr_attendance.py +++ b/addons/hr_attendance/hr_attendance.py @@ -61,13 +61,16 @@ class hr_attendance(osv.osv): ('employee_id', '=', obj.employee_id.id), ('name', '<', obj.name), ('action', '=', 'sign_in') ], limit=1, order='name DESC') - last_signin = self.browse(cr, uid, last_signin_id, context=context)[0] + if last_signin: + last_signin = self.browse(cr, uid, last_signin_id, context=context)[0] - # Compute time elapsed between sign-in and sign-out - last_signin_datetime = datetime.strptime(last_signin.name, '%Y-%m-%d %H:%M:%S') - signout_datetime = datetime.strptime(obj.name, '%Y-%m-%d %H:%M:%S') - workedhours_datetime = (signout_datetime - last_signin_datetime) - res[obj.id] = ((workedhours_datetime.seconds) / 60) / 60 + # Compute time elapsed between sign-in and sign-out + last_signin_datetime = datetime.strptime(last_signin.name, '%Y-%m-%d %H:%M:%S') + signout_datetime = datetime.strptime(obj.name, '%Y-%m-%d %H:%M:%S') + workedhours_datetime = (signout_datetime - last_signin_datetime) + res[obj.id] = ((workedhours_datetime.seconds) / 60) / 60 + else: + res[obj.id] = False return res _columns = {