提交 580d7dc9 authored 作者: 张颂恩's avatar 张颂恩

调整

上级 cc2d4380
...@@ -22,7 +22,7 @@ from django.utils.translation import gettext_lazy as _ ...@@ -22,7 +22,7 @@ from django.utils.translation import gettext_lazy as _
# 2024-06-28 # 2024-06-28
sK = 'fgfdvgu$#&3t@j' sK = 'fgfdvgu$#&3t@j'
from utils.views import time_key_check from utils.views import time_key_check
from inventory.views import LabelQuery,decrypt_11h from inventory.views import LabelQuery, decrypt_11h
from wx.views import transfer_batch from wx.views import transfer_batch
import redis import redis
...@@ -54,7 +54,7 @@ def banquetList(request,obj): ...@@ -54,7 +54,7 @@ def banquetList(request,obj):
elif obj == "apply": elif obj == "apply":
data['subtt'] = ['宴会管理', '宴会申请'] data['subtt'] = ['宴会管理', '宴会申请']
data['clmns'] = ['状态', '类别', '产品', '政策', '用酒人', '联系电话', '宴会时间', '结束时间', '地址', '桌数', '箱数','实际桌数', '实际箱数', '大区', data['clmns'] = ['状态', '类别', '产品', '政策', '用酒人', '联系电话', '宴会时间', '结束时间', '地址', '桌数', '实际桌数', '箱数', '实际箱数', '扫码数量', '瓶数', '扫码占比', '大区',
'分区', '上级经销商', '申请终端', '申请人', '部门', '申请时间', '审核时间', '审核人', '操作'] '分区', '上级经销商', '申请终端', '申请人', '部门', '申请时间', '审核时间', '审核人', '操作']
data['dt'] = True data['dt'] = True
...@@ -81,36 +81,42 @@ def banquetList(request,obj): ...@@ -81,36 +81,42 @@ def banquetList(request,obj):
"status,COALESCE ( ( select last_name from company_user WHERE id = permiter_id ), '' ), " "(SELECT COUNT(1) FROM banquet_apply_codes WHERE apply_id = a.id AND package_id = 3)," + \ "status,COALESCE ( ( select last_name from company_user WHERE id = permiter_id ), '' ), " "(SELECT COUNT(1) FROM banquet_apply_codes WHERE apply_id = a.id AND package_id = 3)," + \
"coalesce(to_char(end_tm,'yyyy-mm-dd HH24:MI:SS'),''), "+\ "coalesce(to_char(end_tm,'yyyy-mm-dd HH24:MI:SS'),''), "+\
"actual_table_num,"+\ "actual_table_num,"+\
"(SELECT COUNT(0) FROM banquet_writeoff WHERE apply_id = a.id AND package_id = 3), "+\ "(SELECT COUNT(0) FROM banquet_writeoff WHERE apply_id = a.id), "+\
"(select name from company_company where id = (select parent_id from company_company where id = company_id)) "+\ "(select name from company_company where id = (select parent_id from company_company where id = company_id)), "+\
"scan_num,"+\
"bottle_num "+\
"from banquet_apply a " + sWhere "from banquet_apply a " + sWhere
cur.execute(s) cur.execute(s)
rs = cur.fetchall() rs = cur.fetchall()
for r in rs: for r in rs:
dict = { dict = {
0: '未审核', 0: ['未审核','blue'],
1: '已通过', 1: ['已通过','#07c160'],
2: '未通过', 2: ['未通过','red'],
3: '结算审核中', 3: ['结算审核中','blue'],
4: '结算中', 4: ['结算中','blue'],
5: '已结算', 5: ['已结算','#07c160'],
} }
status = dict[r[16]] status = dict[r[16]]
color = 'blue'
btn1 = "<a href='/banquet/list/apply_permit/?id=" + str( btn1 = "<a href='/banquet/list/apply_permit/?id=" + str(
r[0]) + "' target='_blank' class='btn-dlg btn-only-dlg'>"+status+"</a>" r[0]) + "' target='_blank' class='btn-dlg btn-only-dlg' style='text-decoration: underline; color: "+status[1]+"'>"+status[0]+"</a>"
btns = "<a href='/banquet/list/apply_codes/?id=" + str( btns = "<a href='/banquet/list/apply_codes/?id=" + str(
r[0]) + "' target='_blank' class='btn btn-default btn-sm btn-only-dlg'>扫码详情</a>" r[0]) + "' target='_blank' class='btn btn-default btn-sm btn-only-dlg'>申请扫码详情</a>"
btns = btns + "<a href='/banquet/list/writeoff/?id=" + str( btns = btns + "<a href='/banquet/list/writeoff/?id=" + str(
r[0]) + "' target='_blank' class='btn btn-default btn-sm btn-only-dlg'>核销详情</a>" r[0]) + "' target='_blank' class='btn btn-default btn-sm btn-only-dlg'>核销详情</a>"
# btns = btns + "<a href='/banquet/list/information_edit/?id=" + str( btns = btns + "<a href='/banquet/list/information_edit/?id=" + str(
# r[0]) + "' target='_blank' class='btn btn-default btn-sm btn-only-dlg'>补充宴会信息</a>" r[0]) + "' target='_blank' class='btn btn-default btn-sm btn-only-dlg'>补充宴会信息</a>"
btns = btns + "<a href='/banquet/list/apply_photos/?id=" + str( btns = btns + "<a href='/banquet/list/apply_photos/?id=" + str(
r[0]) + "' target='_blank' class='btn btn-default btn-sm btn-only-dlg'>查看照片</a>" r[0]) + "' target='_blank' class='btn btn-default btn-sm btn-only-dlg'>查看照片</a>"
scan_rate = 0
if r[23] and r[24]:
#scan_rate = str(round(r[23] / r[24], 4) * 100) + '%'
scan_rate = format((r[23] / r[24])*100, '.2f') + '%'
data['data'].append([ data['data'].append([
btn1, r[1], r[2], r[3], r[4], r[5], r[6], r[19], r[7], r[8], r[18], r[20], r[21], r[9], r[10], r[21], r[11], r[12], btn1, r[1], r[2], r[3], r[4], r[5], r[6], r[19], r[7], r[8], r[20], r[18], r[21], r[23], r[24], scan_rate, r[9], r[10], r[22], r[11], r[12],
r[13], r[14], r[15], r[17], btns r[13], r[14], r[15], r[17], btns
]) ])
elif obj =="apply_codes": elif obj =="apply_codes":
...@@ -135,7 +141,7 @@ def banquetList(request,obj): ...@@ -135,7 +141,7 @@ def banquetList(request,obj):
data['clmns'] = ['标签序号','类型','产品'] data['clmns'] = ['标签序号','类型','产品']
id = int(request.GET.get('id','0')) id = int(request.GET.get('id','0'))
if id: if id:
cur.execute("select code,package_id,(select name from product_product where id = product_id) from banquet_writeoff where apply_id = "+str(id)) cur.execute("select label_code,label_pkg,(select name from product_product where id = product_id) from banquet_writeoff where apply_id = "+str(id))
rs = cur.fetchall() rs = cur.fetchall()
for r in rs: for r in rs:
pkg = "瓶" pkg = "瓶"
...@@ -1004,7 +1010,7 @@ def ajaxBanquetInformationEdit(request): ...@@ -1004,7 +1010,7 @@ def ajaxBanquetInformationEdit(request):
else: else:
res['e'] = '数据丢失' res['e'] = '数据丢失'
return JsonResponse(res) return JsonResponse(res)
def ajaxBanquetSettle(request): def ajaxBanquetSettle(request):
data = { data = {
...@@ -1022,11 +1028,18 @@ def ajaxBanquetSettle(request): ...@@ -1022,11 +1028,18 @@ def ajaxBanquetSettle(request):
apply_codes_cnt = cur.fetchone()[0] apply_codes_cnt = cur.fetchone()[0]
cur.execute("select count(0) from banquet_writeoff where apply_id = " + str(apply.id)) cur.execute("select count(0) from banquet_writeoff where apply_id = " + str(apply.id))
writeoff_cnt = cur.fetchone()[0] writeoff_cnt = cur.fetchone()[0]
apply.status = 3 #结算审核中
# 如果提交箱数和核销相同 且 实际桌数与申请桌数相同 则自动返利 并修改状态为结算中 # 如果提交箱数和核销相同 且 实际桌数与申请桌数相同 则自动返利 并修改状态为结算中
if apply_codes_cnt == writeoff_cnt and apply.actual_table_num == apply.table_num: if apply_codes_cnt == writeoff_cnt and apply.actual_table_num == apply.table_num:
apply.status = 4 #结算中 if apply.ancestor_id == 208869:
else: d = ajaxBanquetConsumerScanAnalysis(id)
apply.status = 3 #结算审核中 #print(d)
if d['scan_rate'] >= 0.5:
apply.status = 4 #结算中
else:
apply.status = 4 #结算中
apply.save() apply.save()
else: else:
data['e'] = '无实际桌数,不能结算' data['e'] = '无实际桌数,不能结算'
...@@ -1036,7 +1049,7 @@ def ajaxBanquetSettle(request): ...@@ -1036,7 +1049,7 @@ def ajaxBanquetSettle(request):
data['e'] = '数据丢失' data['e'] = '数据丢失'
return JsonResponse(data) return JsonResponse(data)
def ajaxBanquetConsumerScanAnalysis(id): def ajaxBanquetConsumerScanAnalysis(id):
data = { data = {
'e':'', 'e':'',
...@@ -1047,7 +1060,7 @@ def ajaxBanquetConsumerScanAnalysis(id): ...@@ -1047,7 +1060,7 @@ def ajaxBanquetConsumerScanAnalysis(id):
if id: if id:
code4s = {} code4s = {}
cur=connection.cursor() cur=connection.cursor()
cur.execute("select label_code from banquet_writeoff where apply_id = "+str(id)) cur.execute("select code from banquet_apply_codes where apply_id = "+str(id))
rs = cur.fetchall() rs = cur.fetchall()
for r in rs: for r in rs:
label_code = r[0] label_code = r[0]
...@@ -1055,17 +1068,19 @@ def ajaxBanquetConsumerScanAnalysis(id): ...@@ -1055,17 +1068,19 @@ def ajaxBanquetConsumerScanAnalysis(id):
if c4 in code4s: if c4 in code4s:
code4s[c4].append(label_code) code4s[c4].append(label_code)
else: else:
code4s = [label_code] code4s[c4] = [label_code]
bottle_num = 0 bottle_num = 0
bottles = [] bottles = []
#print(code4s)
for c in code4s: for c in code4s:
cstr = ','.join("'{0}'".format(i) for i in code4s[c])
cur.execute(f""" cur.execute(f"""
SELECT SELECT
code, code,
(SELECT cap FROM mes_bottlcap where label_code = a.code) (SELECT cap FROM mes_bottlcap where label_code = a.code and cap is not null and cap !='' limit 1)
from label.t{c} a where a.parent_id in ( from label.t{c} a where a.parent_id in (
SELECT id from label.t{c} where code in ( SELECT id from label.t{c} where code in (
{','.join("'{0}'".format(i) for i in code4s[c])} {cstr}
) )
) )
...@@ -1079,15 +1094,18 @@ def ajaxBanquetConsumerScanAnalysis(id): ...@@ -1079,15 +1094,18 @@ def ajaxBanquetConsumerScanAnalysis(id):
bottles.append(code) bottles.append(code)
data['bottle_num'] = bottle_num data['bottle_num'] = bottle_num
if bottles: if bottles:
cur.execute(f"SELECT count(DISTINCT(label_code)) FROM sales_labelscan where label_code in ({','.join("'{0}'".format(i) for i in bottles)})") s = "SELECT count(DISTINCT(label_code)) FROM sales_labelscan where label_code in (" +(','.join("'{0}'".format(i) for i in bottles)) +")"
#print(s)
cur.execute(s)
r = cur.fetchone() r = cur.fetchone()
data['scan_num'] = r[0] data['scan_num'] = r[0]
data['scan_rate'] = round(r[0] / bottle_num, 2) data['scan_rate'] = round(r[0] / bottle_num, 2)
cur.execute(f"UPDATE banquet_apply set scan_num = {str(r[0])}, bottle_num = {str(bottle_num)} where id = {str(id)}")
else: else:
data['e'] = '数据丢失' data['e'] = '数据丢失'
return data return data
# 2024-06-24 # 2024-06-24
def policy(request,action='list',id=None): def policy(request,action='list',id=None):
u=request.user u=request.user
...@@ -1310,7 +1328,7 @@ def close_applys(request,agent_id,apply_id=None): ...@@ -1310,7 +1328,7 @@ def close_applys(request,agent_id,apply_id=None):
# pos方法 # pos方法
if request.method=='GET': if request.method=='GET':
data['e']=_('请求方式错误') data['e']=_('请求方式错误')
return JsonResonse(data) return JsonResponse(data)
d=json.loads(request.body) d=json.loads(request.body)
...@@ -1380,7 +1398,7 @@ def close_applys(request,agent_id,apply_id=None): ...@@ -1380,7 +1398,7 @@ def close_applys(request,agent_id,apply_id=None):
# 修改宴会申请is_cose状态 # 修改宴会申请is_cose状态
s="update banquet_apply set "+\ s="update banquet_apply set "+\
"is_closed=true,tm_closed=now(),closed_by_id="+uid+" "+\ "is_closed=true,tm_closed=now(),closed_by_id="+uid+",status=5 "+\
"where id="+app "where id="+app
cur.execute(s) cur.execute(s)
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论