Exemplo n.º 1
0
    def clean(self):
        cleaned_data = super(AccountModifyForm, self).clean()

        # 통신사 선택 체크
        companyTp = self.instance.companyTp.comCd
        if companyTp == 'S0004D':  # 딜러점일 경우
            if is_empty(self.request.POST.getlist("networkCompanyIdD")):
                self.add_error('networkCompanyIdD', _('통신사를 선택해 주세요.'))
        elif companyTp == 'S0004A':  # 대리점일 경우
            if is_empty(self.request.POST.get("networkCompanyIdA")):
                self.add_error('networkCompanyIdA', _('통신사를 선택해 주세요.'))
        elif companyTp == 'S0004C':  # 유선사업일 경우
            if is_empty(self.request.POST.getlist("networkCompanyIdC")):
                self.add_error('networkCompanyIdC', _('통신사를 선택해 주세요.'))
Exemplo n.º 2
0
def masking_id(data):
    '''
    아이디 마스킹 처리
    '''
    if not is_empty(data) and len(data) > 0:
        data = data[:2].ljust(4, "*") + data[-2:]
    return data
Exemplo n.º 3
0
def masking_tel_no(data=None):
    '''
    전화번호 마스킹 처리
    '''
    if not is_empty(data) and len(data) > 0:
        data = data[:1].ljust(4, "*")
    return data
Exemplo n.º 4
0
def masking_name(data):
    '''
    이름 마스킹 처리
    '''
    if not is_empty(data) and len(data) > 0:
        data = data[:1].ljust(len(data), "*")
    return data
Exemplo n.º 5
0
def makeJsonDump(result=True,
                 resultMessage=None,
                 form=None,
                 resultData=None,
                 maskYn=False,
                 maskFields=None):
    '''
    json결과 세팅
    '''
    jsonData = {}
    resultCode = "OK" if result else "NG"
    errorItem = ""

    # From 데이터가 있는 경우
    if form is not None:
        if len(form.errors) == 0:
            resultCode = "OK"
        else:
            errorItem = list(form.errors.keys())[0]
            resultMessage = form[errorItem].errors.as_text().replace(
                "* ", "\n")
            resultCode = "NG"

    # 데이터 마스킹 처리
    if not is_empty(resultData) and maskYn and not is_empty(maskFields):
        for data in resultData:
            for keyField, valType in maskFields.items():
                data[keyField] = masking_data(data[keyField], valType)

    # 결과 코드 세팅
    jsonData['resultCode'] = resultCode
    jsonData[
        'resultMessage'] = resultMessage if resultMessage is not None else ""
    jsonData['resultData'] = resultData if resultData is not None else {}
    jsonData['errorItem'] = errorItem

    jsonDumps = json.dumps(
        jsonData,
        default=jsonDefault,
        indent=2,
    )

    # Json 데이터 확인
    if settings.DEBUG:
        print(jsonDumps)

    return jsonDumps
Exemplo n.º 6
0
def masking_data(data=None, maskType=None):
    '''
    데이터 마스킹 처리
    '''
    if is_empty(data) or is_empty(maskType):
        return data

    if maskType == "T":  # 전화번호
        data = masking_tel_no(data)
    elif maskType == "N":  # 이름
        data = masking_name(data)
    elif maskType == "I":  # 아이디
        data = masking_id(data)
    else:
        pass

    return data
Exemplo n.º 7
0
    def clean(self):
        cleaned_data = super(SysAppreqRegistForm, self).clean()

        # 사용가능한 ID인지 체크
        if not isUsableId(cleaned_data.get('userId')):
            self.add_error('userId', _('사용하실 수 없는 아이디입니다.'))

        # 비밀번호 & 비밀번호 확인 일치 여부 체크
        password = cleaned_data.get('password')
        passwordChk = cleaned_data.get('passwordChk')
        if password != passwordChk:
            self.add_error('password', _('비밀번호확인과 일치하지 않습니다.'))

        # 통신사 선택 체크
        companyTp = self.request.POST.get('companyTp')
        if companyTp == 'S0004D':  # 딜러점일 경우
            if is_empty(self.request.POST.getlist("networkCompanyIdD")):
                self.add_error('networkCompanyIdD', _('통신사를 선택해 주세요.'))
        elif companyTp == 'S0004A':  # 대리점일 경우
            if is_empty(self.request.POST.get("networkCompanyIdA")):
                self.add_error('networkCompanyIdA', _('통신사를 선택해 주세요.'))
        elif companyTp == 'S0004C':  # 유선사업일 경우
            if is_empty(self.request.POST.getlist("networkCompanyIdC")):
                self.add_error('networkCompanyIdC', _('통신사를 선택해 주세요.'))
Exemplo n.º 8
0
def accountmanJsonModify(request):
    '''
    거래처정보 수정 요청처리
    '''
    userAuth = request.user.userAuth_id  # 사용자 권한 코드

    if userAuth in [
            "S0001M",
            "S0001C",
            "S0001A",
    ]:  # 시스템관리자, 대표, 총괄만 가능
        resultData = {}

        # 수정할 데이터 획득
        accountInfo = SysCompany.objects.for_account(
            companyId=request.user.shopId.companyId,
            realYn=False,  # 실제 매장은 수정대상이 아님
        ).get(companyId__exact=request.POST.get("accountId"))

        # 거래처정보 수정 폼
        accountModifyForm = AccountModifyForm(
            request.POST,
            instance=accountInfo,
            request=request,
        )

        # 데이터 검증 후 저장
        if accountModifyForm.is_valid():
            accountModifyForm.save()

            # 거래처 연결 사용여부 저장
            comapnyAccount = SysCompanyAccount.objects.for_company(
                request.user.shopId.companyId).get(
                    accountId=accountInfo.companyId, )
            comapnyAccount.useYn = not is_empty(request.POST.get("useYn"))
            comapnyAccount.modId = request.user
            comapnyAccount.save()

        return HttpResponse(
            makeJsonDump(
                form=accountModifyForm,
                resultMessage="수정되었습니다.",
                resultData=resultData,
            ),
            content_type="application/json",
        )
    else:
        raise PermissionDenied()
Exemplo n.º 9
0
    def save(self, commit=True):
        cleaned_data = super(StaffModifyForm, self).clean()
        instanceStaffModify = super(StaffModifyForm, self).save(commit=False)

        instanceStaffModify.connLimit = "".join(
            self.request.POST.getlist("connLimit"))  # 접속제한

        # 비밀번호가 입력되었을 경우
        if not is_empty(self.request.POST.get("password")):
            instanceStaffModify.password = make_password(
                self.request.POST.get("password"))

        # 현재사용매장 세팅
        instanceStaffModify.shopId = cleaned_data.get("orgShopId")

        instanceStaffModify.modId = self.request.user  # 수정자ID

        if commit:
            instanceStaffModify.save()
        return instanceStaffModify
Exemplo n.º 10
0
def accountmanJsonRegist(request):
    '''
    거래처정보 등록 요청처리
    '''
    userAuth = request.user.userAuth_id  # 사용자 권한 코드

    if userAuth in ["S0001M", "S0001C", "S0001A"]:  # 시스템관리자, 대표, 총괄만 가능

        resultData = {}

        # 거래처정보 등록 폼
        accountRegistForm = AccountRegistForm(
            request.POST,
            request=request,
        )

        # 거래처 정보 등록
        if accountRegistForm.is_valid():
            # 거래처 회사 등록
            accountCompany = accountRegistForm.save()

            # 거래처 연결 등록
            SysCompanyAccount.objects.create(
                companyId=request.user.shopId.companyId,
                accountId=accountCompany,
                useYn=not is_empty(request.POST.get("useYn")),
                regId=request.user,
                modId=request.user,
            )

        return HttpResponse(makeJsonDump(
            form=accountRegistForm,
            resultMessage="등록되었습니다.",
            resultData=resultData,
        ),
                            content_type="application/json")
    else:
        raise PermissionDenied()
Exemplo n.º 11
0
def accountmanJsonList(request):
    '''
    환경설정 >  거래처관리  : 리스트 데이터 Json
    '''
    userAuth = request.user.userAuth_id  # 사용자 권한 코드

    if userAuth in ["S0001M", "S0001C", "S0001A"]:  # 시스템관리자, 대표, 총괄만 가능
        # 검색조건(Parameter)
        sUseYn = request.POST.get("sUseYn")
        sCompanyTp = request.POST.get("sCompanyTp")
        sAccountNm = request.POST.get("sAccountNm")

        # Query
        qry = Q()
        ####################
        # 검색 조건
        ####################
        if not is_empty(sUseYn):  # 사용여부
            qry &= Q(useYn__exact=sUseYn)

        qry &= Q(accountId__companyTp__comCd__contains=sCompanyTp)  # 거래처구분
        qry &= Q(accountId__companyNm__contains=sAccountNm)  # 거래처명

        accountInfos = SysCompanyAccount.objects.for_company(
            request.user.shopId.companyId)

        accountInfos = accountInfos.filter(qry).annotate(
            accountNm=F('accountId__companyNm'),  # 거래처명
            companyTp=F('accountId__companyTp'),  # 거래처구분
            companyTpNm=F('accountId__companyTp__comNm'),  # 거래처구분명
            telNo1=F('accountId__telNo1'),  # 거래처전화1
            telNo2=F('accountId__telNo2'),  # 거래처전화2
            telNo3=F('accountId__telNo3'),  # 거래처전화3
            faxNo1=F('accountId__faxNo1'),  # 거래처Fax1
            faxNo2=F('accountId__faxNo2'),  # 거래처Fax2
            faxNo3=F('accountId__faxNo3'),  # 거래처Fax3
            cellNo1=F('accountId__cellNo1'),  # 거래처담당자휴대폰1
            cellNo2=F('accountId__cellNo2'),  # 거래처담당자휴대폰2
            cellNo3=F('accountId__cellNo3'),  # 거래처담당자휴대폰3
            addr1=F('accountId__addr1'),  # 거래처주소1
            addr2=F('accountId__addr2'),  # 거래처주소2
            realYn=F('accountId__realYn'),  # 시스템사용 실 거래처 여부
            networkCompanyId=F('accountId__networkCompanyId'),  # 망통신사
            chargerNm=F('accountId__chargerNm'),  # 담당자명
        ).order_by(
            "-useYn",
            "accountNm",
        ).values(
            "id",
            "companyId",
            "accountId",
            "accountNm",
            "companyTp",
            "companyTpNm",
            "addr1",
            "addr2",
            "useYn",
            "cellNo1",
            "cellNo2",
            "cellNo3",
            "telNo1",
            "telNo2",
            "telNo3",
            "faxNo1",
            "faxNo2",
            "faxNo3",
            "realYn",
            "networkCompanyId",
            "chargerNm",
            "regDt",
            "regId",
            "modDt",
            "modId",
        )

        return HttpResponse(
            makeJsonDump(resultData=list(accountInfos), ),
            content_type="application/json",
        )
    else:
        raise PermissionDenied()
Exemplo n.º 12
0
def shopmanJsonList(request):
    '''
    환경설정 > 매장관리  : 리스트 데이터 Json
    '''
    userAuth = request.user.userAuth_id  # 사용자 권한 코드

    if userAuth in ["S0001M", "S0001C", "S0001A"]:  # 시스템관리자, 대표, 총괄만 가능
        # 검색조건(Parameter)
        sUseYn = request.POST.get("sUseYn")
        sShopNm = request.POST.get("sShopNm")

        # Query
        qry = Q()
        ####################
        # 검색 조건
        ####################
        if not is_empty(sUseYn):  # 사용여부
            qry &= Q(useYn__exact=sUseYn)

        if not is_empty(sShopNm):  # 매장명
            qry = Q(shopNm__exact=sShopNm)

        shopInfos = SysShop.objects.for_company(
            companyId=request.user.orgShopId.companyId).filter(qry).annotate(
                staffCnt=Count("r_system_sysuser_org_shop_id"),
                staffCntUseY=Count(
                    Case(
                        When(r_system_sysuser_org_shop_id__useYn__exact=True,
                             then=1),
                        output_field=IntegerField(),
                    )),
                staffCntUseN=Count(
                    Case(
                        When(r_system_sysuser_org_shop_id__useYn__exact=False,
                             then=1),
                        output_field=IntegerField(),
                    )),
            ).order_by("-useYn", ).values(
                "shopId",
                "shopNm",
                "zipCd",
                "addr1",
                "addr2",
                "useYn",
                "cellNo1",
                "cellNo2",
                "cellNo3",
                "telNo1",
                "telNo2",
                "telNo3",
                "faxNo1",
                "faxNo2",
                "faxNo3",
                "mainYn",
                "staffCnt",
                "staffCntUseY",
                "staffCntUseN",
                "regDt",
                "regId",
                "modDt",
                "modId",
            )

        return HttpResponse(
            makeJsonDump(resultData=list(shopInfos),
                         maskYn=is_masked_data(request.user),
                         maskFields={
                             "cellNo2": "T",
                         }),
            content_type="application/json",
        )
    else:
        raise PermissionDenied()
Exemplo n.º 13
0
def staffmanJsonList(request):
    '''
    환경설정 > 직원관리  : 리스트 데이터 Json
    '''
    userAuth = request.user.userAuth_id  # 사용자 권한 코드

    # 시스템관리자, 대표, 총괄, 점장만 가능
    if userAuth in ["S0001M", "S0001C", "S0001A", "S0001T"]:
        # 검색조건(Parameter)
        sUseYn = request.POST.get("sUseYn")
        sOrgShopId = request.POST.get("sOrgShopId")
        sUserNm = request.POST.get("sUserNm")
        sUserId = request.POST.get("sUserId")
        sUserAuth = request.POST.get("sUserAuth")

        # Query
        qry = Q()
        ####################
        # 검색 조건
        ####################
        if not is_empty(sUseYn):  # 사용여부
            qry &= Q(useYn__exact=sUseYn)

        if not is_empty(sOrgShopId):  # 검색 매장아이디가 있을 경우
            qry &= Q(orgShopId__exact=sOrgShopId)

        qry &= Q(userNm__contains=sUserNm)  # 직원명
        qry &= Q(userId__contains=sUserId)  # 직원아이디
        qry &= Q(userAuth__comCd__contains=sUserAuth)  # 직원권한

        ####################
        # 제외 조건
        ####################
        # Exclude Query
        qryEx = Q()

        if userAuth not in ["S0001M", "S0001C",
                            "S0001A"]:  # 시스템관리자, 대표, 총괄이 아닐 경우 팀장 이하만 조회
            qryEx &= Q(userAuth__in=["S0001M", "S0001C", "S0001A"])
        elif userAuth not in ["S0001M",
                              "S0001C"]:  # 시스템관리자, 대표가 아닐 경우 총괄 이하만 조회
            qryEx &= Q(userAuth__in=["S0001M", "S0001C"])
        elif userAuth not in ["S0001M"]:  # 시스템관리자 아닐 경우 대표 이하만 조회
            qryEx &= Q(userAuth__in=["S0001M"])

        ####################
        # 조회
        ####################
        staffInfos = None
        if userAuth == "S0001T":  # 점장일 경우
            staffInfos = SysUser.objects.for_shop(
                orgShopId=request.user.orgShopId)
        else:
            staffInfos = SysUser.objects.for_company(
                companyId=request.user.orgShopId.companyId)

        staffInfos = staffInfos.filter(qry).exclude(qryEx).annotate(
            shopNm=F('shopId__shopNm'),  # 매장명
            orgShopNm=F('orgShopId__shopNm'),  # 소속매장명
            companyNm=F('shopId__companyId__companyNm'),  # 회사명
            userAuthNm=F('userAuth__comNm'),  # 권한명
            regNm=F('regId__userNm'),  # 등록자명
            modNm=F('modId__userNm'),  # 수정자명
            lastLogin=F('last_login'),  # 마지막 로그인 일시
            authSeq=F('userAuth__ordSeq'),  # 권한정렬순서
        ).order_by(
            "-useYn",
            "orgShopId",
            "authSeq",
            "userNm",
        ).values(
            "useYn",
            "shopNm",
            "orgShopNm",
            "userAuth",
            "userAuthNm",
            "userNm",
            "userId",
            "telNo1",
            "telNo2",
            "telNo3",
            "cellNo1",
            "cellNo2",
            "cellNo3",
            "addr1",
            "connLimit",
            "loginCnt",
            "lastLogin",
            "regDt",
            "companyNm",
            "email",
            "authSeq",
        )

        return HttpResponse(
            makeJsonDump(resultData=list(staffInfos),
                         maskYn=is_masked_data(request.user),
                         maskFields={
                             "cellNo2": "T",
                             "telNo2": "T",
                             "userId": "I",
                         }),
            content_type="application/json",
        )
    else:
        raise PermissionDenied()