Esempio n. 1
0
 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()
Esempio n. 3
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 }))
Esempio n. 4
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}))
Esempio n. 5
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")