提交 c312de68 authored 作者: 贺阳's avatar 贺阳

还原以前Base模块关于托盘的功能

上级 1b8d84e6
...@@ -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',
], ],
......
...@@ -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):
""" """
菜单 大包 菜单 大包
......
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
......
...@@ -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;
} }
displayBatchCreatePallet() { displayTransferBlNo() {
// 大包页面永远不显示“批量创建托盘”按钮 // 大包页面永远不显示“关联转单号”按钮
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
...@@ -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)
......
...@@ -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
......
...@@ -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"/>&lt;!&ndash; 关联托盘 &ndash;&gt;-->
<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"/><!-- 添加包裹异常信息 -->
......
...@@ -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
......
# -*- 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)
<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
...@@ -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',
], ],
}, },
......
...@@ -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 "托盘"
...@@ -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)
# 使用状态 # 使用状态
......
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
......
<?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
......
...@@ -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')]"/>
......
...@@ -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
...@@ -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:
......
...@@ -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 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论