Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
H
hh_ccs
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
贺阳
hh_ccs
Commits
c312de68
提交
c312de68
authored
9月 10, 2025
作者:
贺阳
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
还原以前Base模块关于托盘的功能
上级
1b8d84e6
隐藏空白字符变更
内嵌
并排
正在显示
20 个修改的文件
包含
192 行增加
和
83 行删除
+192
-83
__manifest__.py
ccs_base/__manifest__.py
+3
-0
cc_bill_loading.py
ccs_base/models/cc_bill_loading.py
+20
-0
ir.model.access.csv
ccs_base/security/ir.model.access.csv
+1
-0
link_pallet.js
ccs_base/static/src/mixins/link_pallet.js
+0
-0
big_package_list_controller.js
ccs_base/static/src/views/big_package_list_controller.js
+5
-4
bl_list_controller.js
ccs_base/static/src/views/bl_list_controller.js
+4
-4
list.xml
ccs_base/static/src/views/list.xml
+5
-0
cc_big_package_view.xml
ccs_base/views/cc_big_package_view.xml
+4
-1
__init__.py
ccs_base/wizard/__init__.py
+1
-0
associate_pallet_wizard.py
ccs_base/wizard/associate_pallet_wizard.py
+87
-0
associate_pallet_wizard_views.xml
ccs_base/wizard/associate_pallet_wizard_views.xml
+31
-0
__manifest__.py
ccs_pallet/__manifest__.py
+1
-3
zh_CN.po
ccs_pallet/i18n/zh_CN.po
+0
-17
cc_pallet.py
ccs_pallet/models/cc_pallet.py
+1
-2
ir.model.access.csv
ccs_pallet/security/ir.model.access.csv
+0
-1
list.xml
ccs_pallet/static/src/views/list.xml
+0
-7
cc_pallet_view.xml
ccs_pallet/views/cc_pallet_view.xml
+18
-18
__init__.py
ccs_pallet/wizard/__init__.py
+1
-0
associate_pallet_wizard.py
ccs_pallet/wizard/associate_pallet_wizard.py
+3
-4
associate_pallet_wizard_views.xml
ccs_pallet/wizard/associate_pallet_wizard_views.xml
+7
-22
没有找到文件。
ccs_base/__manifest__.py
浏览文件 @
c312de68
...
@@ -21,6 +21,7 @@
...
@@ -21,6 +21,7 @@
'wizard/update_bl_status_wizard.xml'
,
'wizard/update_bl_status_wizard.xml'
,
'wizard/export_bl_big_package_xlsx_wizard.xml'
,
'wizard/export_bl_big_package_xlsx_wizard.xml'
,
'wizard/batch_update_transfer_bl_no_wizard_view.xml'
,
'wizard/batch_update_transfer_bl_no_wizard_view.xml'
,
'wizard/associate_pallet_wizard_views.xml'
,
'wizard/add_exception_info_wizard_views.xml'
,
'wizard/add_exception_info_wizard_views.xml'
,
'wizard/email_template.xml'
,
'wizard/email_template.xml'
,
'data/data.xml'
,
'data/data.xml'
,
...
@@ -57,7 +58,9 @@
...
@@ -57,7 +58,9 @@
'ccs_base/static/css/base.scss'
,
'ccs_base/static/css/base.scss'
,
],
],
'web.assets_backend'
:
[
'web.assets_backend'
:
[
'ccs_base/static/src/mixins/link_pallet.js'
,
'ccs_base/static/src/mixins/link_transfer_bl_no.js'
,
'ccs_base/static/src/mixins/link_transfer_bl_no.js'
,
'ccs_base/static/src/views/big_package_list_controller.js'
,
'ccs_base/static/src/views/bl_list_controller.js'
,
'ccs_base/static/src/views/bl_list_controller.js'
,
'ccs_base/static/src/views/list.xml'
,
'ccs_base/static/src/views/list.xml'
,
],
],
...
...
ccs_base/models/cc_bill_loading.py
浏览文件 @
c312de68
...
@@ -67,6 +67,16 @@ class CcBigPackage(models.Model):
...
@@ -67,6 +67,16 @@ class CcBigPackage(models.Model):
exception_info_ids
=
fields
.
Many2many
(
'cc.exception.info'
,
'bigpackage_exception_info_rel'
,
exception_info_ids
=
fields
.
Many2many
(
'cc.exception.info'
,
'bigpackage_exception_info_rel'
,
string
=
'Exception Information'
)
string
=
'Exception Information'
)
def
update_pallet_info
(
self
,
pallet_number
,
pallet_usage_date
):
"""
修改托盘信息
:param pallet_number:
:param pallet_usage_date:
:return:
"""
self
.
pallet_usage_date
=
pallet_usage_date
self
.
pallet_number
=
pallet_number
def
update_exception_info
(
self
,
exception_info_ids
,
is_send
=
False
,
email_language
=
'zh_CN'
):
def
update_exception_info
(
self
,
exception_info_ids
,
is_send
=
False
,
email_language
=
'zh_CN'
):
"""
"""
大包回写异常原因,发送邮件
大包回写异常原因,发送邮件
...
@@ -100,6 +110,16 @@ class CcBigPackage(models.Model):
...
@@ -100,6 +110,16 @@ class CcBigPackage(models.Model):
'domain'
:
[(
'bl_line_id'
,
'in'
,
self
.
ship_package_ids
.
ids
),
(
'is_cancel'
,
'='
,
False
)],
'domain'
:
[(
'bl_line_id'
,
'in'
,
self
.
ship_package_ids
.
ids
),
(
'is_cancel'
,
'='
,
False
)],
}
}
def
action_link_pallet
(
self
):
return
{
'name'
:
_
(
'Link Pallet'
),
'type'
:
'ir.actions.act_window'
,
'views'
:
[[
False
,
"form"
]],
'res_model'
:
'associate.pallet.wizard'
,
'target'
:
'new'
,
'context'
:
{},
}
def
action_cc_big_package
(
self
):
def
action_cc_big_package
(
self
):
"""
"""
菜单 大包
菜单 大包
...
...
ccs_base/security/ir.model.access.csv
浏览文件 @
c312de68
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
batch_input_ship_package_status_wizard_group_user,batch_input_ship_package_status_wizard_group_user,ccs_base.model_batch_input_ship_package_status_wizard,base.group_user,1,1,1,1
batch_input_ship_package_status_wizard_group_user,batch_input_ship_package_status_wizard_group_user,ccs_base.model_batch_input_ship_package_status_wizard,base.group_user,1,1,1,1
export_bl_big_package_xlsx_wizard_group_user,export_bl_big_package_xlsx_wizard_group_user,ccs_base.model_export_bl_big_package_xlsx_wizard,base.group_user,1,1,1,1
export_bl_big_package_xlsx_wizard_group_user,export_bl_big_package_xlsx_wizard_group_user,ccs_base.model_export_bl_big_package_xlsx_wizard,base.group_user,1,1,1,1
associate_pallet_wizard_group_user,associate_pallet_wizard_group_user,model_associate_pallet_wizard,base.group_user,1,1,1,1
add_exception_info_wizard_group_user,add_exception_info_wizard_group_user,ccs_base.model_add_exception_info_wizard,base.group_user,1,1,1,1
add_exception_info_wizard_group_user,add_exception_info_wizard_group_user,ccs_base.model_add_exception_info_wizard,base.group_user,1,1,1,1
update_bl_status_wizard_group_user,update_bl_status_wizard_group_user,ccs_base.model_update_bl_status_wizard,base.group_user,1,1,1,1
update_bl_status_wizard_group_user,update_bl_status_wizard_group_user,ccs_base.model_update_bl_status_wizard,base.group_user,1,1,1,1
batch_update_transfer_bl_no_wizard_group_user,batch_update_transfer_bl_no_wizard_group_user,ccs_base.model_batch_update_transfer_bl_no_wizard,base.group_user,1,1,1,1
batch_update_transfer_bl_no_wizard_group_user,batch_update_transfer_bl_no_wizard_group_user,ccs_base.model_batch_update_transfer_bl_no_wizard,base.group_user,1,1,1,1
...
...
ccs_
pallet
/static/src/mixins/link_pallet.js
→
ccs_
base
/static/src/mixins/link_pallet.js
浏览文件 @
c312de68
File moved
ccs_
pallet
/static/src/views/big_package_list_controller.js
→
ccs_
base
/static/src/views/big_package_list_controller.js
浏览文件 @
c312de68
...
@@ -21,7 +21,7 @@ export class BigPackageListController extends ListController {
...
@@ -21,7 +21,7 @@ export class BigPackageListController extends ListController {
this
.
isBigPackage
=
this
.
model
.
rootParams
.
resModel
===
"cc.big.package"
;
this
.
isBigPackage
=
this
.
model
.
rootParams
.
resModel
===
"cc.big.package"
;
console
.
log
(
'ccs isBigPackage:'
+
this
.
isBigPackage
)
console
.
log
(
'ccs isBigPackage:'
+
this
.
isBigPackage
)
onWillStart
(
async
()
=>
{
onWillStart
(
async
()
=>
{
this
.
is_link
=
await
this
.
user
.
hasGroup
(
"ccs_base.group_clearance_of_customs_manager"
)
||
await
this
.
user
.
hasGroup
(
"ccs_pallet.group_pallet_manager"
)
;
this
.
is_link
=
await
this
.
user
.
hasGroup
(
"ccs_base.group_clearance_of_customs_manager"
);
console
.
log
(
'ccs is_link:'
+
this
.
is_link
)
console
.
log
(
'ccs is_link:'
+
this
.
is_link
)
});
});
}
}
...
@@ -32,8 +32,8 @@ export class BigPackageListController extends ListController {
...
@@ -32,8 +32,8 @@ export class BigPackageListController extends ListController {
return
this
.
isBigPackage
&&
this
.
is_link
;
return
this
.
isBigPackage
&&
this
.
is_link
;
}
}
display
BatchCreatePallet
()
{
display
TransferBlNo
()
{
// 大包页面永远不显示“
批量创建托盘
”按钮
// 大包页面永远不显示“
关联转单号
”按钮
return
false
;
return
false
;
}
}
...
@@ -43,6 +43,6 @@ patch(BigPackageListController.prototype, 'big_package_list_controller_link_pall
...
@@ -43,6 +43,6 @@ patch(BigPackageListController.prototype, 'big_package_list_controller_link_pall
registry
.
category
(
'views'
).
add
(
'cc_big_package_tree'
,
{
registry
.
category
(
'views'
).
add
(
'cc_big_package_tree'
,
{
...
listView
,
...
listView
,
buttonTemplate
:
'ccs_
pallet
.ListButtons'
,
buttonTemplate
:
'ccs_
base
.ListButtons'
,
Controller
:
BigPackageListController
Controller
:
BigPackageListController
});
});
\ No newline at end of file
ccs_base/static/src/views/bl_list_controller.js
浏览文件 @
c312de68
...
@@ -26,10 +26,10 @@ export class BlListController extends ListController {
...
@@ -26,10 +26,10 @@ export class BlListController extends ListController {
});
});
}
}
//
displayLink() {
displayLink
()
{
//
// 提单页面永远不显示“关联托盘”按钮
// 提单页面永远不显示“关联托盘”按钮
//
return false;
return
false
;
//
}
}
displayTransferBlNo
()
{
displayTransferBlNo
()
{
console
.
log
(
'ccs flag:'
+
this
.
isBl
&&
this
.
can_link_transfer_bl_no
)
console
.
log
(
'ccs flag:'
+
this
.
isBl
&&
this
.
can_link_transfer_bl_no
)
...
...
ccs_base/static/src/views/list.xml
浏览文件 @
c312de68
...
@@ -2,6 +2,11 @@
...
@@ -2,6 +2,11 @@
<templates
xml:space=
"preserve"
>
<templates
xml:space=
"preserve"
>
<t
t-name=
"ccs_base.ListButtons"
t-inherit=
"web.ListView.Buttons"
t-inherit-mode=
"primary"
owl=
"1"
>
<t
t-name=
"ccs_base.ListButtons"
t-inherit=
"web.ListView.Buttons"
t-inherit-mode=
"primary"
owl=
"1"
>
<xpath
expr=
"//button[hasclass('o_list_button_add')]"
position=
"after"
>
<button
t-if=
"displayLink()"
type=
"button"
class=
"d-none d-md-inline o_button_link_pallet btn btn-primary mx-1"
t-on-click.prevent=
"onLinkPalletClick"
>
Link Pallet
</button>
</xpath>
<xpath
expr=
"//button[hasclass('o_list_button_add')]"
position=
"after"
>
<xpath
expr=
"//button[hasclass('o_list_button_add')]"
position=
"after"
>
<button
t-if=
"displayTransferBlNo()"
type=
"button"
class=
"d-none d-md-inline o_button_transfer_bl_no btn btn-primary mx-1"
t-on-click.prevent=
"onTransferBlNoClick"
>
<button
t-if=
"displayTransferBlNo()"
type=
"button"
class=
"d-none d-md-inline o_button_transfer_bl_no btn btn-primary mx-1"
t-on-click.prevent=
"onTransferBlNoClick"
>
Link Transfer B/L No
Link Transfer B/L No
...
...
ccs_base/views/cc_big_package_view.xml
浏览文件 @
c312de68
...
@@ -6,7 +6,7 @@
...
@@ -6,7 +6,7 @@
<field
name=
"name"
>
tree.cc.big.package
</field>
<field
name=
"name"
>
tree.cc.big.package
</field>
<field
name=
"model"
>
cc.big.package
</field>
<field
name=
"model"
>
cc.big.package
</field>
<field
name=
"arch"
type=
"xml"
>
<field
name=
"arch"
type=
"xml"
>
<tree
string=
"Big Package"
decoration-warning=
"is_cancel==True"
>
<tree
string=
"Big Package"
js_class=
"cc_big_package_tree"
decoration-warning=
"is_cancel==True"
>
<field
optional=
"show"
name=
"big_package_no"
string=
"Big Package No."
/>
<field
optional=
"show"
name=
"big_package_no"
string=
"Big Package No."
/>
<field
optional=
"show"
name=
"bl_id"
string=
"Bill of Loading"
/>
<field
optional=
"show"
name=
"bl_id"
string=
"Bill of Loading"
/>
<field
name=
"ship_package_qty"
string=
"Packages Qty"
/>
<field
name=
"ship_package_qty"
string=
"Packages Qty"
/>
...
@@ -30,6 +30,9 @@
...
@@ -30,6 +30,9 @@
<field
name=
"arch"
type=
"xml"
>
<field
name=
"arch"
type=
"xml"
>
<form
string=
"Big Package"
>
<form
string=
"Big Package"
>
<header>
<header>
<!-- <button name="action_link_pallet" type="object"-->
<!-- string="Link Pallet"-->
<!-- groups="ccs_base.group_clearance_of_customs_manager"/><!– 关联托盘 –>-->
<button
name=
"action_package_exception_info"
type=
"object"
<button
name=
"action_package_exception_info"
type=
"object"
string=
"Add Package Exception Information"
string=
"Add Package Exception Information"
groups=
"ccs_base.group_clearance_of_customs_manager"
/>
<!-- 添加包裹异常信息 -->
groups=
"ccs_base.group_clearance_of_customs_manager"
/>
<!-- 添加包裹异常信息 -->
...
...
ccs_base/wizard/__init__.py
浏览文件 @
c312de68
...
@@ -2,6 +2,7 @@
...
@@ -2,6 +2,7 @@
from
.
import
batch_input_ship_package_statu_wizard
from
.
import
batch_input_ship_package_statu_wizard
from
.
import
export_bl_big_package_xlsx_wizard
from
.
import
export_bl_big_package_xlsx_wizard
from
.
import
associate_pallet_wizard
from
.
import
add_exception_info_wizard
from
.
import
add_exception_info_wizard
from
.
import
update_bl_status_wizard
from
.
import
update_bl_status_wizard
from
.
import
batch_update_transfer_bl_no_wizard
from
.
import
batch_update_transfer_bl_no_wizard
...
...
ccs_base/wizard/associate_pallet_wizard.py
0 → 100644
浏览文件 @
c312de68
# -*- coding: utf-8 -*-
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from
datetime
import
date
from
odoo
import
models
,
fields
,
api
,
_
from
odoo.exceptions
import
Warning
,
ValidationError
class
AssociatePalletWizard
(
models
.
TransientModel
):
_name
=
'associate.pallet.wizard'
_description
=
'Associate Pallet Wizard'
@api.onchange
(
'usage_date'
)
def
change_usage_date
(
self
):
for
item
in
self
:
if
item
.
usage_date
:
item
.
pallet_number
=
item
.
get_pallet_number
(
item
.
usage_date
)
def
get_pallet_number
(
self
,
usage_date
):
"""
生成托盘号 从001开始,如果
:return: 新的托盘号
"""
try
:
# 查找大包中最新的托盘号
latest_pallet
=
self
.
env
[
'cc.big.package'
]
.
search
([(
'pallet_usage_date'
,
'='
,
str
(
usage_date
))],
order
=
'pallet_number desc'
,
limit
=
1
)
# 生成新的托盘号
if
latest_pallet
:
new_pallet_number
=
int
(
latest_pallet
.
pallet_number
)
+
1
else
:
new_pallet_number
=
1
# 如果没有找到,默认从1开始
return
str
(
new_pallet_number
)
.
zfill
(
3
)
# 返回格式化的托盘号
except
Exception
as
e
:
raise
ValidationError
(
str
(
e
))
usage_date
=
fields
.
Date
(
string
=
'Usage Date'
,
default
=
fields
.
Date
.
today
)
# 使用日期
pallet_number
=
fields
.
Char
(
string
=
'Pallet Number'
,
required
=
True
)
# 托盘号
big_package_numbers
=
fields
.
Text
(
string
=
'Big Package Numbers'
)
# 大包号(可输入多个)
def
confirm
(
self
):
for
record
in
self
:
if
not
record
.
pallet_number
.
isdigit
():
raise
ValidationError
(
_
(
'The pallet number can only be entered as a number!'
))
# 托盘号只能输入数字!
if
record
.
usage_date
>
fields
.
Date
.
today
():
raise
ValidationError
(
_
(
'The usage date cannot be later than the current date!'
))
# 使用日期不能大于当前日期!
# 处理大包号
big_package_ids
=
record
.
big_package_numbers
.
splitlines
()
success_package
=
[]
fail_package
=
[]
for
package_number
in
big_package_ids
:
package
=
self
.
env
[
'cc.big.package'
]
.
search
([(
'big_package_no'
,
'='
,
package_number
)],
limit
=
1
)
if
package
:
success_package
.
append
(
package
)
else
:
fail_package
.
append
(
package_number
)
if
fail_package
:
raise
ValidationError
(
_
(
'
%
s The package does not exist, please check the input information!'
)
%
(
'
\n
'
.
join
(
fail_package
)))
# 不存在该大包,请检查输入信息
if
success_package
:
for
package
in
success_package
:
# 回写大包的托盘号和使用日期
old_pallet_number
=
package
.
pallet_number
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
)))
# 大包号关联的同一提单,同一托盘号,使用日期必须一致
package
.
update_pallet_info
(
new_pallet_number
,
record
.
usage_date
)
if
old_pallet_number
:
# %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
,
record
.
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
,
record
.
usage_date
)
package
.
message_post
(
body
=
body
)
ccs_base/wizard/associate_pallet_wizard_views.xml
0 → 100644
浏览文件 @
c312de68
<odoo>
<record
id=
"view_associate_pallet_wizard"
model=
"ir.ui.view"
>
<field
name=
"name"
>
associate.pallet.wizard.form
</field>
<field
name=
"model"
>
associate.pallet.wizard
</field>
<field
name=
"arch"
type=
"xml"
>
<form
string=
"Associate Pallet"
>
<sheet>
<group>
<field
name=
"usage_date"
required=
"1"
/>
<!-- 使用日期 -->
<field
name=
"pallet_number"
required=
"1"
/>
<!-- 托盘号 -->
<field
name=
"big_package_numbers"
required=
"1"
placeholder=
"Multiple can be entered, one large package number per line"
/>
<!-- 大包号 可输入多个,一行一个大包号 -->
</group>
<footer>
<button
string=
"Confirm"
type=
"object"
name=
"confirm"
class=
"btn-primary"
/>
<button
string=
"Close"
special=
"cancel"
/>
</footer>
</sheet>
</form>
</field>
</record>
<record
id=
"action_associate_pallet"
model=
"ir.actions.act_window"
>
<field
name=
"name"
>
Associate Pallet
</field>
<field
name=
"res_model"
>
associate.pallet.wizard
</field>
<field
name=
"view_mode"
>
form
</field>
<field
name=
"target"
>
new
</field>
</record>
</odoo>
\ No newline at end of file
ccs_pallet/__manifest__.py
浏览文件 @
c312de68
...
@@ -20,17 +20,15 @@
...
@@ -20,17 +20,15 @@
'wizard/associate_pallet_wizard_views.xml'
,
'wizard/associate_pallet_wizard_views.xml'
,
'reports/pallet_label_report.xml'
,
'reports/pallet_label_report.xml'
,
'views/cc_pallet_view.xml'
,
'views/cc_pallet_view.xml'
,
'views/cc_big_package_view.xml'
,
#
'views/cc_big_package_view.xml',
'views/menu_view.xml'
,
'views/menu_view.xml'
,
],
],
'installable'
:
True
,
'installable'
:
True
,
'application'
:
True
,
'application'
:
True
,
'assets'
:
{
'assets'
:
{
'web.assets_backend'
:
[
'web.assets_backend'
:
[
'ccs_pallet/static/src/mixins/link_pallet.js'
,
'ccs_pallet/static/src/mixins/batch_create_pallet.js'
,
'ccs_pallet/static/src/mixins/batch_create_pallet.js'
,
'ccs_pallet/static/src/views/bl_list_pallet_controller.js'
,
'ccs_pallet/static/src/views/bl_list_pallet_controller.js'
,
'ccs_pallet/static/src/views/big_package_list_controller.js'
,
'ccs_pallet/static/src/views/list.xml'
,
'ccs_pallet/static/src/views/list.xml'
,
],
],
},
},
...
...
ccs_pallet/i18n/zh_CN.po
浏览文件 @
c312de68
...
@@ -390,26 +390,9 @@ msgstr ""
...
@@ -390,26 +390,9 @@ msgstr ""
msgid "Please select a pallet!"
msgid "Please select a pallet!"
msgstr "请选择托盘!"
msgstr "请选择托盘!"
#. module: ccs_pallet
#. odoo-python
#: code:addons/ccs_pallet/wizard/associate_pallet_wizard.py:0
#: model:ir.model.fields,field_description:ccs_pallet.field_associate_pallet_wizard__pallet_id
#: model_terms:ir.ui.view,arch_db:ccs_pallet.view_associate_pallet_wizard
#, python-format
msgid "Pallet"
msgstr "托盘"
#. module: ccs_pallet
#. module: ccs_pallet
#. odoo-python
#. odoo-python
#: code:addons/ccs_pallet/wizard/associate_pallet_wizard.py:0
#: code:addons/ccs_pallet/wizard/associate_pallet_wizard.py:0
#, python-format
#, python-format
msgid "%s at %s associated %d packages to pallet %s"
msgid "%s at %s associated %d packages to pallet %s"
msgstr "%s 在 %s 将 %d 个大包关联到托盘 %s"
msgstr "%s 在 %s 将 %d 个大包关联到托盘 %s"
#. module: ccs_pallet
#. odoo-python
#: code:addons/ccs_pallet/models/cc_big_package.py:0
#: model:ir.model.fields,field_description:ccs_pallet.field_cc_big_package__pallet_id
#, python-format
msgid "Pallet"
msgstr "托盘"
ccs_pallet/models/cc_pallet.py
浏览文件 @
c312de68
...
@@ -73,8 +73,7 @@ class CcPallet(models.Model):
...
@@ -73,8 +73,7 @@ class CcPallet(models.Model):
pallet
.
delivery_time
=
False
pallet
.
delivery_time
=
False
# 托盘号(年月+4位数,不能重复生成)
# 托盘号(年月+4位数,不能重复生成)
name
=
fields
.
Char
(
string
=
_
(
'Pallet Number'
),
required
=
True
,
readonly
=
True
,
copy
=
False
,
name
=
fields
.
Char
(
string
=
_
(
'Pallet Number'
),
copy
=
False
,
help
=
_
(
'Pallet number format: YYYYMM + 4 digits'
))
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
)
# 使用状态
# 使用状态
...
...
ccs_pallet/security/ir.model.access.csv
浏览文件 @
c312de68
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
pallet_batch_wizard_group_user,pallet_batch_wizard_group_user,model_pallet_batch_wizard,base.group_user,1,1,1,1
pallet_batch_wizard_group_user,pallet_batch_wizard_group_user,model_pallet_batch_wizard,base.group_user,1,1,1,1
pallet_print_wizard_group_user,pallet_print_wizard_group_user,model_pallet_print_wizard,base.group_user,1,1,1,1
pallet_print_wizard_group_user,pallet_print_wizard_group_user,model_pallet_print_wizard,base.group_user,1,1,1,1
associate_pallet_wizard_group_user,associate_pallet_wizard_group_user,model_associate_pallet_wizard,base.group_user,1,1,1,1
cc_pallet_group_user,cc_pallet_group_user,model_cc_pallet,base.group_user,1,1,1,0
cc_pallet_group_user,cc_pallet_group_user,model_cc_pallet,base.group_user,1,1,1,0
cc_pallet_group_system,cc_pallet_group_system,model_cc_pallet,base.group_system,1,1,1,1
cc_pallet_group_system,cc_pallet_group_system,model_cc_pallet,base.group_system,1,1,1,1
...
...
ccs_pallet/static/src/views/list.xml
浏览文件 @
c312de68
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<templates
xml:space=
"preserve"
>
<templates
xml:space=
"preserve"
>
<t
t-name=
"ccs_pallet.ListButtons"
t-inherit=
"web.ListView.Buttons"
t-inherit-mode=
"primary"
owl=
"1"
>
<t
t-name=
"ccs_pallet.ListButtons"
t-inherit=
"web.ListView.Buttons"
t-inherit-mode=
"primary"
owl=
"1"
>
<xpath
expr=
"//button[hasclass('o_list_button_add')]"
position=
"after"
>
<button
t-if=
"displayLink()"
type=
"button"
class=
"d-none d-md-inline o_button_link_pallet btn btn-primary mx-1"
t-on-click.prevent=
"onLinkPalletClick"
>
Link Pallet
</button>
</xpath>
<xpath
expr=
"//button[hasclass('o_list_button_add')]"
position=
"after"
>
<xpath
expr=
"//button[hasclass('o_list_button_add')]"
position=
"after"
>
<button
t-if=
"displayBatchCreatePallet()"
type=
"button"
class=
"d-none d-md-inline o_button_batch_create_pallet btn btn-primary mx-1"
t-on-click.prevent=
"onBatchCreatePalletClick"
>
<button
t-if=
"displayBatchCreatePallet()"
type=
"button"
class=
"d-none d-md-inline o_button_batch_create_pallet btn btn-primary mx-1"
t-on-click.prevent=
"onBatchCreatePalletClick"
>
Batch Create Pallet
Batch Create Pallet
...
...
ccs_pallet/views/cc_pallet_view.xml
浏览文件 @
c312de68
...
@@ -24,19 +24,19 @@
...
@@ -24,19 +24,19 @@
</div>
</div>
<group>
<group>
<group
string=
"Basic Information"
>
<group
string=
"Basic Information"
>
<field
name=
"express_company_id"
required=
"1"
/>
<field
name=
"express_company_id"
required=
"1"
options=
"{'no_create': True, 'no_quick_create': True}"
/>
<field
name=
"partner_id"
/>
<field
name=
"partner_id"
options=
"{'no_create': True, 'no_quick_create': True}"
/>
<field
name=
"delivery_plate_number"
/>
<field
name=
"delivery_plate_number"
/>
</group>
</group>
<group
string=
"Status Information"
>
<group
string=
"Status Information"
>
<field
name=
"print_state"
/>
<field
name=
"print_state"
readonly=
"1"
/>
<field
name=
"sorting_time"
/>
<field
name=
"sorting_time"
readonly=
"1"
/>
<field
name=
"delivery_time"
/>
<field
name=
"delivery_time"
readonly=
"1"
/>
</group>
</group>
</group>
</group>
<notebook>
<notebook>
<page
string=
"Package Information"
name=
"packages"
>
<page
string=
"Package Information"
name=
"packages"
>
<field
name=
"package_ids"
/>
<field
name=
"package_ids"
readonly=
"1"
/>
</page>
</page>
</notebook>
</notebook>
</sheet>
</sheet>
...
@@ -51,16 +51,16 @@
...
@@ -51,16 +51,16 @@
<field
name=
"model"
>
cc.pallet
</field>
<field
name=
"model"
>
cc.pallet
</field>
<field
name=
"arch"
type=
"xml"
>
<field
name=
"arch"
type=
"xml"
>
<tree
string=
"Pallet Management"
js_class=
"cc_pallet_tree"
>
<tree
string=
"Pallet Management"
js_class=
"cc_pallet_tree"
>
<field
name=
"name"
string=
"Pallet Number"
/>
<field
name=
"name"
/>
<field
name=
"express_company_id"
string=
"Express Company"
/>
<field
name=
"express_company_id"
/>
<field
name=
"usage_state"
string=
"Usage State"
decoration-success=
"usage_state == 'unused'"
<field
name=
"usage_state"
decoration-success=
"usage_state == 'unused'"
decoration-warning=
"usage_state == 'used'"
/>
decoration-warning=
"usage_state == 'used'"
/>
<field
name=
"print_state"
string=
"Print State"
decoration-info=
"print_state == 'unprinted'"
<field
name=
"print_state"
decoration-info=
"print_state == 'unprinted'"
decoration-success=
"print_state == 'printed'"
/>
decoration-success=
"print_state == 'printed'"
/>
<field
name=
"sorting_time"
string=
"Sorting Time"
/>
<field
name=
"sorting_time"
/>
<field
name=
"delivery_time"
string=
"Delivery Time"
/>
<field
name=
"delivery_time"
/>
<field
name=
"package_count"
string=
"Package Count"
/>
<field
name=
"package_count"
/>
<field
name=
"delivery_plate_number"
string=
"Delivery Plate Number"
/>
<field
name=
"delivery_plate_number"
/>
</tree>
</tree>
</field>
</field>
</record>
</record>
...
@@ -71,10 +71,10 @@
...
@@ -71,10 +71,10 @@
<field
name=
"model"
>
cc.pallet
</field>
<field
name=
"model"
>
cc.pallet
</field>
<field
name=
"arch"
type=
"xml"
>
<field
name=
"arch"
type=
"xml"
>
<search
string=
"Pallet Search"
>
<search
string=
"Pallet Search"
>
<field
name=
"name"
string=
"Pallet Number"
filter_domain=
"[('name', 'ilike', self)]"
/>
<field
name=
"name"
filter_domain=
"[('name', 'ilike', self)]"
/>
<field
name=
"express_company_id"
string=
"Express Company"
/>
<field
name=
"express_company_id"
/>
<field
name=
"partner_id"
string=
"Customer"
/>
<field
name=
"partner_id"
/>
<field
name=
"delivery_plate_number"
string=
"Plate Number"
/>
<field
name=
"delivery_plate_number"
/>
<separator/>
<separator/>
<filter
name=
"filter_unused"
string=
"Unused"
domain=
"[('usage_state', '=', 'unused')]"
/>
<filter
name=
"filter_unused"
string=
"Unused"
domain=
"[('usage_state', '=', 'unused')]"
/>
...
...
ccs_pallet/wizard/__init__.py
浏览文件 @
c312de68
...
@@ -3,3 +3,4 @@
...
@@ -3,3 +3,4 @@
from
.
import
pallet_batch_wizard
from
.
import
pallet_batch_wizard
from
.
import
pallet_print_wizard
from
.
import
pallet_print_wizard
from
.
import
associate_pallet_wizard
from
.
import
associate_pallet_wizard
ccs_pallet/wizard/associate_pallet_wizard.py
浏览文件 @
c312de68
...
@@ -7,12 +7,11 @@ from odoo.exceptions import Warning, ValidationError
...
@@ -7,12 +7,11 @@ from odoo.exceptions import Warning, ValidationError
class
AssociatePalletWizard
(
models
.
TransientModel
):
class
AssociatePalletWizard
(
models
.
TransientModel
):
_
name
=
'associate.pallet.wizard'
_
inherit
=
'associate.pallet.wizard'
_description
=
'Associate Pallet Wizard'
_description
=
'Associate Pallet Wizard'
usage_date
=
fields
.
Date
(
string
=
'Usage Date'
,
default
=
fields
.
Date
.
today
)
# 使用日期
# 字段定义
pallet_id
=
fields
.
Many2one
(
'cc.pallet'
,
string
=
'Pallet'
)
# 托盘选择
pallet_id
=
fields
.
Many2one
(
'cc.pallet'
,
string
=
'Pallet'
,
index
=
True
)
big_package_numbers
=
fields
.
Text
(
string
=
'Big Package Numbers'
)
# 大包号(可输入多个)
def
confirm
(
self
):
def
confirm
(
self
):
for
record
in
self
:
for
record
in
self
:
...
...
ccs_pallet/wizard/associate_pallet_wizard_views.xml
浏览文件 @
c312de68
...
@@ -2,29 +2,15 @@
...
@@ -2,29 +2,15 @@
<record
id=
"view_associate_pallet_wizard"
model=
"ir.ui.view"
>
<record
id=
"view_associate_pallet_wizard"
model=
"ir.ui.view"
>
<field
name=
"name"
>
associate.pallet.wizard.form
</field>
<field
name=
"name"
>
associate.pallet.wizard.form
</field>
<field
name=
"model"
>
associate.pallet.wizard
</field>
<field
name=
"model"
>
associate.pallet.wizard
</field>
<field
name=
"inherit_id"
ref=
"ccs_base.view_associate_pallet_wizard"
/>
<field
name=
"arch"
type=
"xml"
>
<field
name=
"arch"
type=
"xml"
>
<form
string=
"Associate Pallet"
>
<xpath
expr=
"//field[@name='pallet_number']"
position=
"after"
>
<sheet>
<field
name=
"pallet_id"
required=
"1"
options=
"{'no_create': True, 'no_quick_create': True}"
/>
<group>
</xpath>
<field
name=
"usage_date"
required=
"1"
/>
<!-- 使用日期 -->
<field
name=
"pallet_number"
position=
"attributes"
>
<field
name=
"pallet_id"
required=
"1"
options=
"{'no_create': True, 'no_quick_create': True}"
/>
<!-- 托盘选择 -->
<attribute
name=
"invisible"
>
1
</attribute>
<field
name=
"big_package_numbers"
required=
"1"
</field>
placeholder=
"Multiple can be entered, one large package number per line"
/>
<!-- 大包号 可输入多个,一行一个大包号 -->
</group>
<footer>
<button
string=
"Confirm"
type=
"object"
name=
"confirm"
class=
"btn-primary"
/>
<button
string=
"Close"
special=
"cancel"
/>
</footer>
</sheet>
</form>
</field>
</field>
</record>
</record>
<record
id=
"action_associate_pallet"
model=
"ir.actions.act_window"
>
<field
name=
"name"
>
Associate Pallet
</field>
<field
name=
"res_model"
>
associate.pallet.wizard
</field>
<field
name=
"view_mode"
>
form
</field>
<field
name=
"target"
>
new
</field>
</record>
</odoo>
</odoo>
\ No newline at end of file
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论