提交 3f74d1ca authored 作者: 贺阳's avatar 贺阳

菜单权限优化以及托盘关联时需要根据下一服务商过滤

上级 bac8a3fc
......@@ -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:
......
......@@ -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>
......
......@@ -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
......
......@@ -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': [
......
......@@ -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
......
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
......
......@@ -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
......@@ -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
<?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
......@@ -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
差异被折叠。
......@@ -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)
......
......@@ -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"
......
......@@ -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 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论