[FIX] hr_timesheet_sheet: attendance state of an employee was sometimes not correctly stated on the timesheet.sheet when uid had more than one employee assigned. Removed useless and stupid code that was messing to find on which employee to check the attendance status, as it's given on the sheet. Replaced by a fields.related

bzr revid: qdp-launchpad@openerp.com-20111028103957-nkekeqjuyn44phnv
This commit is contained in:
Quentin (OpenERP) 2011-10-28 12:39:57 +02:00
parent ba2666ccaa
commit 0384b8bfbf
1 changed files with 1 additions and 20 deletions

View File

@ -143,25 +143,6 @@ class hr_timesheet_sheet(osv.osv):
res[record[0]]['total_difference'] = record[3]
return res
def _state_attendance(self, cr, uid, ids, name, args, context=None):
emp_obj = self.pool.get('hr.employee')
result = {}
link_emp = {}
emp_ids = []
for sheet in self.browse(cr, uid, ids, context=context):
result[sheet.id] = 'none'
emp_ids2 = emp_obj.search(cr, uid,
[('user_id', '=', sheet.user_id.id)], context=context)
if emp_ids2:
link_emp[emp_ids2[0]] = sheet.id
emp_ids.append(emp_ids2[0])
for emp in emp_obj.browse(cr, uid, emp_ids, context=context):
if emp.id in link_emp:
sheet_id = link_emp[emp.id]
result[sheet_id] = emp.state
return result
def check_employee_attendance_state(self, cr, uid, sheet_id, context=None):
ids_signin = self.pool.get('hr.attendance').search(cr,uid,[('sheet_id', '=', sheet_id),('action','=','sign_in')])
ids_signout = self.pool.get('hr.attendance').search(cr,uid,[('sheet_id', '=', sheet_id),('action','=','sign_out')])
@ -286,7 +267,7 @@ class hr_timesheet_sheet(osv.osv):
help=' * The \'Draft\' state is used when a user is encoding a new and unconfirmed timesheet. \
\n* The \'Confirmed\' state is used for to confirm the timesheet by user. \
\n* The \'Done\' state is used when users timesheet is accepted by his/her senior.'),
'state_attendance' : fields.function(_state_attendance, type='selection', selection=[('absent', 'Absent'), ('present', 'Present'),('none','No employee defined')], string='Current Status'),
'state_attendance' : fields.related('employee_id', 'state', type='selection', selection=[('absent', 'Absent'), ('present', 'Present')], string='Current Status'),
'total_attendance_day': fields.function(_total_day, string='Total Attendance', multi="_total_day"),
'total_timesheet_day': fields.function(_total_day, string='Total Timesheet', multi="_total_day"),
'total_difference_day': fields.function(_total_day, string='Difference', multi="_total_day"),