瀏覽代碼

调整银行编码的

Signed-off-by: 任翠亮 <1244632764@qq.com>
任翠亮 5 年之前
父節點
當前提交
7316d09053

+ 186 - 36
awj/awj/apps/PaymentOperation/views.py

@@ -1,17 +1,18 @@
+import datetime
 import json
-import traceback
+import re
 
 from django import http
-from django.shortcuts import render
+from django.db import connection
 from django.db import transaction
 # Create your views here.
 from django.views import View
-from django.db import connection
 
 from utils.cust_data import customer_data
+from utils.et_CACC_NO import et_CACC_NO
 from utils.examine_ood import examine_ood
 from utils.usr_data import usr_data
-import datetime
+
 
 # 付款作业
 class PaymentOperationView(View):
@@ -46,7 +47,23 @@ class PaymentOperationView(View):
         USR_NAME = request.POST.get("USR_NAME")  #制单人姓名         字符类型
         MF_LZ1 = request.POST.get("MF_LZ1")  #进货开票单号         字符类型
 
-
+        # 判断单号的合法性
+        if RP_NO[:3] != 'PTF' or len(RP_NO) != 10:
+            return http.HttpResponseForbidden('付款单号输入不合法,单号必须是PTF开头且长度必须是10位')
+        # 校验日期格式
+        try:
+            datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+        except Exception:
+            return http.HttpResponseForbidden('日期格式输入不正确')
+        if RP_NO is None:
+            return http.HttpResponseForbidden('请输入付款单号')
+        # //判断有没有输入银行账号
+        sum_CACC_NO = et_CACC_NO(CACC_NO)
+        if sum_CACC_NO == 'NO':
+            return http.HttpResponseForbidden('请检查银行账号是否存在或者是否输入正确')
+            # 判断金额输入是否正确
+        if re.compile('(^-?[0-9](\d+)?(\.\d{1,6})?$)|(^0$)|(^\d\.\d{1,2}$)').match(str(AMTN_BC)) is None:
+            return http.HttpResponseForbidden('金额输入不正确')
         # 判断单号是否存在
         row_ZL_NO = examine_ood('TF_MON', 'RP_NO', RP_NO,'RP_ID','2')
         if row_ZL_NO > 0:
@@ -136,7 +153,8 @@ class PaymentOperationView(View):
                 # 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]
+                row_AMT = cursor.execute("SELECT ISNULL(AMT,0) FROM MF_ARP WHERE BIL_NO=%s", [MF_LZ1]).fetchall()[0][0]
+                print(row_AMT)
                 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::]])
@@ -159,11 +177,6 @@ class PaymentOperationView(View):
         CACC_NO = req_data.get("CACC_NO")  #付款银行编码          字符类型
         MF_LZ1 = req_data.get("MF_LZ1")  #进货开票单号         字符类型
         UP_DD = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')  #修改时间
-        print(RP_NO)
-        print(RP_DD)
-        print(AMTN_BC)
-        print(CACC_NO)
-        print(MF_LZ1)
         # {
         #     "RP_NO":"PT9A200001",
         #     "RP_DD":"2019-10-20",
@@ -171,10 +184,24 @@ class PaymentOperationView(View):
         #     "CACC_NO":"01",
         #     "MF_LZ1":"LP9A170002"
         # }
+        # 校验日期格式
+        try:
+            datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+        except Exception:
+            return http.HttpResponseForbidden('日期格式输入不正确')
+        if RP_NO is None:
+            return http.HttpResponseForbidden('请输入收款单号')
+            # 判断金额输入是否正确
+        if re.compile('(^-?[0-9](\d+)?(\.\d{1,6})?$)|(^0$)|(^\d\.\d{1,2}$)').match(str(AMTN_BC)) is None:
+            return http.HttpResponseForbidden('金额输入不正确')
         # 判断单号是否存在
         row_ZL_NO = examine_ood('TF_MON', 'RP_NO', RP_NO,'RP_ID','2')
         if row_ZL_NO <= 0:
             return http.HttpResponseForbidden('付款单号不存在')
+        # //判断有没有输入银行账号
+        sum_CACC_NO = et_CACC_NO(CACC_NO)
+        if sum_CACC_NO == 'NO':
+            return http.HttpResponseForbidden('请检查银行账号是否存在或者是否输入正确')
 
         # 付款单不能修改客户
         # # 判断用户是否存在,不存在则创建
@@ -266,11 +293,10 @@ class PaymentOperationView(View):
         # print(MF_LZ1)
         # print(AMTN_BC)
         # {
-        #     "RP_NO":"PT9A200001",
-        #     "AMTN_BC":199,
-        #     "MF_LZ1":"LP9A170002"
+        #     "RP_NO": "PTF9A260001"
         # }
-
+        if RP_NO is None:
+            return http.HttpResponseForbidden('请输入收款单号')
         # 判断单号是否存在
         row_ZL_NO = examine_ood('TF_MON', 'RP_NO', RP_NO,'RP_ID','2')
         if row_ZL_NO <= 0:
@@ -349,6 +375,24 @@ class ExpectedOperationView(View):
         CACC_NO = request.POST.get("CACC_NO")  # 预付款银行编码          字符类型    ------------1
         USR = request.POST.get("USR")  # 制单人编码                   字符类型   ------------------1
         USR_NAME = request.POST.get("USR_NAME")  # 制单人姓名         字符类型   -----------------------1
+
+        # 判断单号的合法性
+        if RP_NO[:4] != 'PTYF' or len(RP_NO) != 11:
+            return http.HttpResponseForbidden('预付款单号输入不合法,单号必须是PTYF开头且长度必须是11位')
+        # 校验日期格式
+        try:
+            datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+        except Exception:
+            return http.HttpResponseForbidden('日期格式输入不正确')
+        if RP_NO is None:
+            return http.HttpResponseForbidden('请输入预付款单号')
+            # //判断有没有输入银行账号
+        sum_CACC_NO = et_CACC_NO(CACC_NO)
+        if sum_CACC_NO == 'NO':
+            return http.HttpResponseForbidden('请检查银行账号是否存在或者是否输入正确')
+            # 判断金额输入是否正确
+        if re.compile('(^-?[0-9](\d+)?(\.\d{1,6})?$)|(^0$)|(^\d\.\d{1,2}$)').match(str(AMTN_BC)) is None:
+            return http.HttpResponseForbidden('金额输入不正确')
         # 判断单号是否存在
         row_ZL_NO = examine_ood('TF_MON', 'RP_NO', RP_NO,'RP_ID','2')
         if row_ZL_NO > 0:
@@ -361,9 +405,9 @@ class ExpectedOperationView(View):
         row_cus_no = customer_data(CUS_NO, CUS_NO_NAME, '2', datetime.datetime.strptime(RP_DD, '%Y-%m-%d'))
 
         with connection.cursor() as cursor:
+            # sql = "SELECT COUNT(*) FROM %s WHERE %s='%s' AND %s='%s'" % (TB, TYPE, OOD, BIL_NO, BLI_NAME)
             # 获取银行账号的会计科目
             Acc_No_km = cursor.execute("""SELECT ISNULL(Acc_No,'') FROM BACC WHERE BACC_NO=%s""", [CACC_NO]).fetchall()[0][0]
-            print(Acc_No_km)
             if Acc_No_km=='':
                 return http.HttpResponseForbidden('银行会计科目不存在')
 
@@ -394,8 +438,11 @@ class ExpectedOperationView(View):
                 # 插入账户收支单表头
                 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,%s,'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),Acc_No_km,USR,USR,datetime.datetime.strptime(RP_DD, '%Y-%m-%d'),datetime.datetime.strptime(RP_DD, '%Y-%m-%d'),
-                RP_NO])
+                               ['BT' + RP_NO[2::], datetime.datetime.strptime(RP_DD, '%Y-%m-%d'), CACC_NO, Acc_No_km,
+                                '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'+RP_NO[2::]
                 #BB_DD   账户收支单时间  datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
                 #BACC_NO  银行账号编码  CACC_NO
@@ -442,7 +489,23 @@ class ExpectedOperationView(View):
         #     "AMTN_BC":888,
         #     "CACC_NO":"01"
         # }
-
+        # 判断单号的合法性
+        if RP_NO[:4] != 'RTFS' or len(RP_NO) != 11:
+            return http.HttpResponseForbidden('预付款单号输入不合法,单号必须是RTFS开头且长度必须是11位')
+        # 校验日期格式
+        try:
+            datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+        except Exception:
+            return http.HttpResponseForbidden('日期格式输入不正确')
+        if RP_NO is None:
+            return http.HttpResponseForbidden('请输入预付款单号')
+        # //判断有没有输入银行账号
+        sum_CACC_NO = et_CACC_NO(CACC_NO)
+        if sum_CACC_NO == 'NO':
+            return http.HttpResponseForbidden('请检查银行账号是否存在或者是否输入正确')
+            # 判断金额输入是否正确
+        if re.compile('(^-?[0-9](\d+)?(\.\d{1,6})?$)|(^0$)|(^\d\.\d{1,2}$)').match(str(AMTN_BC)) is None:
+            return http.HttpResponseForbidden('金额输入不正确')
         # 判断单号是否存在
         row_ZL_NO = examine_ood('TF_MON', 'RP_NO', RP_NO,'RP_ID','2')
         if row_ZL_NO == 0:
@@ -516,13 +579,13 @@ class ExpectedOperationView(View):
         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"
+        #     "RP_NO": "PTYF9A280001"
         # }
+        # 判断单号的合法性
+        if RP_NO[:4] != 'PTYF' or len(RP_NO) != 11:
+            return http.HttpResponseForbidden('预付款单号输入不合法,单号必须是RTFS开头且长度必须是11位')
+        if RP_NO is None:
+            return http.HttpResponseForbidden('请输入预付款单号')
         # 判断单号是不是已经产生付款单
         row_ZL_NO = examine_ood('TF_MON1', 'IRP_NO', RP_NO,'RP_ID','2')
         if row_ZL_NO > 0:
@@ -591,19 +654,61 @@ class ExpectedPtOperationView(View):
         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])
-
+        # {
+        #     "RP_NO": "PTYF9A280002",
+        #     "IRP_NO": "PTYF9A280001",
+        #     "RP_DD": "2019-10-22",
+        #     "CUS_NO": "AQ1111",
+        #     "USR": "A10000",
+        #     "list": [
+        #         {"DH": "LPF9A170002",
+        #          "ATM": 340.02
+        #          },
+        #         {"DH": "LPF9A170003",
+        #          "ATM": 340.02
+        #          }
+        #     ]
+        # }
+        if RP_NO is None:
+            return http.HttpResponseForbidden('请输入付款单号')
+        # 判断是否输入预收款单号
+        if IRP_NO is None:
+            return http.HttpResponseForbidden('请输入预付款单号')
+        # 判断单号的合法性
+        if RP_NO[:4] != 'PTYC' or len(RP_NO) != 11:
+            return http.HttpResponseForbidden('付款单号输入不合法,单号必须是PTYC开头且长度必须是11位')
+        # 校验日期格式
+        try:
+            datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+        except Exception:
+            return http.HttpResponseForbidden('日期格式输入不正确')
         # 判断单号是否存在
         row_ZL_NO = examine_ood('TF_MON', 'RP_NO', RP_NO,'RP_ID','2')
         if row_ZL_NO > 0:
             return http.HttpResponseForbidden('预付款冲应付单据号码已存在')
+        # 判断预收款单号是否存在
+        row_ZL_NO = examine_ood('TF_MON', 'RP_NO', IRP_NO, 'RP_ID', '2')
+        if row_ZL_NO <= 0:
+            return http.HttpResponseForbidden('预冲款单号不存在')
         # 获取总金额
         sum_ATM = 0  # 冲款金额
         yf_sum = 0  # 获取单据应付款总金额
         for i in list:
+            # 判断立账单号是否合法
+            if i["DH"][:3] != 'LPF' or len(i["DH"]) != 10:
+                return http.HttpResponseForbidden('开票单号输入不合法,单号必须是LPF开头且长度必须是10位')
+            # 判断金额输入是否正确
+            if re.compile('(^-?[0-9](\d+)?(\.\d{1,6})?$)|(^0$)|(^\d\.\d{1,2}$)').match(str(i["ATM"])) is None:
+                return http.HttpResponseForbidden('金额输入不正确')
             sum_ATM = round(sum_ATM + i["ATM"], 4)
+            # 判断开票单号是否存在
+            row_MF_LZ = examine_ood('MF_LZ1', 'LZ_NO', i["DH"], 'LZ_ID', 'LP')
+            if row_MF_LZ <= 0:
+                return http.HttpResponseForbidden('开票单号不存在')
+            # 判断预收款单号是否存在
+            row_ZL_NO = examine_ood('TF_MON', 'RP_NO', IRP_NO, 'RP_ID', '2')
+            if row_ZL_NO <= 0:
+                return http.HttpResponseForbidden('预冲款单号不存在')
             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)
@@ -652,8 +757,7 @@ class ExpectedPtOperationView(View):
                     # 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"]])
@@ -726,16 +830,52 @@ class ExpectedPtOperationView(View):
         RP_DD = req_data.get("RP_DD")  # 付款日期         字符类型
         list = req_data.get("list")  # 付款单号         字符类型
         UP_DD = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')  # 修改时间
+
+        if RP_NO is None:
+            return http.HttpResponseForbidden('请输入付款单号')
+        # 判断是否输入预收款单号
+        if IRP_NO is None:
+            return http.HttpResponseForbidden('请输入预付款单号')
+        # 判断单号的合法性
+        if RP_NO[:4] != 'PTYC' or len(RP_NO) != 11:
+            return http.HttpResponseForbidden('付款单号输入不合法,单号必须是PTYC开头且长度必须是11位')
+        # 校验日期格式
+        try:
+            datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+        except Exception:
+            return http.HttpResponseForbidden('日期格式输入不正确')
         # 判断单号是否存在
         row_ZL_NO = examine_ood('TF_MON', 'RP_NO', RP_NO,'RP_ID','2')
         if row_ZL_NO <= 0:
             return http.HttpResponseForbidden('付款单不存在')
-
+        # {
+        #     "RP_NO": "PTYF9A280002",
+        #     "IRP_NO": "PTYF9A280001",
+        #     "RP_DD": "2019-10-28",
+        #     "list": [
+        #         {"DH": "LPF9A170002",
+        #          "ATM": 99
+        #          },
+        #         {"DH": "LPF9A170003",
+        #          "ATM": 9
+        #          }
+        #     ]
+        # }
         # 获取总金额
         sum_ATM = 0  # 冲款金额
         yf_sum = 0  # 获取单据应付款总金额
         for i in list:
+            # 判断立账单号是否合法
+            if i["DH"][:3] != 'LPF' or len(i["DH"]) != 10:
+                return http.HttpResponseForbidden('开票单号输入不合法,单号必须是LPF开头且长度必须是10位')
+            # 判断金额输入是否正确
+            if re.compile('(^-?[0-9](\d+)?(\.\d{1,6})?$)|(^0$)|(^\d\.\d{1,2}$)').match(str(i["ATM"])) is None:
+                return http.HttpResponseForbidden('金额输入不正确')
             sum_ATM = round(sum_ATM + i["ATM"], 4)
+            # 判断开票单号是否存在
+            row_MF_LZ = examine_ood('MF_LZ1', 'LZ_NO', i["DH"], 'LZ_ID', 'LP')
+            if row_MF_LZ <= 0:
+                return http.HttpResponseForbidden('开票单号不存在')
             with connection.cursor() as cursor:
                 # 获取单据应付款总金额
                 yf_sum = round(
@@ -853,6 +993,16 @@ class ExpectedPtOperationView(View):
         # # 获取参数
         RP_NO = req_data.get("RP_NO")  # 付款单号         字符类型
 
+        # {
+        #     "RP_NO": "PTYF9A280002"
+        # }
+
+        # 判断是否输入单号
+        if RP_NO is None:
+            return http.HttpResponseForbidden('请输入付款单号')
+        # 判断单号的合法性
+        if RP_NO[:4] != 'PTYC' or len(RP_NO) != 11:
+            return http.HttpResponseForbidden('付款单号输入不合法,单号必须是PTYC开头且长度必须是11位')
         # 判断单号是否存在
         row_ZL_NO = examine_ood('TF_MON', 'RP_NO', RP_NO,'RP_ID','2')
         if row_ZL_NO <= 0:
@@ -893,13 +1043,13 @@ class ExpectedPtOperationView(View):
                         cursor.execute("""UPDATE MF_ARP SET CLOSE_ID='F' WHERE ARP_NO=%s""", [i[0]])
                         cursor.execute("""UPDATE MF_PSS SET LZ_CLS_ID='F',CLSLZ='F' WHERE PS_NO=%s""",['PC' + i[0][2::]])
                 # 删除扣款单
-                cursor.execute("""DELETE FROM TF_MON1 WHERE RP_NO=%s RP_ID='2'""", [RP_NO])
+                cursor.execute("""DELETE FROM TF_MON1 WHERE RP_NO=%s AND RP_ID='2'""", [RP_NO])
                 #删除付款单表头
-                cursor.execute("""DELETE FROM TF_MON WHERE RP_NO=%s RP_ID='2'""", [RP_NO])
+                cursor.execute("""DELETE FROM TF_MON WHERE RP_NO=%s AND RP_ID='2'""", [RP_NO])
                 #删除付款单表身
-                cursor.execute("""DELETE FROM TC_MON WHERE RP_NO=%s RP_ID='2'""", [RP_NO])
+                cursor.execute("""DELETE FROM TC_MON WHERE RP_NO=%s AND RP_ID='2'""", [RP_NO])
                 #删除付款记录
-                cursor.execute("""DELETE FROM MF_MON WHERE RP_NO=%s RP_ID='2'""", [RP_NO])
+                cursor.execute("""DELETE FROM MF_MON WHERE RP_NO=%s AND RP_ID='2'""", [RP_NO])
             except Exception:
                 transaction.savepoint_rollback(sid)
                 return http.HttpResponseForbidden("预计冲应该付作业修改单据sql语句执行异常")

+ 2 - 0
awj/awj/apps/salesinvoice/urls.py

@@ -1,8 +1,10 @@
 from django.conf.urls import url
+
 from . import views
 
 urlpatterns = [
     url(r'^sales/$',views.salesView.as_view()),  #销货开票
     url(r'^proceeds/$',views.proceedsView.as_view()),  #收款单
     url(r'^predictproceeds/$',views.predictProceedsView.as_view()), #预收款
+    url(r'^predictpayment/$', views.predictPaymentView.as_view()),  # 预收冲款款
 ]

+ 24 - 8
awj/awj/apps/salesinvoice/views.py

@@ -1,19 +1,18 @@
+import datetime
 import json
-
 import re
-from django import http
-from django.shortcuts import render
 
+from django import http
+from django.db import connection, transaction
 # Create your views here.
 from django.views import View
-from django.db import connection, transaction
-import datetime
 
 from utils.cust_data import customer_data
+from utils.et_CACC_NO import et_CACC_NO
 from utils.examine_ood import examine_ood
-
 from utils.usr_data import usr_data
 
+
 # 销货开票
 class salesView(View):
     @transaction.atomic
@@ -21,6 +20,7 @@ class salesView(View):
         context = {
             'a': 'get预付冲应付作业'
         }
+        # HttpResponse(content=响应体,content_type=响应体数据MIME类型,status=状态码)
         return http.JsonResponse(context)
 
     @transaction.atomic
@@ -259,7 +259,7 @@ class salesView(View):
         # 判断是否产生付款单
         row_TC_MON = examine_ood('TC_MON', 'RP_NO', 'AR' + ZL_NO[2::], 'RP_ID', '1')
         if row_TC_MON > 0:
-            return http.HttpResponseForbidden('已经产生付款单允许修改')
+            return http.HttpResponseForbidden('已经产生付款单允许修改')
         # 判断进货单号是存在
         if int(ZHANG_ID) == 1:
             row_ZL_NO = examine_ood('MF_PSS', 'PS_NO', 'SA' + ZL_NO[2::], 'PS_ID', 'SA')
@@ -333,6 +333,10 @@ class proceedsView(View):
             return http.HttpResponseForbidden('日期格式输入不正确')
         if RP_NO is None:
             return http.HttpResponseForbidden('请输入收款单号')
+        # //判断有没有输入银行账号
+        sum_CACC_NO = et_CACC_NO(CACC_NO)
+        if sum_CACC_NO == 'NO':
+            return http.HttpResponseForbidden('请检查银行账号是否存在或者是否输入正确')
             # 判断金额输入是否正确
         if re.compile('(^-?[0-9](\d+)?(\.\d{1,6})?$)|(^0$)|(^\d\.\d{1,2}$)').match(str(AMTN_BC)) is None:
             return http.HttpResponseForbidden('金额输入不正确')
@@ -384,7 +388,7 @@ class proceedsView(View):
                 # BIL_NO  开票单号
 
                 # 如果单据已经冲完,结案掉立账单,还有进货的立账结案标识
-                row_AMT = cursor.execute("SELECT CAST(ISNULL(AMT,0) AS INT ) FROM MF_ARP WHERE BIL_NO=%s",[MF_LZ1]).fetchall()[0][0]
+                row_AMT = cursor.execute("SELECT ISNULL(AMT,0) FROM MF_ARP WHERE BIL_NO=%s", [MF_LZ1]).fetchall()[0][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""", ['SA' + MF_LZ1[2::]])
@@ -423,6 +427,10 @@ class proceedsView(View):
             return http.HttpResponseForbidden('日期格式输入不正确')
         if RP_NO is None:
             return http.HttpResponseForbidden('请输入收款单号')
+        # //判断有没有输入银行账号
+        sum_CACC_NO = et_CACC_NO(CACC_NO)
+        if sum_CACC_NO == 'NO':
+            return http.HttpResponseForbidden('请检查银行账号是否存在或者是否输入正确')
             # 判断金额输入是否正确
         if re.compile('(^-?[0-9](\d+)?(\.\d{1,6})?$)|(^0$)|(^\d\.\d{1,2}$)').match(str(AMTN_BC)) is None:
             return http.HttpResponseForbidden('金额输入不正确')
@@ -570,6 +578,10 @@ class predictProceedsView(View):
             return http.HttpResponseForbidden('日期格式输入不正确')
         if RP_NO is None:
             return http.HttpResponseForbidden('请输入预收款单号')
+        # //判断有没有输入银行账号
+        sum_CACC_NO = et_CACC_NO(CACC_NO)
+        if sum_CACC_NO == 'NO':
+            return http.HttpResponseForbidden('请检查银行账号是否存在或者是否输入正确')
             # 判断金额输入是否正确
         if re.compile('(^-?[0-9](\d+)?(\.\d{1,6})?$)|(^0$)|(^\d\.\d{1,2}$)').match(str(AMTN_BC)) is None:
             return http.HttpResponseForbidden('金额输入不正确')
@@ -652,6 +664,10 @@ class predictProceedsView(View):
             return http.HttpResponseForbidden('日期格式输入不正确')
         if RP_NO is None:
             return http.HttpResponseForbidden('请输入预收款单号')
+        # //判断有没有输入银行账号
+        sum_CACC_NO = et_CACC_NO(CACC_NO)
+        if sum_CACC_NO == 'NO':
+            return http.HttpResponseForbidden('请检查银行账号是否存在或者是否输入正确')
             # 判断金额输入是否正确
         if re.compile('(^-?[0-9](\d+)?(\.\d{1,6})?$)|(^0$)|(^\d\.\d{1,2}$)').match(str(AMTN_BC)) is None:
             return http.HttpResponseForbidden('金额输入不正确')

+ 48 - 6
awj/awj/apps/stockinvoice/views.py

@@ -1,16 +1,14 @@
+import datetime
 import json
+import re
 
 from django import http
-from django.shortcuts import render
-
+from django.db import connection, transaction
 # Create your views here.
 from django.views import View
-from django.db import connection, transaction
-import datetime
 
 from utils.cust_data import customer_data
 from utils.examine_ood import examine_ood
-from utils.invoice_dh import invoice_dh
 from utils.usr_data import usr_data
 
 
@@ -65,7 +63,23 @@ class InvoiceView(View):
         # print(SAL_TEL)       #开票客户电话   1
         # print(USR)      #制单人编码   1
         # print(USR_NAME)     #制单人姓名   1
-
+        # 判断单号的合法性
+        print(ZL_NO[:3])
+        print(len(ZL_NO))
+        if ZL_NO[:3] != 'LPF' or len(ZL_NO) != 10:
+            return http.HttpResponseForbidden('开票单号输入不合法,单号必须是LPF开头且长度必须是10位')
+        # 校验日期格式
+        try:
+            datetime.datetime.strptime(LZ_DD, '%Y-%m-%d')
+        except Exception:
+            return http.HttpResponseForbidden('日期格式输入不正确')
+        if ZL_NO is None:
+            return http.HttpResponseForbidden('请输入开票单号')
+            # 判断金额输入是否正确
+        if re.compile('(^-?[0-9](\d+)?(\.\d{1,6})?$)|(^0$)|(^\d\.\d{1,2}$)').match(str(AMT)) is None:
+            return http.HttpResponseForbidden('金额输入不正确')
+        if ZHANG_ID is None:
+            return http.HttpResponseForbidden('请输入开票方式')
         # 判断立账方式是否有效
         if int(ZHANG_ID) != 1 and int(ZHANG_ID) != 2:
             return http.HttpResponseForbidden('立账方式只能是1(开票),2(不开票)')
@@ -206,6 +220,21 @@ class InvoiceView(View):
         #     "SAL_ID_CODE": "43112919941002",
         #     "REM": "我的备注",
         # }
+        # 判断单号的合法性
+        if ZL_NO[:3] != 'LPF' or len(ZL_NO) != 10:
+            return http.HttpResponseForbidden('开票单号输入不合法,单号必须是LPF开头且长度必须是10位')
+        # 校验日期格式
+        try:
+            datetime.datetime.strptime(LZ_DD, '%Y-%m-%d')
+        except Exception:
+            return http.HttpResponseForbidden('日期格式输入不正确')
+        if ZL_NO is None:
+            return http.HttpResponseForbidden('请输入开票单号')
+            # 判断金额输入是否正确
+        if re.compile('(^-?[0-9](\d+)?(\.\d{1,6})?$)|(^0$)|(^\d\.\d{1,2}$)').match(str(AMT)) is None:
+            return http.HttpResponseForbidden('金额输入不正确')
+        if ZHANG_ID is None:
+            return http.HttpResponseForbidden('请输入开票方式')
         # 判断立账方式是否有效
         if int(ZHANG_ID) != 1 and int(ZHANG_ID) != 2:
             return http.HttpResponseForbidden('立账方式只能是1(开票),2(不开票)')
@@ -336,9 +365,22 @@ class InvoiceView(View):
         ZL_NO = req_data.get("ZL_NO")  # 单据号码
         ZHANG_ID = req_data.get("ZHANG_ID")  #立账方式
 
+        # {
+        #     "ZL_NO": "LPF9A170002",
+        #     "ZHANG_ID": "2"
+        # }
+
         # 判断立账方式是否有效
+        if ZL_NO is None:
+            return http.HttpResponseForbidden('请传入开票单号')
+        if ZHANG_ID is None:
+            return http.HttpResponseForbidden('请传入开票类型')
         if int(ZHANG_ID) != 1 and int(ZHANG_ID) != 2:
             return http.HttpResponseForbidden('立账方式只能是1(开票),2(不开票)')
+        # 判断是否产生付款单
+        row_TC_MON = examine_ood('TC_MON', 'RP_NO', 'AP' + ZL_NO[2::], 'RP_ID', '2')
+        if row_TC_MON > 0:
+            return http.HttpResponseForbidden('已经产生付款单不允许修改')
         # 判断进货单号是存在
         if int(ZHANG_ID) == 1:
             row_ZL_NO = examine_ood('MF_PSS', 'PS_NO', 'PC' + ZL_NO[2::],'PS_ID','PC')

+ 0 - 3
awj/awj/apps/stockinvoice/xixi.py

@@ -1,4 +1 @@
 
-a=1
-if int(1)!=2:
-    print(3)

+ 25 - 26
awj/awj/setting/dev.py

@@ -25,7 +25,7 @@ SECRET_KEY = '=&u2a!cp6*4i=$140mw^m_+2%ko82r+o*camh&=12mg2s+m%y0'
 # SECURITY WARNING: don't run with debug turned on in production!
 DEBUG = True
 
-ALLOWED_HOSTS = []
+ALLOWED_HOSTS = ['*']
 
 
 # Application definition
@@ -87,41 +87,40 @@ WSGI_APPLICATION = 'awj.wsgi.application'
 # }
 # 配置连接数据库
 
-DATABASES = {
-    # 'default': {
-    #     'ENGINE': 'django.db.backends.sqlite3',
-    #     'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
-    # }
-    'default': {
-        'NAME': 'DB_2019',
-        'ENGINE': 'sql_server.pyodbc',
-        'HOST': '127.0.0.1',
-        'USER': 'sa',
-        'PASSWORD': '123456',
-        'PORT': '1433',  # Set to empty string for default. Not used with sqlite3.
-        'OPTIONS': {
-            'host_is_server': True,
-            'dsn': 'rencuiliang',##需要在电脑上使用odbc创建数据源odbc_jlad
-        },
-    }
-}
-
 # DATABASES = {
+#     # 'default': {
+#     #     'ENGINE': 'django.db.backends.sqlite3',
+#     #     'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
+#     # }
 #     'default': {
+#         'NAME': 'DB_2019',
 #         'ENGINE': 'sql_server.pyodbc',
 #         'HOST': '127.0.0.1',
-#         'PORT': '',
-#         'NAME': 'DB_2019',
 #         'USER': 'sa',
 #         'PASSWORD': '123456',
+#         'PORT': '1433',  # Set to empty string for default. Not used with sqlite3.
 #         'OPTIONS': {
-#             'driver': 'SQL Sserver Native Client 10.0',
-#             'MARS_Connection': True,
-#         }
+#             'host_is_server': True,
+#             'dsn': 'rencuiliang',##需要在电脑上使用odbc创建数据源odbc_jlad
+#         },
 #     }
 # }
 
-DATABASE_CONNECTION_POOLING = False
+DATABASES = {
+    'default': {
+        'ENGINE': 'sql_server.pyodbc',
+        'NAME': 'DB_2019',
+        'USER': 'sa',
+        'PASSWORD': '123456',
+        'HOST': '127.0.0.1',
+        'PORT': '1433',
+        'OPTIONS': {
+            'driver': 'SQL Server Native Client 10.0',
+        },
+    },
+}
+
+DATABASE_CONNECTION_POOLING = True
 
 # Password validation
 # https://docs.djangoproject.com/en/1.11/ref/settings/#auth-password-validators

+ 18 - 0
awj/awj/utils/et_CACC_NO.py

@@ -0,0 +1,18 @@
+from django.db import connection
+
+
+# 用于判断银行账号是否存在啊啊
+
+def et_CACC_NO(CACC_NO):
+    """
+    :return:
+    """
+    if len(CACC_NO) <= 0:
+        return 'NO'
+
+    sql = "SELECT COUNT(*) FROM BACC WHERE BACC_NO=%s" % (CACC_NO)
+    with connection.cursor() as cursor:
+        # 判断单号是否重复
+        SUM_CACC_NO = cursor.execute(sql).fetchall()[0][0]
+    if SUM_CACC_NO <= 0:
+        return 'NO'

+ 5 - 1
awj/awj/wsgi.py

@@ -9,8 +9,12 @@ https://docs.djangoproject.com/en/1.11/howto/deployment/wsgi/
 
 import os
 
+import sys
+
+sys.path.append('e:/12446/PycharmProjects/wangli/wanjia/awj')
+
 from django.core.wsgi import get_wsgi_application
 
-os.environ.setdefault("DJANGO_SETTINGS_MODULE", "awj.settings")
+os.environ.setdefault("DJANGO_SETTINGS_MODULE", "awj.settings.dev")
 
 application = get_wsgi_application()

文件差異過大導致無法顯示
+ 433 - 504
awj/logs/hwj.log


部分文件因文件數量過多而無法顯示