def getJsonSysComCd(request): """ 공통코드(com_cd) 데이터 획득(Json) """ sysComCds = SysComCd.objects.as_list(useYn=True) return HttpResponse(makeJsonDump(resultData=sysComCds), content_type="application/json")
def shopmanJsonRegist(request): ''' 직원정보 등록 요청처리 ''' userAuth = request.user.userAuth_id # 사용자 권한 코드 if userAuth in ["S0001M", "S0001C", "S0001A"]: # 시스템관리자, 대표, 총괄만 가능 resultData = {} # 매장정보 등록 폼 shopRegistForm = ShopRegistForm( request.POST, request=request, ) # 데이터 검증 후 저장 if shopRegistForm.is_valid(): shopRegistForm.save() return HttpResponse( makeJsonDump( form=shopRegistForm, resultMessage="등록되었습니다.", resultData=resultData, ), content_type="application/json", ) else: raise PermissionDenied()
def basicmanJsonModify(request): ''' 환경설정 > 기본정보 수정 요청처리 ''' userAuth = request.user.userAuth_id # 사용자 권한 코드 if userAuth in ["S0001M", "S0001C", "S0001A"]: # 시스템관리자, 대표, 총괄만 가능 resultData = {} # 수정할 데이터 획득 companyInfo = SysCompany.objects.get( companyId=request.user.shopId.companyId, ) # 기본설정 수정 폼 basicModifyForm = BasicModifyForm( request.POST, instance=companyInfo, request=request, ) # 데이터 검증 후 저장 if basicModifyForm.is_valid(): basicModifyForm.save() return HttpResponse( makeJsonDump( form=basicModifyForm, resultMessage="수정되었습니다.", resultData=resultData, ), content_type="application/json", ) else: raise PermissionDenied()
def shopmanJsonModify(request): ''' 매장정보 수정 요청처리 ''' userAuth = request.user.userAuth_id # 사용자 권한 코드 if userAuth in ["S0001M", "S0001C", "S0001A"]: # 시스템관리자, 대표, 총괄만 가능 resultData = {} # 수정할 데이터 획득 shopInfo = SysShop.objects.for_company( companyId=request.user.orgShopId.companyId, ).get( shopId=request.POST.get("shopId")) # 매장정보 수정 폼 shopModifyForm = ShopModifyForm( request.POST, instance=shopInfo, request=request, ) # 데이터 검증 후 저장 if shopModifyForm.is_valid(): shopModifyForm.save() return HttpResponse( makeJsonDump( form=shopModifyForm, resultMessage="수정되었습니다.", resultData=resultData, ), content_type="application/json", ) else: raise PermissionDenied()
def getJsonSysMsg(request): """ 시스템메세지(sys_msg) 데이터 획득(Json) """ sysMsgs = SysMsg.objects.as_list(useYn=True) return HttpResponse(makeJsonDump(resultData=sysMsgs), content_type="application/json")
def getJsonSysCompany(request): """ 시스템회사(sys_company) 데이터 획득(Json) """ sysCompanys = SysCompany.objects.as_list() return HttpResponse(makeJsonDump(resultData=sysCompanys), content_type="application/json")
def getJsonSysHttpStatus(request): """ Http Status(com_http_status) 데이터 획득(Json) """ sysHttpStatuses = SysHttpStatus.objects.as_list(useYn=True) return HttpResponse(makeJsonDump(resultData=sysHttpStatuses), content_type="application/json")
def getJsonSysMenu(request): """ 사용자메뉴(sys_menu) 데이터 획득(Json) """ sysMenus = SysMenu.objects.as_list( userAuth=request.user.userAuth, companyTp=request.user.shopId.companyId.companyTp, ) return HttpResponse(makeJsonDump(resultData=sysMenus), content_type="application/json")
def getJsonSysShop(request): """ 권한에 따른 매장(sys_shop) 데이터 획득(Json) """ sysShops = SysShop.objects.as_list_by_auth( userAuth=request.user.userAuth_id, companyId=request.user.shopId.companyId, shopId=request.user.shopId, ) return HttpResponse(makeJsonDump(resultData=sysShops), content_type="application/json")
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()
def getJsonShopStaff(request): """ 매장직원데이터(sys_user) 데이터 획득(Json) """ ####################################### # Query 매장 직원 데이터 획득 ####################################### shopStaffs = SysUser.objects.as_list_staff_for_shop( useYn=True, shopId=request.user.shopId, userId=request.user.userId, userAuth=request.user.userAuth, ) return HttpResponse(makeJsonDump(resultData=shopStaffs), content_type="application/json")
def appreqmanJsonList(request): """ 시스템관리 > 사용관리 : 이용신청관리 : 리스트 데이터 Json """ qry = Q() # 검색조건 qry &= Q(reqStatus__comCd__contains=request.POST.get("sReqStatus")) # 진행상태 qry &= Q(companyTp__comCd__contains=request.POST.get("sCompanyTp")) # 회사구분 qry &= Q(reqId__contains=request.POST.get("sReqId")) # 요청번호 qry &= Q(companyNm__contains=request.POST.get("sCompanyNm")) # 회사명 qry &= Q(userNm__contains=request.POST.get("sUserNm")) # 대표자명 sysAppreq = SysAppreq.objects.annotate( companyTpNm=F('companyTp__comNm'), companyGradeNm=F('companyGrade__comNm'), reqStatusNm=F('reqStatus__comNm'), reqStatusCss=F('reqStatus__cdCss'), regNm=F('regId__userNm'), modNm=F('modId__userNm'), ).filter(qry).order_by('-reqId', ).values( "reqId", "reqDt", "appDt", "companyNm", "companyTpNm", "companyGradeNm", "shopNm", "addr1", "useYn", "telNo1", "telNo2", "telNo3", "cellNo1", "cellNo2", "cellNo3", "regNm", "userId", "userNm", "email", "reqStatus", "reqStatusNm", "reqStatusCss", ) return HttpResponse(makeJsonDump(resultData=list(sysAppreq)), content_type="application/json")
def getJsonTelecomNetworkCompany(request): """ 시스템 통신망별 통신사(telecom_network_telecom) 데이터 획득(Json) """ if request.method == 'POST': telecomNetworkCompany = TelecomNetworkCompany.objects.for_order( useYn=True, ).values( 'networkCompanyId', 'networkCompanyNm', 'networkId', 'companyId', 'useYn', ) return HttpResponse( makeJsonDump(resultData=list(telecomNetworkCompany)), content_type="application/json") else: raise Http404()
def appreqJsonRegist(request): ''' 이용신청 요청처리 ''' resultData = {} if request.method == 'POST': # 이용신청 폼 sysAppreqRegistForm = SysAppreqRegistForm( request.POST, request=request, ) # 데이터 검증 후 저장 if sysAppreqRegistForm.is_valid(): sysAppreqRegistForm.save() resultData["reqId"] = sysAppreqRegistForm.reqId # 가입후 메일 보내기(함수, 클래스 화 => 쓰레드 처리) ===> try: print("sendmail -------------->") send_mail( '엔텔에 가입해 주셔서 감사합니다.', '엔텔 ', '*****@*****.**', [sysAppreqRegistForm.cleaned_data.get("email")], fail_silently=False, ) print(sysAppreqRegistForm.cleaned_data.get("email")) print("sendmail --------------<") except SMTPDataError as smtpErr: print("메일 발송 실패") print(smtpErr) # 가입후 메일 보내기(함수, 클래스 화 => 쓰레드 처리) ===< return HttpResponse(makeJsonDump( form=sysAppreqRegistForm, resultData=resultData, ), content_type="application/json")
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()
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()
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()
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()
def appreqmanJsonAppr(request): ''' 이용신청 승인처리 ''' statusGrpCd = "S0008" # 진행상태 Group 코드 reqId = request.POST.get("reqId") # 요청ID reqStatus = request.POST.get("reqStatus") # 진행상태단축코드 ################################## # 0. 승인처리 대상 사용요청데이터를 획득 ################################## appreq = SysAppreq.objects.get(reqId__exact=reqId) if reqStatus == 'F': # 승인처리 요청일 경우 ################################## # 1. SysCompany에 데이터 등록 ################################## companyId = getSysSeqId(appreq.companyTp) # 회사 구분별 회사ID 획득 shopId = companyId + "0001" # 기본매장ID 획득 sysCompany = SysCompany.objects.create( companyId=companyId, companyNm=appreq.companyNm, companyTp=appreq.companyTp, companyGrade=appreq.companyGrade, networkCompanyId=appreq.networkCompanyId, realYn=True, policyId=appreq.policyId, bizLicNo1=appreq.bizLicNo1, bizLicNo2=appreq.bizLicNo2, bizLicNo3=appreq.bizLicNo3, telNo1=appreq.telNo1, telNo2=appreq.telNo2, telNo3=appreq.telNo3, cellNo1=appreq.cellNo1, cellNo2=appreq.cellNo2, cellNo3=appreq.cellNo3, chargerNm=appreq.userNm, bizTp=appreq.bizTp, bizKind=appreq.bizKind, zipCd=appreq.zipCd, addr1=appreq.addr1, addr2=appreq.addr2, regId=SysUser.objects.get(userId__exact=request.user.userId), modId=SysUser.objects.get(userId__exact=request.user.userId), ) ################################## # 2. SysShop에 데이터 등록 ################################## sysShop = SysShop.objects.create( shopId=shopId, shopNm=appreq.shopNm, companyId=sysCompany, telNo1=appreq.telNo1, telNo2=appreq.telNo2, telNo3=appreq.telNo3, cellNo1=appreq.cellNo1, cellNo2=appreq.cellNo2, cellNo3=appreq.cellNo3, zipCd=appreq.zipCd, addr1=appreq.addr1, addr2=appreq.addr2, mainYn=True, regId=SysUser.objects.get(userId__exact=request.user.userId), modId=SysUser.objects.get(userId__exact=request.user.userId), ) ################################## # 3. SysUser에 데이터 등록 ################################## SysUser.objects.create( userId=appreq.userId, password=appreq.password, useYn=True, email=appreq.email, userNm=appreq.userNm, userAuth=SysComCd.objects.get(comCd__exact="S0001C"), shopId=sysShop, orgShopId=sysShop, telNo1=appreq.telNo1, telNo2=appreq.telNo2, telNo3=appreq.telNo3, cellNo1=appreq.cellNo1, cellNo2=appreq.cellNo2, cellNo3=appreq.cellNo3, zipCd=appreq.zipCd, addr1=appreq.addr1, addr2=appreq.addr2, regId=SysUser.objects.get(userId__exact=request.user.userId), modId=SysUser.objects.get(userId__exact=request.user.userId), ) ################################## # 4. 진행상태 Update => 승인처리(F) ################################## appreq.reqStatus_id = statusGrpCd + reqStatus # 요청상태 업데이트 appreq.appDt = datetime.now() appreq.companyId = sysCompany appreq.save() elif reqStatus == 'C': # 요청취소일 경우 ################################## # 1. 진행상태 Update => 요청취소(C) ################################## appreq.reqStatus_id = statusGrpCd + reqStatus # 요청상태 업데이트 appreq.appDt = datetime.now() appreq.save() elif reqStatus == 'A': # 승인요청일 경우 ################################## # 1. 진행상태 및 Update => 승인요청(A) ################################## appreq.reqStatus_id = statusGrpCd + reqStatus # 요청상태 업데이트 appreq.appDt = None appreq.save() elif reqStatus == 'D': # 삭제일 경우 sysCompany = SysCompany.objects.get(companyId__exact=appreq.companyId) sysCompany.delete() # 적용된 데이터를 다시 획득 appreq = SysAppreq.objects.annotate( companyTpNm=F('companyTp__comNm'), companyGradeNm=F('companyGrade__comNm'), reqStatusNm=F('reqStatus__comNm'), reqStatusCss=F('reqStatus__cdCss'), regNm=F('regId__userNm'), modNm=F('modId__userNm'), ).filter(reqId__exact=reqId).values( "reqId", "reqDt", "companyNm", "companyTpNm", "companyGradeNm", "shopNm", "addr1", "useYn", "telNo1", "telNo2", "telNo3", "cellNo1", "cellNo2", "cellNo3", "regNm", "userId", "userNm", "email", "reqStatus", "reqStatusNm", "reqStatusCss", ).first() return HttpResponse(makeJsonDump( resultMessage="처리가완료되었습니다.", resultData=appreq, ), content_type="application/json")