123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854 |
- from django.shortcuts import render
- # Create your views here.
- import json
- import re
- from django import http
- from django.shortcuts import render
- # Create your views here.
- from django.views import View
- from django.conf import settings
- 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.if_account import if_account
- from utils.usr_data import usr_data
- from utils.monthly_odd import monthly_odd
- from utils.executeQuery import executeQuery
- # 进货单
- class PcOrder(View):
- @transaction.atomic
- def get(self, request):
- context = {
- 'a': '进货单'
- }
- #HttpResponse(content=响应体,content_type=响应体数据MIME类型,status=状态码)
- return http.JsonResponse(context)
- @transaction.atomic
- def post(self, request):
- # 1获取参数
- req_data = json.loads(request.body.decode())
- PS_DD = req_data.get("PS_DD") # 单据日期
- CUS_NO = req_data.get("CUS_NO") # 客户编码
- CUS_NO_NAME = req_data.get("CUS_NO_NAME",'') # 客户名称
- PS_NO = req_data.get("PS_NO") # 单据号码
- TAX_ID = req_data.get("TAX_ID") # 扣税类别
- ZHANG_ID = req_data.get("ZHANG_ID") # 立账方式
- VOH_ID = req_data.get("VOH_ID",'') # 凭证模板
- USR = req_data.get("USR") # 制单人编码
- USR_NAME = req_data.get("USR_NAME",'') # 制单人名称
- # TAX_RTO = req_data.get("TAX_RTO") # 税率 直接取货品资料里面的
- AMT = req_data.get("AMT",0) # 金额
- DEP = req_data.get("DEP",'') # 部门代号
- SAL_NO = req_data.get("SAL_NO",'') # 业务员代号
- KPF = req_data.get("KPF", '') # 开票否
- #
- # print(PS_DD)
- # print(CUS_NO)
- # print(CUS_NO_NAME)
- # print(PS_NO)
- # print(TAX_ID)
- # print(ZHANG_ID)
- # print(VOH_ID)
- # print(USR)
- # print(USR_NAME)
- # # print(TAX_RTO)
- # print(AMT)
- # print(DEP)
- # print(SAL_NO)
- # 2校验参数
- # 校验日期格式
- # 判断是否有输入单号
- if PS_DD is None:
- return http.HttpResponseForbidden('请输入进货日期')
- # 判断是否有输入单号
- if PS_NO is None:
- return http.HttpResponseForbidden('请输入进货单号')
- if PS_NO[:3] != 'PCA' or len(PS_NO) != 11:
- #判断单号是否合法
- return http.HttpResponseForbidden('进货单号输入不合法,单号必须是PCA开头且长度必须是11位')
- #判断金额是否输入正确
- if re.compile('(^-?[0-9](\d+)?(\.\d{1,6})?$)|(^0$)|(^\d\.\d{1,2}$)').match(str(AMT)) is None:
- return http.HttpResponseForbidden('金额输入不正确')
- # 判断是否有输入供应商
- if CUS_NO is None:
- return http.HttpResponseForbidden('请输入供应商')
- if TAX_ID is None:
- return http.HttpResponseForbidden('请输入扣税类别')
- # 判断扣税类别是否输入正确
- if int(TAX_ID) != 1 and int(TAX_ID) != 2 and int(TAX_ID) != 3:
- return http.HttpResponseForbidden('扣税类别只能是1(不计税),2(应该税内行),3(应税外加)')
- if ZHANG_ID is None:
- return http.HttpResponseForbidden('请输入立账方式')
- # 判断立账方式是否输入正确
- if int(ZHANG_ID) != 1 and int(ZHANG_ID) != 2 and int(ZHANG_ID) != 3:
- return http.HttpResponseForbidden('立账方式只能是1(单张立账),2(不立账),3(收到发票才立账)')
- # #判断凭证模板是否输入
- # if VOH_ID is None:
- # return http.HttpResponseForbidden('请输入凭证模板')
- # 判断制单人是否输入
- if USR is None:
- return http.HttpResponseForbidden('请输入制单人')
- # 判断税率是否输入
- # if TAX_RTO is None:
- # return http.HttpResponseForbidden('请输入税率')
- # 判断进货单是否存在
- row_PS_NO = examine_ood('MF_PSS', 'PS_NO', PS_NO, 'PS_ID', 'PC')
- if row_PS_NO > 0:
- return http.HttpResponseForbidden('进货单号已存在')
- # 判断供应商是否哦存在,不存在的话创建
- try:
- row_cus_no = customer_data(CUS_NO, CUS_NO_NAME, '2', datetime.datetime.strptime(PS_DD, '%Y-%m-%d'),0)
- except Exception:
- return http.HttpResponseForbidden('创建厂商失败')
- # 判断用户是否存在
- # row_usr = usr_data(USR, USR_NAME, datetime.datetime.strptime(PS_DD, '%Y-%m-%d'))
- try:
- # 判断用户是否存在,不存在则创建
- row_usr = usr_data(USR, USR_NAME, datetime.datetime.strptime(PS_DD, '%Y-%m-%d'))
- except Exception:
- return http.HttpResponseForbidden('创建用户失败')
- #判断单号是否存在
- #判断供应商是否存在
- #判断凭证模板是否存在--------------------------------------------待完成
- #判断字段制单人是否存在
- # 3数入库
- with connection.cursor() as cursor:
- # 单张立账或者不立账需要判断凭证模板是否存在,直接判断立账方式不等于3即可
- row_usr=0
- try:
- if VOH_ID !=0:
- row_usr = cursor.execute("SELECT COUNT(*) FROM MF_VHID WHERE VOH_ID=%s AND BIL_ID='PC'", [VOH_ID]).fetchall()[0][0]
- except Exception:
- return http.HttpResponseForbidden('查询凭证模板异常')
- if row_usr <= 0:
- return http.HttpResponseForbidden('凭证模板在ERP里面不存在请重新输入凭证模板')
- # 获取税率
- try:
- PRDT = cursor.execute("SELECT ISNULL(SPC_TAX,0),[NAME] FROM PRDT WHERE PRD_NO='AQ001'").fetchall()[0]
- SPC_TAX=PRDT[0]
- PRD_NAME=PRDT[1]
- except Exception:
- return http.HttpResponseForbidden('获取安装费税率异常')
- # 计算本位币 AMTN_NET:本位币, TAX:税金 ,SPC_TAX:税率
- TAX=0
- AMTN_NET=0
- if int(TAX_ID)==1:
- TAX=0
- AMTN_NET = AMT
- if int(TAX_ID)==2:
- print(SPC_TAX)
- TAX = float(AMT)/(1+float(SPC_TAX)/100)*float(SPC_TAX)/100
- AMTN_NET = float(AMT) - TAX
- if int(TAX_ID)==3:
- TAX = float(AMT) / 100 * float(SPC_TAX)
- AMTN_NET = float(AMT)
- sid = transaction.savepoint() # 开启事物
- try:
- # 插入进货单表头-----------------------改CUR_ID RMB
- if int(ZHANG_ID) == 1:
- cursor.execute("""INSERT INTO MF_PSS(PS_ID,PS_NO,PS_DD,CUS_NO,ZHANG_ID,USR,CHK_MAN,CLS_DATE,SYS_DATE,EXC_RTO,LZ_CLS_ID,CLSLZ,TAX_ID,ARP_NO,VOH_ID,DEP,SAL_NO)
- VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)""",
- ['PC',
- 'PC' + PS_NO[2::],
- datetime.datetime.strptime(PS_DD, '%Y-%m-%d'),
- CUS_NO,
- ZHANG_ID,
- USR,
- USR,
- datetime.datetime.strptime(PS_DD, '%Y-%m-%d'),
- datetime.datetime.strptime(PS_DD, '%Y-%m-%d'),
- 1,
- 'F',
- '',
- TAX_ID,
- 'AP' + PS_NO[2::],
- VOH_ID,
- DEP,
- SAL_NO])
- # 插入自定义栏位表
- if KPF=='T':
- cursor.execute("""INSERT INTO MF_PSS_Z(PS_ID,PS_NO,KPF)VALUES(%s,%s,%s)""",['PC','PC' + PS_NO[2::],'T'])
- # 插入立账单MF_MRP------------------改CUR_ID RMB
- cursor.execute("""INSERT INTO MF_ARP(ARP_ID,OPN_ID,ARP_NO,BIL_NO,CUS_NO,PAY_DD,AMT,AMTN,AMTN_NET,EXC_RTO,CLOSE_ID,BIL_ID,SYS_DATE,BIL_DD,DEP,ZHANG_ID)VALUES
- (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)""",
- [2,
- 2,
- 'AP' + PS_NO[2::],
- 'PC' + PS_NO[2::],
- CUS_NO,
- datetime.datetime.strptime(PS_DD, '%Y-%m-%d'),
- 0,
- AMT,
- AMTN_NET,
- 1,
- 'F',
- 'PC',
- datetime.datetime.strptime(PS_DD, '%Y-%m-%d'),
- datetime.datetime.strptime(PS_DD, '%Y-%m-%d'),
- DEP,
- ZHANG_ID])
- if int(ZHANG_ID) !=1:
- print(3)
- cursor.execute("""INSERT INTO MF_PSS(PS_ID,PS_NO,PS_DD,CUS_NO,ZHANG_ID,USR,CHK_MAN,CLS_DATE,SYS_DATE,EXC_RTO,LZ_CLS_ID,CLSLZ,TAX_ID,ARP_NO,VOH_ID,DEP,SAL_NO)
- VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)""",
- ['PC',
- 'PC' + PS_NO[2::],
- datetime.datetime.strptime(PS_DD, '%Y-%m-%d'),
- CUS_NO,
- ZHANG_ID,
- USR,
- USR,
- datetime.datetime.strptime(PS_DD, '%Y-%m-%d'),
- datetime.datetime.strptime(PS_DD, '%Y-%m-%d'),
- 1,
- 'F',
- '',
- TAX_ID,
- '',
- VOH_ID,
- DEP,
- SAL_NO])
- # 插入进货单表身
- print(4)
- cursor.execute("""INSERT INTO TF_PSS(PS_ID,PS_NO,PS_DD,WH,PRD_NO,QTY,UP,AMT,AMTN_NET,TAX_RTO,ITM,UNIT,CSTN_SAL,PRE_ITM,TAX,EST_ITM,PRD_NAME)
- VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)""",
- ['PC',
- 'PC' + PS_NO[2::] ,
- datetime.datetime.strptime(PS_DD, '%Y-%m-%d'),
- '0000',
- 'AQ001',
- 1,
- AMT,
- AMT,
- AMTN_NET,
- SPC_TAX,
- 1,
- 1,
- AMTN_NET,
- 1,
- TAX,
- 1,
- PRD_NAME
- ])
- except Exception:
- transaction.savepoint_rollback(sid) # 语句执行错误,进行语句回滚
- return http.HttpResponseForbidden("新增进货单sql语句执行错误")
- transaction.savepoint_commit(sid) # 提交事物
- # {
- # "PS_DD": "2019-12-09",
- # "CUS_NO": "AQ1111",
- # "CUS_NO_NAME": "天心客户",
- # "PS_NO": "PCA19C09001",
- # "TAX_ID": "1",
- # "ZHANG_ID": "1",
- # "VOH_ID": "01",
- # "USR": "a00001",
- # "USR_NAME": "楠楠",
- # "AMT": "200",
- # "DEP": "0000",
- # "SAL_NO": "A00002",
- # "user": "123",
- # "password": "123"
- # }
- context = {
- "errmsg": '新增进货单成功',
- "code":200
- }
- # HttpResponse(content=响应体,content_type=响应体数据MIME类型,status=状态码)
- return http.JsonResponse(context)
- # return http.JsonResponse({"code": RET.OK, "errmsg": "ok"})
- @transaction.atomic
- def put(self, request):
- # 1获取参数
- req_data = json.loads(request.body.decode())
- PS_DD = req_data.get("PS_DD") # 单据日期
- CUS_NO = req_data.get("CUS_NO") # 客户编码
- CUS_NO_NAME = req_data.get("CUS_NO_NAME",'') # 客户名称
- PS_NO = req_data.get("PS_NO") # 单据号码
- TAX_ID = req_data.get("TAX_ID") # 扣税类别
- ZHANG_ID = req_data.get("ZHANG_ID") # 立账方式
- VOH_ID = req_data.get("VOH_ID") # 凭证模板
- # TAX_RTO = req_data.get("TAX_RTO") # 税率 直接取货品资料里面的
- AMT = req_data.get("AMT",0) # 金额
- DEP = req_data.get("DEP",'') # 部门代号
- SAL_NO = req_data.get("SAL_NO",'') # 业务员代号
- KPF = req_data.get("KPF", '') # 开票否
- # {
- # "PS_DD": "2019-12-09",
- # "CUS_NO": "AQ1111",
- # "CUS_NO_NAME": "天心客户",
- # "PS_NO": "PCA19C09001",
- # "TAX_ID": "1",
- # "ZHANG_ID": "1",
- # "VOH_ID": "01",
- # "USR": "a00001",
- # "USR_NAME": "楠楠",
- # "AMT": "200",
- # "DEP": "0000",
- # "SAL_NO": "A00002",
- # "user": "123",
- # "password": "123"
- # }
- # 2校验参数
- # 判断是否有输入单号
- if PS_DD is None:
- return http.HttpResponseForbidden('请输入进货日期')
- # 校验日期格式
- try:
- datetime.datetime.strptime(PS_DD, '%Y-%m-%d')
- except Exception:
- return http.HttpResponseForbidden('日期格式输入不正确')
- # 判断是否有输入单号
- if PS_NO is None:
- return http.HttpResponseForbidden('请输入进货单号')
- if PS_NO[:3] != 'PCA' or len(PS_NO) != 11:
- # 判断单号是否合法
- return http.HttpResponseForbidden('进货单号输入不合法,单号必须是PCA开头且长度必须为11位')
- # 判断金额是否输入正确
- if re.compile('(^-?[0-9](\d+)?(\.\d{1,6})?$)|(^0$)|(^\d\.\d{1,2}$)').match(str(AMT)) is None:
- return http.HttpResponseForbidden('金额输入不正确')
- # 判断是否有输入供应商
- if CUS_NO is None:
- return http.HttpResponseForbidden('请输入供应商')
- if TAX_ID is None:
- return http.HttpResponseForbidden('请输入扣税类别')
- # 判断扣税类别是否输入正确
- if int(TAX_ID) != 1 and int(TAX_ID) != 2 and int(TAX_ID) != 3:
- return http.HttpResponseForbidden('扣税类别只能是1(不计税),2(应该税内行),3(应税外加)')
- if ZHANG_ID is None:
- return http.HttpResponseForbidden('请输入立账方式')
- # 判断立账方式是否输入正确
- if int(ZHANG_ID) != 1 and int(ZHANG_ID) != 2 and int(ZHANG_ID) != 3:
- return http.HttpResponseForbidden('立账方式只能是1(单张立账),2(不立账),3(收到发票才立账)')
- # # 判断凭证模板是否输入
- # if VOH_ID is None:
- # return http.HttpResponseForbidden('请输入凭证模板')
- # 判断进货单是否存在
- row_PS_NO = examine_ood('MF_PSS', 'PS_NO', PS_NO, 'PS_ID', 'PC')
- if row_PS_NO <= 0:
- return http.HttpResponseForbidden('进货单号不存在')
- # 判断供应商是否哦存在,不存在的话创建
- try:
- row_cus_no = customer_data(CUS_NO, CUS_NO_NAME, '2', datetime.datetime.strptime(PS_DD, '%Y-%m-%d'), 0)
- except Exception:
- return http.HttpResponseForbidden('创建厂商失败')
- #判断进货单是否产生后续单据===========待完成
- # 3数入库
- with connection.cursor() as cursor:
- # 判断单号是否产生后续单据,立账里面的一冲金额
- try:
- # 获取原来单据的立账方式
- ZHANG_ID_OLD = cursor.execute("SELECT ZHANG_ID FROM MF_PSS WHERE PS_ID='PC' AND PS_NO=%s",['PC' + PS_NO[2::]]).fetchall()[0][0]
- if int(ZHANG_ID_OLD)==1:
- print('AP' + PS_NO[2::])
- row_no = cursor.execute("SELECT ISNULL(AMTN_RCV,0) FROM MF_ARP WHERE ARP_NO=%s AND BIL_ID='PC'", ['AP' + PS_NO[2::]]).fetchall()[0][0]
- if float(row_no)>0 and row_no is not None:
- return http.HttpResponseForbidden('进货单已产生后续单据不允许修改')
- if int(ZHANG_ID_OLD) != 1:
- row_no = cursor.execute("SELECT ISNULL(ACC_FP_NO,'') FROM MF_PSS WHERE PS_NO=%s AND PS_ID='PC'",['PC' + PS_NO[2::]]).fetchall()[0][0]
- if row_no!='':
- return http.HttpResponseForbidden('进货单已产生后续单据不允许修改')
- except Exception:
- return http.HttpResponseForbidden('判断进货单是否产生后续单据异常')
- # 判断传过来的凭证模板在数据库里面是否存在
- row_usr=0
- try:
- if VOH_ID !=0:
- row_usr = cursor.execute("SELECT COUNT(*) FROM MF_VHID WHERE VOH_ID=%s AND BIL_ID='PC'", [VOH_ID]).fetchall()[0][0]
- except Exception:
- return http.HttpResponseForbidden('查询凭证模板异常')
- if row_usr <= 0:
- return http.HttpResponseForbidden('凭证模板在ERP里面不存在请重新输入凭证模板')
- # 获取税率
- try:
- PRDT = cursor.execute("SELECT ISNULL(SPC_TAX,0),[NAME] FROM PRDT WHERE PRD_NO='AQ001'").fetchall()[0]
- SPC_TAX = PRDT[0]
- PRD_NAME = PRDT[1]
- except Exception:
- return http.HttpResponseForbidden('获取安装费税率异常')
- # 计算本位币 AMTN_NET:本位币, TAX:税金 ,SPC_TAX:税率
- TAX = 0
- AMTN_NET = 0
- if int(TAX_ID) == 1:
- TAX = 0
- AMTN_NET = AMT
- if int(TAX_ID) == 2:
- print(SPC_TAX)
- TAX = float(AMT) / (1 + float(SPC_TAX) / 100) * float(SPC_TAX) / 100
- AMTN_NET = float(AMT) - TAX
- if int(TAX_ID) == 3:
- TAX = float(AMT) / 100 * float(SPC_TAX)
- AMTN_NET = float(AMT)
- sid = transaction.savepoint() # 开启事物
- try:
- # 插入进货单表头-----------------------改CUR_ID RMB
- # 修改自定义栏位表
- if KPF == 'T':
- cursor.execute("""UPDATE MF_PSS_Z SET KPF=%s WHERE PS_ID='PC' AND PS_NO=%s""",['T','PC' + PS_NO[2::]])
- if KPF == 'F':
- cursor.execute("""UPDATE MF_PSS_Z SET KPF=%s WHERE PS_ID='PC' AND PS_NO=%s""",['F','PC' + PS_NO[2::]])
- if int(ZHANG_ID) == 1:
- print(1)
- cursor.execute("""UPDATE MF_PSS SET PS_DD=%s,CUS_NO=%s,ZHANG_ID=%s,TAX_ID=%s,VOH_ID=%s,DEP=%s,SAL_NO=%s,MODIFY_DD=%s,ARP_NO=%s WHERE PS_ID='PC' AND PS_NO=%s """,
- [
- datetime.datetime.strptime(PS_DD, '%Y-%m-%d'),
- CUS_NO,
- ZHANG_ID,
- TAX_ID,
- VOH_ID,
- DEP,
- SAL_NO,
- datetime.datetime.strptime(PS_DD, '%Y-%m-%d'),
- 'AP' + PS_NO[2::],
- 'PC' + PS_NO[2::]
- ])
- print(2)
- # 如果旧的立账方式是1的话那么会有立账单,那么可以直接修改
- print(DEP)
- print(ZHANG_ID)
- if int(ZHANG_ID_OLD)==1:
- cursor.execute("""UPDATE MF_ARP SET CUS_NO=%s,PAY_DD=%s,AMTN=%s,AMTN_NET=%s,BIL_DD=%s,DEP=%s,ZHANG_ID=%s WHERE BIL_ID='PC' AND ARP_NO=%s""",
- [CUS_NO,
- datetime.datetime.strptime(PS_DD, '%Y-%m-%d'),
- AMT,
- AMTN_NET,
- datetime.datetime.strptime(PS_DD, '%Y-%m-%d'),
- DEP,
- ZHANG_ID,
- 'AP' + PS_NO[2::]
- ])
- #如果旧是立账方式四不为1,然后改为1那么系统会在生成一张立账单
- if int(ZHANG_ID_OLD) != 1:
- cursor.execute("""INSERT INTO MF_ARP(ARP_ID,OPN_ID,ARP_NO,BIL_NO,CUS_NO,PAY_DD,AMT,AMTN,AMTN_NET,EXC_RTO,CLOSE_ID,BIL_ID,SYS_DATE,BIL_DD,DEP,ZHANG_ID)VALUES
- (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)""",
- [2,
- 2,
- 'AP' + PS_NO[2::],
- 'PC' + PS_NO[2::],
- CUS_NO,
- datetime.datetime.strptime(PS_DD, '%Y-%m-%d'),
- 0,
- AMT,
- AMTN_NET,
- 1,
- 'F',
- 'PC',
- datetime.datetime.strptime(PS_DD, '%Y-%m-%d'),
- datetime.datetime.strptime(PS_DD, '%Y-%m-%d'),
- DEP,
- ZHANG_ID])
- if int(ZHANG_ID) != 1:
- print(3)
- cursor.execute(
- """UPDATE MF_PSS SET PS_DD=%s,CUS_NO=%s,ZHANG_ID=%s,TAX_ID=%s,VOH_ID=%s,DEP=%s,SAL_NO=%s,MODIFY_DD=%s,ARP_NO=%s WHERE PS_ID='PC' AND PS_NO=%s """,
- [
- datetime.datetime.strptime(PS_DD, '%Y-%m-%d'),
- CUS_NO,
- ZHANG_ID,
- TAX_ID,
- VOH_ID,
- DEP,
- SAL_NO,
- datetime.datetime.strptime(PS_DD, '%Y-%m-%d'),
- '',
- 'PC' + PS_NO[2::]
- ])
- # 如果立账方式不为1的时候需要删除,立账单
- cursor.execute(
- """DELETE FROM MF_ARP WHERE BIL_ID='PC' AND ARP_NO=%s""",
- [
- 'AP' + PS_NO[2::]
- ])
- # 插入进货单表身
- print(4)
- cursor.execute("""UPDATE TF_PSS SET PS_DD=%s,UP=%s,AMT=%s,AMTN_NET=%s,CSTN_SAL=%s,TAX=%s,TAX_RTO=%s WHERE PS_ID='PC' AND PS_NO=%s""",
- [datetime.datetime.strptime(PS_DD, '%Y-%m-%d'),
- AMT,
- AMT,
- AMTN_NET,
- AMTN_NET,
- TAX,
- SPC_TAX,
- 'PC' + PS_NO[2::]
- ])
- except Exception:
- transaction.savepoint_rollback(sid) # 语句执行错误,进行语句回滚
- return http.HttpResponseForbidden("修改进货单sql语句执行错误")
- transaction.savepoint_commit(sid) # 提交事物
- context = {
- "errmsg": '修改进货单成功',
- "code": 200
- }
- return http.JsonResponse(context)
- @transaction.atomic
- def delete(self, request):
- # 1获取参数
- req_data = json.loads(request.body.decode())
- PS_NO = req_data.get("PS_NO") # 单据日期
- # {
- # "PS_NO": "PCA19C09001",
- # "user": "123",
- # "password": "123"
- # }
- # 判断是否有输入单号
- if PS_NO is None:
- return http.HttpResponseForbidden('请输入进货单号')
- if PS_NO[:3] != 'PCA' or len(PS_NO) != 11:
- # 判断单号是否合法
- return http.HttpResponseForbidden('进货单号输入不合法,单号必须是PCA开头且长度必须为11位')
- # 判断进货单是否存在
- row_PS_NO = examine_ood('MF_PSS', 'PS_NO', PS_NO, 'PS_ID', 'PC')
- if row_PS_NO <= 0:
- return http.HttpResponseForbidden('进货单号不存在')
- # 3数入库
- with connection.cursor() as cursor:
- # 判断单号是否产生后续单据,立账里面的一冲金额
- try:
- # 获取原来单据的立账方式
- ZHANG_ID_OLD = cursor.execute("SELECT ZHANG_ID FROM MF_PSS WHERE PS_ID='PC' AND PS_NO=%s",
- ['PC' + PS_NO[2::]]).fetchall()[0][0]
- if int(ZHANG_ID_OLD) == 1:
- print('AP' + PS_NO[2::])
- row_no = cursor.execute("SELECT ISNULL(AMTN_RCV,0) FROM MF_ARP WHERE ARP_NO=%s AND BIL_ID='PC'",
- ['AP' + PS_NO[2::]]).fetchall()[0][0]
- if float(row_no) > 0 and row_no is not None:
- return http.HttpResponseForbidden('进货单已产生后续单据不允许删除')
- if int(ZHANG_ID_OLD) != 1:
- row_no = cursor.execute("SELECT ISNULL(ACC_FP_NO,'') FROM MF_PSS WHERE PS_NO=%s AND PS_ID='PC'",
- ['PC' + PS_NO[2::]]).fetchall()[0][0]
- if row_no != '':
- return http.HttpResponseForbidden('进货单已产生后续单据不允许删除')
- except Exception:
- return http.HttpResponseForbidden('判断进货单是否产生后续单据异常')
- sid = transaction.savepoint() # 开启事物
- try:
- cursor.execute("""DELETE FROM MF_PSS WHERE PS_NO=%s AND PS_ID='PC'""", ['PC' + PS_NO[2::]])
- cursor.execute("""DELETE FROM TF_PSS WHERE PS_NO=%s AND PS_ID='PC'""", ['PC' + PS_NO[2::]])
- cursor.execute("""DELETE FROM MF_ARP WHERE ARP_NO=%s AND BIL_ID='PC'""", ['AP' + PS_NO[2::]])
- except Exception:
- transaction.savepoint_rollback(sid) # 语句执行错误,进行语句回滚
- return http.HttpResponseForbidden("删除进货单失败")
- transaction.savepoint_commit(sid) # 提交事物
- context = {
- "errmsg": '删除进货单成功',
- "code": 200
- }
- return http.JsonResponse(context)
- # 销货单
- class SaOrder(View):
- @transaction.atomic
- def get(self, request):
- context = {
- 'a': '销货单'
- }
- # HttpResponse(content=响应体,content_type=响应体数据MIME类型,status=状态码)
- return http.JsonResponse(context)
- @transaction.atomic
- def post(self, request):
- # 1获取参数
- req_data = json.loads(request.body.decode())
- PS_DD = req_data.get("PS_DD") # 单据日期
- CUS_NO = req_data.get("CUS_NO") # 客户编码
- CUS_NO_NAME = req_data.get("CUS_NO_NAME", '') # 客户名称
- PS_NO = req_data.get("PS_NO") # 单据号码
- TAX_ID = req_data.get("TAX_ID") # 扣税类别
- ZHANG_ID = req_data.get("ZHANG_ID") # 立账方式
- VOH_ID = req_data.get("VOH_ID", '') # 凭证模板
- USR = req_data.get("USR") # 制单人编码
- USR_NAME = req_data.get("USR_NAME", '') # 制单人名称
- # TAX_RTO = req_data.get("TAX_RTO") # 税率 直接取货品资料里面的
- AMT = req_data.get("AMT", 0) # 金额
- DEP = req_data.get("DEP", '') # 部门代号
- SAL_NO = req_data.get("SAL_NO", '') # 业务员代号
- #
- # print(PS_DD)
- # print(CUS_NO)
- # print(CUS_NO_NAME)
- # print(PS_NO)
- # print(TAX_ID)
- # print(ZHANG_ID)
- # print(VOH_ID)
- # print(USR)
- # print(USR_NAME)
- # # print(TAX_RTO)
- # print(AMT)
- # print(DEP)
- # print(SAL_NO)
- # 2校验参数
- # 校验日期格式
- # {
- # "PS_DD": "2019-12-09",
- # "CUS_NO": "AQ2222",
- # "CUS_NO_NAME": "收款",
- # "PS_NO": "SAB19C09001",
- # "TAX_ID": "1",
- # "ZHANG_ID": "1",
- # "VOH_ID": "01",
- # "USR": "a00002",
- # "USR_NAME": "楠楠",
- # "AMT": "200",
- # "DEP": "0000",
- # "SAL_NO": "A00002",
- # "user": "123",
- # "password": "123"
- # }
- if PS_DD is None:
- return http.HttpResponseForbidden('请输入日期')
- try:
- datetime.datetime.strptime(PS_DD, '%Y-%m-%d')
- except Exception:
- return http.HttpResponseForbidden('日期格式输入不正确')
- # 判断是否有输入单号
- if PS_NO is None:
- return http.HttpResponseForbidden('请输入销货单号')
- if PS_NO[:3] != 'SAB' or len(PS_NO) != 11:
- # 判断单号是否合法
- return http.HttpResponseForbidden('销货单号输入不合法,单号必须是SAB开头且长度必须为11位')
- # 判断金额是否输入正确
- if re.compile('(^-?[0-9](\d+)?(\.\d{1,6})?$)|(^0$)|(^\d\.\d{1,2}$)').match(str(AMT)) is None:
- return http.HttpResponseForbidden('金额输入不正确')
- # 判断是否有输入供应商
- if CUS_NO is None:
- return http.HttpResponseForbidden('请输入客户')
- if TAX_ID is None:
- return http.HttpResponseForbidden('请输入扣税类别')
- # 判断扣税类别是否输入正确
- if int(TAX_ID) != 1 and int(TAX_ID) != 2 and int(TAX_ID) != 3:
- return http.HttpResponseForbidden('扣税类别只能是1(不计税),2(应该税内行),3(应税外加)')
- if ZHANG_ID is None:
- return http.HttpResponseForbidden('请输入立账方式')
- # 判断立账方式是否输入正确
- if int(ZHANG_ID) != 1 and int(ZHANG_ID) != 2 and int(ZHANG_ID) != 3:
- return http.HttpResponseForbidden('立账方式只能是1(单张立账),2(不立账),3(收到发票才立账)')
- # #判断凭证模板是否输入
- # if VOH_ID is None:
- # return http.HttpResponseForbidden('请输入凭证模板')
- # 判断制单人是否输入
- if USR is None:
- return http.HttpResponseForbidden('请输入制单人')
- # 判断税率是否输入
- # if TAX_RTO is None:
- # return http.HttpResponseForbidden('请输入税率')
- # 判断进货单是否存在
- row_PS_NO = examine_ood('MF_PSS', 'PS_NO', PS_NO, 'PS_ID', 'SA')
- if row_PS_NO > 0:
- return http.HttpResponseForbidden('销货单号已存在')
- # 判断供应商是否哦存在,不存在的话创建
- try:
- row_cus_no = customer_data(CUS_NO, CUS_NO_NAME, '1', datetime.datetime.strptime(PS_DD, '%Y-%m-%d'), 0)
- except Exception:
- return http.HttpResponseForbidden('创建客户失败')
- # 判断用户是否存在
- # row_usr = usr_data(USR, USR_NAME, datetime.datetime.strptime(PS_DD, '%Y-%m-%d'))
- try:
- # 判断用户是否存在,不存在则创建
- row_usr = usr_data(USR, USR_NAME, datetime.datetime.strptime(PS_DD, '%Y-%m-%d'))
- except Exception:
- return http.HttpResponseForbidden('创建用户失败')
- # 判断单号是否存在
- # 判断供应商是否存在
- # 判断凭证模板是否存在--------------------------------------------待完成
- # 判断字段制单人是否存在
- # 3数入库
- with connection.cursor() as cursor:
- # 单张立账或者不立账需要判断凭证模板是否存在,直接判断立账方式不等于3即可
- row_usr = 0
- try:
- if VOH_ID != 0:
- row_usr = cursor.execute("SELECT COUNT(*) FROM MF_VHID WHERE VOH_ID=%s AND BIL_ID='SA'", [VOH_ID]).fetchall()[0][0]
- except Exception:
- return http.HttpResponseForbidden('查询凭证模板异常')
- if row_usr <= 0:
- return http.HttpResponseForbidden('凭证模板在ERP里面不存在请重新输入凭证模板')
- # 获取税率
- try:
- PRDT = cursor.execute("SELECT ISNULL(SPC_TAX,0),[NAME] FROM PRDT WHERE PRD_NO='AQ001'").fetchall()[0]
- SPC_TAX = PRDT[0]
- PRD_NAME = PRDT[1]
- except Exception:
- return http.HttpResponseForbidden('获取安装费税率异常')
- # 计算本位币 AMTN_NET:本位币, TAX:税金 ,SPC_TAX:税率
- TAX = 0
- AMTN_NET = 0
- if int(TAX_ID) == 1:
- TAX = 0
- AMTN_NET = AMT
- if int(TAX_ID) == 2:
- print(SPC_TAX)
- TAX = float(AMT) / (1 + float(SPC_TAX) / 100) * float(SPC_TAX) / 100
- AMTN_NET = float(AMT) - TAX
- if int(TAX_ID) == 3:
- TAX = float(AMT) / 100 * float(SPC_TAX)
- AMTN_NET = float(AMT)
- sid = transaction.savepoint() # 开启事物
- try:
- # 插入销货单表头-----------------------改CUR_ID RMB
- if int(ZHANG_ID) == 1:
- cursor.execute("""INSERT INTO MF_PSS(PS_ID,PS_NO,PS_DD,CUS_NO,ZHANG_ID,USR,CHK_MAN,CLS_DATE,SYS_DATE,EXC_RTO,LZ_CLS_ID,CLSLZ,TAX_ID,ARP_NO,VOH_ID,DEP,SAL_NO,PRT_SW,YD_ID)
- VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)""",
- ['SA',
- 'SA' + PS_NO[2::],
- datetime.datetime.strptime(PS_DD, '%Y-%m-%d'),
- CUS_NO,
- ZHANG_ID,
- USR,
- USR,
- datetime.datetime.strptime(PS_DD, '%Y-%m-%d'),
- datetime.datetime.strptime(PS_DD, '%Y-%m-%d'),
- 1,
- 'F',
- '',
- TAX_ID,
- 'AP' + PS_NO[2::],
- VOH_ID,
- DEP,
- SAL_NO,
- 'N',
- 'T'
- ])
- # 插入立账单MF_MRP------------------改CUR_ID RMB
- print(222222222)
- cursor.execute("""INSERT INTO MF_ARP(ARP_ID,OPN_ID,ARP_NO,BIL_NO,CUS_NO,PAY_DD,AMT,AMTN,AMTN_NET,EXC_RTO,CLOSE_ID,BIL_ID,SYS_DATE,BIL_DD,DEP,ZHANG_ID)VALUES
- (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)""",
- [1,
- 2,
- 'AP' + PS_NO[2::],
- 'SA' + PS_NO[2::],
- CUS_NO,
- datetime.datetime.strptime(PS_DD, '%Y-%m-%d'),
- 0,
- AMT,
- AMTN_NET,
- 1,
- 'F',
- 'SA',
- datetime.datetime.strptime(PS_DD, '%Y-%m-%d'),
- datetime.datetime.strptime(PS_DD, '%Y-%m-%d'),
- DEP,
- ZHANG_ID])
- if int(ZHANG_ID) != 1:
- print(3)
- cursor.execute("""INSERT INTO MF_PSS(PS_ID,PS_NO,PS_DD,CUS_NO,ZHANG_ID,USR,CHK_MAN,CLS_DATE,SYS_DATE,EXC_RTO,LZ_CLS_ID,CLSLZ,TAX_ID,ARP_NO,VOH_ID,DEP,SAL_NO,PRT_SW,YD_ID)
- VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)""",
- ['SA',
- 'SA' + PS_NO[2::],
- datetime.datetime.strptime(PS_DD, '%Y-%m-%d'),
- CUS_NO,
- ZHANG_ID,
- USR,
- USR,
- datetime.datetime.strptime(PS_DD, '%Y-%m-%d'),
- datetime.datetime.strptime(PS_DD, '%Y-%m-%d'),
- 1,
- 'F',
- '',
- TAX_ID,
- '',
- VOH_ID,
- DEP,
- SAL_NO,
- 'N',
- 'T'
- ])
- # 插入进货单表身
- print(4)
- cursor.execute("""INSERT INTO TF_PSS(PS_ID,PS_NO,PS_DD,WH,PRD_NO,QTY,UP,AMT,AMTN_NET,TAX_RTO,ITM,UNIT,CSTN_SAL,PRE_ITM,TAX,EST_ITM,PRD_NAME)
- VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)""",
- ['SA',
- 'SA' + PS_NO[2::],
- datetime.datetime.strptime(PS_DD, '%Y-%m-%d'),
- '0000',
- 'AQ002',
- 1,
- AMT,
- AMT,
- AMTN_NET,
- SPC_TAX,
- 1,
- 1,
- AMTN_NET,
- 1,
- TAX,
- 1,
- PRD_NAME])
- except Exception:
- transaction.savepoint_rollback(sid) # 语句执行错误,进行语句回滚
- return http.HttpResponseForbidden("新增销货单sql语句执行错误")
- transaction.savepoint_commit(sid) # 提交事物
- context = {
- "errmsg": '新增销货单成功',
- "code": 200
- }
- # HttpResponse(content=响应体,content_type=响应体数据MIME类型,status=状态码)
- return http.JsonResponse(context)
- # return http.JsonResponse({"code": RET.OK, "errmsg": "ok"})
- @transaction.atomic
- def put(self, request):
- # 1获取参数
- req_data = json.loads(request.body.decode())
- PS_DD = req_data.get("PS_DD") # 单据日期
- CUS_NO = req_data.get("CUS_NO") # 客户编码
- CUS_NO_NAME = req_data.get("CUS_NO_NAME", '') # 客户名称
- PS_NO = req_data.get("PS_NO") # 单据号码
- TAX_ID = req_data.get("TAX_ID") # 扣税类别
- ZHANG_ID = req_data.get("ZHANG_ID") # 立账方式
- VOH_ID = req_data.get("VOH_ID") # 凭证模板
- # TAX_RTO = req_data.get("TAX_RTO") # 税率 直接取货品资料里面的
- AMT = req_data.get("AMT", 0) # 金额
- DEP = req_data.get("DEP", '') # 部门代号
- SAL_NO = req_data.get("SAL_NO", '') # 业务员代号
- # {
- # "PS_DD": "2019-12-09",
- # "CUS_NO": "AQ2222",
- # "CUS_NO_NAME": "收款",
- # "PS_NO": "SAB19C09001",
- # "TAX_ID": "3",
- # "ZHANG_ID": "3",
- # "VOH_ID": "01",
- # "USR": "a00002",
- # "USR_NAME": "楠楠",
- # "AMT": "200",
- # "DEP": "0000",
- # "SAL_NO": "A00002",
- # "user": "123",
- # "password": "123"
- # }
- # 2校验参数
- # 校验日期格式
- if PS_DD is None:
- return http.HttpResponseForbidden('请输入日期')
- try:
- datetime.datetime.strptime(PS_DD, '%Y-%m-%d')
- except Exception:
- return http.HttpResponseForbidden('日期格式输入不正确')
- # 判断是否有输入单号
- if PS_NO is None:
- return http.HttpResponseForbidden('请输入销货单号')
- if PS_NO[:3] != 'SAB' or len(PS_NO) != 11:
- # 判断单号是否合法
- return http.HttpResponseForbidden('销货单号输入不合法,单号必须是SAB开头且长度必须为11位')
- # 判断金额是否输入正确
- if re.compile('(^-?[0-9](\d+)?(\.\d{1,6})?$)|(^0$)|(^\d\.\d{1,2}$)').match(str(AMT)) is None:
- return http.HttpResponseForbidden('金额输入不正确')
- # 判断是否有输入供应商
- if CUS_NO is None:
- return http.HttpResponseForbidden('请输入客户')
- if TAX_ID is None:
- return http.HttpResponseForbidden('请输入扣税类别')
- # 判断扣税类别是否输入正确
- if int(TAX_ID) != 1 and int(TAX_ID) != 2 and int(TAX_ID) != 3:
- return http.HttpResponseForbidden('扣税类别只能是1(不计税),2(应该税内行),3(应税外加)')
- if ZHANG_ID is None:
- return http.HttpResponseForbidden('请输入立账方式')
- # 判断立账方式是否输入正确
- if int(ZHANG_ID) != 1 and int(ZHANG_ID) != 2 and int(ZHANG_ID) != 3:
- return http.HttpResponseForbidden('立账方式只能是1(单张立账),2(不立账),3(收到发票才立账)')
- # # 判断凭证模板是否输入
- # if VOH_ID is None:
- # return http.HttpResponseForbidden('请输入凭证模板')
- # 判断进货单是否存在
- row_PS_NO = examine_ood('MF_PSS', 'PS_NO', PS_NO, 'PS_ID', 'SA')
- if row_PS_NO <= 0:
- return http.HttpResponseForbidden('销货单号不存在')
- # 判断供应商是否哦存在,不存在的话创建
- try:
- row_cus_no = customer_data(CUS_NO, CUS_NO_NAME, '2', datetime.datetime.strptime(PS_DD, '%Y-%m-%d'), 0)
- except Exception:
- return http.HttpResponseForbidden('创建客户失败')
- # 判断进货单是否产生后续单据===========待完成
- # 3数入库
- with connection.cursor() as cursor:
- # 判断单号是否产生后续单据,立账里面的一冲金额
- try:
- # 获取原来单据的立账方式
- ZHANG_ID_OLD = cursor.execute("SELECT ZHANG_ID FROM MF_PSS WHERE PS_ID='SA' AND PS_NO=%s",
- ['SA' + PS_NO[2::]]).fetchall()[0][0]
- print('AP' + PS_NO[2::])
- if int(ZHANG_ID_OLD) == 1:
- print('AP' + PS_NO[2::])
- row_no = cursor.execute("SELECT ISNULL(AMTN_RCV,0) FROM MF_ARP WHERE ARP_NO=%s AND BIL_ID='SA'",
- ['AP' + PS_NO[2::]]).fetchall()[0][0]
- if float(row_no) > 0 and row_no is not None:
- return http.HttpResponseForbidden('销货单已产生后续单据不允许修改')
- if int(ZHANG_ID_OLD) != 1:
- row_no = cursor.execute("SELECT ISNULL(ACC_FP_NO,'') FROM MF_PSS WHERE PS_NO=%s AND PS_ID='SA'",
- ['SA' + PS_NO[2::]]).fetchall()[0][0]
- if row_no != '':
- return http.HttpResponseForbidden('销货单已产生后续单据不允许修改')
- except Exception:
- return http.HttpResponseForbidden('判断销货单是否产生后续单据异常')
- # 判断传过来的凭证模板在数据库里面是否存在
- row_usr = 0
- try:
- if VOH_ID != 0:
- row_usr = cursor.execute("SELECT COUNT(*) FROM MF_VHID WHERE VOH_ID=%s AND BIL_ID='PC'", [VOH_ID]).fetchall()[0][0]
- except Exception:
- return http.HttpResponseForbidden('查询凭证模板异常')
- if row_usr <= 0:
- return http.HttpResponseForbidden('凭证模板在ERP里面不存在请重新输入凭证模板')
- # 获取税率
- try:
- PRDT = cursor.execute("SELECT ISNULL(SPC_TAX,0),[NAME] FROM PRDT WHERE PRD_NO='AQ001'").fetchall()[0]
- SPC_TAX = PRDT[0]
- PRD_NAME = PRDT[1]
- except Exception:
- return http.HttpResponseForbidden('获取安装费税率异常')
- # 计算本位币 AMTN_NET:本位币, TAX:税金 ,SPC_TAX:税率
- TAX = 0
- AMTN_NET = 0
- if int(TAX_ID) == 1:
- TAX = 0
- AMTN_NET = AMT
- if int(TAX_ID) == 2:
- print(SPC_TAX)
- TAX = float(AMT) / (1 + float(SPC_TAX) / 100) * float(SPC_TAX) / 100
- AMTN_NET = float(AMT) - TAX
- if int(TAX_ID) == 3:
- TAX = float(AMT) / 100 * float(SPC_TAX)
- AMTN_NET = float(AMT)
- sid = transaction.savepoint() # 开启事物
- try:
- # 插入进货单表头-----------------------改CUR_ID RMB
- if int(ZHANG_ID) == 1:
- print(1)
- cursor.execute(
- """UPDATE MF_PSS SET PS_DD=%s,CUS_NO=%s,ZHANG_ID=%s,TAX_ID=%s,VOH_ID=%s,DEP=%s,SAL_NO=%s,MODIFY_DD=%s,ARP_NO=%s WHERE PS_ID='SA' AND PS_NO=%s """,
- [
- datetime.datetime.strptime(PS_DD, '%Y-%m-%d'),
- CUS_NO,
- ZHANG_ID,
- TAX_ID,
- VOH_ID,
- DEP,
- SAL_NO,
- datetime.datetime.strptime(PS_DD, '%Y-%m-%d'),
- 'AP' + PS_NO[2::],
- 'SA' + PS_NO[2::]
- ])
- print(2)
- # 如果旧的立账方式是1的话那么会有立账单,那么可以直接修改
- if int(ZHANG_ID_OLD) == 1:
- cursor.execute(
- """UPDATE MF_ARP SET CUS_NO=%s,PAY_DD=%s,AMTN=%s,AMTN_NET=%s,BIL_DD=%s,DEP=%s,ZHANG_ID=%s WHERE BIL_ID='SA' AND ARP_NO=%s""",
- [CUS_NO,
- datetime.datetime.strptime(PS_DD, '%Y-%m-%d'),
- AMT,
- AMTN_NET,
- datetime.datetime.strptime(PS_DD, '%Y-%m-%d'),
- DEP,
- ZHANG_ID,
- 'AP' + PS_NO[2::]
- ])
- # 如果旧是立账方式四不为1,然后改为1那么系统会在生成一张立账单
- if int(ZHANG_ID_OLD) != 1:
- cursor.execute("""INSERT INTO MF_ARP(ARP_ID,OPN_ID,ARP_NO,BIL_NO,CUS_NO,PAY_DD,AMT,AMTN,AMTN_NET,EXC_RTO,CLOSE_ID,BIL_ID,SYS_DATE,BIL_DD,DEP,ZHANG_ID)VALUES
- (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)""",
- [1,
- 2,
- 'AP' + PS_NO[2::],
- 'SA' + PS_NO[2::],
- CUS_NO,
- datetime.datetime.strptime(PS_DD, '%Y-%m-%d'),
- 0,
- AMT,
- AMTN_NET,
- 1,
- 'F',
- 'SA',
- datetime.datetime.strptime(PS_DD, '%Y-%m-%d'),
- datetime.datetime.strptime(PS_DD, '%Y-%m-%d'),
- DEP,
- ZHANG_ID])
- if int(ZHANG_ID) != 1:
- print(3)
- cursor.execute(
- """UPDATE MF_PSS SET PS_DD=%s,CUS_NO=%s,ZHANG_ID=%s,TAX_ID=%s,VOH_ID=%s,DEP=%s,SAL_NO=%s,MODIFY_DD=%s,ARP_NO=%s WHERE PS_ID='SA' AND PS_NO=%s """,
- [
- datetime.datetime.strptime(PS_DD, '%Y-%m-%d'),
- CUS_NO,
- ZHANG_ID,
- TAX_ID,
- VOH_ID,
- DEP,
- SAL_NO,
- datetime.datetime.strptime(PS_DD, '%Y-%m-%d'),
- '',
- 'SA' + PS_NO[2::]
- ])
- # 如果立账方式不为1的时候需要删除,立账单
- cursor.execute(
- """DELETE FROM MF_ARP WHERE BIL_ID='SA' AND ARP_NO=%s""",
- [
- 'AP' + PS_NO[2::]
- ])
- # 插入进货单表身
- print(4)
- cursor.execute(
- """UPDATE TF_PSS SET PS_DD=%s,UP=%s,AMT=%s,AMTN_NET=%s,CSTN_SAL=%s,TAX=%s,TAX_RTO=%s WHERE PS_ID='SA' AND PS_NO=%s""",
- [datetime.datetime.strptime(PS_DD, '%Y-%m-%d'),
- AMT,
- AMT,
- AMTN_NET,
- AMTN_NET,
- TAX,
- SPC_TAX,
- 'SA' + PS_NO[2::]
- ])
- except Exception:
- transaction.savepoint_rollback(sid) # 语句执行错误,进行语句回滚
- return http.HttpResponseForbidden("新增进货单sql语句执行错误")
- transaction.savepoint_commit(sid) # 提交事物
- context = {
- "errmsg": '修改进货单成功',
- "code": 200
- }
- return http.JsonResponse(context)
- @transaction.atomic
- def delete(self, request):
- # 1获取参数
- req_data = json.loads(request.body.decode())
- PS_NO = req_data.get("PS_NO") # 单据日期
- # 判断是否有输入单号
- if PS_NO is None:
- return http.HttpResponseForbidden('请输入销货单号')
- if PS_NO[:3] != 'SAB' or len(PS_NO) != 11:
- # 判断单号是否合法
- return http.HttpResponseForbidden('销货单号输入不合法,单号必须是SAB开头且长度必须为11位')
- # 判断进货单是否存在
- row_PS_NO = examine_ood('MF_PSS', 'PS_NO', PS_NO, 'PS_ID', 'SA')
- if row_PS_NO <= 0:
- return http.HttpResponseForbidden('销货单号不存在')
- # 3数入库
- with connection.cursor() as cursor:
- # 判断单号是否产生后续单据,立账里面的一冲金额
- try:
- # 获取原来单据的立账方式
- ZHANG_ID_OLD = cursor.execute("SELECT ZHANG_ID FROM MF_PSS WHERE PS_ID='SA' AND PS_NO=%s",
- ['SA' + PS_NO[2::]]).fetchall()[0][0]
- if int(ZHANG_ID_OLD) == 1:
- print('AP' + PS_NO[2::])
- row_no = cursor.execute("SELECT ISNULL(AMTN_RCV,0) FROM MF_ARP WHERE ARP_NO=%s AND BIL_ID='SA'",
- ['AP' + PS_NO[2::]]).fetchall()[0][0]
- if float(row_no) > 0 and row_no is not None:
- return http.HttpResponseForbidden('销货单已产生后续单据不允许删除')
- if int(ZHANG_ID_OLD) != 1:
- row_no = cursor.execute("SELECT ISNULL(ACC_FP_NO,'') FROM MF_PSS WHERE PS_NO=%s AND PS_ID='SA'",
- ['SA' + PS_NO[2::]]).fetchall()[0][0]
- if row_no != '':
- return http.HttpResponseForbidden('销货单已产生后续单据不允许删除')
- except Exception:
- return http.HttpResponseForbidden('判断销货单是否产生后续单据异常')
- sid = transaction.savepoint() # 开启事物
- try:
- cursor.execute("""DELETE FROM MF_PSS WHERE PS_NO=%s AND PS_ID='SA'""", ['SA' + PS_NO[2::]])
- cursor.execute("""DELETE FROM TF_PSS WHERE PS_NO=%s AND PS_ID='SA'""", ['SA' + PS_NO[2::]])
- cursor.execute("""DELETE FROM MF_ARP WHERE ARP_NO=%s AND BIL_ID='SA'""", ['AP' + PS_NO[2::]])
- except Exception:
- transaction.savepoint_rollback(sid) # 语句执行错误,进行语句回滚
- return http.HttpResponseForbidden("删除销货单失败")
- transaction.savepoint_commit(sid) # 提交事物
- context = {
- "errmsg": '删除销货单成功',
- "code": 200
- }
- return http.JsonResponse(context)
- #预付款单
- class PtPayment(View):
- @transaction.atomic
- def get(self, request):
- context = {
- 'a': '客户预收款'
- }
- return http.JsonResponse(context)
- @transaction.atomic
- def post(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
- USR = req_data.get("USR") # 制单人编码 字符类型 ------------------1
- USR_NAME = req_data.get("USR_NAME",'') # 制单人姓名 字符类型 -----------------------1
- DEP = req_data.get("DEP",'') # 部门 字符类型 -----------------------1
- SAL_NO = req_data.get("SAL_NO",0) # 业务员 字符类型 -----------------------1
- VOH_ID = req_data.get("VOH_ID",0) # 凭证模板 字符类型 -----------------------1
- # {
- # "RP_DD": "2019-12-06",
- # "CUS_NO": "AQ2222",
- # "CUS_NO_NAME": "收款",
- # "RP_NO": "RTF9C0202",
- # "AMTN_BC": "150",
- # "CACC_NO": "01",
- # "VOH_ID": "01",
- # "USR": "a00002",
- # "USR_NAME": "楠楠",
- # "DEP": "0000",
- # "SAL_NO": "A00002",
- # "user": "123",
- # "password": "123"
- # }
- # 判断单号的合法性
- if RP_NO[:3] != 'RTF' or len(RP_NO) != 11:
- return http.HttpResponseForbidden('预收款单号输入不合法,单号必须是RTF开头且长度长度必须为11位')
- if RP_DD is None:
- return http.HttpResponseForbidden('请输入日期')
- # 校验日期格式
- try:
- datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
- except Exception:
- return http.HttpResponseForbidden('日期格式输入不正确')
- if RP_NO is None:
- return http.HttpResponseForbidden('请输入预收款单号')
- if CACC_NO is None:
- return http.HttpResponseForbidden('请输入银行代号')
- # //判断有没有输入银行账号
- try:
- sum_CACC_NO = et_CACC_NO(CACC_NO)
- except Exception:
- return http.HttpResponseForbidden('请检查银行账号是否存在或者是否输入正确')
- 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', '1')
- if row_ZL_NO > 0:
- return http.HttpResponseForbidden('预付款单号已存在')
- # 判断供应商是否哦存在,不存在的话创建
- try:
- row_cus_no = customer_data(CUS_NO, CUS_NO_NAME, '1', datetime.datetime.strptime(RP_DD, '%Y-%m-%d'), 0)
- except Exception:
- return http.HttpResponseForbidden('创建客户失败')
- # 判断用户是否存在
- # row_usr = usr_data(USR, USR_NAME, datetime.datetime.strptime(PS_DD, '%Y-%m-%d'))
- try:
- # 判断用户是否存在,不存在则创建
- row_usr = usr_data(USR, USR_NAME, datetime.datetime.strptime(RP_DD, '%Y-%m-%d'))
- except Exception:
- return http.HttpResponseForbidden('创建用户失败')
- # 判断账号类别
- try:
- tp_CACC_NO = if_account(CACC_NO)
- except Exception:
- return http.HttpResponseForbidden("账户类型异常(现金)、(银行)")
- if tp_CACC_NO == 'NO':
- return http.HttpResponseForbidden('账户类型不存在(现金)、(银行)')
- with connection.cursor() as cursor:
- row_usr = 0
- try:
- if VOH_ID != 0:
- row_usr = cursor.execute("SELECT COUNT(*) FROM MF_VHID WHERE VOH_ID=%s AND BIL_ID='RT'", [VOH_ID]).fetchall()[0][0]
- except Exception:
- return http.HttpResponseForbidden('查询凭证模板异常')
- if row_usr <= 0:
- return http.HttpResponseForbidden('凭证模板在ERP里面不存在请重新输入凭证模板')
- # 获取银行账号的会计科目
- try:
- Acc_No_km = cursor.execute("""SELECT ISNULL(Acc_No,'') FROM BACC WHERE BACC_NO=%s""", [CACC_NO]).fetchall()[0][0]
- except Exception:
- return http.HttpResponseForbidden("银行会计科目异常")
- if Acc_No_km == '':
- return http.HttpResponseForbidden('银行会计科目不存在')
- sid = transaction.savepoint() # 开启事物
- try:
- # 银行账户
- if int(tp_CACC_NO) == 1:
- print(11112222)
- # 插入预收款表头
- cursor.execute("""INSERT INTO TF_MON(IRP_ID,RP_NO,ITM,RP_ID,CLS_ID,RP_DD,CUS_NO,INCLUDESON,AMTN_BB,AMTN_CLS,BC_NO,BACC_NO,EXC_RTO,DEP,USR,CHK_MAN,CLS_DATE,SYS_DATE,IEA_ID,IOR_ID,SK_TYPE,VOH_ID,USR_NO)VALUES
- (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)""",
- [
- 'T',
- RP_NO,
- 1,
- 1,
- 'F',
- datetime.datetime.strptime(RP_DD, '%Y-%m-%d'),
- CUS_NO,
- 'F',
- AMTN_BC,
- 0,
- 'BT' + RP_NO[2::],
- CACC_NO,
- 1,
- DEP,
- USR,
- USR,
- datetime.datetime.strptime(RP_DD, '%Y-%m-%d'),
- datetime.datetime.strptime(RP_DD, '%Y-%m-%d'),
- 'F',
- 'F',
- 1,
- VOH_ID,
- SAL_NO
- ])
- print(2323)
- # 现金账户
- if int(tp_CACC_NO) == 2:
- print(1122)
- print(VOH_ID)
- print(SAL_NO)
- # 插入预收款表头
- 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,VOH_ID,USR_NO)VALUES
- (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)""",
- ['T',RP_NO,1,1,'F',datetime.datetime.strptime(RP_DD, '%Y-%m-%d'), CUS_NO,'F',AMTN_BC,0,'BT' + RP_NO[2::],CACC_NO,1,'0000',USR,USR,datetime.datetime.strptime(RP_DD, '%Y-%m-%d'),
- datetime.datetime.strptime(RP_DD, '%Y-%m-%d'),'F','F',1,VOH_ID,SAL_NO])
- print(1)
- # 插入语收款立账金额
- cursor.execute("""INSERT INTO MF_MON(RP_ID,RP_NO,RP_DD,DEP,AMTN,AMTN_ARP,AMTN_REST,FJ_NUM)VALUES
- (%s,%s,%s,%s,%s,%s,%s,%s)""",
- [1,
- RP_NO,
- datetime.datetime.strptime(RP_DD, '%Y-%m-%d'),
- DEP,
- AMTN_BC,
- 0,
- 0,
- 0])
- print(3)
- # 插入账户收支单表头
- 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
- (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)""",
- ['BT',
- 'BT' + RP_NO[2::],
- datetime.datetime.strptime(RP_DD, '%Y-%m-%d'),
- CACC_NO,
- Acc_No_km,
- DEP,
- 'BT' + RP_NO,
- 1,
- float(AMTN_BC),
- USR,
- USR,
- 'F',
- datetime.datetime.strptime(RP_DD, '%Y-%m-%d'),
- datetime.datetime.strptime(RP_DD, '%Y-%m-%d'),
- 'RT',
- RP_NO])
- print(4)
- # 插入收支单表身
- cursor.execute("""INSERT INTO TF_BAC(BB_ID,BB_NO,ITM,BB_DD,EXC_RTO,AMTN,DEP,CUS_NO,ADD_ID,PRE_ITM)values
- (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)""",
- ['BT',
- 'BT' + RP_NO[2::],
- 1,
- datetime.datetime.strptime(RP_DD, '%Y-%m-%d'),
- 1,
- AMTN_BC,
- DEP,
- CUS_NO,
- '+',
- 1 ])
- except Exception:
- transaction.savepoint_rollback(sid)
- return http.HttpResponseForbidden("预收款单新增sql语句执行异常")
- transaction.savepoint_commit(sid)
- context = {
- "errmsg": '新增客户预付款单成功',
- "code": 200
- }
- return http.JsonResponse(context)
- @transaction.atomic
- 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
- USR = req_data.get("USR") # 制单人编码 字符类型 ------------------1
- USR_NAME = req_data.get("USR_NAME", '') # 制单人姓名 字符类型 -----------------------1
- DEP = req_data.get("DEP", '') # 部门 字符类型 -----------------------1
- SAL_NO = req_data.get("SAL_NO", 0) # 业务员 字符类型 -----------------------1
- VOH_ID = req_data.get("VOH_ID", 0) # 凭证模板 字符类型 -----------------------1
- UP_DD = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
- # {
- # "RP_DD": "2019-12-06",
- # "CUS_NO": "AQ2222",
- # "CUS_NO_NAME": "收款",
- # "RP_NO": "RTF9C0201",
- # "AMTN_BC": "100",
- # "CACC_NO": "01",
- # "VOH_ID": "01",
- # "USR": "a00002",
- # "USR_NAME": "楠楠",
- # "DEP": "0000",
- # "SAL_NO": "A00002",
- # "user": "123",
- # "password": "123"
- # }
- if RP_DD is None:
- return http.HttpResponseForbidden('请输入时间')
- if RP_NO[:3] != 'RTF' or len(RP_NO) !=11:
- return http.HttpResponseForbidden('预收款单号输入不合法,单号必须是RTF开头且长度必须是11位')
- # 校验日期格式
- try:
- datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
- except Exception:
- return http.HttpResponseForbidden('日期格式输入不正确')
- if RP_NO is None:
- return http.HttpResponseForbidden('请输入预收款单号')
- if CACC_NO is None:
- return http.HttpResponseForbidden('请输入银行代号')
- # //判断有没有输入银行账号
- try:
- sum_CACC_NO = et_CACC_NO(CACC_NO)
- except Exception:
- return http.HttpResponseForbidden('请检查银行账号是否存在或者是否输入正确')
- 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('金额输入不正确')
- # 判断单号是否存在
- try:
- row_ZL_NO = examine_ood('TF_MON', 'RP_NO', RP_NO, 'RP_ID', '1')
- except Exception:
- return http.HttpResponseForbidden('判断单号是否存在,单号查询异常')
- if row_ZL_NO <= 0:
- return http.HttpResponseForbidden('预付款单号不存在')
- # 判断单号是不是已经产生付款单
- try:
- row_ZL_NO = examine_ood('TF_MON1', 'IRP_NO', RP_NO, 'RP_ID', '1')
- except Exception:
- return http.HttpResponseForbidden('判断单号是否产生后续单据异常')
- if row_ZL_NO > 0:
- return http.HttpResponseForbidden('预付款单已经产生付款单')
- # 判断账号类别
- try:
- tp_CACC_NO = if_account(CACC_NO)
- except Exception:
- return http.HttpResponseForbidden("账户类型异常(现金)、(银行)")
- if tp_CACC_NO == 'NO':
- return http.HttpResponseForbidden('账户类型不存在(现金)、(银行)')
- # 判断供应商是否哦存在,不存在的话创建
- try:
- row_cus_no = customer_data(CUS_NO, CUS_NO_NAME, '1', datetime.datetime.strptime(RP_DD, '%Y-%m-%d'), 0)
- except Exception:
- return http.HttpResponseForbidden('创建客户失败')
- with connection.cursor() as cursor:
- row_usr = 0
- try:
- if VOH_ID != 0:
- row_usr = cursor.execute("SELECT COUNT(*) FROM MF_VHID WHERE VOH_ID=%s AND BIL_ID='RT'", [VOH_ID]).fetchall()[
- 0][0]
- except Exception:
- return http.HttpResponseForbidden('查询凭证模板异常')
- if row_usr <= 0:
- return http.HttpResponseForbidden('凭证模板在ERP里面不存在请重新输入凭证模板')
- # 获取银行账号的会计科目
- try:
- Acc_No_km = cursor.execute("""SELECT ISNULL(Acc_No,'') FROM BACC WHERE BACC_NO=%s""", [CACC_NO]).fetchall()[0][0]
- except Exception:
- return http.HttpResponseForbidden("银行会计科目异常")
- if Acc_No_km == '':
- return http.HttpResponseForbidden('银行会计科目不存在')
- sid = transaction.savepoint() # 开启事物
- try:
- # 银行账户
- if int(tp_CACC_NO) == 1:
- # 修改预付款单
- print(11111)
- cursor.execute(
- """UPDATE TF_MON SET RP_DD=%s,CUS_NO=%s,AMTN_BB=%s,BC_NO=%s,BACC_NO=%s,MODIFY_DD=%s,MODIFY_MAN=%s,VOH_ID=%s,USR_NO=%s,AMTN_BC=NULL,CACC_NO='' WHERE RP_NO=%s""",
- [datetime.datetime.strptime(RP_DD, '%Y-%m-%d'), CUS_NO, AMTN_BC, 'BT' + RP_NO[2::], CACC_NO,
- UP_DD,USR,VOH_ID,SAL_NO, RP_NO])
- # 现金账户
- if int(tp_CACC_NO) == 2:
- print(11222)
- # 修改预付款单
- cursor.execute(
- """UPDATE TF_MON SET RP_DD=%s,CUS_NO=%s,AMTN_BC=%s,BC_NO=%s,CACC_NO=%s,MODIFY_DD=%s,MODIFY_MAN=%s ,VOH_ID=%s,USR_NO=%s,AMTN_BB=NULL,BACC_NO='' WHERE RP_NO=%s""",
- [datetime.datetime.strptime(RP_DD, '%Y-%m-%d'), CUS_NO, AMTN_BC, 'BT' + RP_NO[2::], CACC_NO,
- UP_DD,USR,VOH_ID,SAL_NO, RP_NO])
- # 修改立账单金额
- print(2)
- 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])
- print(3)
- # 修改账户收支单表头
- cursor.execute("""UPDATE MF_BAC SET BB_DD=%s,BACC_NO=%s,ACC_NO=%s,BIL_NO=%s,AMTN=%s,DEP=%s WHERE BB_NO=%s""",
- [datetime.datetime.strptime(RP_DD, '%Y-%m-%d'), CACC_NO, Acc_No_km, 'BT' + RP_NO,
- float(AMTN_BC),DEP, 'BT' + RP_NO[2::]])
- print(4)
- # 修改账户收支单表身
- 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::]])
- except Exception:
- transaction.savepoint_rollback(sid)
- return http.HttpResponseForbidden("预收款单修改sql语句执行异常")
- transaction.savepoint_commit(sid)
- context = {
- "errmsg": '修改客户预付款单成功',
- "code": 200
- }
- return http.JsonResponse(context)
- @transaction.atomic
- def delete(self, request):
- # 获取参数
- req_data = json.loads(request.body.decode())
- RP_NO = req_data.get("RP_NO") # 预付款单号
- # {
- # "RP_NO": "RTX9A300003"
- # }
- # 判断单号的合法性
- if RP_NO[:3] != 'RTF' or len(RP_NO) != 11:
- return http.HttpResponseForbidden('预收款单号输入不合法,单号必须是RTF开头且长度必须为11位')
- if RP_NO is None:
- return http.HttpResponseForbidden('请输入预收款单号')
- # 判断单号是不是已经产生付款单
- try:
- row_ZL_NO = examine_ood('TF_MON1', 'IRP_NO', RP_NO, 'RP_ID', '1')
- except Exception:
- return http.HttpResponseForbidden('判断单号是否产生后续单据异常')
- if row_ZL_NO > 0:
- 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('预付款单号不存在')
- with connection.cursor() as cursor:
- sid = transaction.savepoint() # 开启事物
- try:
- # 删除付款单
- cursor.execute("""DELETE FROM TF_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])
- # 删除账户收支单表头
- 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::]])
- except Exception:
- transaction.savepoint_rollback(sid)
- return http.HttpResponseForbidden("预收款单删除sql语句执行异常")
- transaction.savepoint_commit(sid)
- context = {
- "errmsg": '删除客户预付款单成功',
- "code": 200
- }
- return http.JsonResponse(context)
- #回传进货票
- class PcInvoice(View):
- def post(self, request):
- with connection.cursor() as cursor:
- # 判断表是否存在
- is_table=cursor.execute("""SELECT table_name FROM information_schema.TABLES WHERE table_name ='MF_LZ1_Z01'""", []).fetchall()
- if len(is_table)==0:
- return http.HttpResponseForbidden("MF_LZ1_Z01,此表不存在请先创建此表")
- #判断表中是否存在数据
- pc_count=cursor.execute("""SELECT COUNT(*) FROM MF_LZ1_Z01""", []).fetchall()[0][0]
- if pc_count==0:
- return http.HttpResponseForbidden("表数据为空请先增加数据")
- #查询未被拉取的数据
- pc_date = cursor.execute("""SELECT ISNULL(A_LZ_DD,'') AS A_LZ_DD,ISNULL(A_CUS_NO ,'') AS A_CUS_NO,ISNULL(C_NAME,'') AS C_NAME,ISNULL(A_LZ_NO,'') AS A_LZ_NO,ISNULL(A_INV_NO,'') AS A_INV_NO,
- ISNULL(A_AMT,0) AS A_AMT,ISNULL(A_AMTN_NET,0) AS A_AMTN_NET,ISNULL(A_TAX,0) AS A_TAX,ISNULL(A_TAX_ID,'') AS A_TAX_ID,ISNULL(A_ZHANG_ID,'') AS A_ZHANG_ID,
- ISNULL(B_PS_NO,'') AS B_PS_NO,ISNULL(B_QTY,0) AS B_QTY,ISNULL(B_UP,0) AS B_UP,ISNULL(B_AMT,0) AS B_AMT,ISNULL(B_TAX_RTO,0) AS B_TAX_RTO,OK FROM MF_LZ1_Z01 WHERE OK ='N'""", []).fetchall()
- # print(pc_date)
- # print(len(pc_date))
- if len(pc_date)==0:
- return http.HttpResponseForbidden("没有需要拉取的数据")
- data=[]
- LZ_NO=[]
- for i in pc_date:
- # print(1111)
- LZ_NO.append(i[3])
- # data.append({"A_LZ_DD": i[0], "A_CUS_NO": i[1]})
- data.append({"A_LZ_DD":str(i[0]),"A_CUS_NO":i[1],"C_NAME":i[2],"A_LZ_NO":i[3],
- "A_INV_NO":i[4],"A_AMT":float(i[5]),"A_AMTN_NET":float(i[6]),"A_TAX":float(i[7]),"A_TAX_ID":i[8],
- "A_ZHANG_ID":i[9],"B_PS_NO":i[10],"B_QTY":float(i[11]),"B_UP":float(i[12]),"B_AMT":float(i[13]),"B_TAX_RTO":float(i[14]),"OK":i[15].strip()})
- for i in LZ_NO:
- cursor.execute("""UPDATE MF_LZ1_Z01 SET OK='Y' WHERE A_LZ_NO=%s""", [i])
- context = {
- "data":data,
- "errmsg": "进货开票数据回传app成功",
- "code":200
- }
- return http.JsonResponse(context)
- #回传销货票
- class SaInvoice(View):
- def post(self, request):
- with connection.cursor() as cursor:
- # 判断表是否存在
- is_table=cursor.execute("""SELECT table_name FROM information_schema.TABLES WHERE table_name ='MF_LZ_Z01'""", []).fetchall()
- if len(is_table)==0:
- return http.HttpResponseForbidden("MF_LZ1_Z01,此表不存在请先创建此表")
- #判断表中是否存在数据
- sa_count=cursor.execute("""SELECT COUNT(*) FROM MF_LZ_Z01""", []).fetchall()[0][0]
- if sa_count==0:
- return http.HttpResponseForbidden("表数据为空请先增加数据")
- # 查询未被拉取的数据
- sa_date = cursor.execute("""SELECT ISNULL(A_LZ_DD,'') AS A_LZ_DD,ISNULL(A_CUS_NO,'') AS A_CUS_NO,ISNULL(C_NAME,'') AS C_NAME,ISNULL(A_LZ_NO,'') AS A_LZ_NO,ISNULL(A_INV_NO,'') AS A_INV_NO,
- ISNULL(A_AMT,0) AS A_AMT,ISNULL(A_AMTN_NET,0) AS A_AMTN_NET,ISNULL(A_TAX,0) AS A_TAX,ISNULL(A_TAX_ID,'') AS A_TAX_ID,ISNULL(A_ZHANG_ID,'') AS A_ZHANG_ID,
- ISNULL(B_CK_NO,'') AS B_CK_NO,ISNULL(B_QTY,0) AS B_QTY,ISNULL(B_UP,0) AS B_UP,ISNULL(B_AMT,0) AS B_AMT,ISNULL(B_TAX_RTO,0) AS B_TAX_RTO,OK FROM MF_LZ_Z01 WHERE OK ='N'""",[]).fetchall()
- if len(sa_date)==0:
- return http.HttpResponseForbidden("没有需要拉取的数据")
- data = []
- LZ_NO = []
- for i in sa_date:
- # print(1111)
- LZ_NO.append(i[3])
- # data.append({"A_LZ_DD": i[0], "A_CUS_NO": i[1]})
- data.append({"A_LZ_DD": str(i[0]), "A_CUS_NO": i[1], "C_NAME": i[2], "A_LZ_NO": i[3],
- "A_INV_NO": i[4], "A_AMT": float(i[5]), "A_AMTN_NET": float(i[6]), "A_TAX": float(i[7]),
- "A_TAX_ID": i[8],"A_ZHANG_ID": i[9], "B_CK_NO": i[10], "B_QTY": float(i[11]), "B_UP": float(i[12]),
- "B_AMT": float(i[13]), "B_TAX_RTO": float(i[14]), "OK": i[15].strip()})
- for i in LZ_NO:
- cursor.execute("""UPDATE MF_LZ_Z01 SET OK='Y' WHERE A_LZ_NO=%s""", [i])
- context = {
- "data": data,
- "errmsg": "销货开票数据回传app成功",
- "code": 200
- }
- return http.JsonResponse(context)
- #客户预收冲应收
- # SELECT ISNULL(C_CUS_NO,'') AS C_CUS_NO,ISNULL(D_NAME,'') AS D_NAME,ISNULL(C_RP_DD,'') AS C_RP_DD,
- # ISNULL(C_RP_NO,'') AS C_RP_NO,ISNULL(B_BIL_NO,'') AS B_BIL_NO,ISNULL(A_AMTN_CLS,0)AS A_AMTN_CLS,
- # ISNULL(OK,'') AS OK,ISNULL(IRP_NO,'') AS IRP_NO,ISNULL(AMTN_IRP,0) AS AMTN_IRP,ISNULL(B_BIL_ID,'') AS B_BIL_ID
- # FROM TC_MON_PC WHERE C_RP_ID=1 AND ISNULL(IRP_NO,'')<>''
- class yrt(View):
- def post(self, request):
- with connection.cursor() as cursor:
- # 判断表是否存在
- is_table=cursor.execute("""SELECT table_name FROM information_schema.TABLES WHERE table_name ='TC_MON_PC'""", []).fetchall()
- if len(is_table)==0:
- return http.HttpResponseForbidden("TC_MON_PC,此表不存在请先创建此表")
- #判断表中是否存在数据
- sa_count=cursor.execute("""SELECT COUNT(*) FROM TC_MON_PC""", []).fetchall()[0][0]
- if sa_count==0:
- return http.HttpResponseForbidden("表数据为空请先增加数据")
- # 查询未被拉取的数据
- sa_date = cursor.execute("""SELECT ISNULL(C_CUS_NO,'') AS C_CUS_NO,ISNULL(D_NAME,'') AS D_NAME,ISNULL(C_RP_DD,'') AS C_RP_DD,
- ISNULL(C_RP_NO,'') AS C_RP_NO,ISNULL(B_BIL_NO,'') AS B_BIL_NO,ISNULL(A_AMTN_CLS,0)AS A_AMTN_CLS,
- ISNULL(OK,'') AS OK,ISNULL(IRP_NO,'') AS IRP_NO,ISNULL(AMTN_IRP,0) AS AMTN_IRP,ISNULL(B_BIL_ID,'') AS B_BIL_ID
- FROM TC_MON_PC WHERE C_RP_ID=1 AND ISNULL(IRP_NO,'')<>'' AND OK='N'""",[]).fetchall()
- if len(sa_date)==0:
- return http.HttpResponseForbidden("没有需要拉取的数据")
- data = []
- RT_NO = []
- for i in sa_date:
- # print(1111)
- RT_NO.append(i[3])
- data.append({"C_CUS_NO": i[0], "D_NAME": i[1], "C_RP_DD": i[2], "C_RP_NO": str(i[3]),
- "B_BIL_NO": i[4], "A_AMTN_CLS": i[5], "OK": i[6], "IRP_NO": i[7].strip(),
- "AMTN_IRP": i[8], "B_BIL_ID": i[9]})
- for i in RT_NO:
- cursor.execute("""UPDATE TC_MON_PC SET OK='Y' WHERE C_RP_NO=%s""", [i])
- context = {
- "data": data,
- "errmsg": "客户预收冲应收数据回传app成功",
- "code": 200
- }
- return http.JsonResponse(context)
- #客户收款单
- # SELECT ISNULL(C_CUS_NO,'') AS C_CUS_NO,ISNULL(D_NAME,'') AS D_NAME,ISNULL(C_RP_DD,'') AS C_RP_DD,
- # ISNULL(C_CACC_NO,'') AS C_CACC_NO,ISNULL(C_AMTN_BC,0) AS C_AMTN_BC,ISNULL(C_RP_NO,'') AS C_RP_NO,
- # ISNULL(B_BIL_NO,'') AS B_BIL_NO,ISNULL(B_BIL_ID,'') AS B_BIL_ID,ISNULL(A_AMTN_CLS,0)AS A_AMTN_CLS,
- # ISNULL(OK,'') AS OK
- # FROM TC_MON_PC WHERE C_RP_ID=1 AND ISNULL(B_BIL_ID,'')<>'' AND ISNULL(IRP_NO,'')=''
- class rt(View):
- def post(self, request):
- with connection.cursor() as cursor:
- # 判断表是否存在
- is_table=cursor.execute("""SELECT table_name FROM information_schema.TABLES WHERE table_name ='TC_MON_PC'""", []).fetchall()
- if len(is_table)==0:
- return http.HttpResponseForbidden("TC_MON_PC,此表不存在请先创建此表")
- #判断表中是否存在数据
- sa_count=cursor.execute("""SELECT COUNT(*) FROM TC_MON_PC""", []).fetchall()[0][0]
- if sa_count==0:
- return http.HttpResponseForbidden("表数据为空请先增加数据")
- # 查询未被拉取的数据
- sa_date = cursor.execute("""SELECT ISNULL(C_CUS_NO,'') AS C_CUS_NO,ISNULL(D_NAME,'') AS D_NAME,ISNULL(C_RP_DD,'') AS C_RP_DD,
- ISNULL(C_CACC_NO,'') AS C_CACC_NO,ISNULL(C_AMTN_BC,0) AS C_AMTN_BC,ISNULL(C_RP_NO,'') AS C_RP_NO,
- ISNULL(B_BIL_NO,'') AS B_BIL_NO,ISNULL(B_BIL_ID,'') AS B_BIL_ID,ISNULL(A_AMTN_CLS,0)AS A_AMTN_CLS,
- ISNULL(OK,'') AS OK FROM TC_MON_PC WHERE C_RP_ID=1 AND ISNULL(B_BIL_ID,'')<>'' AND ISNULL(IRP_NO,'')='' AND OK='N'""",[]).fetchall()
- if len(sa_date) == 0:
- return http.HttpResponseForbidden("没有需要拉取的数据")
- data = []
- RT_NO = []
- for i in sa_date:
- # print(1111)
- RT_NO.append(i[5])
- data.append({"C_CUS_NO": i[0], "D_NAME": i[1], "C_RP_DD": i[2], "C_CACC_NO": str(i[3]),
- "C_AMTN_BC": float(i[4]), "C_RP_NO": i[5], "B_BIL_NO": i[6], "B_BIL_ID": i[7].strip(),
- "A_AMTN_CLS": float(i[8]), "OK": i[9]})
- for i in RT_NO:
- cursor.execute("""UPDATE TC_MON_PC SET OK='Y' WHERE C_RP_NO=%s""", [i])
- context = {
- "data": data,
- "errmsg": "客户收款单数据回传app成功",
- "code": 200
- }
- return http.JsonResponse(context)
- # 厂商付款单
- # SELECT ISNULL(C_CUS_NO,'') AS C_CUS_NO,ISNULL(D_NAME,'') AS D_NAME,ISNULL(C_RP_DD,'') AS C_RP_DD,
- # ISNULL(C_CACC_NO,'') AS C_CACC_NO,ISNULL(C_AMTN_BC,0) AS C_AMTN_BC,ISNULL(C_RP_NO,'') AS C_RP_NO,
- # ISNULL(B_BIL_NO,'') AS B_BIL_NO,ISNULL(B_BIL_ID,'') AS B_BIL_ID,ISNULL(A_AMTN_CLS,0)AS A_AMTN_CLS,
- # ISNULL(OK,'') AS OK
- # FROM TC_MON_PC WHERE C_RP_ID=2 AND ISNULL(B_BIL_ID,'')<>'' AND ISNULL(IRP_NO,'')=''
- class pt(View):
- def post(self, request):
- with connection.cursor() as cursor:
- # 判断表是否存在
- is_table=cursor.execute("""SELECT table_name FROM information_schema.TABLES WHERE table_name ='TC_MON_PC'""", []).fetchall()
- if len(is_table)==0:
- return http.HttpResponseForbidden("TC_MON_PC,此表不存在请先创建此表")
- #判断表中是否存在数据
- sa_count=cursor.execute("""SELECT COUNT(*) FROM TC_MON_PC""", []).fetchall()[0][0]
- if sa_count==0:
- return http.HttpResponseForbidden("表数据为空请先增加数据")
- # 查询未被拉取的数据
- sa_date = cursor.execute("""SELECT ISNULL(C_CUS_NO,'') AS C_CUS_NO,ISNULL(D_NAME,'') AS D_NAME,ISNULL(C_RP_DD,'') AS C_RP_DD,
- ISNULL(C_CACC_NO,'') AS C_CACC_NO,ISNULL(C_AMTN_BC,0) AS C_AMTN_BC,ISNULL(C_RP_NO,'') AS C_RP_NO,
- ISNULL(B_BIL_NO,'') AS B_BIL_NO,ISNULL(B_BIL_ID,'') AS B_BIL_ID,ISNULL(A_AMTN_CLS,0)AS A_AMTN_CLS,
- ISNULL(OK,'') AS OK FROM TC_MON_PC WHERE C_RP_ID=2 AND ISNULL(B_BIL_ID,'')<>'' AND ISNULL(IRP_NO,'')='' AND OK='N'""",[]).fetchall()
- if len(sa_date) == 0:
- return http.HttpResponseForbidden("没有需要拉取的数据")
- data = []
- RT_NO = []
- for i in sa_date:
- # print(1111)
- RT_NO.append(i[5])
- data.append({"C_CUS_NO": i[0], "D_NAME": i[1], "C_RP_DD": i[2], "C_CACC_NO": str(i[3]),
- "C_AMTN_BC": float(i[4]), "C_RP_NO": i[5], "B_BIL_NO": i[6], "B_BIL_ID": i[7].strip(),
- "A_AMTN_CLS": float(i[8]), "OK": i[9]})
- for i in RT_NO:
- cursor.execute("""UPDATE TC_MON_PC SET OK='Y' WHERE C_RP_NO=%s""", [i])
- context = {
- "data": data,
- "errmsg": "客户收款单数据回传app成功",
- "code": 200
- }
- return http.JsonResponse(context)
- # 渲染order.html模板
- class index(View):
- def get(self, request):
- return render(request, 'order.html')
- # order.html模板模板功数据
- class listtb(View):
- def get(self, request):
- # req_data = json.loads(request.body.decode())["params"]
- # print(req_data)
- st_time = request.GET["st_time"] # 开始时间
- sh_time = request.GET['sh_time']
- cus_no = request.GET['cus_no']
- cls_id = request.GET['cls_id']
- PMC_REM = request.GET['pmc_ok']
- sort = request.GET['sort']
- th_time = datetime.datetime.now().strftime('%Y-%m') # 获取本月时间
- page = settings.PAGE_SIZE
- print(page)
- # 处理客户代号
- if cus_no:
- cus_no = ' AND '+ 'A.CUS_NO='+"'"+cus_no+"'"
- print(cus_no)
- # 处理结案否
- if cls_id:
- if cls_id =='1':
- cls_id = ''
- elif cls_id == '2':
- cls_id = 'T'
- cls_id = ' AND '+ 'A.CLS_ID ='+"'"+cls_id+"'"
- else:
- cls_id = ' AND ' + 'A.CLS_ID !=' + "'" + 'T' + "'"
- # 处理是否回复
- if PMC_REM:
- if PMC_REM =='1':
- PMC_REM = ''
- elif PMC_REM == '2':
- PMC_REM = ' AND '+ "ISNULL(C.PMC_REM,'') != ''"
- else:
- PMC_REM = ' AND ' + "ISNULL(C.PMC_REM,'') = ''"
- if sort:
- # F.SPC_NO
- if sort == '1':
- sort = ' ORDER BY F.SPC_NO DESC'
- if sort == '2':
- sort = ' ORDER BY A.CUS_NO DESC'
- else:
- sort = ' ORDER BY C.PMC_REM DESC'
- if st_time =='':
- conditional = ' ORDER BY A.OS_NO DESC'
- else:
- conditional = ' AND ' + 'left(Convert(varchar(100), A.OS_DD, 23), 11) >=' + "'" + st_time + "'" + ' AND ' + 'left(Convert(varchar(100), A.OS_DD, 23), 11) <=' + "'" + sh_time + "'" + cus_no + cls_id + PMC_REM + sort
- # 定义sql语句
- sql = """SELECT TOP 1000 CASE WHEN F.NAME LIKE '%%返工%%' THEN '返工' ELSE '订单' END AS ORDER0 ,ISNULL(B.OS_DD,'') AS OS_DD,
- ISNULL(D.SNM,'') AS CUS_SNM,B.OS_NO AS OS_NO,B.PRD_NO AS PRD_NO,ISNULL(E.DZRL,'') AS DZRL,'' AS RQ,ISNULL(E.YSSL,'') AS YSSL,'' AS YMXH,
- ISNULL(B.QTY,0) AS QTY,ISNULL(E.YSSL *B.QTY,0) AS GZSL,B.EST_DD AS EST_DD,'' AS PD_DEP,ISNULL(B.REM,'') AS REM,CONVERT(CHAR(10), C.PMC_REM, 23) AS PMC_DD, C.WH_REM AS WH_REM,
- B.ITM AS ITM FROM MF_POS A
- LEFT JOIN TF_POS B ON A.OS_NO=B.OS_NO
- LEFT JOIN TF_POS_Z C ON B.OS_NO=C.OS_NO AND B.ITM=C.ITM
- LEFT JOIN CUST D ON A.CUS_NO=D.CUS_NO
- LEFT JOIN PRDT_Z E ON B.PRD_NO=E.PRD_NO
- LEFT JOIN BIL_SPC F ON A.BIL_TYPE=F.SPC_NO AND F.BIL_ID='SA'
- WHERE A.OS_ID='SO' AND B.OS_ID=A.OS_ID AND C.OS_ID=A.OS_ID {0}""".format(conditional)
- with connection.cursor() as cursor:
- no_data = cursor.execute(sql,[]).fetchall()
- data = [
- {"ORDER0": "类别", "OS_DD": '下单日期', "CUS_SNM": "客户名称",
- "OS_NO":"计划单号","PRD_NO":"产品编码","DZRL":"容量(ML)",
- "QY":"容器","YSSL":"套装颜色数","YMXH":"研磨品类型",
- "QTY":"订单数量","GZSL":"灌装数量","EST_DD":"业务交期",
- "PD_DEP":"生产部门","REM":"备注","PMC_DD":"PMC回复交期","WH_REM":"大货备注",
- "operation":"操作","ITM":"项次"},
- ]
- # OS_NO = [] 啊啊撒打算梵蒂冈git add .
- for i in no_data:
- # print(1111)
- # OS_NO.append(i[5])
- data.append({"ORDER0": i[0], "OS_DD": str(i[1])[:10] , "CUS_SNM": i[2], "OS_NO": str(i[3]),
- "PRD_NO": i[4], "DZRL": i[5], "QY": i[6], "YSSL": i[7],
- "YMXH": i[8], "QTY": float(i[9]),"GZSL": float(i[10]),"EST_DD": str(i[11])[:10],
- "PD_DEP": i[12],"REM":i[13],"PMC_DD": str(i[14]),"WH_REM": i[15],"operation": "保存","ITM":i[16]})
- # print(data)
- context = {
- "data": data,
- "errmsg": "一览表获取成功",
- "code": 200
- }
- return http.JsonResponse(context)
- def put(self, request):
- # req_data = json.loads(request.body.decode())
- try:
- eq_data = json.loads(request.body.decode())["params"]
- except Exception:
- return http.HttpResponseForbidden('参数不全')
- req_data = json.loads(request.body.decode())["params"]
- OS_NO = req_data.get("OS_NO")
- PMC_DD = req_data.get("PMC_DD",'')
- WH_REM = req_data.get("WH_REM",'')
- ITM = req_data.get("ITM")
- with connection.cursor() as cursor:
- cursor.execute(
- """UPDATE TF_POS_Z SET PMC_REM=%s,WH_REM=%s WHERE OS_ID='SO' AND OS_NO=%s AND ITM=%s """,
- [PMC_DD,WH_REM,OS_NO,ITM])
- print(OS_NO)
- print(PMC_DD)
- print(WH_REM)
- print(ITM)
- context = {
- "errmsg": "保存成功",
- "code": 200
- }
- return http.JsonResponse(context)
- # 渲染dep_ps.html模板
- class depps(View):
- def get(self, request):
- return render(request, 'dep_ps.html')
- # return render(request, 'xx.html')
- # 获取部门数据
- class dept(View):
- def get(self, request):
- with connection.cursor() as cursor:
- dep_data = cursor.execute("""SELECT DEP,NAME FROM DEPT""",[]).fetchall()
- # print(dep_data)
- data = []
- # print(dep_data)
- for i in dep_data:
- # print(1111)
- data.append({"DEP": i[0], "DEP_NAME": i[1]})
- # print(data)
- context = {
- "data": data,
- "errmsg": "获取部门成功",
- "code": 200
- }
- return http.JsonResponse(context)
- # 查询单号
- class oddNo(View):
- def get(self, request):
- sql = ("SELECT TOP 5 MO_NO FROM MF_MO ")
- result = executeQuery(sql)
- context = {
- "data": result,
- "errmsg": "获取单号成功",
- "code": 200
- }
- return http.JsonResponse(context)
- #获取客户信息
- class Cust(View):
- def get(self, request):
- sql = ("SELECT CUS_NO,NAME FROM CUST WHERE OBJ_ID ='1' OR OBJ_ID = '3'")
- result = executeQuery(sql)
- context = {
- "data": result,
- "errmsg": "获取部门成功",
- "code": 200
- }
- return http.JsonResponse(context)
- # 生成月度产能评估表单号
- class monthly(View):
- def get(self, request):
- monthly_odd_old='20200219009'
- monthly_odd_new = monthly_odd(monthly_odd_old)
- # data = {"monthly_odd_new":monthly_odd_new}
- context = {
- "data": monthly_odd_new,
- "errmsg": "获取部门成功",
- "code": 200
- }
- return http.JsonResponse(context)
- # 测试
- class text(View):
- def get(self, request):
- return render(request, 'text.html')
|