Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Y
ypt_mgw_local
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
苏星豪
ypt_mgw_local
Commits
3981bcdf
提交
3981bcdf
authored
8月 15, 2024
作者:
李思鑫
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'dev' of
http://124.225.116.118:35236/tj_django/datacenter
into dev
上级
f0a5e7d9
c9edd1d9
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
117 行增加
和
0 行删除
+117
-0
urls.py
datacenter/urls.py
+1
-0
views.py
inventory/views.py
+116
-0
没有找到文件。
datacenter/urls.py
浏览文件 @
3981bcdf
...
...
@@ -246,6 +246,7 @@ urlpatterns = [
url
(
r'^inventory/upload/label_replace/$'
,
inventory_views
.
upload_label_replace
),
url
(
r'^inventory/app/stock/(?P<company_id>\d+)/$'
,
inventory_views
.
app_stock
),
url
(
r'^inventory/app/stock_v2/$'
,
inventory_views
.
app_stock_v2
),
url
(
r'^inventory/app/(?P<company_id>\d+)/children/$'
,
inventory_views
.
app_childcompany
),
...
...
inventory/views.py
浏览文件 @
3981bcdf
...
...
@@ -52,6 +52,7 @@ import calendar
#from datacenter.common import *
from
datacenter.common
import
query_json
# 2022-11-24
import
io
...
...
@@ -6824,6 +6825,121 @@ def app_stock(request,company_id):
cur
.
close
()
return
JsonResponse
(
data
)
# 库存查询 新版
# 2024-08-13
# Jonathan
def
app_stock_v2
(
request
):
data
=
{
'e'
:
''
,
'stock'
:[]}
k
=
sK
e
=
time_key_check
(
request
,
k
)
if
e
:
data
[
'e'
]
=
e
return
JsonResponse
(
data
)
company_id
=
int
(
request
.
GET
.
get
(
'company_id'
,
'0'
))
ancestor_id
=
int
(
request
.
GET
.
get
(
'ancestor_id'
,
'0'
))
if
company_id
and
ancestor_id
:
parent_id
=
int
(
request
.
GET
.
get
(
'parent_id'
,
'0'
))
# 额外的查询字段 用于控制公司汇总数量和带产品的明细
search_suffix_str
=
'Y.pkg_qty,Y.qty_p,Y.product_id,Y.product_name'
swhere
=
"Y.company_id = "
+
{
str
(
company_id
)}
if
parent_id
:
swhere
=
f
"Y.company_id in (SELECT id from logistics.company_company where parent_id = {str(parent_id)})"
#search_suffix_str = ''
# 如果是玖藏的 隐藏第一代库存
if
ancestor_id
==
208869
:
swhere
=
swhere
+
" and product_id not in (10558,10559,10560,10561,10562)"
s
=
f
"""
SELECT
sum(Y.cnt),
Y.company_id,
(SELECT name from logistics.company_company where id = Y.company_id),
{search_suffix_str}
FROM (
SELECT
CASE
WHEN label_pkg = 3 THEN cnt * qty_h * qty_p * direction
WHEN label_pkg = 2 THEN cnt * qty_p * direction
WHEN label_pkg = 1 THEN cnt * direction
ELSE 0
END cnt,
product_id,
company_id,
product_name,
concat(qty_x,'*',qty_h,'*',qty_p) as pkg_qty,
qty_p
FROM (
SELECT
A.label_pkg,
A.company_id,
A.product_id,
A.vtype_id,
A.cnt,
B.name as product_name,
CASE WHEN b.qty_x > 0 THEN b.qty_x ELSE 1 END qty_x,
CASE WHEN b.qty_h > 0 THEN b.qty_h ELSE 1 END qty_h,
CASE WHEN b.qty_p > 0 THEN b.qty_p ELSE 1 END qty_p,
C.direction
from (
SELECT
label_pkg,
company_id,
product_id,
vtype_id,
COUNT(0) as cnt
FROM
stkdetails.c{str(ancestor_id)}
WHERE
{swhere}
GROUP BY
label_pkg,
company_id,
product_id,
vtype_id
) A
LEFT JOIN logistics.product_product B ON A.product_id = B.ID
LEFT JOIN logistics.inventory_voucher C ON A.vtype_id = C.ID
) X
) Y
GROUP BY Y.company_id {search_suffix_str}
"""
cur
=
connection
.
cursor
()
cur
.
execute
(
s
)
rs
=
cur
.
fetchall
()
package_units
=
get_package_name
(
ancestor_id
)
for
r
in
rs
:
if
search_suffix_str
:
p_num
=
int
(
r
[
0
])
qty_p
=
r
[
4
]
num_str
=
''
if
p_num
and
qty_p
:
d
=
divmod
(
p_num
,
qty_p
)
num_str
=
str
(
d
[
0
])
+
package_units
[
2
]
+
d
[
1
]
+
package_units
[
0
]
else
:
num_str
=
str
(
p_num
)
+
package_units
[
0
]
data
[
'stock'
]
.
append
({
'p_num'
:
int
(
r
[
0
]),
'company_id'
:
r
[
1
],
'company_name'
:
r
[
2
],
'pkg_qty'
:
r
[
3
],
'qty_p'
:
qty_p
,
'product_id'
:
r
[
5
],
'product_name'
:
r
[
6
],
'num_str'
:
num_str
})
else
:
data
[
'stock'
]
.
append
({
'p_num'
:
int
(
r
[
0
]),
'company_id'
:
r
[
1
],
'company_name'
:
r
[
2
]
})
cur
.
close
()
else
:
data
[
'e'
]
=
'缺少必要参数'
return
JsonResponse
(
data
)
@login_required
def
children_stock
(
request
):
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论