Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
H
hh_ccs
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
贺阳
hh_ccs
Commits
4fd4bb31
提交
4fd4bb31
authored
9月 09, 2024
作者:
贺阳
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
1、提单右上角的大包小包统计优化 不统计已取消的,对应的查看也是
2、提单关联的接口优化,大包修改
上级
3438083d
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
34 行增加
和
22 行删除
+34
-22
cc_bill_loading.py
ccs_base/models/cc_bill_loading.py
+19
-15
tt_controllers.py
ccs_connect_tiktok/controllers/tt_controllers.py
+15
-7
没有找到文件。
ccs_base/models/cc_bill_loading.py
浏览文件 @
4fd4bb31
...
@@ -44,7 +44,7 @@ class CcBigPackage(models.Model):
...
@@ -44,7 +44,7 @@ class CcBigPackage(models.Model):
goods_qty
=
fields
.
Integer
(
string
=
'Package Qty'
,
compute
=
'_compute_big_package_qty'
,
store
=
True
)
goods_qty
=
fields
.
Integer
(
string
=
'Package Qty'
,
compute
=
'_compute_big_package_qty'
,
store
=
True
)
# 计算包裹数量
# 计算包裹数量
@api.depends
(
'ship_package_ids'
,
'goods_ids'
)
@api.depends
(
'ship_package_ids'
,
'goods_ids'
,
'ship_package_ids.is_cancel'
,
'goods_ids.is_cancel'
)
def
_compute_big_package_qty
(
self
):
def
_compute_big_package_qty
(
self
):
for
big_package
in
self
:
for
big_package
in
self
:
# 计算包裹数量,不包括取消的包裹
# 计算包裹数量,不包括取消的包裹
...
@@ -67,7 +67,7 @@ class CcBigPackage(models.Model):
...
@@ -67,7 +67,7 @@ class CcBigPackage(models.Model):
'type'
:
'ir.actions.act_window'
,
'type'
:
'ir.actions.act_window'
,
'res_model'
:
'cc.ship.package'
,
'res_model'
:
'cc.ship.package'
,
'view_mode'
:
'tree,form'
,
'view_mode'
:
'tree,form'
,
'domain'
:
[(
'big_package_id'
,
'='
,
self
.
id
)],
'domain'
:
[(
'big_package_id'
,
'='
,
self
.
id
)
,
(
'is_cancel'
,
'='
,
False
)
],
}
}
# 创建显示商品的action
# 创建显示商品的action
...
@@ -78,7 +78,7 @@ class CcBigPackage(models.Model):
...
@@ -78,7 +78,7 @@ class CcBigPackage(models.Model):
'type'
:
'ir.actions.act_window'
,
'type'
:
'ir.actions.act_window'
,
'res_model'
:
'cc.package.good'
,
'res_model'
:
'cc.package.good'
,
'view_mode'
:
'tree,form'
,
'view_mode'
:
'tree,form'
,
'domain'
:
[(
'big_package_id'
,
'='
,
self
.
id
)],
'domain'
:
[(
'big_package_id'
,
'='
,
self
.
id
)
,
(
'is_cancel'
,
'='
,
False
)
],
}
}
...
@@ -382,7 +382,7 @@ class CcShipPackage(models.Model):
...
@@ -382,7 +382,7 @@ class CcShipPackage(models.Model):
'type'
:
'ir.actions.act_window'
,
'type'
:
'ir.actions.act_window'
,
'res_model'
:
'cc.package.good'
,
'res_model'
:
'cc.package.good'
,
'view_mode'
:
'tree,form'
,
'view_mode'
:
'tree,form'
,
'domain'
:
[(
'bl_line_id'
,
'='
,
self
.
id
)],
'domain'
:
[(
'bl_line_id'
,
'='
,
self
.
id
)
,
(
'is_cancel'
,
'='
,
False
)
],
}
}
# 翻译
# 翻译
...
@@ -470,14 +470,15 @@ class CcBL(models.Model):
...
@@ -470,14 +470,15 @@ class CcBL(models.Model):
(
'bl_no_uniq'
,
'unique(bl_no)'
,
'The Bill of Loading No. must be unique.'
)
(
'bl_no_uniq'
,
'unique(bl_no)'
,
'The Bill of Loading No. must be unique.'
)
]
]
@api.depends
(
'big_package_ids'
,
'big_package_ids.tally_state'
)
@api.depends
(
'big_package_ids'
,
'big_package_ids.tally_state'
,
'big_package_ids.is_cancel'
)
def
cal_tally_big_package_qty
(
self
):
def
cal_tally_big_package_qty
(
self
):
"""
"""
已理货的大包数量
已理货的大包数量
"""
"""
for
item
in
self
:
for
item
in
self
:
item
.
tally_big_package_qty
=
len
(
item
.
tally_big_package_qty
=
len
(
item
.
big_package_ids
.
filtered
(
lambda
package
:
package
.
tally_state
==
'checked_goods'
))
item
.
big_package_ids
.
filtered
(
lambda
package
:
package
.
tally_state
==
'checked_goods'
and
not
package
.
is_cancel
))
# 提单号
# 提单号
bl_no
=
fields
.
Char
(
string
=
'B/L No'
,
index
=
True
)
bl_no
=
fields
.
Char
(
string
=
'B/L No'
,
index
=
True
)
...
@@ -776,13 +777,16 @@ class CcBL(models.Model):
...
@@ -776,13 +777,16 @@ class CcBL(models.Model):
# }
# }
# 添加计算方法,根据bl_line_ids计算bl_total_line,bl_total_qty,bl_total_amount
# 添加计算方法,根据bl_line_ids计算bl_total_line,bl_total_qty,bl_total_amount
@api.depends
(
'ship_package_ids'
,
'big_package_ids'
,
'good_ids'
,
'ship_package_ids.total_value'
)
@api.depends
(
'ship_package_ids'
,
'big_package_ids'
,
'good_ids'
,
'ship_package_ids.is_cancel'
,
'big_package_ids.is_cancel'
,
'good_ids.is_cancel'
,
'ship_package_ids.total_value'
)
def
_compute_bl_total
(
self
):
def
_compute_bl_total
(
self
):
for
bl
in
self
:
for
bl
in
self
:
bl
.
bl_total_amount
=
sum
(
line
.
total_value
for
line
in
bl
.
ship_package_ids
)
ship_package_ids
=
bl
.
ship_package_ids
.
filtered
(
lambda
pack
:
not
pack
.
is_cancel
)
# 未取消的小包
bl
.
bl_total_big_qty
=
len
(
bl
.
big_package_ids
)
big_package_ids
=
bl
.
big_package_ids
.
filtered
(
lambda
pack
:
not
pack
.
is_cancel
)
# 未取消的大包
bl
.
bl_ship_package_qty
=
len
(
bl
.
ship_package_ids
)
bl
.
bl_total_amount
=
sum
(
line
.
total_value
for
line
in
ship_package_ids
)
bl
.
bl_total_qty
=
len
(
bl
.
good_ids
)
bl
.
bl_total_big_qty
=
len
(
big_package_ids
)
bl
.
bl_ship_package_qty
=
len
(
ship_package_ids
)
bl
.
bl_total_qty
=
len
(
bl
.
good_ids
.
filtered
(
lambda
good
:
not
good
.
is_cancel
))
# 所属客户
# 所属客户
customer_id
=
fields
.
Many2one
(
'res.partner'
,
string
=
'Customer'
)
customer_id
=
fields
.
Many2one
(
'res.partner'
,
string
=
'Customer'
)
...
@@ -826,7 +830,7 @@ class CcBL(models.Model):
...
@@ -826,7 +830,7 @@ class CcBL(models.Model):
'type'
:
'ir.actions.act_window'
,
'type'
:
'ir.actions.act_window'
,
'res_model'
:
'cc.big.package'
,
'res_model'
:
'cc.big.package'
,
'view_mode'
:
'tree,form'
,
'view_mode'
:
'tree,form'
,
'domain'
:
[(
'bl_id'
,
'='
,
self
.
id
)],
'domain'
:
[(
'bl_id'
,
'='
,
self
.
id
)
,
(
'is_cancel'
,
'='
,
False
)
],
}
}
def
action_show_big_package_tally
(
self
):
def
action_show_big_package_tally
(
self
):
...
@@ -836,7 +840,7 @@ class CcBL(models.Model):
...
@@ -836,7 +840,7 @@ class CcBL(models.Model):
'type'
:
'ir.actions.act_window'
,
'type'
:
'ir.actions.act_window'
,
'res_model'
:
'cc.big.package'
,
'res_model'
:
'cc.big.package'
,
'view_mode'
:
'tree,form'
,
'view_mode'
:
'tree,form'
,
'domain'
:
[(
'bl_id'
,
'='
,
self
.
id
),
(
'tally_state'
,
'='
,
'checked_goods'
)],
'domain'
:
[(
'bl_id'
,
'='
,
self
.
id
),
(
'
is_cancel'
,
'='
,
False
),
(
'
tally_state'
,
'='
,
'checked_goods'
)],
}
}
# 创建显示包裹的action
# 创建显示包裹的action
...
@@ -847,7 +851,7 @@ class CcBL(models.Model):
...
@@ -847,7 +851,7 @@ class CcBL(models.Model):
'type'
:
'ir.actions.act_window'
,
'type'
:
'ir.actions.act_window'
,
'res_model'
:
'cc.ship.package'
,
'res_model'
:
'cc.ship.package'
,
'view_mode'
:
'tree,form'
,
'view_mode'
:
'tree,form'
,
'domain'
:
[(
'bl_id'
,
'='
,
self
.
id
)],
'domain'
:
[(
'bl_id'
,
'='
,
self
.
id
)
,
(
'is_cancel'
,
'='
,
False
)
],
}
}
# 创建显示商品的action
# 创建显示商品的action
...
@@ -858,7 +862,7 @@ class CcBL(models.Model):
...
@@ -858,7 +862,7 @@ class CcBL(models.Model):
'type'
:
'ir.actions.act_window'
,
'type'
:
'ir.actions.act_window'
,
'res_model'
:
'cc.package.good'
,
'res_model'
:
'cc.package.good'
,
'view_mode'
:
'tree,form'
,
'view_mode'
:
'tree,form'
,
'domain'
:
[(
'bl_id'
,
'='
,
self
.
id
)],
'domain'
:
[(
'bl_id'
,
'='
,
self
.
id
)
,
(
'is_cancel'
,
'='
,
False
)
],
}
}
# 增加清关截止日期
# 增加清关截止日期
...
...
ccs_connect_tiktok/controllers/tt_controllers.py
浏览文件 @
4fd4bb31
...
@@ -118,7 +118,8 @@ class TTApi(http.Controller):
...
@@ -118,7 +118,8 @@ class TTApi(http.Controller):
[(
'logistic_order_no'
,
'='
,
logistic_order_no
)])
[(
'logistic_order_no'
,
'='
,
logistic_order_no
)])
if
(
ship_pachage_obj
and
(
not
ship_pachage_obj
.
bl_id
or
if
(
ship_pachage_obj
and
(
not
ship_pachage_obj
.
bl_id
or
ship_pachage_obj
.
bl_id
.
is_cancel
))
or
not
ship_pachage_obj
:
ship_pachage_obj
.
bl_id
.
is_cancel
))
or
not
ship_pachage_obj
:
ship_package
=
dict
(
logistic_order_no
=
package
.
get
(
'provider_order_id'
),
ship_package
=
dict
(
is_cancel
=
False
,
cancel_reason
=
False
,
logistic_order_no
=
package
.
get
(
'provider_order_id'
),
tracking_no
=
package
.
get
(
'tracking_no'
),
tracking_no
=
package
.
get
(
'tracking_no'
),
customer_ref
=
package
.
get
(
'declaretion_bill_id'
),
customer_ref
=
package
.
get
(
'declaretion_bill_id'
),
internal_account_number
=
""
,
internal_account_number
=
""
,
...
@@ -281,7 +282,7 @@ class TTApi(http.Controller):
...
@@ -281,7 +282,7 @@ class TTApi(http.Controller):
# 默认创建清关文件明细
# 默认创建清关文件明细
file_name_arr
=
[
'主单'
,
'货站提货POD'
,
'Manifest格式和数据(cvs/excel格式,系统目前不支持,线下提供或保留现有方式)'
,
file_name_arr
=
[
'主单'
,
'货站提货POD'
,
'Manifest格式和数据(cvs/excel格式,系统目前不支持,线下提供或保留现有方式)'
,
'海关CDS申报单(import和授权方式检查拉齐等)'
,
'尾程交接POD(待大包数量和箱号)'
]
'海关CDS申报单(import和授权方式检查拉齐等)'
,
'尾程交接POD(待大包数量和箱号)'
]
sel
.
env
[
'cc.clearance.file'
]
.
sudo
()
.
create_clearance_file_func
(
file_name_arr
,
bl
.
id
)
request
.
env
[
'cc.clearance.file'
]
.
sudo
()
.
create_clearance_file_func
(
file_name_arr
,
bl
.
id
)
else
:
else
:
if
declare_type
==
'update'
and
bl
.
state
==
'draft'
:
if
declare_type
==
'update'
and
bl
.
state
==
'draft'
:
bl
.
write
(
bl_vals
)
bl
.
write
(
bl_vals
)
...
@@ -290,20 +291,27 @@ class TTApi(http.Controller):
...
@@ -290,20 +291,27 @@ class TTApi(http.Controller):
if
big_bag_list
and
len
(
big_bag_list
)
>
0
:
if
big_bag_list
and
len
(
big_bag_list
)
>
0
:
# 删除大包数据
# 删除大包数据
for
package
in
bl
.
big_package_ids
:
for
package
in
bl
.
big_package_ids
:
package
.
bl_id
=
False
package
.
unlink
()
package
.
unlink
()
for
big_bag
in
big_bag_list
:
for
big_bag
in
big_bag_list
:
big_bag_no
=
big_bag
.
get
(
'big_bag_no'
)
big_bag_no
=
big_bag
.
get
(
'big_bag_no'
)
# 检查big_bag_no是否已经存在
# 检查big_bag_no是否已经存在
big_package_vals
=
dict
(
bl_id
=
bl
.
id
,
big_package_no
=
big_bag
.
get
(
'big_bag_no'
),
next_provider_name
=
big_bag
.
get
(
'next_provider_name'
))
big_package
=
request
.
env
[
'cc.big.package'
]
.
sudo
()
.
search
(
big_package
=
request
.
env
[
'cc.big.package'
]
.
sudo
()
.
search
(
[(
'big_package_no'
,
'='
,
big_bag_no
)],
limit
=
1
)
[(
'big_package_no'
,
'='
,
big_bag_no
)],
limit
=
1
)
if
not
big_package
:
if
not
big_package
:
big_package_vals
=
dict
(
bl_id
=
bl
.
id
,
big_package_no
=
big_bag
.
get
(
'big_bag_no'
),
next_provider_name
=
big_bag
.
get
(
'next_provider_name'
))
big_package
=
request
.
env
[
'cc.big.package'
]
.
sudo
()
.
create
(
big_package_vals
)
big_package
=
request
.
env
[
'cc.big.package'
]
.
sudo
()
.
create
(
big_package_vals
)
else
:
big_package
.
write
(
big_package_vals
)
# 生成cc.ship.package
# 生成cc.ship.package
package_list
=
big_bag
.
get
(
'package_list'
)
package_list
=
big_bag
.
get
(
'package_list'
)
# 大包下的小包
if
package_list
and
len
(
package_list
)
>
0
:
if
package_list
and
len
(
package_list
)
>
0
:
# 本身提单的小包解除关联
for
ship
in
bl
.
ship_package_ids
:
ship
.
bl_id
=
False
ship
.
big_package_id
=
False
package_ids
=
[
package
.
get
(
'provider_order_id'
)
for
package
in
package_list
]
package_ids
=
[
package
.
get
(
'provider_order_id'
)
for
package
in
package_list
]
ship_packages
=
request
.
env
[
'cc.ship.package'
]
.
sudo
()
.
search
(
ship_packages
=
request
.
env
[
'cc.ship.package'
]
.
sudo
()
.
search
(
[(
'logistic_order_no'
,
'in'
,
package_ids
)])
[(
'logistic_order_no'
,
'in'
,
package_ids
)])
...
@@ -335,7 +343,7 @@ class TTApi(http.Controller):
...
@@ -335,7 +343,7 @@ class TTApi(http.Controller):
methods
=
[
"POST"
,
"GET"
],
csrf
=
False
,
cors
=
"*"
)
methods
=
[
"POST"
,
"GET"
],
csrf
=
False
,
cors
=
"*"
)
def
mawb_copy_upload
(
self
,
**
kw
):
def
mawb_copy_upload
(
self
,
**
kw
):
# 接收提单的附件信息
# 接收提单的附件信息
_logger
.
info
(
'mawb_copy_upload kw:
%
s'
%
kw
)
#
_logger.info('mawb_copy_upload kw:%s' % kw)
res
=
{
res
=
{
"code"
:
0
,
"code"
:
0
,
"msg"
:
""
,
"msg"
:
""
,
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论