Divyesh Makwana(OpenERP) has proposed merging
lp:~openerp-dev/openobject-addons/trunk-bug-885387-mdi into
lp:openobject-addons.
Requested reviews:
OpenERP Core Team (openerp)
For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-bug-885387-mdi/+merge/82136
Hello Sir,
I have fix the issue: https://bugs.launchpad.net/openobject-addons/+bug/885387
"timesheet - sign in - out : must not allow overlaps".
Thanks and Regards,
Divyesh Makwana(MDI)
--
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-bug-885387-mdi/+merge/82136
Your team OpenERP R&D Team is subscribed to branch
lp:~openerp-dev/openobject-addons/trunk-bug-885387-mdi.
=== modified file 'hr_attendance/hr_attendance.py'
--- hr_attendance/hr_attendance.py 2011-07-01 23:41:24 +0000
+++ hr_attendance/hr_attendance.py 2011-11-14 12:50:07 +0000
@@ -64,19 +64,21 @@
}
def _altern_si_so(self, cr, uid, ids, context=None):
- for id in ids:
- sql = '''
- SELECT action, name
- FROM hr_attendance AS att
- WHERE employee_id = (SELECT employee_id FROM hr_attendance WHERE id=%s)
- AND action IN ('sign_in','sign_out')
- AND name <= (SELECT name FROM hr_attendance WHERE id=%s)
- ORDER BY name DESC
- LIMIT 2 '''
- cr.execute(sql,(id,id))
- atts = cr.fetchall()
- if not ((len(atts)==1 and atts[0][0] == 'sign_in') or (len(atts)==2 and atts[0][0] != atts[1][0] and atts[0][1] != atts[1][1])):
- return False
+ current_attendance_data = self.browse(cr, uid, ids, context=context)[0]
+ obj_attendance_ids = self.search(cr, uid, [('employee_id', '=', current_attendance_data.employee_id.id)], context=context)
+ obj_attendance_ids.remove(ids[0])
+ hr_attendance_data = self.browse(cr, uid, obj_attendance_ids, context=context)
+
+ for old_attendance in hr_attendance_data:
+ if old_attendance.employee_id.id == current_attendance_data['employee_id'].id:
+ if old_attendance.action == current_attendance_data['action']:
+ return False
+ elif old_attendance.name >= current_attendance_data['name']:
+ return False
+ else:
+ return True
+ if current_attendance_data['action'] == 'sign_out':
+ return False
return True
_constraints = [(_altern_si_so, 'Error: Sign in (resp. Sign out) must follow Sign out (resp. Sign in)', ['action'])]
_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help : https://help.launchpad.net/ListHelp