def create_document(request: Request): author: User = request.user title: str = request.data.get('title') batch_number: int = request.data.get('batch_number') document_type: str = request.data.get('document_type') approvers: str = request.data.get('approvers') approvers: Approvers = json.loads(approvers) receivers: str = request.data.get('receivers') receivers: Receivers = json.loads(receivers) attachments_files: list = request.FILES.getlist('files') attachments_counts: list = request.POST.getlist('counts') attachments_invoices: list = request.POST.getlist('invoices') if Document.objects.filter(Q(batch_number=batch_number), ~Q(doc_status__in=[2, 3])).first(): return Response(status=status.HTTP_400_BAD_REQUEST) DocumentServices(attachments=attachments_files, attachments_invoices=attachments_invoices, attachments_counts=attachments_counts, title=title, batch_number=batch_number, document_type=document_type, approvers=approvers, receivers=receivers, author=author) service = OracleService() service.execute_insert_query( 'kcfeed.eabatno', ['BATNO', 'BATDT'], [batch_number, datetime.now().strftime("%Y%m%d")]) return Response(status=status.HTTP_201_CREATED)
def voucher_list(request: Request): start_date, end_date, search, batch_number, author, user_str = create_params(request) columns = [ {'ids': 'id'}, {'RPCO': 'RPCO'}, {'RPICU': 'RPICU'}, {'RPDGJ': 'RPDGJ'}, {'RPALPH': 'RPALPH'}, {'RPDL02': 'RPDL02'}, {'RPRMK': 'RPRMK'}, {'RPTORG': 'RPTORG'}, {'RPSEQ': 'RPSEQ'}, {'RPDCT': 'RPDCT'}, {'RPDL02': 'RPDL02'}, {'RPEXR1': 'RPEXR1'}, {'RPTXA1': 'RPTXA1'}, {'RPDOC': 'RPDOC'}, {'RPTAX': 'RPTAX'}, {'RPALPH': 'RPALPH'}, {'RPSFX': 'RPSFX'}, {'RPZ5DEBITAT / 100': 'RPZ5DEBITAT'}, {'RPZ5CREDITAT / 100': 'RPZ5CREDITAT'}, {'RPAN8': 'RPAN8'}, {'RPTORG': 'RPTORG'}, {'RPDSVJ': 'RPDSVJ'}, {'RPEXR1NM': 'RPEXR1NM'}, {'RPDDJ': 'RPDDJ'}, {'RPSBLT': 'RPSBLT'}, {'RPDL03': 'RPDL03'}, {'RPCODE': 'RPCODE'}, {'RPNAME': 'RPNAME'} ] table = 'vap_voucher1' user_where = f" RPTORG in ({user_str})" wheres = [f" rpdgj >= TO_DATE({start_date}, 'YYYYMMDD')", f" rpdgj <= TO_DATE({end_date}, 'YYYYMMDD')"] if not request.user.is_superuser: wheres.append(user_where) if author: users: QuerySet = User.objects.filter(first_name=author) if not users: return Response(data=[], status=status.HTTP_200_OK) usernames: list = list(map(lambda user: user.username.upper(), users)) user_str: str = ", ".join("'{0}'".format(username) for username in usernames) wheres.append(f" RPTORG in ({user_str})") if batch_number: wheres.append(f" RPICU = {batch_number}") if search: wheres.append(f" RPRMK like '%{search}%'") service = OracleService() query = service.create_select_query(columns, table, wheres) result = service.get_result(query, columns) return Response(data=result, status=status.HTTP_200_OK)
def query_invoices(wheres: list): columns = Invoice.QUERY_COLUMS table = 'vap_voucher1' wheres = wheres service = OracleService() query = service.create_select_query(columns, table, wheres) result = service.get_result(query, columns) return result
def update_document_to_erp(self) -> None: """ 최종결재 후 해당 배치번호 update :return: """ oracle = OracleService() query = f" UPDATE PRODDTA.F0011 SET ICIST = 'A', ICPID = 'AUTOPOST' WHERE ICICU = {self.batch_number} " oracle.execute_update_query(query)
def query_batch_invoices(wheres: list, table='vap_voucher1'): columns = Invoice.QUERY_COLUMS if table == 'vga_nacct1': columns = Invoice.QUERY_COLUMS_NORMAL wheres = wheres service = OracleService() query = service.create_select_query(columns, table, wheres) result = service.get_result(query, columns) return result
def deny_sign(self, comment: str) -> None: self.deny() self.sign_date = timezone.now() if comment: self.comment = comment self.save() service = OracleService() service.execute_delete_query('kcfeed.eabatno', self.document.batch_number) self.document.finish_deny(f'[반려] {self.document.title}')
def tearDown(self) -> None: service = OracleService() service.execute_delete_query('kcfeed.eabatno', self.SECOND_BATCH_NUMBER)
def get_todo_count(request: Request): user_str: str = create_department_users(request.user.employee.department) service = OracleService() result = service.get_erp_invoices_todo_count(user_str) return Response(data=result, status=status.HTTP_200_OK)