Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
H
hh_ccs
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
贺阳
hh_ccs
Commits
3f74d1ca
提交
3f74d1ca
authored
9月 12, 2025
作者:
贺阳
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
菜单权限优化以及托盘关联时需要根据下一服务商过滤
上级
bac8a3fc
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
14 个修改的文件
包含
72 行增加
和
57 行删除
+72
-57
cc_last_mile_provider.py
ccs_base/models/cc_last_mile_provider.py
+2
-2
menu_view.xml
ccs_base/views/menu_view.xml
+7
-6
associate_pallet_wizard.py
ccs_base/wizard/associate_pallet_wizard.py
+8
-8
__manifest__.py
ccs_connect_tiktok/__manifest__.py
+1
-0
zh_CN.po
ccs_connect_tiktok/i18n/zh_CN.po
+0
-9
ir.model.access.csv
ccs_connect_tiktok/security/ir.model.access.csv
+6
-2
ao_tt_api_log_view.xml
ccs_connect_tiktok/views/ao_tt_api_log_view.xml
+0
-7
bl_patrol_views.xml
ccs_connect_tiktok/views/bl_patrol_views.xml
+0
-6
menu_view.xml
ccs_connect_tiktok/views/menu_view.xml
+28
-0
pda_scan_record_views.xml
ccs_connect_tiktok/views/pda_scan_record_views.xml
+0
-7
zh_CN.po
ccs_pallet/i18n/zh_CN.po
+0
-0
cc_pallet.py
ccs_pallet/models/cc_pallet.py
+8
-8
menu_view.xml
ccs_pallet/views/menu_view.xml
+1
-1
associate_pallet_wizard.py
ccs_pallet/wizard/associate_pallet_wizard.py
+11
-1
没有找到文件。
ccs_base/models/cc_last_mile_provider.py
浏览文件 @
3f74d1ca
...
...
@@ -41,12 +41,12 @@ class CCLastMileProvider(models.Model):
matching_value
=
fields
.
Text
(
string
=
'Matching Value'
)
# 尾程服务商匹配值
placement_area
=
fields
.
Char
(
'Placement Area'
)
# 摆放区域,英文
def
match_provider
(
self
,
provider_name
):
def
match_provider
(
self
,
provider_name
,
record_obj
=
None
):
"""Check if the provider name exists in matching values and return the record."""
# 将输入的 provider_name 转换为小写
provider_name_lower
=
provider_name
.
lower
()
# 查询所有匹配的记录
matching_records
=
self
.
sudo
()
.
search
([])
matching_records
=
self
.
sudo
()
.
search
([])
if
not
record_obj
else
record_obj
# 检查是否有记录的 matching_value 包含 provider_name(不区分大小写)
for
record
in
matching_records
:
if
record
.
matching_value
:
...
...
ccs_base/views/menu_view.xml
浏览文件 @
3f74d1ca
...
...
@@ -68,7 +68,7 @@
parent=
"menu_ccs_base_main"
/>
<menuitem
sequence=
"25"
name=
"History Data"
id=
"menu_cc_history_data"
groups=
"ccs_base.group_clearance_of_customs_manager"
groups=
"ccs_base.group_clearance_of_customs_
user,ccs_base.group_clearance_of_customs_
manager"
/>
<menuitem
parent=
"menu_cc_history_data"
sequence=
"1"
name=
"History Big Package"
id=
"menu_cc_history_big_package"
...
...
@@ -81,19 +81,20 @@
id=
"menu_cc_history_ship_package"
action=
"action_cc_history_ship_package"
/>
<menuitem
parent=
"menu_cc_history_data"
id=
"menu_history_flight_tt_api_log"
name=
"TIKTOK推送日志"
sequence=
"7"
action=
"action_history_tt_api_log"
/>
action=
"action_history_tt_api_log"
groups=
"ccs_base.group_clearance_of_customs_user,ccs_base.group_clearance_of_customs_manager"
/>
<menuitem
parent=
""
sequence=
"10"
name=
"Bill of Loading"
id=
"menu_cc_bl"
action=
"action_cc_bl"
groups=
"ccs_base.group_clearance_of_customs_user"
/>
groups=
"ccs_base.group_clearance_of_customs_user
,ccs_base.group_clearance_of_customs_manager
"
/>
<menuitem
parent=
""
sequence=
"13"
name=
"Big Package"
id=
"menu_cc_big_package"
action=
"action_cc_big_package"
groups=
"ccs_base.group_clearance_of_customs_user"
/>
groups=
"ccs_base.group_clearance_of_customs_user
,ccs_base.group_clearance_of_customs_manager
"
/>
<menuitem
parent=
""
sequence=
"16"
name=
"Package Goods"
id=
"menu_cc_package_good"
action=
"action_cc_package_good"
groups=
"ccs_base.group_clearance_of_customs_user"
/>
groups=
"ccs_base.group_clearance_of_customs_user
,ccs_base.group_clearance_of_customs_manager
"
/>
<menuitem
parent=
""
sequence=
"15"
name=
"Ship Package"
id=
"menu_cc_ship_package"
action=
"action_cc_ship_package"
groups=
"ccs_base.group_clearance_of_customs_user"
/>
groups=
"ccs_base.group_clearance_of_customs_user
,ccs_base.group_clearance_of_customs_manager
"
/>
</data>
...
...
ccs_base/wizard/associate_pallet_wizard.py
浏览文件 @
3f74d1ca
...
...
@@ -64,14 +64,14 @@ class AssociatePalletWizard(models.TransientModel):
new_pallet_number
=
record
.
pallet_number
# 修改的托盘号
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
related_package
.
pallet_usage_date
!=
record
.
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
)))
# 大包号关联的同一提单,同一托盘号,使用日期必须一致
#
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
#
related_package.pallet_usage_date != record.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))) # 大包号关联的同一提单,同一托盘号,使用日期必须一致
package
.
update_pallet_info
(
new_pallet_number
,
record
.
usage_date
)
if
old_pallet_number
:
# %s %s更改了托盘号,由%s变更为%s,托盘使用日期%s变更为%s
...
...
ccs_connect_tiktok/__manifest__.py
浏览文件 @
3f74d1ca
...
...
@@ -33,6 +33,7 @@
'views/cc_bl_view.xml'
,
'views/pda_scan_record_views.xml'
,
'views/bl_patrol_views.xml'
,
'views/menu_view.xml'
,
],
'demo'
:
[
...
...
ccs_connect_tiktok/i18n/zh_CN.po
浏览文件 @
3f74d1ca
...
...
@@ -476,15 +476,6 @@ msgstr "同步时间"
msgid "TIKTOK接口配置"
msgstr ""
#. module: ccs_connect_tiktok
#: model:ir.actions.act_window,name:ccs_connect_tiktok.action_ao_tt_api_log
#: model:ir.ui.menu,name:ccs_connect_tiktok.menu_ao_flight_tt_api_log
#: model_terms:ir.ui.view,arch_db:ccs_connect_tiktok.form_ao_tt_api_log_view
#: model_terms:ir.ui.view,arch_db:ccs_connect_tiktok.search_ao_tt_api_log_view
#: model_terms:ir.ui.view,arch_db:ccs_connect_tiktok.tree_ao_tt_api_log_view
msgid "TIKTOK推送日志"
msgstr ""
#. module: ccs_connect_tiktok
#: model:ir.model.fields,field_description:ccs_connect_tiktok.field_cc_node__tk_code
#: model:ir.model.fields,field_description:ccs_connect_tiktok.field_cc_ship_package__tk_code
...
...
ccs_connect_tiktok/security/ir.model.access.csv
浏览文件 @
3f74d1ca
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_group_user_ao_tt_api,access_group_user_ao_tt_api,ccs_connect_tiktok.model_ao_tt_api,base.group_user,1,0,0,0
access_ao_tt_api_log,ao_tt_api_log,model_ao_tt_api_log,base.group_system,1,1,1,1
access_cc_ship_package_sync_log_base.group_user,cc_ship_package_sync_log base.group_user,ccs_connect_tiktok.model_cc_ship_package_sync_log,base.group_user,1,0,0,0
access_cc_ship_package_sync_log_base.group_erp_manager,cc_ship_package_sync_log base.group_erp_manager,ccs_connect_tiktok.model_cc_ship_package_sync_log,base.group_erp_manager,1,1,1,1
...
...
@@ -10,7 +9,12 @@ access_cc_ship_package_sync_log_ccs_base.group_clearance_of_customs_user,cc_ship
access_cc_bl_sync_log_base.group_user,cc_bl_sync_log base.group_user,ccs_connect_tiktok.model_cc_bl_sync_log,base.group_user,1,0,0,0
access_cc_bl_sync_log_base.group_erp_manager,cc_bl_sync_log base.group_erp_manager,ccs_connect_tiktok.model_cc_bl_sync_log,base.group_erp_manager,1,1,1,1
access_cc_bl_sync_log_ccs_base.group_clearance_of_customs_manager,cc_bl_sync_log ccs_base.group_clearance_of_customs_manager,ccs_connect_tiktok.model_cc_bl_sync_log,ccs_base.group_clearance_of_customs_manager,1,0,0,0
access_cc_bl_sync_log_ccs_base.group_clearance_of_customs_user,cc_bl_sync_log ccs_base.group_clearance_of_customs_user,ccs_connect_tiktok.model_cc_bl_sync_log,ccs_base.group_clearance_of_customs_user,1,0,0,0
access_cc_bl_sync_log_ccs_base.group_clearance_of_customs_user,cc_bl_sync_log ccs_base.group_clearance_of_customs_user,model_cc_bl_sync_log,ccs_base.group_clearance_of_customs_user,1,0,0,0
access_ao_tt_api_log_user,access_ao_tt_api_log_user,model_ao_tt_api_log,base.group_user,1,0,0,0
access_ao_tt_api_log,ao_tt_api_log,model_ao_tt_api_log,base.group_system,1,1,1,1
access_pda_scan_record_user,pda.scan.record.user,model_pda_scan_record,base.group_user,1,1,1,0
access_pda_scan_record_manager,pda.scan.record.manager,model_pda_scan_record,base.group_system,1,1,1,1
...
...
ccs_connect_tiktok/views/ao_tt_api_log_view.xml
浏览文件 @
3f74d1ca
...
...
@@ -97,11 +97,5 @@
<field
name=
"domain"
>
[]
</field>
<field
name=
"context"
>
{'search_default_last_30d':1}
</field>
</record>
<menuitem
id=
"menu_ao_flight_tt_api_log"
name=
"TIKTOK推送日志"
groups=
"ccs_base.group_clearance_of_customs_user"
sequence=
"21"
action=
"action_ao_tt_api_log"
/>
</data>
</odoo>
\ No newline at end of file
ccs_connect_tiktok/views/bl_patrol_views.xml
浏览文件 @
3f74d1ca
...
...
@@ -97,10 +97,5 @@
</field>
</record>
<!-- 菜单项 -->
<menuitem
id=
"menu_bl_patrol"
name=
"提单巡查"
action=
"action_bl_patrol"
sequence=
"22"
groups=
"ccs_base.group_clearance_of_customs_user"
/>
</data>
</odoo>
\ No newline at end of file
ccs_connect_tiktok/views/menu_view.xml
0 → 100644
浏览文件 @
3f74d1ca
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<menuitem
id=
"menu_tt_api_log"
name=
"TIKTOK推送日志"
parent=
""
groups=
"ccs_base.group_clearance_of_customs_user,ccs_base.group_clearance_of_customs_manager"
sequence=
"21"
action=
"action_ao_tt_api_log"
/>
<!-- 菜单项 -->
<menuitem
id=
"menu_bl_patrol"
name=
"提单巡查"
action=
"action_bl_patrol"
sequence=
"22"
groups=
"ccs_base.group_clearance_of_customs_user,ccs_base.group_clearance_of_customs_manager"
/>
<!-- 菜单项 -->
<menuitem
id=
"menu_pda_scan_record"
name=
"PDA Scan Record"
action=
"action_pda_scan_record"
sequence=
"21"
groups=
"ccs_base.group_clearance_of_customs_user,ccs_base.group_clearance_of_customs_manager"
/>
</data>
</odoo>
\ No newline at end of file
ccs_connect_tiktok/views/pda_scan_record_views.xml
浏览文件 @
3f74d1ca
...
...
@@ -80,10 +80,4 @@
</p>
</field>
</record>
<!-- 菜单项 -->
<menuitem
id=
"menu_pda_scan_record"
name=
"PDA Scan Record"
action=
"action_pda_scan_record"
sequence=
"21"
groups=
"ccs_base.group_clearance_of_customs_user"
/>
</odoo>
\ No newline at end of file
ccs_pallet/i18n/zh_CN.po
浏览文件 @
3f74d1ca
差异被折叠。
点击展开。
ccs_pallet/models/cc_pallet.py
浏览文件 @
3f74d1ca
...
...
@@ -124,14 +124,14 @@ class CcPallet(models.Model):
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
)))
# 大包号关联的同一提单,同一托盘号,使用日期必须一致
#
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))) # 大包号关联的同一提单,同一托盘号,使用日期必须一致
# 更新大包的托盘信息
package
.
update_pallet_info
(
new_pallet_number
,
usage_date
,
pallet
.
id
)
...
...
ccs_pallet/views/menu_view.xml
浏览文件 @
3f74d1ca
...
...
@@ -5,7 +5,7 @@
<!-- 菜单项 -->
<menuitem
id=
"menu_cc_pallet_root"
name=
"Pallet Management"
sequence=
"18"
groups=
"ccs_pallet.group_pallet_manager"
/>
groups=
"ccs_pallet.group_pallet_manager
,ccs_base.group_clearance_of_customs_user,ccs_base.group_clearance_of_customs_manager
"
/>
<menuitem
id=
"menu_cc_pallet"
name=
"Pallet"
...
...
ccs_pallet/wizard/associate_pallet_wizard.py
浏览文件 @
3f74d1ca
...
...
@@ -33,7 +33,17 @@ class AssociatePalletWizard(models.TransientModel):
if
fail_package
:
raise
ValidationError
(
_
(
'
%
s The package does not exist, please check the input information!'
)
%
(
'
\n
'
.
join
(
fail_package
)))
# 不存在该大包,请检查输入信息
if
success_package
:
#所有的大包的下一级服务商必须和托盘的下一级服务商一致
error_package
=
[]
for
package
in
success_package
:
provider
=
self
.
env
[
'cc.last.mile.provider'
]
.
sudo
()
.
with_context
({
'lang'
:
self
.
env
.
user
.
lang
})
.
match_provider
(
package
.
next_provider_name
,
record_obj
=
record
.
pallet_id
.
express_company_id
)
if
not
provider
:
error_package
.
append
(
package
.
big_package_no
)
if
error_package
:
raise
ValidationError
(
_
(
'The next level service provider of the package 【
%
s】 is not the same as the next level service provider of the pallet!'
)
%
(
'、'
.
join
(
error_package
)))
#大包号[xxx]的下一级服务商必须与托盘的下一级服务商一致
# 更新托盘的使用状态(理货时间和交货时间会自动通过计算字段更新)
record
.
pallet_id
.
update_usage_state
(
success_package
,
record
.
usage_date
)
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论