|
@@ -1,5 +1,6 @@
|
|
|
import json
|
|
|
|
|
|
+import re
|
|
|
from django import http
|
|
|
from django.shortcuts import render
|
|
|
|
|
@@ -10,7 +11,7 @@ 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
|
|
|
|
|
|
|
|
@@ -48,10 +49,24 @@ class salesView(View):
|
|
|
print(BUY_KH_BANK)
|
|
|
print(BUY_TEL)
|
|
|
print(BUY_ADR)
|
|
|
+
|
|
|
+ if ZL_NO[:3]!='LZS' or len(ZL_NO)!=10:
|
|
|
+ return http.HttpResponseForbidden('开票单号输入不合法,单号必须是LZS开头且长度必须是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(不开票)')
|
|
|
-
|
|
|
|
|
|
if int(ZHANG_ID) == 2:
|
|
|
row_ZL_NO = examine_ood('MF_LZ', 'LZ_NO', ZL_NO, 'LZ_ID', 'LZ')
|
|
@@ -115,7 +130,7 @@ class salesView(View):
|
|
|
ZL_NO = req_data.get("ZL_NO")
|
|
|
LZ_DD = req_data.get("LZ_DD")
|
|
|
INV_NO = req_data.get("INV_NO")
|
|
|
- INV_DD = req_data.get("INV_DD")
|
|
|
+
|
|
|
ZHANG_ID = req_data.get("ZHANG_ID")
|
|
|
|
|
|
AMT = req_data.get("AMT")
|
|
@@ -139,7 +154,6 @@ class salesView(View):
|
|
|
|
|
|
|
|
|
|
|
|
-
|
|
|
|
|
|
|
|
|
|
|
@@ -154,7 +168,21 @@ class salesView(View):
|
|
|
|
|
|
|
|
|
|
|
|
-
|
|
|
+
|
|
|
+ if ZL_NO[:3] != 'LZS' or len(ZL_NO) != 10:
|
|
|
+ return http.HttpResponseForbidden('开票单号输入不合法,单号必须是LZS开头且长度必须是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(不开票)')
|
|
@@ -191,7 +219,7 @@ class salesView(View):
|
|
|
|
|
|
cursor.execute(
|
|
|
"""UPDATE INV_NO SET INV_NO=%s,CUS_NO=%s,TITLE_BUY=%s,TITLE_PAY=%s,AMT=%s,INV_DD=%s,UNI_NO_BUY=%s,BUY_ADR=%s,BUY_TEL=%s,BUY_KH_BANK=%s,BUY_ID_CODE=%s,REM=%s WHERE BIL_NO=%s AND BIL_ID='LZ'""",
|
|
|
- [INV_NO, CUS_NO, CUS_NO_NAME, CUS_NO_NAME, AMT, INV_DD, UNI_NO_BUY, BUY_ADR, BUY_TEL, BUY_KH_BANK,BUY_ID_CODE, REM, ZL_NO])
|
|
|
+ [INV_NO, CUS_NO, CUS_NO_NAME, CUS_NO_NAME, AMT, LZ_DD, UNI_NO_BUY, BUY_ADR, BUY_TEL, BUY_KH_BANK,BUY_ID_CODE, REM, ZL_NO])
|
|
|
|
|
|
cursor.execute("""UPDATE MF_ARP SET CUS_NO=%s,PAY_DD=%s,INV_NO=%s,AMT=%s,AMTN=%s,AMTN_NET=%s,SYS_DATE=%s WHERE ARP_NO=%s AND BIL_ID='LZ'""",
|
|
|
[CUS_NO, datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'),INV_NO, AMT, AMT, AMT, datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'), 'AR' + ZL_NO[2::]])
|
|
@@ -218,9 +246,13 @@ class salesView(View):
|
|
|
ZL_NO = req_data.get("ZL_NO")
|
|
|
ZHANG_ID = req_data.get("ZHANG_ID")
|
|
|
|
|
|
-
|
|
|
+
|
|
|
|
|
|
|
|
|
+ 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(不开票)')
|
|
@@ -230,7 +262,7 @@ class salesView(View):
|
|
|
return http.HttpResponseForbidden('已经产生付款单部允许修改')
|
|
|
|
|
|
if int(ZHANG_ID) == 1:
|
|
|
- row_ZL_NO = examine_ood('MF_PSS', 'PS_NO', 'PC' + ZL_NO[2::], 'PS_ID', 'PC')
|
|
|
+ row_ZL_NO = examine_ood('MF_PSS', 'PS_NO', 'SA' + ZL_NO[2::], 'PS_ID', 'SA')
|
|
|
if row_ZL_NO <= 0:
|
|
|
return http.HttpResponseForbidden('进货单号不存在')
|
|
|
|
|
@@ -242,7 +274,7 @@ class salesView(View):
|
|
|
with connection.cursor() as cursor:
|
|
|
if int(ZHANG_ID) == 2:
|
|
|
|
|
|
- sql = "SELECT COUNT(*) FROM %s WHERE %s='%s'" % ('TC_MON', 'ARP_NO', 'AP' + ZL_NO[2::])
|
|
|
+ sql = "SELECT COUNT(*) FROM %s WHERE %s='%s'" % ('TC_MON', 'ARP_NO', 'AR' + ZL_NO[2::])
|
|
|
row_ZL_NO = cursor.execute(sql).fetchall()[0][0]
|
|
|
if row_ZL_NO > 0:
|
|
|
return http.HttpResponseForbidden('开票单或进货单已产生后续收付款单')
|
|
@@ -291,6 +323,19 @@ class proceedsView(View):
|
|
|
USR_NAME = request.POST.get("USR_NAME")
|
|
|
MF_LZ1 = request.POST.get("MF_LZ1")
|
|
|
|
|
|
+
|
|
|
+ if RP_NO[:3] != 'RTS' or len(RP_NO) != 10:
|
|
|
+ return http.HttpResponseForbidden('收款单号输入不合法,单号必须是RTS开头且长度必须是10位')
|
|
|
+
|
|
|
+ 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', '1')
|
|
|
if row_ZL_NO > 0:
|
|
@@ -315,7 +360,7 @@ class proceedsView(View):
|
|
|
IEA_ID,IOR_ID,SK_TYPE)VALUES('F',%s,1,1,'T',%s,%s,'F',%s,%s,%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, 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')])
|
|
|
|
|
|
-
|
|
|
+
|
|
|
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
|
|
|
(1,%s,1,1,%s,%s,2,%s,%s,1)""",[RP_NO, 'AR' + MF_LZ1[2::], AMTN_BC, datetime.datetime.strptime(RP_DD, '%Y-%m-%d'), CUS_NO])
|
|
|
|
|
@@ -371,7 +416,16 @@ class proceedsView(View):
|
|
|
|
|
|
|
|
|
|
|
|
-
|
|
|
+
|
|
|
+ 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', '1')
|
|
|
if row_ZL_NO <= 0:
|
|
@@ -434,6 +488,8 @@ class proceedsView(View):
|
|
|
|
|
|
req_data = json.loads(request.body.decode())
|
|
|
RP_NO = req_data.get("RP_NO")
|
|
|
+ if RP_NO is None:
|
|
|
+ return http.HttpResponseForbidden('请输入收款单号')
|
|
|
|
|
|
row_ZL_NO = examine_ood('TF_MON', 'RP_NO', RP_NO, 'RP_ID', '1')
|
|
|
if row_ZL_NO <= 0:
|
|
@@ -503,6 +559,20 @@ class predictProceedsView(View):
|
|
|
CACC_NO = request.POST.get("CACC_NO")
|
|
|
USR = request.POST.get("USR")
|
|
|
USR_NAME = request.POST.get("USR_NAME")
|
|
|
+
|
|
|
+
|
|
|
+ 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('请输入预收款单号')
|
|
|
+
|
|
|
+ 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', '1')
|
|
|
if row_ZL_NO > 0:
|
|
@@ -535,8 +605,8 @@ class predictProceedsView(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,'RT',%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'),
|
|
|
+ ['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])
|
|
|
|
|
@@ -565,13 +635,26 @@ class predictProceedsView(View):
|
|
|
CACC_NO = req_data.get("CACC_NO")
|
|
|
UP_DD = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
|
|
|
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+
|
|
|
+ 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('请输入预收款单号')
|
|
|
+
|
|
|
+ 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','1')
|
|
|
if row_ZL_NO == 0:
|
|
@@ -622,6 +705,11 @@ class predictProceedsView(View):
|
|
|
|
|
|
|
|
|
|
|
|
+
|
|
|
+ if RP_NO[:4] != 'RTFS' 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', '1')
|
|
|
if row_ZL_NO > 0:
|
|
@@ -649,3 +737,326 @@ class predictProceedsView(View):
|
|
|
'a': 'delete删除预计收款作业'
|
|
|
}
|
|
|
return http.JsonResponse(context)
|
|
|
+
|
|
|
+
|
|
|
+class predictPaymentView(View):
|
|
|
+
|
|
|
+ @transaction.atomic
|
|
|
+ def get(self, request):
|
|
|
+ sid = transaction.savepoint()
|
|
|
+ try:
|
|
|
+ print(12312)
|
|
|
+ except Exception:
|
|
|
+ transaction.savepoint_rollback(sid)
|
|
|
+ return http.HttpResponseForbidden("预收款单删除sql语句执行异常")
|
|
|
+ transaction.savepoint_commit(sid)
|
|
|
+ context = {
|
|
|
+ 'a': 'get预收冲应冲作业'
|
|
|
+ }
|
|
|
+ return http.JsonResponse(context)
|
|
|
+
|
|
|
+ @transaction.atomic
|
|
|
+ def post(self, request):
|
|
|
+ req_data = json.loads(request.body.decode())
|
|
|
+
|
|
|
+
|
|
|
+ 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")
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ if RP_NO is None:
|
|
|
+ return http.HttpResponseForbidden('请输入收款单号')
|
|
|
+
|
|
|
+ if IRP_NO is None:
|
|
|
+ return http.HttpResponseForbidden('请输入预收款单号')
|
|
|
+
|
|
|
+ if RP_NO[:4] != 'RTFC' or len(RP_NO) != 11:
|
|
|
+ return http.HttpResponseForbidden('收款单号输入不合法,单号必须是RTYC开头且长度必须是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', '1')
|
|
|
+ if row_ZL_NO > 0:
|
|
|
+ return http.HttpResponseForbidden('收款单号已存在')
|
|
|
+
|
|
|
+ row_ZL_NO = examine_ood('TF_MON', 'RP_NO', IRP_NO, 'RP_ID', '1')
|
|
|
+ if row_ZL_NO <= 0:
|
|
|
+ return http.HttpResponseForbidden('预冲款单号不存在')
|
|
|
+
|
|
|
+ sum_ATM = 0
|
|
|
+ yf_sum = 0
|
|
|
+
|
|
|
+ for i in list:
|
|
|
+
|
|
|
+
|
|
|
+ if i["DH"][:3] != 'LZS' or len(i["DH"]) != 10:
|
|
|
+ return http.HttpResponseForbidden('开票单号输入不合法,单号必须是LZS开头且长度必须是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 + float(i["ATM"]), 4)
|
|
|
+
|
|
|
+ row_MF_LZ = examine_ood('MF_LZ', 'LZ_NO', i["DH"], 'LZ_ID', 'LZ')
|
|
|
+ if row_MF_LZ <= 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)
|
|
|
+ if sum_ATM>yf_sum:
|
|
|
+ return http.HttpResponseForbidden('冲款金额大于应付金额')
|
|
|
+ with connection.cursor() as cursor:
|
|
|
+ sid = transaction.savepoint()
|
|
|
+ try:
|
|
|
+
|
|
|
+
|
|
|
+ cursor.execute("""INSERT INTO TF_MON1(RP_ID,RP_NO,ITM,IRP_NO,RP_ID1,IRPITM,IRPITM2,AMTN_CLS)VALUES
|
|
|
+ (1,%s,1,%s,1,1,0,%s)""", [RP_NO, IRP_NO, 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,1,'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')])
|
|
|
+
|
|
|
+ itm = 0
|
|
|
+ for i in list:
|
|
|
+ itm += 1
|
|
|
+
|
|
|
+
|
|
|
+ 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
|
|
|
+ (1,%s,1,%s,%s,%s,2,%s,%s,%s)""", [RP_NO, itm, 'AR' + i["DH"][2::], i["ATM"],datetime.datetime.strptime(RP_DD, '%Y-%m-%d'), CUS_NO,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"]])
|
|
|
+
|
|
|
+ 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 AND PS_ID='SA'""",
|
|
|
+ ['SA' + 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,1,'0000',0,%s,%s,0)""",
|
|
|
+ [RP_NO, datetime.datetime.strptime(RP_DD, '%Y-%m-%d'), yf_sum, sum_ATM])
|
|
|
+
|
|
|
+ cursor.execute(
|
|
|
+ """UPDATE TF_MON SET AMTN_CLS=ISNULL(AMTN_CLS,0)+%s WHERE RP_NO=%s AND RP_ID='1'""",
|
|
|
+ [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 RP_NO=%s AND RP_ID='1'""",[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 AND RP_ID='1'""", [IRP_NO])
|
|
|
+ except Exception:
|
|
|
+ transaction.savepoint_rollback(sid)
|
|
|
+ return http.HttpResponseForbidden("预收款冲应收单新增sql语句执行异常")
|
|
|
+ transaction.savepoint_commit(sid)
|
|
|
+ context = {
|
|
|
+ 'a': 'post预收冲应冲作业'
|
|
|
+ }
|
|
|
+ return http.JsonResponse(context)
|
|
|
+
|
|
|
+ @transaction.atomic
|
|
|
+ def put(self, request):
|
|
|
+ req_data = json.loads(request.body.decode())
|
|
|
+
|
|
|
+ RP_NO = req_data.get("RP_NO")
|
|
|
+ IRP_NO = req_data.get("IRP_NO")
|
|
|
+ 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] != 'RTFC' or len(RP_NO) != 11:
|
|
|
+ return http.HttpResponseForbidden('收款单号输入不合法,单号必须是RTYC开头且长度必须是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', '1')
|
|
|
+ if row_ZL_NO <= 0:
|
|
|
+ return http.HttpResponseForbidden('付款单不存在')
|
|
|
+
|
|
|
+ row_ZL_NO = examine_ood('TF_MON', 'RP_NO', IRP_NO, 'RP_ID', '1')
|
|
|
+ if row_ZL_NO <= 0:
|
|
|
+ return http.HttpResponseForbidden('预冲款单号不存在')
|
|
|
+
|
|
|
+ sum_ATM = 0
|
|
|
+ yf_sum = 0
|
|
|
+ for i in list:
|
|
|
+
|
|
|
+ if i["DH"][:3] != 'LZS' or len(i["DH"]) != 10:
|
|
|
+ return http.HttpResponseForbidden('开票单号输入不合法,单号必须是LZS开头且长度必须是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 + float(i["ATM"]), 4)
|
|
|
+
|
|
|
+ row_MF_LZ = examine_ood('MF_LZ', 'LZ_NO', i["DH"], 'LZ_ID', 'LZ')
|
|
|
+ if row_MF_LZ <= 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)
|
|
|
+ if sum_ATM > yf_sum:
|
|
|
+ return http.HttpResponseForbidden('冲款金额大于应收金额')
|
|
|
+ with connection.cursor() as cursor:
|
|
|
+ sid = transaction.savepoint()
|
|
|
+ try:
|
|
|
+
|
|
|
+ cursor.execute("""UPDATE TF_MON1 SET AMTN_CLS=%s WHERE RP_NO=%s AND RP_ID='1'""", [sum_ATM, RP_NO])
|
|
|
+
|
|
|
+ cursor.execute(
|
|
|
+ """UPDATE TF_MON SET RP_DD=%s,AMTN_CLS=%s,AMTN_IRP=%s,MODIFY_DD=%s,MODIFY_MAN=USR WHERE RP_NO=%s AND RP_ID='1'""",
|
|
|
+ [datetime.datetime.strptime(RP_DD, '%Y-%m-%d'), sum_ATM, sum_ATM, UP_DD, RP_NO])
|
|
|
+ itm = 0
|
|
|
+ YD_ATY = 0
|
|
|
+ for i in list:
|
|
|
+ itm += 1
|
|
|
+ print(i["DH"], i["ATM"])
|
|
|
+ QTY_TC_MON = cursor.execute("""SELECT ISNULL(AMTN_CLS,0) FROM TC_MON WHERE ARP_NO=%s""",
|
|
|
+ ['AR' + i["DH"][2::]]).fetchall()[0][0]
|
|
|
+ YD_ATY = round((YD_ATY + QTY_TC_MON), 4)
|
|
|
+ print(i["ATM"])
|
|
|
+ cursor.execute("""UPDATE TC_MON SET AMTN_CLS=%s WHERE ARP_NO=%s AND RP_ID='1'""",
|
|
|
+ [i["ATM"], 'AR' + i["DH"][2::]])
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ ATM_MF_ARP = cursor.execute("""SELECT ISNULL(AMTN_RCV,0),ISNULL(AMT,0) FROM MF_ARP WHERE BIL_NO=%s""",[i["DH"]]).fetchall()
|
|
|
+ AMTN_RCV = ATM_MF_ARP[0][0]
|
|
|
+ AMT = ATM_MF_ARP[0][1]
|
|
|
+ cursor.execute(
|
|
|
+ """UPDATE MF_ARP SET AMTN_RCV=ISNULL(AMTN_RCV,0)+%s-%s,AMT=ISNULL(AMTN,0)-ISNULL(AMTN_RCV,0)-%s-%s WHERE BIL_NO=%s""",
|
|
|
+ [i["ATM"], AMTN_RCV, i["ATM"], AMT, i["DH"]])
|
|
|
+
|
|
|
+ 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='F' WHERE BIL_NO=%s""", [i["DH"]])
|
|
|
+ cursor.execute("""UPDATE MF_PSS SET LZ_CLS_ID='F',CLSLZ='F' WHERE PS_NO=%s AND PS_ID='SA'""",['SA' + i["DH"][2::]])
|
|
|
+
|
|
|
+ cursor.execute("""UPDATE MF_MON SET AMTN_REST=%s WHERE RP_NO=%s AND RP_ID='1'""", [sum_ATM, RP_NO])
|
|
|
+
|
|
|
+ cursor.execute(
|
|
|
+ """UPDATE TF_MON SET AMTN_CLS=ISNULL(AMTN_CLS,0)+%s-%s WHERE RP_NO=%s AND RP_ID='1'""",[sum_ATM, YD_ATY, 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 RP_NO=%s AND RP_ID='1'""",[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='F' WHERE IRP_NO=%s AND RP_ID='1'""", [IRP_NO])
|
|
|
+ except Exception:
|
|
|
+ transaction.savepoint_rollback(sid)
|
|
|
+ return http.HttpResponseForbidden("预收款冲应收单修改sql语句执行异常")
|
|
|
+ transaction.savepoint_commit(sid)
|
|
|
+
|
|
|
+ context = {
|
|
|
+ 'a': 'put预收冲应冲作业'
|
|
|
+ }
|
|
|
+ return http.JsonResponse(context)
|
|
|
+
|
|
|
+ @transaction.atomic
|
|
|
+ def delete(self, request):
|
|
|
+ req_data = json.loads(request.body.decode())
|
|
|
+
|
|
|
+ RP_NO = req_data.get("RP_NO")
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ if RP_NO is None:
|
|
|
+ return http.HttpResponseForbidden('请输入收款单号')
|
|
|
+
|
|
|
+ if RP_NO[:4] != 'RTFC' or len(RP_NO) != 11:
|
|
|
+ return http.HttpResponseForbidden('收款单号输入不合法,单号必须是RTYC开头且长度必须是11位')
|
|
|
+
|
|
|
+ row_ZL_NO = examine_ood('TF_MON', 'RP_NO', RP_NO, 'RP_ID', '1')
|
|
|
+ if row_ZL_NO <= 0:
|
|
|
+ return http.HttpResponseForbidden('收款单号不存在')
|
|
|
+ with connection.cursor() as cursor:
|
|
|
+ sid = transaction.savepoint()
|
|
|
+ try:
|
|
|
+
|
|
|
+ sum_TF_MON = cursor.execute("""SELECT ISNULL(AMTN_CLS,0) FROM TF_MON WHERE RP_NO=%s AND RP_ID='1'""",[RP_NO]).fetchall()[0][0]
|
|
|
+
|
|
|
+ TF_MON_NO = cursor.execute("""SELECT IRP_NO FROM TF_MON1 WHERE RP_NO=%s AND RP_ID='1'""", [RP_NO]).fetchall()[0][0]
|
|
|
+
|
|
|
+ cursor.execute("""UPDATE TF_MON SET AMTN_CLS=ISNULL(AMTN_CLS,0)-%s WHERE RP_NO=%s AND RP_ID='1'""",[sum_TF_MON, TF_MON_NO])
|
|
|
+
|
|
|
+ TC_MON_RP_NO = cursor.execute("""SELECT ARP_NO FROM TC_MON WHERE RP_NO=%s AND RP_ID='1'""",[RP_NO]).fetchall()
|
|
|
+
|
|
|
+ for i in TC_MON_RP_NO:
|
|
|
+ print(i[0])
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ ATM_MF_ARP = cursor.execute("""SELECT ISNULL(AMTN_RCV,0),ISNULL(AMT,0) FROM MF_ARP WHERE ARP_NO=%s""",[i[0]]).fetchall()
|
|
|
+ AMTN_RCV = ATM_MF_ARP[0][0]
|
|
|
+ AMT = ATM_MF_ARP[0][1]
|
|
|
+ cursor.execute(
|
|
|
+ """UPDATE MF_ARP SET AMTN_RCV=ISNULL(AMTN_RCV,0)-%s,AMT=ISNULL(AMTN,0)-ISNULL(AMTN_RCV,0)-%s WHERE ARP_NO=%s""",[AMTN_RCV, AMT, i[0]])
|
|
|
+
|
|
|
+ row_AMT = cursor.execute("SELECT CAST(ISNULL(AMT,0) AS INT ),BIL_NO FROM MF_ARP WHERE ARP_NO=%s",[i[0]]).fetchall()[0][0]
|
|
|
+ if row_AMT <= 0:
|
|
|
+ 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""", ['SA' + i[0][2::]])
|
|
|
+
|
|
|
+ cursor.execute("""DELETE FROM TF_MON1 WHERE RP_NO=%s AND RP_ID='1'""", [RP_NO])
|
|
|
+
|
|
|
+ cursor.execute("""DELETE FROM TF_MON WHERE RP_NO=%s AND RP_ID='1'""", [RP_NO])
|
|
|
+
|
|
|
+ cursor.execute("""DELETE FROM TC_MON WHERE RP_NO=%s AND RP_ID='1'""", [RP_NO])
|
|
|
+
|
|
|
+ cursor.execute("""DELETE FROM MF_MON WHERE RP_NO=%s AND RP_ID='1'""", [RP_NO])
|
|
|
+ except Exception:
|
|
|
+ transaction.savepoint_rollback(sid)
|
|
|
+ return http.HttpResponseForbidden("预收款冲应收单删除sql语句执行异常")
|
|
|
+ transaction.savepoint_commit(sid)
|
|
|
+ context = {
|
|
|
+ 'a': 'delete预收冲应冲作业'
|
|
|
+ }
|
|
|
+ return http.JsonResponse(context)
|