Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Y
ypt_mgw_local
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
苏星豪
ypt_mgw_local
Commits
70ce4b08
提交
70ce4b08
authored
11月 22, 2022
作者:
苏星豪
浏览文件
操作
浏览文件
下载
差异文件
合并分支 'dev' 到 'test'
金彩山垛标绑定 查看合并请求 tj_django/datacenter!13
上级
e9820ea4
627e9f0f
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
210 行增加
和
15 行删除
+210
-15
urls.py
datacenter/urls.py
+1
-0
views.py
inventory/views.py
+142
-7
views.py
sales/views.py
+67
-8
没有找到文件。
datacenter/urls.py
浏览文件 @
70ce4b08
...
...
@@ -126,6 +126,7 @@ urlpatterns = [
url
(
r'^sales/promotioncode/share_json/$'
,
sal_views
.
promotionCode_share_json
),
url
(
r'^sales/promotioncode/compose/$'
,
sal_views
.
promotionCode_compose
),
url
(
r'^sales/promotioncode/compose_json/$'
,
sal_views
.
promotionCode_compose_json
),
url
(
r'^sales/promotioncode/compose_json_jg/$'
,
sal_views
.
promotionCode_compose_json_jg
),
url
(
r'^sales/promotioncode/redeem/$'
,
sal_views
.
promotionCode_redeem
),
url
(
r'^sales/promotioncode/redeem_json/$'
,
sal_views
.
promotionCode_redeem_json
),
url
(
r'^sales/promotioncode/super_prize_redeem_json/$'
,
sal_views
.
promotionCode_super_prize_redeem_json
),
...
...
inventory/views.py
浏览文件 @
70ce4b08
...
...
@@ -2374,13 +2374,7 @@ def fg_update(request,is_app=False):
if
vch_id
==
1
and
'stack_binding'
in
r
:
st
=
r
[
'stack_binding'
]
if
len
(
st
)
>
0
:
stack_binding
=
jcs_virtual_stack_binding
(
batch
,
r
[
'stack_binding'
])
stacks
=
stack_binding
[
'stacks'
]
if
stacks
and
vch_id
==
1
:
aSql
=
stack_binding
[
'insert_sql'
]
if
aSql
:
sSql
=
"insert into codes(label_code,tb,product_id,stack_id) values "
+
","
.
join
(
aSql
)
+
" on CONFLICT(label_code) do update set stack_id = EXCLUDED.stack_id"
cur
.
execute
(
sSql
)
stack_binding
=
jcs_virtual_stack_binding
(
batch
,
r
[
'stack_binding'
],
cmp_id
)
#2022-05-10 保存原始标签号码
...
...
@@ -13901,3 +13895,144 @@ def jcs_virtual_stack_binding(batch,stack_binding):
# "from inventory_stkdetails where batch_id=" + str(batch.id) + " and stack_id>0 " + \
# "on CONFLICT(stack_id,label_pk_id) do nothing"
return
data
def
jcs_virtual_stack_binding
(
batch
,
stack_binding
,
company_id
):
data
=
{
'e'
:
''
}
# 2022-07-20 数据写入日志
cs
=
Company
.
objects
.
filter
(
id
=
int
(
company_id
))
c
=
cs
[
0
]
cur
=
connection
.
cursor
()
cur
.
execute
(
"create temp table temps("
+
\
"id serial,"
+
\
"label_code character varying(32) ,"
+
\
"tb character varying(20),"
+
\
"product_id integer,"
+
\
"stack_id integer,"
+
\
"wrapper_id integer,"
+
\
"code character varying(32),"
+
\
"label_id bigint,"
+
\
"label_pk_id bigint,"
+
\
"label_pkg smallint,"
+
\
"err character varying(100),"
+
\
"label_code0 character varying(32),"
+
\
"from_agent_id integer)"
)
insert_sql
=
[]
codes
=
[]
for
i
in
stack_binding
:
is_physical
=
True
code
=
i
[
'stack'
]
if
code
[:
4
]
==
'xndb'
:
is_physical
=
False
stks
=
Stack
.
objects
.
filter
(
code
=
code
)
if
stks
:
stack
=
stks
[
0
]
else
:
stack
=
Stack
(
company_id
=
batch
.
company_id
,
code
=
code
)
stack
.
product_id
=
batch
.
product_id
stack
.
store_id
=
batch
.
store_fr_id
stack
.
is_physical
=
is_physical
if
'location'
in
i
:
stack
.
location
=
i
[
'location'
]
if
'qty_lmt'
in
i
:
stack
.
qty_lmt
=
i
[
'qty_lmt'
]
if
'is_fixed'
in
i
:
stack
.
is_fixed
=
i
[
'is_fixed'
]
stack
.
qty_lmt
=
0
stack
.
save
()
if
batch
.
product_id
:
product_id
=
str
(
batch
.
product_id
)
else
:
product_id
=
'null'
for
l
in
i
[
'codes'
]:
insert_sql
.
append
(
"('"
+
l
+
"','"
+
l
[:
4
]
+
"',"
+
product_id
+
","
+
str
(
stack
.
id
)
+
")"
)
codes
.
append
(
l
)
# s = "INSERT INTO inventory_stackdetails(company_id,product_id,label_pk_id,label_id,label_pkg,label_code,tm,stack_id) " + \
# "select company_id,product_id,label_pk_id,label_id,label_pkg,label_code,now(),stack_id " + \
# "from inventory_stkdetails where batch_id=" + str(batch.id) + " and stack_id>0 " + \
# "on CONFLICT(stack_id,label_pk_id) do nothing"
sSql
=
"insert into temps(label_code,tb,product_id,stack_id) "
\
"values "
+
","
.
join
(
insert_sql
)
cur
.
execute
(
sSql
)
stacks
=
[]
stack_binding
=
''
# 2022-05-10 保存原始标签号码
cur
.
execute
(
"update temps set label_code0=label_code"
)
s
=
"update temps o set code=coalesce"
+
\
"((select code0 from label.lbl_replace_details where code=o.label_code order by batch_id desc limit 1),o.label_code)"
cur
.
execute
(
s
)
# 2020-07-27 处理跨段动态绑定
s
=
"update temps set tb=b.tbname from "
+
\
"(SELECT tb,label_code from temps) a "
+
\
"left outer join "
+
\
"(SELECT segment, tbname FROM label.lbl_tbcross) b "
+
\
"on a.tb=b.segment "
+
\
"where temps.label_code=a.label_code and b.tbname is not null"
cur
.
execute
(
s
)
# 2022-05-09 有些AB样标使用了跨段表里的号段
s
=
"select "
+
\
"(select code_a FROM label.lbl_abcode where code_b=label_code or code_a=label_code),"
+
\
"tb='t'||left((select code_a FROM label.lbl_abcode where code_b=label_code or code_a=label_code),4) "
+
\
"from temps "
+
\
"where (select id from label.lbl_abcode where code_a=label_code or code_b=label_code limit 1)>0"
cur
.
execute
(
s
)
r
=
cur
.
fetchone
()
s
=
"update temps set code="
+
\
"(select code_a FROM label.lbl_abcode where code_b=label_code or code_a=label_code),"
+
\
"tb='t'||left((select code_a FROM label.lbl_abcode where code_b=label_code or code_a=label_code),4) "
+
\
"where (select id from label.lbl_abcode where code_a=label_code or code_b=label_code limit 1)>0"
cur
.
execute
(
s
)
cur
.
execute
(
"update temps set tb='t'||left(code,4) where length(tb)=4"
)
cur
.
execute
(
"select tb from temps group by tb"
)
rs
=
cur
.
fetchall
()
for
r
in
rs
:
# cur.execute("select to_regclass('label." + r[0] + "')")
cur
.
execute
(
"select count(*) from information_schema.tables where table_schema='label' "
+
\
"and table_type='BASE TABLE' and table_name='"
+
r
[
0
]
+
"'"
)
r0
=
cur
.
fetchone
()
if
r0
[
0
]:
s
=
"update temps set "
+
\
"label_id=b.id,"
+
\
"label_pkg=b.package_id,"
+
\
"label_pk_id=coalesce(b.parent_id,b.id) "
+
\
"from "
+
\
"(SELECT label_code,code from temps where tb='"
+
r
[
0
]
+
"') a "
+
\
"left outer join "
+
\
"(select id,code,parent_id,package_id,is_pk from label."
+
r
[
0
]
+
") b "
+
\
"on a.code=b.code "
+
\
"where tb='"
+
r
[
0
]
+
"' and temps.code=a.code"
cur
.
execute
(
s
)
# 没有标签id的,看是不是企业第三方标签
s
=
"update temps set "
+
\
"label_id=b.id,"
+
\
"label_pkg=b.package_id,"
+
\
"label_pk_id=coalesce(b.parent_id,b.id) "
+
\
"from "
+
\
"(SELECT label_code,code from codes where label_id is null) a "
+
\
"left outer join "
+
\
"(select id,code,parent_id,package_id,is_pk from label.thirdparty where cid="
+
str
(
c
.
ancestor_id
)
+
") b "
+
\
"on a.code=b.code "
+
\
"where temps.code=a.code and label_id is null"
cur
.
execute
(
s
)
s
=
"INSERT INTO inventory_stackdetails(company_id,product_id,label_pk_id,label_id,label_pkg,label_code,tm,stack_id) "
+
\
"select "
+
str
(
company_id
)
+
",product_id,label_pk_id,label_id,label_pkg,label_code,now(),stack_id "
+
\
"from temps where label_pk_id is not null and stack_id>0 "
+
\
"on CONFLICT(stack_id,label_pk_id) do nothing"
cur
.
execute
(
s
)
return
data
sales/views.py
浏览文件 @
70ce4b08
...
...
@@ -3348,7 +3348,7 @@ def promotionCode_getUserData(request):
f
"(select name from sales_award where id=(select award_id from sales_activityawards where id=a.award_id)), "
\
f
"tm, activity_id "
\
f
"from sales_consumerwinner a "
\
f
"where activity_id in (18, 55, 98) and consumer_id={user.id} and tm_redeemed is null"
f
"where activity_id in (18, 55, 98
, 104
) and consumer_id={user.id} and tm_redeemed is null"
cur
.
execute
(
sql2
)
t
=
cur
.
fetchall
()
...
...
@@ -3367,7 +3367,7 @@ def promotionCode_getUserData(request):
f
"(select name from sales_award where id=(select award_id from sales_activityawards where id=a.award_id)), "
\
f
"tm, tm_redeemed, activity_id "
\
f
"from sales_consumerwinner a "
\
f
"where activity_id in (18, 55, 98) and consumer_id={user.id} and tm_redeemed is not null"
f
"where activity_id in (18, 55, 98
, 104
) and consumer_id={user.id} and tm_redeemed is not null"
cur
.
execute
(
sql3
)
d
=
cur
.
fetchall
()
...
...
@@ -4064,7 +4064,7 @@ def promotionCode_compose_json(request):
@csrf_exempt
def
promotionCode_compose_json_
v2
(
request
):
def
promotionCode_compose_json_
jg
(
request
):
"""
{plan}
0: 馥郁奖,
...
...
@@ -4090,9 +4090,9 @@ def promotionCode_compose_json_v2(request):
if
company_id
==
1
:
plan
=
int
(
plan
)
if
activity
==
104
and
plan
==
0
:
if
plan
==
0
:
card_consume_list
=
[]
activityAward
=
42
5
activityAward
=
42
6
qty
=
1
ids
=
[]
for
key
,
value
in
cardsUse
.
items
():
...
...
@@ -4101,7 +4101,6 @@ def promotionCode_compose_json_v2(request):
rs
=
cur
.
fetchall
()
for
r
in
rs
:
ids
.
append
([
r
[
0
],
r
[
1
]])
if
len
(
ids
)
==
3
:
for
r
in
ids
:
# 修改code的状态
...
...
@@ -4123,8 +4122,68 @@ def promotionCode_compose_json_v2(request):
c
.
save
()
return
JsonResponse
({
'card_consumed'
:
card_consume_list
,
'plan'
:
plan
})
else
:
JsonResponse
({
'msg'
:
'not enough'
})
return
JsonResponse
({
'msg'
:
'not enough'
})
elif
plan
==
1
:
card_consume_list
=
[]
sql0
=
f
"select item, count(*) from sales_promotioncode where uid_id={user.id} and status in (1,2) and activity_id='{activity}' group by item"
cur
.
execute
(
sql0
)
r
=
cur
.
fetchall
()
list
=
[]
listArray
=
[
0
,
0
,
0
,
0
,
0
,
0
]
cardsUseArray
=
cardsUse
.
split
(
','
)
for
i
,
v
in
enumerate
(
cardsUseArray
):
cardsUseArray
[
i
]
=
int
(
v
)
for
i
in
r
:
list
.
append
({
i
[
0
]:
i
[
1
]
})
listArray
[
i
[
0
]
-
1
]
=
i
[
1
]
qty
=
1
limit
=
6
activityAward
=
425
cardsUseSum
=
0
for
i
in
cardsUseArray
:
cardsUseSum
+=
i
if
cardsUseSum
!=
limit
:
return
JsonResponse
({
'e'
:
'limit not match'
,
'code'
:
'16-1'
})
sufficientCards
=
True
for
i
,
v
in
enumerate
(
listArray
):
if
cardsUseArray
[
i
]
>
listArray
[
i
]:
sufficientCards
=
False
break
if
sufficientCards
==
False
:
return
JsonResponse
({
'e'
:
'insufficient cards'
,
'code'
:
'15-1'
})
else
:
for
j
,
jv
in
enumerate
(
cardsUseArray
):
if
jv
==
0
:
continue
sql
=
f
"select id, item from sales_promotioncode where activity_id={activity} and uid_id={user.id} and status in (1,2) and item={j + 1} limit {jv}"
cur
.
execute
(
sql
)
rs
=
cur
.
fetchall
()
for
r
in
rs
:
# 修改code的状态
pc
=
PromotionCode
.
objects
.
get
(
id
=
r
[
0
])
pc
.
status
=
3
pc
.
save
()
# 写消耗的记录
p
=
PromotionCodeStatusRecord
(
code
=
pc
,
operation
=
3
,
uid
=
user
,
tm
=
tm
)
p
.
save
()
card_consume_list
.
append
({
'id'
:
r
[
0
],
'item'
:
r
[
1
]})
# 写 ConsumerWinner
c
=
ConsumerWinner
(
company_id
=
company_id
,
consumer_id
=
user
.
id
,
activity_id
=
104
,
award_id
=
activityAward
,
qty
=
qty
)
c
.
save
()
return
JsonResponse
({
'card_consumed'
:
card_consume_list
,
'plan'
:
plan
})
return
JsonResponse
({
'msg'
:
'ok'
})
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论