Browse Source

今天代7点的码结束

任翠亮 5 years ago
parent
commit
0ee8c26ed6

+ 2 - 1
awj/awj/apps/PaymentOperation/urls.py

@@ -2,5 +2,6 @@ from django.conf.urls import url
 from . import views
 
 urlpatterns = [
-    url(r'^paymentoperation/$',views.PaymentOperationView.as_view())
+    url(r'^paymentoperation/$',views.PaymentOperationView.as_view()),
+    url(r'^expectedpperation/$',views.ExpectedOperationView.as_view())
 ]

+ 237 - 7
awj/awj/apps/PaymentOperation/views.py

@@ -7,24 +7,26 @@ from django.shortcuts import render
 from django.views import View
 from django.db import connection
 
+from utils.cust_data import customer_data
 from utils.examine_ood import examine_ood
 from utils.usr_data import usr_data
 import datetime
 
+# 付款作业
 class PaymentOperationView(View):
     def get(self,request):
         a='TF_MON'
         b='RP_NO'
         c='PT20191015' #为0.000
-        sql="SELECT COUNT(*) FROM %s WHERE %s='%s' "%(a,b,c)
-        print(sql)
+        # sql="SELECT COUNT(*) FROM %s WHERE %s='%s' "%(a,b,c)
+        # print(sql)
         with connection.cursor() as cursor:
             # cursor.execute("INSERT INTO CUST(CUS_NO,[NAME])VALUES ('QQ12345',%s)",[a])
             # cursor.execute("UPDATE PRDT SET NAME='呜呜呜呜' where prd_no = %s", [a])
             # cursor.execute("select * from prdt where prd_no = %s", [a])
-            # row_ZL_NO = cursor.execute("SELECT * FROM MF_ARP WHERE BIL_NO=%s", [a]).fetchall()[0][0]
-            row_ZL_NO = cursor.execute(sql).fetchall()[0][0]
-            print(row_ZL_NO)
+            row_AMTN_MF_MON = cursor.execute("""SELECT AMTN FROM MF_MON WHERE RP_NO='PT9A210001'""").fetchall()[0][0]
+            # row_ZL_NO = cursor.execute(sql).fetchall()[0][0]
+            print(float(row_AMTN_MF_MON))
         context={
             'a':'get付款作业'
         }
@@ -99,7 +101,7 @@ class PaymentOperationView(View):
             # BACC_NO  银行账户代号
             #ACC_NO  会计科目      待定,需要会计确定自动取银行账号里面的会计科目
             #BIL_NO  来源单号   'PT'+RP_NO
-            #AMTN 金额   付款是负数,收款是正数      AMTN_BC
+            #AMTN 金额   付款是负数,收款是正数      -float(AMTN_BC)
             #USR  制单人       USR
             #  CHK_MAN  审核人     USR
             #CLS_DATE  审核日期
@@ -131,13 +133,241 @@ class PaymentOperationView(View):
         return http.JsonResponse(context)
 
     def put(self, request):
+        req_data = json.loads(request.body.decode())
+        # 获取参数
+        RP_NO = req_data.get("RP_NO")  #付款单号         字符类型
+        RP_DD = req_data.get("RP_DD")  #付款日期            字符类型
+        AMTN_BC = req_data.get("AMTN_BC")  #付款金额            数字类型
+        CACC_NO = req_data.get("CACC_NO")  #付款银行编码          字符类型
+        MF_LZ1 = req_data.get("MF_LZ1")  #进货开票单号         字符类型
+
+        print(RP_NO)
+        print(RP_DD)
+        print(AMTN_BC)
+        print(CACC_NO)
+        print(MF_LZ1)
+        # {
+        #     "RP_NO":"PT9A200001",
+        #     "RP_DD":"2019-10-20",
+        #     "AMTN_BC":199,
+        #     "CACC_NO":"01",
+        #     "MF_LZ1":"LP9A170002"
+        # }
+        # 判断单号是否存在
+        row_ZL_NO = examine_ood('TF_MON', 'RP_NO', RP_NO)
+        if row_ZL_NO <= 0:
+            return http.HttpResponseForbidden('单号不存在')
+
+        # 付款单不能修改客户
+        # # 判断用户是否存在,不存在则创建
+        # row_usr = usr_data(USR, USR_NAME, datetime.datetime.strptime(RP_DD, '%Y-%m-%d'))
+        with connection.cursor() as cursor:
+            # 缓存之前冲款的金额用于回写立账冲款数据
+            row_AMTN = cursor.execute("""SELECT AMTN_BC FROM TF_MON WHERE RP_NO=%s""", [RP_NO]).fetchall()[0][0]
+            #修改付款单表头
+            cursor.execute("""UPDATE TF_MON SET RP_DD=%s,AMTN_BC=%s,CACC_NO=%s WHERE RP_NO=%s""",[RP_DD, AMTN_BC, CACC_NO,RP_NO])
+            # RP_NO   付款单号  RP_NO
+            # RP_DD    付款日期   datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+            # AMTN_BC    付款金额     AMTN_BC
+            # CACC_NO        付款银行编码
+
+            # 修改付款单表身
+            cursor.execute("""UPDATE TC_MON SET RP_DD=%s,AMTN_CLS=%s WHERE RP_NO=%s""",[RP_DD, AMTN_BC, RP_NO])
+            # RP_NO   付款单号  RP_NO
+            # ARP_NO   立账单号      MF_LZ1==================不用此字段
+            # AMTN_CLS  冲款金额  AMTN_BC
+            # RP_DD  冲款时间    datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+
+            # 修改回冲金额表
+            cursor.execute("""UPDATE MF_MON SET AMTN=AMTN+%s-%s,AMTN_REST=AMTN+%s-%s WHERE RP_NO=%s""", [AMTN_BC,float(row_AMTN),AMTN_BC,float(row_AMTN), RP_NO])
+            # RP_NO  付款单号  RP_NO
+            # AMTN   冲款金额
+            # AMTN_ARP  总金额  此栏位不需要改
+            # AMTN_REST
+
+            # 修改账户收支单表头
+            cursor.execute("""UPDATE MF_BAC SET BB_DD=%s,BACC_NO=%s,ACC_NO=%s,AMTN=%s WHERE BB_NO=%s""",
+            [ datetime.datetime.strptime(RP_DD, '%Y-%m-%d'), CACC_NO, 100903, -float(AMTN_BC),'BT'+RP_NO[2::]])
+            # BB_NO  账户收支单单号  'BT'+RP_NO[2::]
+            # BB_DD   账户收支单日期  RP_NO[2::], datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+            # BACC_NO  银行账户代号       CACC_NO
+            # ACC_NO  会计科目      待定,需要会计确定自动取银行账号里面的会计科目     100903
+            # AMTN 金额   付款是负数,收款是正数      -float(AMTN_BC)
+
+            #修改账户收支单表身
+            cursor.execute("""UPDATE TF_BAC SET BB_DD=%s,AMTN=%s WHERE BB_NO=%s""",[datetime.datetime.strptime(RP_DD, '%Y-%m-%d'), AMTN_BC,'BT'+RP_NO[2::]])
+            # BB_NO  账户收支单号  'BT'+RP_NO[2::]
+            # BB_DD  账户收支单日期    datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+            # AMTN   金额      AMTN_BC
+
+            # 回写立账单的数据需要减去之前冲款的金额  row_AMTN
+            cursor.execute("""UPDATE MF_ARP SET AMTN_RCV=ISNULL(AMTN_RCV,0)+%s-%s,AMT=ISNULL(AMT,0)-%s+%s WHERE BIL_NO=%s""",[AMTN_BC,float(row_AMTN), AMTN_BC, float(row_AMTN),MF_LZ1])
+            # AMTN_RCV   已冲金额     ISNULL(AMTN_RCV,0)+%s
+            # AMT   未冲金额  ISNULL(AMT,0)-%s
+            # BIL_NO  开票单号
+
+            # 如果单据已经冲完,结案掉立账单,还有进货的立账结案标识
+            row_AMT = cursor.execute("SELECT CAST(ISNULL(AMT,0) AS INT ),BIL_NO FROM MF_ARP WHERE BIL_NO=%s",
+                                     [MF_LZ1]).fetchall()[0][0]
+            if row_AMT > 0:
+                cursor.execute("""UPDATE MF_ARP SET CLOSE_ID='F' WHERE BIL_NO=%s""", [MF_LZ1])
+                cursor.execute("""UPDATE MF_PSS SET LZ_CLS_ID='F',CLSLZ='T' WHERE PS_NO=%s""", ['PC' + MF_LZ1[2::]])
+
         context = {
             'a': 'put付款作业'
         }
         return http.JsonResponse(context)
 
     def delete(self, request):
+        # 获取参数
+        req_data = json.loads(request.body.decode())
+        # 获取参数
+        RP_NO = req_data.get("RP_NO")  # 付款单号         字符类型
+        MF_LZ1 = req_data.get("MF_LZ1")  # 开票作业单号         字符类型
+        AMTN_BC = req_data.get("AMTN_BC")  # 原单付款金额        字符类型
+        print(RP_NO)
+        print(MF_LZ1)
+        print(AMTN_BC)
+        # {
+        #     "RP_NO":"PT9A200001",
+        #     "AMTN_BC":199,
+        #     "MF_LZ1":"LP9A170002"
+        # }
+
+        # 判断单号是否存在
+        row_ZL_NO = examine_ood('TF_MON', 'RP_NO', RP_NO)
+        if row_ZL_NO <= 0:
+            return http.HttpResponseForbidden('单号不存在')
+
+        with connection.cursor() as cursor:
+        # 缓存之前冲款的金额用于回写立账冲款数据
+            row_AMTN = cursor.execute("""SELECT AMTN_BC FROM TF_MON WHERE RP_NO=%s""", [RP_NO]).fetchall()[0][0]
+            # row_usr = usr_data(USR, USR_NAME, datetime.datetime.strptime(RP_DD, '%Y-%m-%d'))
+        # 删除付款单表头
+            cursor.execute("""DELETE FROM TC_MON WHERE  RP_NO=%s""", [RP_NO])
+        # 删除付款单表身
+            cursor.execute("""DELETE FROM TF_MON WHERE  RP_NO=%s""", [RP_NO])
+
+        #冲款付款金额表,如果是分多次付款的话那么就不能直接删除,是否是付一次款那么就可以直接删除
+        # 如果原来已经付款等于目前传过来的金额那么就可以直接删除
+            row_AMTN_MF_MON = cursor.execute("""SELECT AMTN FROM MF_MON WHERE RP_NO=%s""", [RP_NO]).fetchall()[0][0]
+            if float(AMTN_BC)==float(row_AMTN_MF_MON):
+            #修改回冲金额表
+                cursor.execute("""DELETE FROM MF_MON WHERE RP_NO=%s""", [RP_NO])
+            else:
+                cursor.execute("""UPDATE MF_MON SET AMTN=AMTN+%s-%s,AMTN_REST=AMTN+%s-%s WHERE RP_NO=%s""",
+                           [AMTN_BC, row_AMTN, AMTN_BC, row_AMTN, RP_NO])
+            # 删除账户收支单表头
+            cursor.execute("""DELETE FROM MF_BAC WHERE  BB_NO=%s""", ['BT'+RP_NO[2::]])
+            # 删除账户收支单表身
+            cursor.execute("""DELETE FROM TF_BAC WHERE  BB_NO=%s""", ['BT' + RP_NO[2::]])
+
+            # 如果金额立账金额等于传过来的金额那么就直接删除
+            row_AMTN_MF_ARP = cursor.execute("""SELECT AMTN FROM MF_ARP WHERE BIL_NO=%s""", [MF_LZ1]).fetchall()[0][0]
+            print(float(row_AMTN_MF_ARP))
+            if float(AMTN_BC)==float(row_AMTN_MF_ARP):
+                cursor.execute(
+                    """UPDATE MF_ARP SET AMTN_RCV=0,AMT=0 WHERE BIL_NO=%s""",[MF_LZ1])
+                # 回写立账单的数据需要减去之前冲款的金额  row_AMTN
+            else:
+                cursor.execute(
+                    """UPDATE MF_ARP SET AMTN_RCV=ISNULL(AMTN_RCV,0)-%s,AMT=ISNULL(AMT,0)-%s WHERE BIL_NO=%s""",[AMTN_BC, AMTN_BC, MF_LZ1])
+            # 结案掉立账单, 还有进货的立账结案标识
+            cursor.execute("""UPDATE MF_ARP SET CLOSE_ID='F' WHERE BIL_NO=%s""", [MF_LZ1])
+            cursor.execute("""UPDATE MF_PSS SET LZ_CLS_ID='F',CLSLZ='T' WHERE PS_NO=%s""", ['PC' + MF_LZ1[2::]])
         context = {
-            'a': 'put付款作业'
+            'a': 'delete付款作业'
+        }
+        return http.JsonResponse(context)
+
+#预计付款单
+class ExpectedOperationView(View):
+    def get(self, request):
+        context = {
+            'a': 'get预付款作业'
+        }
+        return http.JsonResponse(context)
+
+    def post(self, request):
+        # 获取参数
+        RP_NO = request.POST.get("RP_NO")  # 预付款单号         字符类型   ----------------1
+        RP_DD = request.POST.get("RP_DD")  # 预付款日期            字符类型  --------------------1
+        CUS_NO = request.POST.get("CUS_NO")  # 预付款客户编码        字符类型  -------------------------1
+        CUS_NO_NAME = request.POST.get("CUS_NO_NAME")  # 预付款客户名称       字符类型  ---------------------1
+        AMTN_BC = request.POST.get("AMTN_BC")  # 预付款金额            数字类型  ---------------------------1
+        CACC_NO = request.POST.get("CACC_NO")  # 预付款银行编码          字符类型    ------------1
+        USR = request.POST.get("USR")  # 制单人编码                   字符类型   ------------------1
+        USR_NAME = request.POST.get("USR_NAME")  # 制单人姓名         字符类型   -----------------------1
+        # 判断单号是否存在
+        row_ZL_NO = examine_ood('TF_MON', 'RP_NO', RP_NO)
+        if row_ZL_NO > 0:
+            return http.HttpResponseForbidden('单号重复')
+
+        # 判断用户是否存在,不存在则创建
+        row_usr = usr_data(USR, USR_NAME, datetime.datetime.strptime(RP_DD, '%Y-%m-%d'))
+
+        # 判断客户资料是否存在,不存在则创建
+        row_cus_no = customer_data(CUS_NO, CUS_NO_NAME, '2', datetime.datetime.strptime(RP_NO, '%Y-%m-%d'))
+
+        with connection.cursor() as cursor:
+            cursor.execute("""INSERT INTO TF_MON(IRP_ID,RP_NO,ITM,RP_ID,CLS_ID,RP_DD,CUS_NO,INCLUDESON,AMTN_BC,AMTN_CLS,BC_NO,CACC_NO,EXC_RTO,DEP,USR,CHK_MAN,CLS_DATE,SYS_DATE,IEA_ID,IOR_ID,SK_TYPE)VALUES
+            ('T',%s,1,2,'F',%s,%s,'F',%s,0,%s,%s,1,'0000',%s,%s,%s,%s,'F','F',1)""",
+            [RP_NO, datetime.datetime.strptime(RP_DD, '%Y-%m-%d'), CUS_NO,AMTN_BC,'BT'+RP_NO[2::],CACC_NO,USR,USR,datetime.datetime.strptime(RP_DD, '%Y-%m-%d'),datetime.datetime.strptime(RP_DD, '%Y-%m-%d')])
+            # RP_NO   预付款单号  RP_NO
+            # RP_DD   预付款日期   datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+            #CUS_NO    客户编码     CUS_NO
+            #AMTN_BC    预付款金额  AMTN_BC
+            #BC_NO     账户收支单号   'BT'+RP_NO[2::]
+            # CACC_NO   付款银行编码  CACC_NO
+            #USR 制单人    USR
+            #CHK_MAN 审核人    USR
+            # CLS_DATE  审核时间    datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+            # SYS_DATE    制单时间  datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+
+            # 插入立账金额
+            # cursor.execute("SELECT CAST(ISNULL(AMT,0) AS INT ),BIL_NO FROM MF_ARP WHERE BIL_NO=%s", [MF_LZ1])
+            cursor.execute("""INSERT INTO MF_MON(RP_ID,RP_NO,RP_DD,DEP,AMTN,AMTN_ARP,AMTN_REST,FJ_NUM)VALUES
+                      (2,%s,,%s,'0000',%s,0,0,0)""" ,[RP_NO,datetime.datetime.strptime(RP_DD, '%Y-%m-%d'),AMTN_BC])
+            # RP_NO  单号  RP_NO
+            # RP_DD   时间  datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+            # AMTN  金额    AMTN_BC
+
+            # 插入账户收支单表头
+            cursor.execute("""INSERT INTO MF_BAC(BB_ID,BB_NO,BB_DD,BACC_NO,ACC_NO,DEP,BIL_NO,EXC_RTO,AMTN,USR,CHK_MAN,OPN_ID,CLS_DATE,SYS_DATE,BIL_ID_N,BIL_NO_N)VALUES
+            ('BT',%s,%s,%s,100903,'0000',%s,1,%s,%s,%s,'F',%s,%s,'PT',%s)""",
+            ['BT'+RP_NO[2::],datetime.datetime.strptime(RP_DD, '%Y-%m-%d'),CACC_NO,'BT'+RP_NO,-float(AMTN_BC),USR,USR,datetime.datetime.strptime(RP_DD, '%Y-%m-%d'),datetime.datetime.strptime(RP_DD, '%Y-%m-%d'),
+            RP_NO])
+            #BB_NO  收支单号    'BT'+MF_LZ1[2::]
+            #BB_DD   账户收支单时间  datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+            #BACC_NO  银行账号编码  CACC_NO
+            #ACC_NO  会计科目先固定  100903
+            #BIL_NO  来源单号  'BT'+RP_NO
+            #AMTN   收支单金额  -float(AMTN_BC)
+            #USR  制单人   USR
+            #审核人  CHK_MAN
+            #CLS_DATE  审核人
+            #SYS_DATE   制单人
+
+            #插入收支单表身
+            cursor.execute("""INSERT INTO TF_BAC(BB_ID,BB_NO,ITM,BB_DD,EXC_RTO,AMTN,DEP,CUS_NO,ADD_ID,PRE_ITM)values
+            ('BT',%s,1,datetime.datetime.strptime(RP_DD, '%Y-%m-%d'),1,%s,%s,'51','-',1)""", ['BT'+RP_NO[2::],datetime.datetime.strptime(RP_DD, '%Y-%m-%d'),AMTN_BC,CUS_NO])
+            # BB_NO  单号  'BT'+RP_NO[2::]
+            #BB_DD  时间      datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+            #AMTN  金额  AMTN_BC
+            #CUS_NO  客户编码   CUS_NO
+        context = {
+            'a': 'post预付款作业'
+        }
+        return http.JsonResponse(context)
+
+    def put(self, request):
+        context = {
+            'a': 'post预付款作业'
+        }
+        return http.JsonResponse(context)
+
+    def delete(self, request):
+        context = {
+            'a': 'post预付款作业'
         }
         return http.JsonResponse(context)

+ 5 - 14
awj/awj/apps/stockinvoice/xixi.py

@@ -1,15 +1,6 @@
-from django.db import connection
 
-# 用于判断进货开票单是否存在
-a = 'LP9A150003'
-def invoice_order(oo_no):
-    """
-    :param oo_no: 单号
-    :return:
-    """
-    with connection.cursor() as cursor:
-        # 判断单号是否重复
-        row_ZL_NO = cursor.execute("SELECT AMT FROM MF_ARP WHERE BIL_NO=%s", [oo_no]).fetchall()[0][0]
-        return row_ZL_NO
-b = invoice_order(a)
-print(b)
+aa=11
+if aa==12:
+    print(1)
+else:
+    print(2)

+ 1 - 0
awj/awj/utils/examine_ood.py

@@ -11,6 +11,7 @@ def examine_ood(TB,TYPE,OOD):
     :return:
     """
     sql = "SELECT COUNT(*) FROM %s WHERE %s='%s' " % (TB, TYPE, OOD)
+    print(sql)
     with connection.cursor() as cursor:
         # 判断单号是否重复
         row_ZL_NO = cursor.execute(sql).fetchall()[0][0]