2017-05-30 86 views
0

我试图使用Biometric Device Integration模块来从生物特征识别设备导入考勤,但是我发现它在每次导入事件后都删除了出勤记录想。所以我删除它删除上座率从我的机器,但在这里,我再次发现,当我导入函数复制人次如何将旧记录与新记录进行比较然后导入新记录

我要的是它的旧记录(人次)用新的和进口的只是新的记录进行比较的功能。

@classmethod 
 
    def import_data_classmethod(
 
      cls, biometric_machine, biometric_data_obj, biometric_user_obj,): 
 
     attendances = biometric_machine.getattendance() 
 
     # Sorted elements using user_id and timestamp 
 
     attendances.sort(key=lambda x: (x.user_id, x.timestamp)) 
 
     for attendance in attendances: 
 
      user = biometric_user_obj.search([ 
 
       ['biometric_id', '=', int(attendance.user_id), ], ],) 
 
      if not attendance.action_perform: 
 
       continue 
 
      if not user.employee_id: 
 
       biometric_data_obj.create(
 
        {'biometric_user_id': user.id, 
 
        'datetime': attendance.timestamp, 
 
        'action_perform': attendance.action_perform, },) 
 
       continue 
 

 
       
 
      biometric_data_obj.create_hr_attendace(
 
       user.employee_id.id, attendance.timestamp, 
 
       attendance.action_perform, 
 
       user.biometric_device.id,) 
 
     #biometric_machine.clean_attendance()

回答

0

@classmethod 
 
    def import_data_classmethod(
 
      cls, biometric_machine, biometric_data_obj, biometric_user_obj,): 
 
     attendances = biometric_machine.getattendance() 
 
     # Sorted elements using user_id and timestamp 
 
     attendances.sort(key=lambda x: (x.user_id, x.timestamp)) 
 
     for attendance in attendances: 
 
      user = biometric_user_obj.search([ 
 
       ['biometric_id', '=', int(attendance.user_id), ], ],) 
 

 

 
      del_atten_ids = biometric_data_obj.search([('biometric_user_id','=',user.id),('datetime','=',str(attendance.timestamp))]) 
 
      if del_atten_ids: 
 
          # hr_attendance.unlink(cr,uid,del_atten_ids) 
 
       print "nothing to do" 
 
      elif not del_atten_ids: 
 

 

 

 

 

 
       if not attendance.action_perform: 
 
        continue 
 
       if not user.employee_id: 
 
        biometric_data_obj.create(
 
        {'biometric_user_id': user.id, 
 
        'datetime': attendance.timestamp, 
 
        'action_perform': attendance.action_perform, },) 
 
        continue 
 

 

 
       biometric_data_obj.create_hr_attendace(
 
       user.employee_id.id, attendance.timestamp, 
 
       attendance.action_perform, 
 
       user.biometric_device.id,) 
 
     #biometric_machine.clean_attendance()

相关问题