Browse Source

今天代7点的码结束

任翠亮 5 years ago
parent
commit
94a5a40f46

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

@@ -2,6 +2,7 @@ from django.conf.urls import url
 from . import views
 
 urlpatterns = [
-    url(r'^paymentoperation/$',views.PaymentOperationView.as_view()),
-    url(r'^expectedpperation/$',views.ExpectedOperationView.as_view())
+    url(r'^paymentoperation/$',views.PaymentOperationView.as_view()),   #单厂商付款作业
+    url(r'^expectedpoperation/$',views.ExpectedOperationView.as_view())  ,    #预付款单
+    url(r'^expectedptoperation/$',views.ExpectedPtOperationView.as_view())      #预付冲应付
 ]

+ 261 - 10
awj/awj/apps/PaymentOperation/views.py

@@ -117,14 +117,14 @@ class PaymentOperationView(View):
             #CUS_NO  客户编码   CUS_NO
 
             #回写立账单的数据
-            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 AMTN_RCV=ISNULL(AMTN_RCV,0)+%s,AMT=ISNULL(AMTN,0)-ISNULL(AMTN_RCV,0)-%s WHERE BIL_NO=%s""",[AMTN_BC, AMTN_BC,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:
+            if row_AMT<=0:
                 cursor.execute("""UPDATE MF_ARP SET CLOSE_ID='T' WHERE BIL_NO=%s""",[MF_LZ1])
                 cursor.execute("""UPDATE MF_PSS SET LZ_CLS_ID='T',CLSLZ='T' WHERE PS_NO=%s""",['PC'+MF_LZ1[2::]])
         context = {
@@ -271,7 +271,7 @@ class PaymentOperationView(View):
                 # 回写立账单的数据需要减去之前冲款的金额  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])
+                    """UPDATE MF_ARP SET AMTN_RCV=ISNULL(AMTN_RCV,0)+%s,AMT=ISNULL(AMTN,0)-ISNULL(AMTN_RCV,0) WHERE BIL_NO=%s""",[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::]])
@@ -307,7 +307,7 @@ class ExpectedOperationView(View):
         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'))
+        row_cus_no = customer_data(CUS_NO, CUS_NO_NAME, '2', datetime.datetime.strptime(RP_DD, '%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
@@ -327,7 +327,7 @@ class ExpectedOperationView(View):
             # 插入立账金额
             # 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])
+                      (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
@@ -337,7 +337,7 @@ class ExpectedOperationView(View):
             ('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_NO  收支单号    'BT'+RP_NO[2::]
             #BB_DD   账户收支单时间  datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
             #BACC_NO  银行账号编码  CACC_NO
             #ACC_NO  会计科目先固定  100903
@@ -350,7 +350,7 @@ class ExpectedOperationView(View):
 
             #插入收支单表身
             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])
+            ('BT',%s,1,%s,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
@@ -361,13 +361,264 @@ class ExpectedOperationView(View):
         return http.JsonResponse(context)
 
     def put(self, request):
+        # 获取参数
+        req_data = json.loads(request.body.decode())
+        RP_NO = req_data.get("RP_NO")  # 预付款单号         字符类型   ----------------1
+        RP_DD = req_data.get("RP_DD")  # 预付款日期            字符类型  --------------------1
+        CUS_NO = req_data.get("CUS_NO")  # 预付款客户编码        字符类型  -------------------------1
+        CUS_NO_NAME = req_data.get("CUS_NO_NAME")  # 预付款客户名称       字符类型  ---------------------1
+        AMTN_BC = req_data.get("AMTN_BC")  # 预付款金额            数字类型  ---------------------------1
+        CACC_NO = req_data.get("CACC_NO")  # 预付款银行编码          字符类型    ------------1
+
+        # {
+        #     "RP_NO":"PT9A220001",
+        #     "RP_DD":"2019-10-22",
+        #     "CUS_NO":"AQ1111",
+        #     "CUS_NO_NAME":"天心软件",
+        #     "AMTN_BC":888,
+        #     "CACC_NO":"01"
+        # }
+
+        # 判断单号是否存在
+        row_ZL_NO = examine_ood('TF_MON', 'RP_NO', RP_NO)
+        if row_ZL_NO == 0:
+            return http.HttpResponseForbidden('单号不存在')
+
+        # 判断客户资料是否存在,不存在则创建
+        row_cus_no = customer_data(CUS_NO, CUS_NO_NAME, '2', datetime.datetime.strptime(RP_DD, '%Y-%m-%d'))
+
+        with connection.cursor() as cursor:
+            # 修改预付款单
+            # cursor.execute("SELECT CAST(ISNULL(AMT,0) AS INT ),BIL_NO FROM MF_ARP WHERE BIL_NO=%s", [MF_LZ1])
+            cursor.execute("""UPDATE TF_MON SET RP_DD=%s,CUS_NO=%s,AMTN_BC=%s,BC_NO=%s,CACC_NO=%s WHERE RP_NO=%s""",
+                           [datetime.datetime.strptime(RP_DD, '%Y-%m-%d'),CUS_NO,AMTN_BC,'BT'+RP_NO[2::],CACC_NO,RP_NO])
+
+            # 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
+            #修改立账单金额
+
+            cursor.execute("""UPDATE MF_MON SET RP_DD=%s,AMTN=%s WHERE RP_NO=%s""", [datetime.datetime.strptime(RP_DD, '%Y-%m-%d'),AMTN_BC,RP_NO])
+            # RP_NO  单号  RP_NO
+            # RP_DD   时间  datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+            # AMTN  金额    AMTN_BC
+
+            #修改账户收支单表头
+            cursor.execute("""UPDATE MF_BAC SET BB_DD=%s,BACC_NO=%s,ACC_NO=%s,BIL_NO=%s,AMTN=%s WHERE BB_NO=%s""",
+                           [datetime.datetime.strptime(RP_DD, '%Y-%m-%d'),CACC_NO,100903,'BT'+RP_NO,-float(AMTN_BC),'BT'+RP_NO[2::]])
+            # 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)
+
+            # 修改立账单表身
+
+            cursor.execute("""UPDATE TF_BAC SET BB_DD=%s,AMTN=%s,CUS_NO=%s WHERE BB_NO=%s""", [datetime.datetime.strptime(RP_DD, '%Y-%m-%d'),AMTN_BC,CUS_NO,'BT'+RP_NO[2::]])
+            # 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预付款作业'
+            'a': 'put预付款作业'
+        }
+        return http.JsonResponse(context)
+
+    def delete(self, request):
+        #获取参数
+        req_data = json.loads(request.body.decode())
+        RP_NO = req_data.get("RP_NO")  # 预付款单号
+
+        # {
+        #     "RP_NO":"PT9A220001",
+        #     "RP_DD":"2019-10-22",
+        #     "CUS_NO":"AQ1111",
+        #     "CUS_NO_NAME":"天心软件",
+        #     "AMTN_BC":888,
+        #     "CACC_NO":"01"
+        # }
+        # 判断单号是否存在
+        row_ZL_NO = examine_ood('TF_MON', 'RP_NO', RP_NO)
+        if row_ZL_NO == 0:
+            return http.HttpResponseForbidden('单号不存在')
+
+        with connection.cursor() as cursor:
+            # 修改预付款单
+            # cursor.execute("SELECT CAST(ISNULL(AMT,0) AS INT ),BIL_NO FROM MF_ARP WHERE BIL_NO=%s", [MF_LZ1])
+            #删除付款单
+            cursor.execute("""DELETE FROM TF_MON WHERE RP_NO=%s""", [RP_NO])
+            # 删除金额立账单
+            cursor.execute("""DELETE FROM MF_MON WHERE RP_NO=%s""", [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::]])
+        context = {
+            'a': 'delete预付款作业'
         }
         return http.JsonResponse(context)
 
+#预付冲应付
+class ExpectedPtOperationView(View):
+    def get(self, request):
+        with connection.cursor() as cursor:
+            # 获取预付款单的预付金额和已冲金额,进行对比,如果两个值相同,那么就结案掉预付款单
+            row_AMTN_MF_MON = cursor.execute("""SELECT ISNULL(AMTN_BC,0) AS AMTN_BC, ISNULL(AMTN_CLS,0) AS AMTN_CLS FROM TF_MON  WHERE RP_NO='PT9A220001'""").fetchall()
+            if float(row_AMTN_MF_MON[0][0])==float(row_AMTN_MF_MON[0][1]):
+                cursor.execute("""UPDATE TF_MON SET CLS_ID='T' WHERE RP_NO='PT9A220001'""")
+        context = {
+            'a': 'get预付冲应付作业'
+        }
+        return http.JsonResponse(context)
+    def post(self, request):
+
+        req_data = json.loads(request.body.decode())
+        # print(req_data)
+        # # 获取参数
+        RP_NO = req_data.get("RP_NO")  #付款单号         字符类型
+        IRP_NO = req_data.get("IRP_NO")  #预付款单号         字符类型
+        RP_DD = req_data.get("RP_DD")  #付款日期         字符类型
+        CUS_NO = req_data.get("CUS_NO")  #付款客户         字符类型
+        USR = req_data.get("USR")  #制单人         字符类型
+        list = req_data.get("list")  #付款单号         字符类型
+        # print(RP_DD)
+        # print(IRP_NO)
+        # print(list[0])
+        # 获取总金额
+        sum_ATM=0           #冲款金额
+        yf_sum=0        # 获取单据应付款总金额
+        # 判断单号是否存在
+        row_ZL_NO = examine_ood('TF_MON', 'RP_NO', RP_NO)
+        if row_ZL_NO > 0:
+            return http.HttpResponseForbidden('单号重复')
+
+        for i in list:
+            sum_ATM = round(sum_ATM + i["ATM"], 4)
+            with connection.cursor() as cursor:
+                # 获取单据应付款总金额
+                yf_sum =round(yf_sum + cursor.execute("""SELECT AMTN FROM MF_ARP WHERE BIL_NO=%s""", [i["DH"]]).fetchall()[0][0], 4)
+        if sum_ATM>yf_sum:
+            return http.HttpResponseForbidden('冲款金额大于应付金额')
+
+        # 插入预付款表头
+        with connection.cursor() as cursor:
+            # 插入回冲预付款扣款表
+            # cursor.execute("SELECT COUNT(*) FROM CUST WHERE CUS_NO=%s", [CUS_NO])
+            cursor.execute("""INSERT INTO TF_MON1(RP_ID,RP_NO,ITM,IRP_NO,RP_ID1,IRPITM,IRPITM2,AMTN_CLS)VALUES
+            (2,%s,1,%s,2,1,0,%s)""", [RP_NO,IRP_NO,sum_ATM])
+            # RP_NO  付款单号  RP_NO
+            # IRP_NO  预付款单号  IRP_NO
+            # AMTN_CLS  付款总金额  sum_ATM
+
+            # 插入付款单表头
+            cursor.execute("""INSERT INTO TF_MON(IRP_ID,RP_NO,ITM,RP_ID,CLS_ID,RP_DD,CUS_NO,INCLUDESON,AMTN_CLS,AMTN_IRP,EXC_RTO,DEP,USR,CHK_MAN,CLS_DATE,SYS_DATE,IEA_ID,IOR_ID,SK_TYPE)VALUES
+            ('F',%s,1,2,'F',%s,%s,'F',%s,%s,1,'0000',%s,%s,%s,%s,'F','F',1)""",
+            [RP_NO,datetime.datetime.strptime(RP_DD, '%Y-%m-%d'),CUS_NO,sum_ATM,sum_ATM,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_CLS  付款金额  sum_ATM
+            # AMTN_IRP   金额 sum_ATM
+            # 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')
+
+            # 插入付款单表身,先遍历出每一项的单号和金额,然后在插入
+            itm=0  #定义项次
+            for i in list:
+                itm +=1
+                print(i["DH"],i["ATM"])  #得到单号和金额
+                print(itm)
+                cursor.execute("""INSERT INTO TC_MON(RP_ID,RP_NO,ITM,ITM2,ARP_NO,AMTN_CLS,ARP_OPN_ID,RP_DD,CUS_NO,PRE_ITM)values
+                (2,%s,1,%s,%s,%s,2,%s,%s,%s)""", [RP_NO,itm,'AP'+i["DH"][2::],i["ATM"],datetime.datetime.strptime(RP_DD, '%Y-%m-%d'),CUS_NO,itm])
+                # RP_NO 付款单号  RP_NO
+                # ITM2  项次    itm
+                # ARP_NO 立账单号  'AP'+i["DH"][2::]
+                # AMTN_CLS    冲款金额  i["ATM"]
+                # RP_DD   冲款日期  datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+                # CUS_NO  客户  CUS_NO
+                # PRE_ITM  项次  itm
+
+                # 更新立账金额
+                # 回写立账单的数据
+                # cursor.execute(
+                #     """UPDATE MF_ARP SET AMTN_RCV=ISNULL(AMTN_RCV,0)+%s,AMT=ISNULL(AMTN,0)-ISNULL(AMTN_RCV,0)-%s WHERE BIL_NO=%s""",
+                #     [i["ATM"],i["ATM"], i["DH"]])
+
+                cursor.execute(
+                    """UPDATE MF_ARP SET AMTN_RCV=ISNULL(AMTN_RCV,0)+%s,AMT=ISNULL(AMTN,0)-ISNULL(AMTN_RCV,0)-%s WHERE BIL_NO=%s""",
+                    [i["ATM"],i["ATM"], i["DH"]])
+
+                # cursor.execute(
+                #     """UPDATE MF_ARP SET AMTN_RCV=ISNULL(AMTN_RCV,0)+%s,AMT=ISNULL(AMT,0)-ISNULL(AMTN_RCV,0)-%s WHERE BIL_NO=%s""",
+                #     [AMTN_BC, AMTN_BC, 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",
+                                         [i["DH"]]).fetchall()[0][0]
+                if row_AMT <= 0:
+                    cursor.execute("""UPDATE MF_ARP SET CLOSE_ID='T' WHERE BIL_NO=%s""", [i["DH"]])
+                    cursor.execute("""UPDATE MF_PSS SET LZ_CLS_ID='T',CLSLZ='T' WHERE PS_NO=%s""", ['PC' + i["DH"][2::]])
+
+            # 插入预付款已冲金额表  ------
+            cursor.execute(
+                """INSERT INTO MF_MON(RP_NO,RP_DD,RP_ID,DEP,AMTN,AMTN_ARP,AMTN_REST,FJ_NUM)VALUES(%s,%s,2,'0000',0,%s,%s,0)""",
+                [RP_NO, datetime.datetime.strptime(RP_DD, '%Y-%m-%d'), yf_sum,sum_ATM])
+            # RP_NO  单号  RP_NO
+            # RP_DD  时间  datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+            # AMTN_ARP  表身总金额   yf_sum
+            # AMTN_REST  本次冲款总金额    sum_ATM
+
+            # 更新预付款单已付金额
+            cursor.execute(
+                """UPDATE TF_MON SET AMTN_CLS=ISNULL(AMTN_CLS,0)+%s WHERE RP_NO=%s""",
+                [sum_ATM,IRP_NO])
+
+            # 获取预付款单的预付金额和已冲金额,进行对比,如果两个值相同,那么就结案掉预付款单
+            row_AMTN_MF_MON = cursor.execute(
+                """SELECT ISNULL(AMTN_BC,0) AS AMTN_BC, ISNULL(AMTN_CLS,0) AS AMTN_CLS FROM TF_MON  WHERE IRP_NO=%s""",[IRP_NO]).fetchall()
+            if float(row_AMTN_MF_MON[0][0]) == float(row_AMTN_MF_MON[0][1]):
+                cursor.execute("""UPDATE TF_MON SET CLS_ID='T' WHERE IRP_NO=%s""",[IRP_NO])
+
+
+            print(222222222222222222)
+        a = {
+                "RP_NO": "PT9A220002",
+                "IRP_NO": "PT9A220001",
+                "RP_DD":"2019-10-22",
+                "list": [
+                    {"DH": "AP9A200001",
+                     "ATM": 123.4
+                     },
+                    {"DH": "AP9A200002",
+                     "ATM": 123.0001
+                     }
+                ]
+            }
+        context = {
+            'a': 'post预付冲应付作业'
+        }
+        return http.JsonResponse(context)
+    def put(self, request):
+        context = {
+            'a': 'put预付冲应付作业'
+        }
+        return http.JsonResponse(context)
     def delete(self, request):
         context = {
-            'a': 'post预付款作业'
+            'a': 'delete预付冲应付作业'
         }
-        return http.JsonResponse(context)
+        return http.JsonResponse(context)
+
+
+
+

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

@@ -1,6 +1,24 @@
+from pip._vendor.pytoml.writer import long
+
+a = {
+    "RP_NO":"PT9A220002",
+    "IRP_NO":"PT9A220001",
+    "list":[
+        {"1":"AP9A200001",
+            "金额":123.4
+         },
+        {"2": "AP9A170002",
+            "金额": 123.2
+         },
+        {"3":"AP9A200002",
+            "金额":123.1
+         },
+    ]
+}
+b = a["list"]
+sum1 = int(0)
+print(sum1)
+for i in b:
+    sum1 += i["金额"]
+print(type(round( sum1,6)))
 
-aa=11
-if aa==12:
-    print(1)
-else:
-    print(2)