Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
H
hh_ccs
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
贺阳
hh_ccs
Commits
cde63e51
提交
cde63e51
authored
9月 11, 2025
作者:
贺阳
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
1、按托盘理货和交货的接口
上级
24b04c21
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
51 行增加
和
48 行删除
+51
-48
order_controller.py
ccs_connect_tiktok/controllers/order_controller.py
+0
-0
cc_pallet.py
ccs_connect_tiktok/models/cc_pallet.py
+4
-3
cc_pallet.py
ccs_pallet/models/cc_pallet.py
+47
-45
没有找到文件。
ccs_connect_tiktok/controllers/order_controller.py
浏览文件 @
cde63e51
差异被折叠。
点击展开。
ccs_connect_tiktok/models/cc_pallet.py
浏览文件 @
cde63e51
...
@@ -24,10 +24,10 @@ class CcPallet(models.Model):
...
@@ -24,10 +24,10 @@ class CcPallet(models.Model):
'express_company_name'
:
self
.
express_company_id
.
name
,
#快递公司名称
'express_company_name'
:
self
.
express_company_id
.
name
,
#快递公司名称
'usage_state'
:
self
.
usage_state
,
#使用状态 unused未使用 used已使用
'usage_state'
:
self
.
usage_state
,
#使用状态 unused未使用 used已使用
'print_state'
:
self
.
print_state
,
#打印状态 unprinted未打印 printed已打印
'print_state'
:
self
.
print_state
,
#打印状态 unprinted未打印 printed已打印
'sorting_time'
:
s
elf
.
sorting_time
,
#托盘理货时间
'sorting_time'
:
s
tr
(
self
.
sorting_time
)
if
self
.
sorting_time
else
''
,
#托盘理货时间
'delivery_time'
:
s
elf
.
delivery_time
,
#托盘交货时间
'delivery_time'
:
s
tr
(
self
.
delivery_time
)
if
self
.
delivery_time
else
''
,
#托盘交货时间
'package_count'
:
self
.
package_count
,
#大包数量
'package_count'
:
self
.
package_count
,
#大包数量
'partner_id'
:
self
.
partner_id
.
id
,
#使用客户id
'partner_id'
:
self
.
partner_id
.
id
,
#使用客户id
'partner_name'
:
self
.
partner_id
.
name
,
#使用客户名称
'partner_name'
:
self
.
partner_id
.
name
,
#使用客户名称
'delivery_plate_number'
:
self
.
delivery_plate_number
,
#托盘交付车牌号
'delivery_plate_number'
:
self
.
delivery_plate_number
or
''
,
#托盘交付车牌号
}
}
\ No newline at end of file
ccs_pallet/models/cc_pallet.py
浏览文件 @
cde63e51
...
@@ -9,6 +9,7 @@ from odoo import models, fields, api, _
...
@@ -9,6 +9,7 @@ from odoo import models, fields, api, _
_logger
=
logging
.
getLogger
(
__name__
)
_logger
=
logging
.
getLogger
(
__name__
)
from
odoo.exceptions
import
ValidationError
from
odoo.exceptions
import
ValidationError
class
CcPallet
(
models
.
Model
):
class
CcPallet
(
models
.
Model
):
# 模型名称
# 模型名称
_name
=
'cc.pallet'
_name
=
'cc.pallet'
...
@@ -43,7 +44,7 @@ class CcPallet(models.Model):
...
@@ -43,7 +44,7 @@ class CcPallet(models.Model):
默认给值,随机选一个未存档的客户
默认给值,随机选一个未存档的客户
"""
"""
return
self
.
env
[
'res.partner'
]
.
search
([(
'is_customer'
,
'='
,
True
),
(
'active'
,
'='
,
True
)],
limit
=
1
)
.
id
return
self
.
env
[
'res.partner'
]
.
search
([(
'is_customer'
,
'='
,
True
),
(
'active'
,
'='
,
True
)],
limit
=
1
)
.
id
# 计算字段:大包数量
# 计算字段:大包数量
@api.depends
(
'package_ids'
)
@api.depends
(
'package_ids'
)
def
_compute_package_count
(
self
):
def
_compute_package_count
(
self
):
...
@@ -61,7 +62,7 @@ class CcPallet(models.Model):
...
@@ -61,7 +62,7 @@ class CcPallet(models.Model):
pallet
.
sorting_time
=
max
(
sorting_times
)
pallet
.
sorting_time
=
max
(
sorting_times
)
else
:
else
:
pallet
.
sorting_time
=
False
pallet
.
sorting_time
=
False
# 获取所有关联大包的尾程交货时间,取最晚的时间
# 获取所有关联大包的尾程交货时间,取最晚的时间
delivery_times
=
pallet
.
package_ids
.
filtered
(
'delivery_time'
)
.
mapped
(
'delivery_time'
)
delivery_times
=
pallet
.
package_ids
.
filtered
(
'delivery_time'
)
.
mapped
(
'delivery_time'
)
if
delivery_times
:
if
delivery_times
:
...
@@ -73,7 +74,7 @@ class CcPallet(models.Model):
...
@@ -73,7 +74,7 @@ class CcPallet(models.Model):
pallet
.
delivery_time
=
False
pallet
.
delivery_time
=
False
# 托盘号(年月+4位数,不能重复生成)
# 托盘号(年月+4位数,不能重复生成)
name
=
fields
.
Char
(
string
=
_
(
'Pallet Number'
),
copy
=
False
,
help
=
_
(
'Pallet number format: YYYYMM + 4 digits'
))
name
=
fields
.
Char
(
string
=
_
(
'Pallet Number'
),
copy
=
False
,
help
=
_
(
'Pallet number format: YYYYMM + 4 digits'
))
# 托盘归属快递
# 托盘归属快递
express_company_id
=
fields
.
Many2one
(
'cc.last.mile.provider'
,
string
=
_
(
'Express Company'
),
index
=
True
)
express_company_id
=
fields
.
Many2one
(
'cc.last.mile.provider'
,
string
=
_
(
'Express Company'
),
index
=
True
)
# 使用状态
# 使用状态
...
@@ -98,56 +99,57 @@ class CcPallet(models.Model):
...
@@ -98,56 +99,57 @@ class CcPallet(models.Model):
# 使用客户
# 使用客户
partner_id
=
fields
.
Many2one
(
'res.partner'
,
string
=
_
(
'Customer'
),
default
=
get_partner_id
,
partner_id
=
fields
.
Many2one
(
'res.partner'
,
string
=
_
(
'Customer'
),
default
=
get_partner_id
,
domain
=
[(
'is_customer'
,
'='
,
True
)])
domain
=
[(
'is_customer'
,
'='
,
True
)])
# 托盘交付车牌号
# 托盘交付车牌号
delivery_plate_number
=
fields
.
Char
(
string
=
_
(
'Delivery Plate Number'
))
delivery_plate_number
=
fields
.
Char
(
string
=
_
(
'Delivery Plate Number'
))
def
update_pallet_info
(
self
,
**
kwargs
):
"""更新托盘信息"""
if
kwargs
.
get
(
'delivery_plate_number'
,
''
):
self
.
delivery_plate_number
=
kwargs
[
'delivery_plate_number'
]
# 当大包关联到托盘时,自动更新使用状态
# 当大包关联到托盘时,自动更新使用状态
def
update_usage_state
(
self
,
success_package
,
usage_date
):
def
update_usage_state
(
self
,
success_package
,
usage_date
):
"""更新托盘使用状态"""
"""更新托盘使用状态"""
for
pallet
in
self
:
for
pallet
in
self
:
if
pallet
.
package_ids
:
pallet
.
usage_state
=
'used'
pallet
.
usage_state
=
'used'
# 关联大包到托盘
# 关联大包到托盘
pallet
.
package_ids
=
[(
4
,
package_id
.
id
,
0
)
for
package_id
in
success_package
]
pallet
.
package_ids
=
[(
4
,
package_id
.
id
,
0
)
for
package_id
in
success_package
]
# 更新大包的托盘信息
for
package
in
success_package
:
old_pallet_number
=
package
.
pallet_number
new_pallet_number
=
pallet
.
name
# 使用托盘的编号
old_usage_date
=
package
.
pallet_usage_date
# 同一提单,同一托盘号,使用日期必须一致
related_packages
=
package
.
bl_id
.
big_package_ids
.
filtered
(
lambda
p
:
p
.
pallet_number
==
new_pallet_number
)
# 查找对应提单下相同托盘号的所有大包
warning_package_arr
=
[
related_package
.
big_package_no
for
related_package
in
related_packages
if
str
(
related_package
.
pallet_usage_date
)
!=
usage_date
]
if
warning_package_arr
:
raise
ValidationError
(
_
(
'Big Package No :
%
s ,The same bill of lading, same pallet number, and usage date must be consistent!'
)
%
(
'
\n
'
.
join
(
warning_package_arr
)))
# 大包号关联的同一提单,同一托盘号,使用日期必须一致
# 更新大包的托盘信息
# 更新大包的托盘信息
for
package
in
success_package
:
package
.
update_pallet_info
(
new_pallet_number
,
usage_date
,
pallet
.
id
)
old_pallet_number
=
package
.
pallet_number
new_pallet_number
=
pallet
.
name
# 使用托盘的编号
if
old_pallet_number
:
old_usage_date
=
package
.
pallet_usage_date
# %s %s更改了托盘号,由%s变更为%s,托盘使用日期%s变更为%s
body
=
_
(
# 同一提单,同一托盘号,使用日期必须一致
'
%
s at
%
s changed the pallet number from
%
s to
%
s, and the pallet usage date from
%
s to
%
s'
)
%
(
related_packages
=
package
.
bl_id
.
big_package_ids
.
filtered
(
self
.
env
.
user
.
name
,
fields
.
Datetime
.
now
(),
old_pallet_number
,
new_pallet_number
,
lambda
p
:
p
.
pallet_number
==
new_pallet_number
)
# 查找对应提单下相同托盘号的所有大包
old_usage_date
,
warning_package_arr
=
[
related_package
.
big_package_no
for
related_package
in
related_packages
if
usage_date
)
related_package
.
pallet_usage_date
!=
usage_date
]
else
:
if
warning_package_arr
:
# 某人某时关联了托盘xxx,托盘使用日期xxxx
raise
ValidationError
(
body
=
_
(
'
%
s at
%
s associated tray
%
s, with a tray usage date of
%
s'
)
%
(
_
(
'Big Package No :
%
s ,The same bill of lading, same pallet number, and usage date must be consistent!'
)
%
(
self
.
env
.
user
.
name
,
fields
.
Datetime
.
now
(),
new_pallet_number
,
usage_date
)
'
\n
'
.
join
(
warning_package_arr
)))
# 大包号关联的同一提单,同一托盘号,使用日期必须一致
package
.
message_post
(
body
=
body
)
# 更新大包的托盘信息
# 记录托盘关联日志
package
.
update_pallet_info
(
new_pallet_number
,
usage_date
,
pallet
.
id
)
body
=
_
(
'
%
s at
%
s associated
%
d packages to pallet
%
s'
)
%
(
self
.
env
.
user
.
name
,
fields
.
Datetime
.
now
(),
len
(
success_package
),
pallet
.
name
)
if
old_pallet_number
:
pallet
.
message_post
(
body
=
body
)
# %s %s更改了托盘号,由%s变更为%s,托盘使用日期%s变更为%s
body
=
_
(
'
%
s at
%
s changed the pallet number from
%
s to
%
s, and the pallet usage date from
%
s to
%
s'
)
%
(
self
.
env
.
user
.
name
,
fields
.
Datetime
.
now
(),
old_pallet_number
,
new_pallet_number
,
old_usage_date
,
usage_date
)
else
:
# 某人某时关联了托盘xxx,托盘使用日期xxxx
body
=
_
(
'
%
s at
%
s associated tray
%
s, with a tray usage date of
%
s'
)
%
(
self
.
env
.
user
.
name
,
fields
.
Datetime
.
now
(),
new_pallet_number
,
usage_date
)
package
.
message_post
(
body
=
body
)
# 记录托盘关联日志
body
=
_
(
'
%
s at
%
s associated
%
d packages to pallet
%
s'
)
%
(
self
.
env
.
user
.
name
,
fields
.
Datetime
.
now
(),
len
(
success_package
),
pallet
.
name
)
pallet
.
message_post
(
body
=
body
)
else
:
pallet
.
usage_state
=
'unused'
def
action_print_labels
(
self
):
def
action_print_labels
(
self
):
"""打印标签动作"""
"""打印标签动作"""
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论