Example #1
0
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)
Example #2
0
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)
Example #3
0
 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
Example #4
0
 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)
Example #5
0
    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
Example #6
0
    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}')
Example #7
0
 def tearDown(self) -> None:
     service = OracleService()
     service.execute_delete_query('kcfeed.eabatno',
                                  self.SECOND_BATCH_NUMBER)
Example #8
0
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)