def action(self): import datetime emp = self.object.UserID if emp.isblacklist == 1: raise Exception(_(u'黑名单不能处理离职恢复!')) emp.__class__.can_restore = True emp.isblacklist = None emp.status = STATUS_OK emp.Hiredday = datetime.datetime.now().strftime("%Y-%m-%d") emp.save() emp.__class__.can_restore = False #下载到设备 newObj = self.object.UserID from mysite.iclock.models.dev_comm_operate import sync_set_userinfo, sync_set_user_privilege, sync_set_acc_user_fingerprint #-----2012.02.02 xiaoxiaojun #sync_set_user(newObj.search_device_byuser(), [newObj]) accdev = newObj.search_accdev_byuser() #查询出人员对那些设备具有操作权限 sync_set_userinfo(accdev, [newObj]) #同步人员基本信息到设备 sync_set_acc_user_fingerprint(accdev, [newObj]) #同步人员指纹信息到设备 sync_set_user_privilege(accdev, [newObj]) #下放人员权限到设备 from base.sync_api import SYNC_MODEL if not SYNC_MODEL: # 离职恢复 from mysite.iclock.models.model_cmmdata import adj_user_cmmdata adj_user_cmmdata(newObj, [], newObj.attarea.all()) self.object.delete()
def action(self): from model_emp import Employee from mysite.iclock.models.dev_comm_operate import sync_set_userinfo dept_all = self.request.POST.getlist("dept_all")#'on'或者'' if not dept_all: emps = self.request.POST.getlist("mutiple_emp") else:#勾选 选择部门下所有人员时 dept_id = self.request.POST.getlist("deptIDs")#dept_all on #user = threadlocals.get_current_user()#根据当前用户能管理的部门进行判断 #da = user.deptadmin_set.all() #if not user.is_superuser and da: #limit_depts = [int(d.dept_id) for d in da] #dept_id = [int(left) for left in dept_id if int(left) in limit_depts]#剩余的部门list #dept_id = [int(left) for left in dept_id if int(left) in limit_depts]#剩余的部门list #print '----------dept_id=',dept_id emps = [e.id for e in Employee.objects.filter(DeptID__in=dept_id, morecard_group__isnull=True)]#选择出来部门里没有分过组的人 for emp in emps: try: self.object.employee_set.add(Employee.objects.get(pk = int(emp) or None))#建立当前对象与人的关联关系 #devs = emp.search_accdev_byuser() accmorecardgroups = self.object.accmorecardgroup_set.all() if accmorecardgroups: devs = [] emp = Employee.objects.get(pk = int(emp)) devs_emp = emp.search_accdev_byuser() for acc_group in accmorecardgroups: acc_doors = acc_group.comb.door dev = acc_doors.device if dev in devs_emp:#只有当设备中有用户权限时才下更新多卡开门人员信息的命令 devs.append(dev) sync_set_userinfo(set(devs), [emp])#更新多卡开门人员信息 except: import traceback; traceback.print_exc()
def mcegroup_emp_op(request): #删除某个组中某个或某些人员 group_id = request.GET.get("data", 0) emps = request.GET.get("emps" ,'') emps = emps.split(',') group = AccMoreCardEmpGroup.objects.filter(pk = int(group_id)) group_obj = group and group[0] or None #level_obj实际不为空 emp_objs = Employee.objects.filter(pk__in = emps) if group_obj: for e in emp_objs: e.morecard_group = None e.save() #group_obj.employee_set.remove(e) devs = filterdata_by_user(Device.objects.all(), request.user) #print '---devs=',devs sync_set_userinfo(devs, emp_objs) return HttpResponse(smart_str({ 'ret': 1 })) else: return HttpResponse(smart_str({ 'ret': 0 }))
def mcegroup_emp_op(request): #删除某个组中某个或某些人员 group_id = request.GET.get("data", 0) emps = request.GET.get("emps", '') emps = emps.split(',') group = AccMoreCardEmpGroup.objects.filter(pk=int(group_id)) group_obj = group and group[0] or None #level_obj实际不为空 emp_objs = Employee.objects.filter(pk__in=emps) if group_obj: for e in emp_objs: e.morecard_group = None e.save() #group_obj.employee_set.remove(e) devs = filterdata_by_user(Device.objects.all(), request.user) #print '---devs=',devs sync_set_userinfo(devs, emp_objs) return HttpResponse(smart_str({'ret': 1})) else: return HttpResponse(smart_str({'ret': 0}))
def funIssueCardSave(request): from mysite.pos.models import CarCashSZ, CarCashType from base.cached_model import STATUS_INVALID, STATUS_LEAVE from mysite.personnel.models.model_issuecard import IssueCard, PRIVAGE_CARD, CARD_LOST, CARD_STOP, CARD_OVERDUE, CARD_VALID obj = request.POST request.session.save() card = int(obj['card']) operate_type = obj['operate_type'] money = Decimal(obj['money']) sys_card_no = obj['sys_card_no'] card_serial_no = int(obj['card_serial_no']) operate_type = obj['operate_type'] if operate_type == '8': #手工补消费 name = obj['name'] labor = obj['labor'] meal = obj['meal'] pos_device = obj['posdevice'] date = obj['date'] c_blance = Decimal(obj['blance']) if operate_type == '4': #退卡 card_serial_no += 1 card_blance = Decimal(obj['card_blance']) if operate_type in ['1', '5']: #充值、退款 card_new_blance = obj['op_card_blance'] objcard = IssueCard.objects.get(sys_card_no=sys_card_no) if objcard: # blance_valid(objcard.type_id,newblance,objcard.UserID)#验证余额 try: if operate_type == '4': #退卡操作,改变状态为无效 objcard.status = STATUS_INVALID objcard.cardstatus = STATUS_INVALID objcard.blance = 0 objcard.save() from mysite.iclock.models.dev_comm_operate import delete_pos_device_info, update_pos_device_info, sync_delete_user, sync_delete_user_privilege, sync_delete_user, sync_report_user from mysite.iclock.models.model_device import Device, DEVICE_POS_SERVER from mysite.pos.models.model_loseunitecard import LoseUniteCard from mysite.personnel.models.model_leave import get_leave_user_info dev = Device.objects.filter(device_type=DEVICE_POS_SERVER) delete_pos_device_info(dev, [objcard], "USERINFO") #删除黑白名单 # update_pos_device_info(dev,[objcard],"USERINFO")#添加黑名单 # LoseUniteCard.objects.all().filter(UserID = objcard.UserID_id).delete()#删除挂失解挂记录 if get_option("ATT") and not get_leave_user_info( objcard.UserID_id, "isClassAtt"): from base.sync_api import SYNC_MODEL if not SYNC_MODEL: from mysite.iclock.models.model_cmmdata import adj_user_cmmdata adj_user_cmmdata(objcard.UserID, [], objcard.UserID.attarea.all()) if get_option("IACCESS") and not get_leave_user_info( objcard.UserID_id, "isClassAccess"): from mysite.iclock.models.dev_comm_operate import sync_set_userinfo, sync_set_user_privilege newObj = objcard.UserID accdev = newObj.search_accdev_byuser() #查询出人员对那些设备具有操作权限 sync_set_userinfo(accdev, [newObj]) #同步人员基本信息到设备 else: if operate_type == '5' or operate_type == '1': #退款,充值 card_serial_no += 1 newblance = card_new_blance else: #手工补消费 card_serial_no += 1 newblance = c_blance - money objcard.blance = newblance objcard.card_serial_num = card_serial_no objcard.save() if operate_type == '8': #手工补消费 from mysite.pos.models.model_handconsume import HandConsume HandConsume(card=card, sys_card_no=sys_card_no, blance=objcard.blance, name=name, labor=labor, meal_id=meal, posdevice_id=pos_device, money=money, date=date, card_serial_no=card_serial_no).save() if operate_type == '4' and card_blance > 0: CarCashSZ( user=objcard.UserID, card=card, checktime=datetime.now(), type_id=5, #charge type money=card_blance, blance=0, sys_card_no=sys_card_no, cardserial=card_serial_no, hide_column=5, log_flag=2).save() if operate_type <> '8': CarCashSZ( user=objcard.UserID, card=card, checktime=datetime.now(), type_id=operate_type, #charge type money=money, blance=objcard.blance, sys_card_no=sys_card_no, cardserial=card_serial_no, hide_column=operate_type, log_flag=2).save() return getJSResponse("result=OK") except: import traceback traceback.print_exc() return getJSResponse("result=FAIL")