新增刀具管理按键使用提示,调整相关按键布局;新增机床换刀申请、CAM装刀申请界面、功能刀具组装界面的tree视图左侧分组显示全部信息;优化三个界面相关字段;新增功能刀具组装界面刀具物料信息无数据隐藏,功能刀具组装申请组装界面刀具物料信息根据不同情况隐藏;新增功能刀具组装的刀具物料字段根据所选型号自动带出。
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from odoo import fields, models, api
|
from odoo import fields, models, api
|
||||||
|
from odoo import SUPERUSER_ID
|
||||||
|
|
||||||
|
|
||||||
# class FunctionalCuttingToolEntity(models.Model):
|
# class FunctionalCuttingToolEntity(models.Model):
|
||||||
@@ -347,9 +348,9 @@ class MachineTableToolChangingApply(models.Model):
|
|||||||
# string='换刀需求信息',
|
# string='换刀需求信息',
|
||||||
# attrs="{'invisible': 1}")
|
# attrs="{'invisible': 1}")
|
||||||
|
|
||||||
name = fields.Many2one('sf.machine_tool', string='CNC机床', readonly=False)
|
name = fields.Many2one('maintenance.equipment', string='CNC机床', readonly=False,tracking=True, group_expand='_read_group_names')
|
||||||
machine_table_type_id = fields.Many2one('sf.machine_tool.category', string='机床类型', readonly=False)
|
machine_table_type_id = fields.Many2one('sf.machine_tool.category', string='机床类型', readonly=True, compute='_compute_name')
|
||||||
machine_tool_code = fields.Char(string='机台号', attrs="{'invisible': 1}")
|
machine_tool_code = fields.Char(string='机台号', attrs="{'invisible': 1}", readonly=True, compute='_compute_name')
|
||||||
cutter_spacing_code = fields.Char(string='刀位号', readonly=False)
|
cutter_spacing_code = fields.Char(string='刀位号', readonly=False)
|
||||||
functional_tool_code = fields.Char(string='功能刀具编码', readonly=True, compute='_compute_functional_tool_name_id')
|
functional_tool_code = fields.Char(string='功能刀具编码', readonly=True, compute='_compute_functional_tool_name_id')
|
||||||
functional_tool_name_id = fields.Many2one('sf.functional.cutting.tool', string='功能刀具名称', readonly=False)
|
functional_tool_name_id = fields.Many2one('sf.functional.cutting.tool', string='功能刀具名称', readonly=False)
|
||||||
@@ -363,9 +364,9 @@ class MachineTableToolChangingApply(models.Model):
|
|||||||
used_value = fields.Char(string='已使用值', readonly=False)
|
used_value = fields.Char(string='已使用值', readonly=False)
|
||||||
functional_tool_status = fields.Selection([('正常', '正常'), ('异常', '异常')], string='功能刀具状态', default='正常', readonly=False)
|
functional_tool_status = fields.Selection([('正常', '正常'), ('异常', '异常')], string='功能刀具状态', default='正常', readonly=False)
|
||||||
|
|
||||||
replacement_tool_code = fields.Char(string='待换刀具编码', readonly=True)
|
replacement_tool_code = fields.Char(string='待换功能刀具编码', readonly=True)
|
||||||
replacement_tool_name_id = fields.Many2one('sf.functional.cutting.tool', string='待换刀具名称', readonly=True)
|
replacement_tool_name_id = fields.Many2one('sf.functional.cutting.tool', string='待换功能刀具名称', readonly=True)
|
||||||
replacement_tool_type_id = fields.Many2one('sf.functional.cutting.tool.model', string='待换刀具类型', readonly=True)
|
replacement_tool_type_id = fields.Many2one('sf.functional.cutting.tool.model', string='待换功能刀具类型', readonly=True)
|
||||||
replacement_tool_coarse_middle_thin = fields.Selection([("1", "粗"), ('2', '中'), ('3', '精')],
|
replacement_tool_coarse_middle_thin = fields.Selection([("1", "粗"), ('2', '中'), ('3', '精')],
|
||||||
string='粗/中/精', readonly=True)
|
string='粗/中/精', readonly=True)
|
||||||
new_former = fields.Selection([('0', '新'), ('1', '旧')], string='新/旧', readonly=True)
|
new_former = fields.Selection([('0', '新'), ('1', '旧')], string='新/旧', readonly=True)
|
||||||
@@ -376,6 +377,18 @@ class MachineTableToolChangingApply(models.Model):
|
|||||||
|
|
||||||
status = fields.Selection([('0', '未操作'), ('1', '已换刀申请'), ('2', '已转移')], string='操作状态', default='0')
|
status = fields.Selection([('0', '未操作'), ('1', '已换刀申请'), ('2', '已转移')], string='操作状态', default='0')
|
||||||
|
|
||||||
|
@api.model
|
||||||
|
def _read_group_names(self, categories, domain, order):
|
||||||
|
names = categories._search([], order=order, access_rights_uid=SUPERUSER_ID)
|
||||||
|
return categories.browse(names)
|
||||||
|
|
||||||
|
@api.depends('name')
|
||||||
|
def _compute_name(self):
|
||||||
|
for record in self:
|
||||||
|
if record:
|
||||||
|
record.machine_table_type_id = record.name.machine_tool_category.id
|
||||||
|
record.machine_tool_code = record.name.code
|
||||||
|
|
||||||
@api.depends('functional_tool_name_id')
|
@api.depends('functional_tool_name_id')
|
||||||
def _compute_functional_tool_name_id(self):
|
def _compute_functional_tool_name_id(self):
|
||||||
for record in self:
|
for record in self:
|
||||||
@@ -383,7 +396,6 @@ class MachineTableToolChangingApply(models.Model):
|
|||||||
record.functional_tool_code = record.functional_tool_name_id.code
|
record.functional_tool_code = record.functional_tool_name_id.code
|
||||||
record.functional_tool_type_id = record.functional_tool_name_id.mrs_cutting_tool_type_id.id
|
record.functional_tool_type_id = record.functional_tool_name_id.mrs_cutting_tool_type_id.id
|
||||||
|
|
||||||
|
|
||||||
@api.onchange('functional_tool_status')
|
@api.onchange('functional_tool_status')
|
||||||
def automation_apply_for_tool_change(self):
|
def automation_apply_for_tool_change(self):
|
||||||
"""
|
"""
|
||||||
@@ -484,16 +496,22 @@ class CAMWorkOrderProgramKnifePlan(models.Model):
|
|||||||
functional_tool_code = fields.Char(string='功能刀具编码', readonly=False)
|
functional_tool_code = fields.Char(string='功能刀具编码', readonly=False)
|
||||||
functional_tool_name_id = fields.Many2one('sf.functional.cutting.tool', string='功能刀具名称', readonly=False)
|
functional_tool_name_id = fields.Many2one('sf.functional.cutting.tool', string='功能刀具名称', readonly=False)
|
||||||
functional_tool_type_id = fields.Many2one('sf.functional.cutting.tool.model', string='功能刀具类型', readonly=False)
|
functional_tool_type_id = fields.Many2one('sf.functional.cutting.tool.model', string='功能刀具类型', readonly=False)
|
||||||
machine_table_name_id = fields.Many2one('sf.machine_tool', string='机床名称', readonly=False)
|
machine_table_name_id = fields.Many2one('maintenance.equipment', string='机床名称', readonly=False, tracking=True, group_expand='_read_group_machine_table_name_ids')
|
||||||
|
|
||||||
|
@api.model
|
||||||
|
def _read_group_machine_table_name_ids(self, categories, domain, order):
|
||||||
|
machine_table_name_ids = categories._search([], order=order, access_rights_uid=SUPERUSER_ID)
|
||||||
|
return categories.browse(machine_table_name_ids)
|
||||||
|
|
||||||
machine_tool_cutter_spacing_code = fields.Char(string='机床刀位号', readonly=False)
|
machine_tool_cutter_spacing_code = fields.Char(string='机床刀位号', readonly=False)
|
||||||
diameter = fields.Char(string='直径(程式)', readonly=False)
|
diameter = fields.Char(string='直径(程式)', readonly=False)
|
||||||
tool_loading_length = fields.Char(string='装刀长', readonly=False)
|
tool_loading_length = fields.Char(string='装刀长', readonly=False)
|
||||||
clearance_length = fields.Char(string='避空长', readonly=False)
|
clearance_length = fields.Char(string='避空长', readonly=False)
|
||||||
tool_included_angle = fields.Char(string='刀尖角(R角)', readonly=False)
|
tool_included_angle = fields.Char(string='刀尖角(R角)', readonly=False)
|
||||||
L_D = fields.Char(string='L/D', readonly=False)
|
L_D = fields.Char(string='L/D', readonly=False)
|
||||||
coarse_middle_thin = fields.Selection([("1", "粗"), ('2', '中'), ('3', '精')], string='粗/中/精', readonly=False)
|
coarse_middle_thin = fields.Selection([("1", "粗"), ('2', '中'), ('3', '精')], string='粗/中/精', readonly=False, default='2')
|
||||||
required_cutting_time = fields.Char(string='需要切割时间', readonly=False)
|
required_cutting_time = fields.Char(string='需切削时长', readonly=False)
|
||||||
whether_standard_tool = fields.Boolean(string='是否标准刀', readonly=False)
|
whether_standard_tool = fields.Selection([('1', '是'), ('0', '否')],string='是否标准刀', readonly=False, default='1')
|
||||||
need_knife_time = fields.Datetime(string='需要用刀时间', readonly=False)
|
need_knife_time = fields.Datetime(string='需要用刀时间', readonly=False)
|
||||||
plan_execute_status = fields.Selection([('0', '待下发'), ('1', '执行中'), ('2', '已完成')],
|
plan_execute_status = fields.Selection([('0', '待下发'), ('1', '执行中'), ('2', '已完成')],
|
||||||
string='计划执行状态', default='0', readonly=False)
|
string='计划执行状态', default='0', readonly=False)
|
||||||
@@ -556,7 +574,14 @@ class FunctionalToolAssembly(models.Model):
|
|||||||
|
|
||||||
functional_tool_code = fields.Char(string='功能刀具编码', readonly=True)
|
functional_tool_code = fields.Char(string='功能刀具编码', readonly=True)
|
||||||
name = fields.Many2one('sf.functional.cutting.tool', string='功能刀具名称', readonly=True)
|
name = fields.Many2one('sf.functional.cutting.tool', string='功能刀具名称', readonly=True)
|
||||||
functional_tool_type_id = fields.Many2one('sf.functional.cutting.tool.model', string='功能刀具类型', readonly=True)
|
functional_tool_type_id = fields.Many2one('sf.functional.cutting.tool.model', string='功能刀具类型', readonly=True,
|
||||||
|
tracking=True, group_expand='_read_group_functional_tool_type_ids')
|
||||||
|
@api.model
|
||||||
|
def _read_group_functional_tool_type_ids(self, categories, domain, order):
|
||||||
|
"""读取分组自定义以便在看板视图中显示所有的类别,即使它们为空"""
|
||||||
|
functional_tool_type_ids = categories._search([], order=order, access_rights_uid=SUPERUSER_ID)
|
||||||
|
return categories.browse(functional_tool_type_ids)
|
||||||
|
|
||||||
functional_tool_diameter = fields.Char(string='功能刀具直径', readonly=True)
|
functional_tool_diameter = fields.Char(string='功能刀具直径', readonly=True)
|
||||||
functional_tool_length = fields.Char(string='功能刀具伸出长', readonly=True)
|
functional_tool_length = fields.Char(string='功能刀具伸出长', readonly=True)
|
||||||
functional_tool_cutting_type = fields.Char(string='功能刀具切削类型', readonly=False)
|
functional_tool_cutting_type = fields.Char(string='功能刀具切削类型', readonly=False)
|
||||||
@@ -605,7 +630,6 @@ class FunctionalToolAssembly(models.Model):
|
|||||||
chuck_name = fields.Char('夹头名称', readonly=True)
|
chuck_name = fields.Char('夹头名称', readonly=True)
|
||||||
sf_tool_brand_id_6 = fields.Many2one('sf.machine.brand', '夹头品牌', readonly=True)
|
sf_tool_brand_id_6 = fields.Many2one('sf.machine.brand', '夹头品牌', readonly=True)
|
||||||
|
|
||||||
|
|
||||||
coarse_middle_thin = fields.Selection([("1", "粗"), ('2', '中'), ('3', '精')], string='粗/中/精', readonly=True)
|
coarse_middle_thin = fields.Selection([("1", "粗"), ('2', '中'), ('3', '精')], string='粗/中/精', readonly=True)
|
||||||
tool_loading_length = fields.Char(string='装刀长', readonly=True)
|
tool_loading_length = fields.Char(string='装刀长', readonly=True)
|
||||||
new_former = fields.Selection([('0', '新'), ('1', '旧')], string='新/旧', readonly=True)
|
new_former = fields.Selection([('0', '新'), ('1', '旧')], string='新/旧', readonly=True)
|
||||||
@@ -621,7 +645,7 @@ class FunctionalToolAssembly(models.Model):
|
|||||||
assemble_status = fields.Selection([('0', '待组装'), ('1', '已组装'), ('2', '已出库')],string='组装状态', default='0', readonly=True)
|
assemble_status = fields.Selection([('0', '待组装'), ('1', '已组装'), ('2', '已出库')],string='组装状态', default='0', readonly=True)
|
||||||
use_tool_time = fields.Datetime(string='用刀时间', readonly=True)
|
use_tool_time = fields.Datetime(string='用刀时间', readonly=True)
|
||||||
production_line_name_id = fields.Many2one('sf.production.line', string='产线名称', readonly=False)
|
production_line_name_id = fields.Many2one('sf.production.line', string='产线名称', readonly=False)
|
||||||
machine_tool_name_id = fields.Many2one('sf.machine_tool', string='机床名称', readonly=True)
|
machine_tool_name_id = fields.Many2one('maintenance.equipment', string='机床名称', readonly=True)
|
||||||
machine_tool_code = fields.Char(string='机台号', readonly=True)
|
machine_tool_code = fields.Char(string='机台号', readonly=True)
|
||||||
cutter_spacing_code = fields.Char(string='刀位号', readonly=True)
|
cutter_spacing_code = fields.Char(string='刀位号', readonly=True)
|
||||||
|
|
||||||
@@ -633,12 +657,6 @@ class FunctionalToolAssembly(models.Model):
|
|||||||
|
|
||||||
check_box_1 = fields.Boolean(string='复选框', default=False, readonly=False)
|
check_box_1 = fields.Boolean(string='复选框', default=False, readonly=False)
|
||||||
|
|
||||||
@api.onchange('assemble_status')
|
|
||||||
def check_box(self):
|
|
||||||
if self.assemble_status != '1':
|
|
||||||
self.check_box_1 = False
|
|
||||||
|
|
||||||
|
|
||||||
def cancel_functional_tool_assembly(self):
|
def cancel_functional_tool_assembly(self):
|
||||||
"""
|
"""
|
||||||
取消功能刀具组装
|
取消功能刀具组装
|
||||||
|
|||||||
@@ -551,6 +551,8 @@
|
|||||||
type="action"
|
type="action"
|
||||||
context="{ 'default_name':name,
|
context="{ 'default_name':name,
|
||||||
'default_machine_tool_code': machine_tool_code,
|
'default_machine_tool_code': machine_tool_code,
|
||||||
|
'default_functional_tool_name_id': functional_tool_name_id,
|
||||||
|
'default_functional_tool_type_id': functional_tool_type_id,
|
||||||
'default_cutter_spacing_code': cutter_spacing_code,
|
'default_cutter_spacing_code': cutter_spacing_code,
|
||||||
'default_replacement_tool_code': functional_tool_code,
|
'default_replacement_tool_code': functional_tool_code,
|
||||||
'default_replacement_tool_name_id': functional_tool_name_id,
|
'default_replacement_tool_name_id': functional_tool_name_id,
|
||||||
@@ -571,8 +573,8 @@
|
|||||||
class="btn-primary"
|
class="btn-primary"
|
||||||
attrs="{'invisible': [('status', '!=', '0')]}"
|
attrs="{'invisible': [('status', '!=', '0')]}"
|
||||||
/>
|
/>
|
||||||
<button string="撤回换刀申请" name="revocation_1" type="object" class="btn-primary" attrs="{'invisible': [('status', '!=', '1')]}"/>
|
<button string="撤回换刀申请" name="revocation_1" type="object" class="btn-primary" attrs="{'invisible': [('status', '!=', '1')]}" confirm="是否确认撤回换刀申请"/>
|
||||||
<button string="撤回转移" name="revocation_2" type="object" class="btn-primary" attrs="{'invisible': [('status', '!=', '2')]}"/>
|
<button string="撤回转移" name="revocation_2" type="object" class="btn-primary" attrs="{'invisible': [('status', '!=', '2')]}" confirm="是否确认撤回转移"/>
|
||||||
</tree>
|
</tree>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
@@ -588,6 +590,8 @@
|
|||||||
type="action"
|
type="action"
|
||||||
context="{ 'default_name':name,
|
context="{ 'default_name':name,
|
||||||
'default_machine_tool_code': machine_tool_code,
|
'default_machine_tool_code': machine_tool_code,
|
||||||
|
'default_functional_tool_name_id': functional_tool_name_id,
|
||||||
|
'default_functional_tool_type_id': functional_tool_type_id,
|
||||||
'default_cutter_spacing_code': cutter_spacing_code,
|
'default_cutter_spacing_code': cutter_spacing_code,
|
||||||
'default_replacement_tool_code': functional_tool_code,
|
'default_replacement_tool_code': functional_tool_code,
|
||||||
'default_replacement_tool_name_id': functional_tool_name_id,
|
'default_replacement_tool_name_id': functional_tool_name_id,
|
||||||
@@ -608,8 +612,8 @@
|
|||||||
class="btn-primary"
|
class="btn-primary"
|
||||||
attrs="{'invisible': [('status', '!=', '0')]}"
|
attrs="{'invisible': [('status', '!=', '0')]}"
|
||||||
/>
|
/>
|
||||||
<button string="撤回换刀申请" name="revocation_1" type="object" class="btn-primary" attrs="{'invisible': [('status', '!=', '1')]}"/>
|
<button string="撤回换刀申请" name="revocation_1" type="object" class="btn-primary" attrs="{'invisible': [('status', '!=', '1')]}" confirm="是否确认撤回换刀申请"/>
|
||||||
<button string="撤回转移" name="revocation_2" type="object" class="btn-primary" attrs="{'invisible': [('status', '!=', '2')]}"/>
|
<button string="撤回转移" name="revocation_2" type="object" class="btn-primary" attrs="{'invisible': [('status', '!=', '2')]}" confirm="是否确认撤回转移"/>
|
||||||
</header>
|
</header>
|
||||||
<sheet>
|
<sheet>
|
||||||
<group string="基础信息">
|
<group string="基础信息">
|
||||||
@@ -639,7 +643,7 @@
|
|||||||
<field name="used_value"/>
|
<field name="used_value"/>
|
||||||
</group>
|
</group>
|
||||||
</group>
|
</group>
|
||||||
<group string="待换刀具信息">
|
<group string="待换功能刀具信息">
|
||||||
<group>
|
<group>
|
||||||
<field name="replacement_tool_name_id"/>
|
<field name="replacement_tool_name_id"/>
|
||||||
<field name="replacement_tool_type_id"/>
|
<field name="replacement_tool_type_id"/>
|
||||||
@@ -678,9 +682,14 @@
|
|||||||
<field name="replacement_tool_name_id"/>
|
<field name="replacement_tool_name_id"/>
|
||||||
<field name="applicant"/>
|
<field name="applicant"/>
|
||||||
<searchpanel>
|
<searchpanel>
|
||||||
<field name="name" string="CNC机床" enable_counters="1" icon="fa-filter"/>
|
<field name="name" enable_counters="1" icon="fa-building"/>
|
||||||
</searchpanel>
|
</searchpanel>
|
||||||
</search>
|
</search>
|
||||||
|
<!-- <xpath expr="//field[@name='name']" position="after">-->
|
||||||
|
<!-- <searchpanel>-->
|
||||||
|
<!-- <field name="name" icon="fa-building" enable_counters="1" domain="[('name', '!=', False)]"/>-->
|
||||||
|
<!-- </searchpanel>-->
|
||||||
|
<!-- </xpath>-->
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
@@ -710,7 +719,7 @@
|
|||||||
<field name="remark" optional="hide"/>
|
<field name="remark" optional="hide"/>
|
||||||
<field name="plan_execute_status" invisible="True"/>
|
<field name="plan_execute_status" invisible="True"/>
|
||||||
<button string="申请装刀" name="apply_for_tooling" type="object" class="btn-primary" attrs="{'invisible': [('plan_execute_status', '!=', '0')]}" confirm="是否确认申请装刀"/>
|
<button string="申请装刀" name="apply_for_tooling" type="object" class="btn-primary" attrs="{'invisible': [('plan_execute_status', '!=', '0')]}" confirm="是否确认申请装刀"/>
|
||||||
<button string="撤回" name="revocation" type="object" class="btn-primary" attrs="{'invisible': [('plan_execute_status', '!=', '1')]}"/>
|
<button string="撤回" name="revocation" type="object" class="btn-primary" attrs="{'invisible': [('plan_execute_status', '!=', '1')]}" confirm="是否确认撤回装刀"/>
|
||||||
</tree>
|
</tree>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
@@ -722,7 +731,7 @@
|
|||||||
<form>
|
<form>
|
||||||
<header>
|
<header>
|
||||||
<button string="申请装刀" name="apply_for_tooling" type="object" class="btn-primary" attrs="{'invisible': [('plan_execute_status', '!=', '0')]}" confirm="是否确认申请装刀"/>
|
<button string="申请装刀" name="apply_for_tooling" type="object" class="btn-primary" attrs="{'invisible': [('plan_execute_status', '!=', '0')]}" confirm="是否确认申请装刀"/>
|
||||||
<button string="撤回" name="revocation" type="object" class="btn-primary" attrs="{'invisible': [('plan_execute_status', '!=', '1')]}"/>
|
<button string="撤回" name="revocation" type="object" class="btn-primary" attrs="{'invisible': [('plan_execute_status', '!=', '1')]}" confirm="是否确认撤回装刀"/>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<sheet>
|
<sheet>
|
||||||
@@ -836,8 +845,9 @@
|
|||||||
'default_whether_standard_tool': None}"
|
'default_whether_standard_tool': None}"
|
||||||
attrs="{'invisible': [('assemble_status', '!=', '0')]}"
|
attrs="{'invisible': [('assemble_status', '!=', '0')]}"
|
||||||
class="btn-primary"/>
|
class="btn-primary"/>
|
||||||
<button string="取消组装" name="cancel_functional_tool_assembly" type="object" attrs="{'invisible': [('assemble_status', '!=', '1')]}" class="btn-primary"/>
|
<button string="取消组装" name="cancel_functional_tool_assembly" type="object" attrs="{'invisible': [('assemble_status', '!=', '1')]}" class="btn-primary" confirm="是否确认取消组装"/>
|
||||||
<button string="出库" name="show_popup" type="object" attrs="{'invisible': [('assemble_status', '!=', '1')]}" class="btn-primary"/>
|
<button string="出库" name="show_popup" type="object" attrs="{'invisible': [('assemble_status', '!=', '1')]}" class="btn-primary"/>
|
||||||
|
<button string="组装单打印" name="assemble_single_print" type="object" attrs="{'invisible': [('assemble_status', '=', '0')]}" class="btn-primary" confirm="是否确认打印组装单"/>
|
||||||
</tree>
|
</tree>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
@@ -867,13 +877,13 @@
|
|||||||
attrs="{'invisible': [('assemble_status', '!=', '0')]}"
|
attrs="{'invisible': [('assemble_status', '!=', '0')]}"
|
||||||
class="btn-primary"/>
|
class="btn-primary"/>
|
||||||
|
|
||||||
<button string="取消组装" name="cancel_functional_tool_assembly" type="object" attrs="{'invisible': [('assemble_status', '!=', '1')]}" class="btn-primary"/>
|
<button string="取消组装" name="cancel_functional_tool_assembly" type="object" attrs="{'invisible': [('assemble_status', '!=', '1')]}" class="btn-primary" confirm="是否确认取消组装"/>
|
||||||
|
|
||||||
<button string="自动打印二维码" name="automatic_printing_of_QR_code" type="object" attrs="{'invisible': [('assemble_status', '=', '0')]}" class="btn-primary" />
|
<button string="打印二维码" name="automatic_printing_of_QR_code" type="object" attrs="{'invisible': [('assemble_status', '=', '0')]}" class="btn-primary" confirm="是否确认打印二维码"/>
|
||||||
|
|
||||||
<button string="出库" name="show_popup" type="object" attrs="{'invisible': [('assemble_status', '!=', '1')]}" class="btn-primary"/>
|
<button string="出库" name="show_popup" type="object" attrs="{'invisible': [('assemble_status', '!=', '1')]}" class="btn-primary"/>
|
||||||
|
|
||||||
<button string="组装单打印" name="assemble_single_print" type="object" attrs="{'invisible': [('assemble_status', '=', '0')]}" class="btn-primary"/>
|
<button string="组装单打印" name="assemble_single_print" type="object" attrs="{'invisible': [('assemble_status', '=', '0')]}" class="btn-primary" confirm="是否确认打印组装单"/>
|
||||||
</header>
|
</header>
|
||||||
<sheet>
|
<sheet>
|
||||||
<group string="功能刀具信息">
|
<group string="功能刀具信息">
|
||||||
@@ -890,32 +900,32 @@
|
|||||||
</group>
|
</group>
|
||||||
<group string="组装物料信息">
|
<group string="组装物料信息">
|
||||||
<group>
|
<group>
|
||||||
<field name="integral_code"/>
|
<field name="mrs_cutting_tool_integral_model_ids" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags" attrs="{'invisible':[('mrs_cutting_tool_integral_model_ids', '=', [])]}"/>
|
||||||
<field name="mrs_cutting_tool_integral_model_ids" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags"/>
|
<field name="integral_code" attrs="{'invisible':[('mrs_cutting_tool_integral_model_ids', '=', [])]}"/>
|
||||||
<field name="blade_code"/>
|
<field name="mrs_cutting_tool_blade_model_ids" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags" attrs="{'invisible':[('mrs_cutting_tool_blade_model_ids', '=', [])]}"/>
|
||||||
<field name="mrs_cutting_tool_blade_model_ids" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags"/>
|
<field name="blade_code" attrs="{'invisible':[('mrs_cutting_tool_blade_model_ids', '=', [])]}"/>
|
||||||
<field name="bar_code"/>
|
<field name="mrs_cutting_tool_cutterbar_model_ids" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags" attrs="{'invisible':[('mrs_cutting_tool_cutterbar_model_ids', '=', [])]}"/>
|
||||||
<field name="mrs_cutting_tool_cutterbar_model_ids" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags"/>
|
<field name="bar_code" attrs="{'invisible':[('mrs_cutting_tool_cutterbar_model_ids', '=', [])]}"/>
|
||||||
<field name="pad_code"/>
|
<field name="mrs_cutting_tool_cutterpad_model_ids" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags" attrs="{'invisible':[('mrs_cutting_tool_cutterpad_model_ids', '=', [])]}"/>
|
||||||
<field name="mrs_cutting_tool_cutterpad_model_ids" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags"/>
|
<field name="pad_code" attrs="{'invisible':[('mrs_cutting_tool_cutterpad_model_ids', '=', [])]}"/>
|
||||||
<field name="handle_code"/>
|
<field name="mrs_cutting_tool_cutterhandle_model_ids" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags" attrs="{'invisible':[('mrs_cutting_tool_cutterhandle_model_ids', '=', [])]}"/>
|
||||||
<field name="mrs_cutting_tool_cutterhandle_model_ids" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags"/>
|
<field name="handle_code" attrs="{'invisible':[('mrs_cutting_tool_cutterhandle_model_ids', '=', [])]}"/>
|
||||||
<field name="chuck_code"/>
|
<field name="mrs_cutting_tool_cutterhead_model_ids" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags" attrs="{'invisible':[('mrs_cutting_tool_cutterhead_model_ids', '=', [])]}"/>
|
||||||
<field name="mrs_cutting_tool_cutterhead_model_ids" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags"/>
|
<field name="chuck_code" attrs="{'invisible':[('mrs_cutting_tool_cutterhead_model_ids', '=', [])]}"/>
|
||||||
</group>
|
</group>
|
||||||
<group>
|
<group>
|
||||||
<field name="integral_name"/>
|
<field name="integral_name" attrs="{'invisible':[('mrs_cutting_tool_integral_model_ids', '=', [])]}"/>
|
||||||
<field name="sf_tool_brand_id_1"/>
|
<field name="sf_tool_brand_id_1" attrs="{'invisible':[('mrs_cutting_tool_integral_model_ids', '=', [])]}"/>
|
||||||
<field name="blade_name"/>
|
<field name="blade_name" attrs="{'invisible':[('mrs_cutting_tool_blade_model_ids', '=', [])]}"/>
|
||||||
<field name="sf_tool_brand_id_2"/>
|
<field name="sf_tool_brand_id_2" attrs="{'invisible':[('mrs_cutting_tool_blade_model_ids', '=', [])]}"/>
|
||||||
<field name="bar_name"/>
|
<field name="bar_name" attrs="{'invisible':[('mrs_cutting_tool_cutterbar_model_ids', '=', [])]}"/>
|
||||||
<field name="sf_tool_brand_id_3"/>
|
<field name="sf_tool_brand_id_3" attrs="{'invisible':[('mrs_cutting_tool_cutterbar_model_ids', '=', [])]}"/>
|
||||||
<field name="pad_name"/>
|
<field name="pad_name" attrs="{'invisible':[('mrs_cutting_tool_cutterpad_model_ids', '=', [])]}"/>
|
||||||
<field name="sf_tool_brand_id_4"/>
|
<field name="sf_tool_brand_id_4" attrs="{'invisible':[('mrs_cutting_tool_cutterpad_model_ids', '=', [])]}"/>
|
||||||
<field name="handle_name"/>
|
<field name="handle_name" attrs="{'invisible':[('mrs_cutting_tool_cutterhandle_model_ids', '=', [])]}"/>
|
||||||
<field name="sf_tool_brand_id_5"/>
|
<field name="sf_tool_brand_id_5" attrs="{'invisible':[('mrs_cutting_tool_cutterhandle_model_ids', '=', [])]}"/>
|
||||||
<field name="chuck_name"/>
|
<field name="chuck_name" attrs="{'invisible':[('mrs_cutting_tool_cutterhead_model_ids', '=', [])]}"/>
|
||||||
<field name="sf_tool_brand_id_6"/>
|
<field name="sf_tool_brand_id_6" attrs="{'invisible':[('mrs_cutting_tool_cutterhead_model_ids', '=', [])]}"/>
|
||||||
</group>
|
</group>
|
||||||
</group>
|
</group>
|
||||||
<group string="组装参数信息">
|
<group string="组装参数信息">
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from odoo import fields, models
|
from odoo import fields, models, api
|
||||||
|
|
||||||
|
|
||||||
class ToolChangeRequirementInformation(models.TransientModel):
|
class ToolChangeRequirementInformation(models.TransientModel):
|
||||||
@@ -7,13 +7,15 @@ class ToolChangeRequirementInformation(models.TransientModel):
|
|||||||
|
|
||||||
# tool_change_to_apply_id = fields.Many2one('sf.machine.table.tool.changing.apply', string='机床换刀申请')
|
# tool_change_to_apply_id = fields.Many2one('sf.machine.table.tool.changing.apply', string='机床换刀申请')
|
||||||
|
|
||||||
name = fields.Many2one('sf.machine_tool', string='CNC机床', readonly=True)
|
name = fields.Many2one('maintenance.equipment', string='CNC机床', readonly=True)
|
||||||
machine_tool_code = fields.Char(string='机台号', readonly=True)
|
machine_tool_code = fields.Char(string='机台号', readonly=True)
|
||||||
cutter_spacing_code = fields.Char(string='刀位号', readonly=True)
|
cutter_spacing_code = fields.Char(string='刀位号', readonly=True)
|
||||||
|
functional_tool_name_id = fields.Many2one('sf.functional.cutting.tool', string='功能刀具名称', readonly=True)
|
||||||
|
functional_tool_type_id = fields.Many2one('sf.functional.cutting.tool.model', string='功能刀具类型', readonly=True)
|
||||||
|
|
||||||
replacement_tool_code = fields.Char(string='待换刀具编码')
|
replacement_tool_code = fields.Char(string='待换功能刀具编码', readonly=True)
|
||||||
replacement_tool_name_id = fields.Many2one('sf.functional.cutting.tool', string='待换刀具名称')
|
replacement_tool_name_id = fields.Many2one('sf.functional.cutting.tool', string='待换功能刀具名称')
|
||||||
replacement_tool_type_id = fields.Many2one('sf.functional.cutting.tool.model', string='待换刀具类型')
|
replacement_tool_type_id = fields.Many2one('sf.functional.cutting.tool.model', string='待换功能刀具类型', readonly=True)
|
||||||
replacement_tool_coarse_middle_thin = fields.Selection([("1", "粗"), ('2', '中'), ('3', '精')],
|
replacement_tool_coarse_middle_thin = fields.Selection([("1", "粗"), ('2', '中'), ('3', '精')],
|
||||||
string='粗/中/精')
|
string='粗/中/精')
|
||||||
new_former = fields.Selection([('0', '新'), ('1', '旧')], string='新/旧')
|
new_former = fields.Selection([('0', '新'), ('1', '旧')], string='新/旧')
|
||||||
@@ -22,6 +24,13 @@ class ToolChangeRequirementInformation(models.TransientModel):
|
|||||||
reason_for_applying = fields.Char(string='申请原因')
|
reason_for_applying = fields.Char(string='申请原因')
|
||||||
remark = fields.Char(string='备注说明')
|
remark = fields.Char(string='备注说明')
|
||||||
|
|
||||||
|
@api.onchange('replacement_tool_name_id')
|
||||||
|
def _onchange_replacement_tool_name_id(self):
|
||||||
|
for record in self:
|
||||||
|
if record:
|
||||||
|
record.replacement_tool_code = record.replacement_tool_name_id.code
|
||||||
|
record.replacement_tool_type_id = record.replacement_tool_name_id.mrs_cutting_tool_type_id.id
|
||||||
|
|
||||||
def tool_changing_apply(self):
|
def tool_changing_apply(self):
|
||||||
"""
|
"""
|
||||||
确认换刀申请(按键)
|
确认换刀申请(按键)
|
||||||
@@ -105,9 +114,9 @@ class FunctionalToolAssemblyOrder(models.TransientModel):
|
|||||||
_description = '功能刀具组装单'
|
_description = '功能刀具组装单'
|
||||||
|
|
||||||
# 功能刀具申请信息
|
# 功能刀具申请信息
|
||||||
machine_tool_name_id = fields.Many2one('sf.machine_tool', string='机床名称', readonly=True)
|
machine_tool_name_id = fields.Many2one('maintenance.equipment', string='机床名称', readonly=True)
|
||||||
code = fields.Char(string='功能刀具编码', readonly=True)
|
|
||||||
cutter_spacing_code = fields.Char(string='刀位号', readonly=True)
|
cutter_spacing_code = fields.Char(string='刀位号', readonly=True)
|
||||||
|
code = fields.Char(string='功能刀具编码', readonly=True)
|
||||||
functional_tool_name_id = fields.Many2one('sf.functional.cutting.tool', string='功能刀具名称', readonly=True)
|
functional_tool_name_id = fields.Many2one('sf.functional.cutting.tool', string='功能刀具名称', readonly=True)
|
||||||
functional_tool_type_id = fields.Many2one('sf.functional.cutting.tool.model', string='功能刀具类型', readonly=True)
|
functional_tool_type_id = fields.Many2one('sf.functional.cutting.tool.model', string='功能刀具类型', readonly=True)
|
||||||
functional_tool_length = fields.Char(string='功能刀具伸出长', readonly=True)
|
functional_tool_length = fields.Char(string='功能刀具伸出长', readonly=True)
|
||||||
@@ -115,7 +124,7 @@ class FunctionalToolAssemblyOrder(models.TransientModel):
|
|||||||
functional_tool_diameter = fields.Char(string='功能刀具直径', readonly=True)
|
functional_tool_diameter = fields.Char(string='功能刀具直径', readonly=True)
|
||||||
tool_included_angle = fields.Char(string='刀尖角(R角)', readonly=True)
|
tool_included_angle = fields.Char(string='刀尖角(R角)', readonly=True)
|
||||||
functional_tool_cutting_type = fields.Char(string='功能刀具切削类型', readonly=True)
|
functional_tool_cutting_type = fields.Char(string='功能刀具切削类型', readonly=True)
|
||||||
required_cutting_time = fields.Char(string='需要切割时间', readonly=True)
|
required_cutting_time = fields.Char(string='需切削时长', readonly=True)
|
||||||
whether_standard_tool = fields.Boolean(string='是否标准刀', readonly=True)
|
whether_standard_tool = fields.Boolean(string='是否标准刀', readonly=True)
|
||||||
|
|
||||||
# 功能刀具组装信息
|
# 功能刀具组装信息
|
||||||
@@ -123,45 +132,45 @@ class FunctionalToolAssemblyOrder(models.TransientModel):
|
|||||||
mrs_cutting_tool_integral_model_ids = fields.Many2many('sf.cutting.tool.model', 'sf_functional_tool_assembly_order_id',
|
mrs_cutting_tool_integral_model_ids = fields.Many2many('sf.cutting.tool.model', 'sf_functional_tool_assembly_order_id',
|
||||||
string='整体式刀具型号', readonly=False, domain=
|
string='整体式刀具型号', readonly=False, domain=
|
||||||
[('mrs_cutting_tool_material_name', '=', '整体式刀具')])
|
[('mrs_cutting_tool_material_name', '=', '整体式刀具')])
|
||||||
integral_code = fields.Char('整体式刀具序列号')
|
integral_code = fields.Char('整体式刀具序列号', readonly=True, compute='_onchange_mrs_cutting_tool_integral_model_ids')
|
||||||
integral_name = fields.Char('整体式刀具名称')
|
integral_name = fields.Char('整体式刀具名称', readonly=True)
|
||||||
sf_tool_brand_id_1 = fields.Many2one('sf.machine.brand', '整体式刀具品牌')
|
sf_tool_brand_id_1 = fields.Many2one('sf.machine.brand', '整体式刀具品牌', readonly=True)
|
||||||
# 刀片型号
|
# 刀片型号
|
||||||
mrs_cutting_tool_blade_model_ids = fields.Many2many('sf.cutting.tool.model', 'sf_functional_tool_assembly_order_id',
|
mrs_cutting_tool_blade_model_ids = fields.Many2many('sf.cutting.tool.model', 'sf_functional_tool_assembly_order_id',
|
||||||
string='刀片型号', readonly=False, domain=
|
string='刀片型号', readonly=False, domain=
|
||||||
[('mrs_cutting_tool_material_name', '=', '刀片')])
|
[('mrs_cutting_tool_material_name', '=', '刀片')])
|
||||||
blade_code = fields.Char('刀片序列号')
|
blade_code = fields.Char('刀片序列号', readonly=True, compute='_onchange_mrs_cutting_tool_blade_model_ids')
|
||||||
blade_name = fields.Char('刀片名称')
|
blade_name = fields.Char('刀片名称', readonly=True)
|
||||||
sf_tool_brand_id_2 = fields.Many2one('sf.machine.brand', '刀片品牌')
|
sf_tool_brand_id_2 = fields.Many2one('sf.machine.brand', '刀片品牌', readonly=True)
|
||||||
# 刀杆型号
|
# 刀杆型号
|
||||||
mrs_cutting_tool_cutterbar_model_ids = fields.Many2many('sf.cutting.tool.model', 'sf_functional_tool_assembly_order_id',
|
mrs_cutting_tool_cutterbar_model_ids = fields.Many2many('sf.cutting.tool.model', 'sf_functional_tool_assembly_order_id',
|
||||||
string='刀杆型号', readonly=False, domain=
|
string='刀杆型号', readonly=False, domain=
|
||||||
[('mrs_cutting_tool_material_name', '=', '刀杆')])
|
[('mrs_cutting_tool_material_name', '=', '刀杆')])
|
||||||
bar_code = fields.Char('刀杆序列号')
|
bar_code = fields.Char('刀杆序列号', readonly=True, compute='_onchange_mrs_cutting_tool_cutterbar_model_ids')
|
||||||
bar_name = fields.Char('刀杆名称')
|
bar_name = fields.Char('刀杆名称', readonly=True)
|
||||||
sf_tool_brand_id_3 = fields.Many2one('sf.machine.brand', '刀杆品牌')
|
sf_tool_brand_id_3 = fields.Many2one('sf.machine.brand', '刀杆品牌', readonly=True)
|
||||||
# 刀盘型号
|
# 刀盘型号
|
||||||
mrs_cutting_tool_cutterpad_model_ids = fields.Many2many('sf.cutting.tool.model', 'sf_functional_tool_assembly_order_id',
|
mrs_cutting_tool_cutterpad_model_ids = fields.Many2many('sf.cutting.tool.model', 'sf_functional_tool_assembly_order_id',
|
||||||
string='刀盘型号', readonly=False, domain=
|
string='刀盘型号', readonly=False, domain=
|
||||||
[('mrs_cutting_tool_material_name', '=', '刀盘')])
|
[('mrs_cutting_tool_material_name', '=', '刀盘')])
|
||||||
pad_code = fields.Char('刀盘序列号')
|
pad_code = fields.Char('刀盘序列号', readonly=True, compute='_onchange_mrs_cutting_tool_cutterpad_model_ids')
|
||||||
pad_name = fields.Char('刀盘名称')
|
pad_name = fields.Char('刀盘名称', readonly=True)
|
||||||
sf_tool_brand_id_4 = fields.Many2one('sf.machine.brand', '刀盘品牌')
|
sf_tool_brand_id_4 = fields.Many2one('sf.machine.brand', '刀盘品牌', readonly=True)
|
||||||
|
|
||||||
# 刀柄型号
|
# 刀柄型号
|
||||||
mrs_cutting_tool_cutterhandle_model_ids = fields.Many2many('sf.cutting.tool.model', 'sf_functional_tool_assembly_order_id',
|
mrs_cutting_tool_cutterhandle_model_ids = fields.Many2many('sf.cutting.tool.model', 'sf_functional_tool_assembly_order_id',
|
||||||
string='刀柄型号', readonly=False, domain=
|
string='刀柄型号', readonly=False, domain=
|
||||||
[('mrs_cutting_tool_material_name', '=', '刀柄')])
|
[('mrs_cutting_tool_material_name', '=', '刀柄')])
|
||||||
handle_code = fields.Char('刀柄序列号')
|
handle_code = fields.Char('刀柄序列号', readonly=True, compute='_onchange_mrs_cutting_tool_cutterhandle_model_ids')
|
||||||
handle_name = fields.Char('刀柄名称')
|
handle_name = fields.Char('刀柄名称', readonly=True)
|
||||||
sf_tool_brand_id_5 = fields.Many2one('sf.machine.brand', '刀柄品牌')
|
sf_tool_brand_id_5 = fields.Many2one('sf.machine.brand', '刀柄品牌', readonly=True)
|
||||||
# 夹头型号
|
# 夹头型号
|
||||||
mrs_cutting_tool_cutterhead_model_ids = fields.Many2many('sf.cutting.tool.model', 'sf_functional_tool_assembly_order_id',
|
mrs_cutting_tool_cutterhead_model_ids = fields.Many2many('sf.cutting.tool.model', 'sf_functional_tool_assembly_order_id',
|
||||||
string='夹头型号', readonly=False, domain=
|
string='夹头型号', readonly=False, domain=
|
||||||
[('mrs_cutting_tool_material_name', '=', '夹头')])
|
[('mrs_cutting_tool_material_name', '=', '夹头')])
|
||||||
chuck_code = fields.Char('夹头序列号')
|
chuck_code = fields.Char('夹头序列号', readonly=True, compute='_onchange_mrs_cutting_tool_cutterhead_model_ids')
|
||||||
chuck_name = fields.Char('夹头名称')
|
chuck_name = fields.Char('夹头名称', readonly=True)
|
||||||
sf_tool_brand_id_6 = fields.Many2one('sf.machine.brand', '夹头品牌')
|
sf_tool_brand_id_6 = fields.Many2one('sf.machine.brand', '夹头品牌', readonly=True)
|
||||||
|
|
||||||
coarse_middle_thin = fields.Selection([("1", "粗"), ('2', '中'), ('3', '精')], string='粗/中/精')
|
coarse_middle_thin = fields.Selection([("1", "粗"), ('2', '中'), ('3', '精')], string='粗/中/精')
|
||||||
tool_loading_length = fields.Char(string='装刀长')
|
tool_loading_length = fields.Char(string='装刀长')
|
||||||
@@ -171,6 +180,66 @@ class FunctionalToolAssemblyOrder(models.TransientModel):
|
|||||||
cut_length = fields.Char(string='已切削长度')
|
cut_length = fields.Char(string='已切削长度')
|
||||||
cut_number = fields.Char(string='已切削次数')
|
cut_number = fields.Char(string='已切削次数')
|
||||||
|
|
||||||
|
@api.depends('mrs_cutting_tool_integral_model_ids')
|
||||||
|
def _compute_mrs_cutting_tool_integral_model_ids(self):
|
||||||
|
if not self.mrs_cutting_tool_integral_model_ids:
|
||||||
|
self.integral_code = None
|
||||||
|
for val in self.mrs_cutting_tool_integral_model_ids:
|
||||||
|
if val:
|
||||||
|
self.integral_code = val.code
|
||||||
|
self.integral_name = val.name
|
||||||
|
self.sf_tool_brand_id_1 = val.mrs_machine_brand_id.id
|
||||||
|
|
||||||
|
@api.depends('mrs_cutting_tool_blade_model_ids')
|
||||||
|
def _compute_mrs_cutting_tool_blade_model_ids(self):
|
||||||
|
if not self.mrs_cutting_tool_blade_model_ids:
|
||||||
|
self.blade_code = None
|
||||||
|
for val in self.mrs_cutting_tool_blade_model_ids:
|
||||||
|
if val:
|
||||||
|
self.blade_code = val.code
|
||||||
|
self.blade_name = val.name
|
||||||
|
self.sf_tool_brand_id_2 = val.mrs_machine_brand_id.id
|
||||||
|
|
||||||
|
@api.depends('mrs_cutting_tool_cutterbar_model_ids')
|
||||||
|
def _compute_mrs_cutting_tool_cutterbar_model_ids(self):
|
||||||
|
if not self.mrs_cutting_tool_cutterbar_model_ids:
|
||||||
|
self.bar_code = None
|
||||||
|
for val in self.mrs_cutting_tool_cutterbar_model_ids:
|
||||||
|
if val:
|
||||||
|
self.bar_code = val.code
|
||||||
|
self.bar_name = val.name
|
||||||
|
self.sf_tool_brand_id_3 = val.mrs_machine_brand_id.id
|
||||||
|
|
||||||
|
@api.depends('mrs_cutting_tool_cutterpad_model_ids')
|
||||||
|
def _compute_mrs_cutting_tool_cutterbar_model_ids(self):
|
||||||
|
if not self.mrs_cutting_tool_cutterpad_model_ids:
|
||||||
|
self.pad_code = None
|
||||||
|
for val in self.mrs_cutting_tool_cutterpad_model_ids:
|
||||||
|
if val:
|
||||||
|
self.pad_code = val.code
|
||||||
|
self.pad_name = val.name
|
||||||
|
self.sf_tool_brand_id_4 = val.mrs_machine_brand_id.id
|
||||||
|
|
||||||
|
@api.depends('mrs_cutting_tool_cutterhandle_model_ids')
|
||||||
|
def _compute_mrs_cutting_tool_cutterhandle_model_ids(self):
|
||||||
|
if not self.mrs_cutting_tool_cutterhandle_model_ids:
|
||||||
|
self.handle_code = None
|
||||||
|
for val in self.mrs_cutting_tool_cutterhandle_model_ids:
|
||||||
|
if val:
|
||||||
|
self.handle_code = val.code
|
||||||
|
self.handle_name = val.name
|
||||||
|
self.sf_tool_brand_id_5 = val.mrs_machine_brand_id.id
|
||||||
|
|
||||||
|
@api.depends('mrs_cutting_tool_cutterhead_model_ids')
|
||||||
|
def _compute_mrs_cutting_tool_cutterhandle_model_ids(self):
|
||||||
|
if not self.mrs_cutting_tool_cutterhead_model_ids:
|
||||||
|
self.chuck_code = None
|
||||||
|
for val in self.mrs_cutting_tool_cutterhead_model_ids:
|
||||||
|
if val:
|
||||||
|
self.chuck_code = val.code
|
||||||
|
self.chuck_name = val.name
|
||||||
|
self.sf_tool_brand_id_6 = val.mrs_machine_brand_id.id
|
||||||
|
|
||||||
def functional_tool_assembly(self):
|
def functional_tool_assembly(self):
|
||||||
"""
|
"""
|
||||||
功能刀具组装
|
功能刀具组装
|
||||||
|
|||||||
@@ -10,15 +10,17 @@
|
|||||||
<group string="机床信息" col="3">
|
<group string="机床信息" col="3">
|
||||||
<group>
|
<group>
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
|
<field name="functional_tool_name_id"/>
|
||||||
</group>
|
</group>
|
||||||
<group>
|
<group>
|
||||||
<field name="machine_tool_code"/>
|
<field name="machine_tool_code"/>
|
||||||
|
<field name="functional_tool_type_id"/>
|
||||||
</group>
|
</group>
|
||||||
<group>
|
<group>
|
||||||
<field name="cutter_spacing_code"/>
|
<field name="cutter_spacing_code"/>
|
||||||
</group>
|
</group>
|
||||||
</group>
|
</group>
|
||||||
<group string="刀具信息">
|
<group string="功能刀具信息">
|
||||||
<group>
|
<group>
|
||||||
<field name="replacement_tool_name_id"/>
|
<field name="replacement_tool_name_id"/>
|
||||||
<field name="replacement_tool_code"/>
|
<field name="replacement_tool_code"/>
|
||||||
@@ -68,13 +70,13 @@
|
|||||||
<field name="machine_tool_code"/>
|
<field name="machine_tool_code"/>
|
||||||
</group>
|
</group>
|
||||||
</group>
|
</group>
|
||||||
<group string="刀具信息">
|
<group string="功能刀具信息">
|
||||||
<group>
|
<group>
|
||||||
<field name="functional_tool_name_id" string="刀具名称"/>
|
<field name="functional_tool_name_id" string="功能刀具名称"/>
|
||||||
<field name="functional_tool_type_id" string="刀具类型"/>
|
<field name="functional_tool_type_id" string="功能刀具类型"/>
|
||||||
</group>
|
</group>
|
||||||
<group>
|
<group>
|
||||||
<field name="functional_tool_code" string="刀具编码"/>
|
<field name="functional_tool_code" string="功能刀具编码"/>
|
||||||
</group>
|
</group>
|
||||||
</group>
|
</group>
|
||||||
<group string="刀具转移">
|
<group string="刀具转移">
|
||||||
@@ -188,29 +190,34 @@
|
|||||||
<!-- </group>-->
|
<!-- </group>-->
|
||||||
<group string="组装物料信息">
|
<group string="组装物料信息">
|
||||||
<group>
|
<group>
|
||||||
<field name="integral_code"/>
|
<field name="mrs_cutting_tool_integral_model_ids" string="整体式刀具型号"
|
||||||
<field name="mrs_cutting_tool_integral_model_ids" options="{'no_create': True, 'no_quick_create': True}"
|
options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags" attrs="{'invisible': [('mrs_cutting_tool_blade_model_ids', '!=', [])]}"/>
|
||||||
widget="many2many_tags" placeholder="选择整体式刀具型号"/>
|
<field name="integral_code" attrs="{'invisible': [('mrs_cutting_tool_blade_model_ids', '!=', [])]}"/>
|
||||||
<field name="blade_code"/>
|
<field name="mrs_cutting_tool_blade_model_ids" string="刀片型号"
|
||||||
<field name="mrs_cutting_tool_blade_model_ids" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags"/>
|
options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags" attrs="{'invisible': [('mrs_cutting_tool_integral_model_ids', '!=', [])]}"/>
|
||||||
<field name="bar_code"/>
|
<field name="blade_code" attrs="{'invisible': [('mrs_cutting_tool_integral_model_ids', '!=', [])]}"/>
|
||||||
<field name="mrs_cutting_tool_cutterbar_model_ids" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags"/>
|
<field name="mrs_cutting_tool_cutterbar_model_ids" string="刀杆型号"
|
||||||
<field name="pad_code"/>
|
options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags"
|
||||||
<field name="mrs_cutting_tool_cutterpad_model_ids" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags"/>
|
attrs="{'invisible': ['|',('mrs_cutting_tool_integral_model_ids', '!=', []),('mrs_cutting_tool_cutterpad_model_ids', '!=', [])]}"/>
|
||||||
|
<field name="bar_code" attrs="{'invisible': ['|',('mrs_cutting_tool_integral_model_ids', '!=', []),('mrs_cutting_tool_cutterpad_model_ids', '!=', [])]}"/>
|
||||||
|
<field name="mrs_cutting_tool_cutterpad_model_ids" string="刀盘型号"
|
||||||
|
options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags"
|
||||||
|
attrs="{'invisible': ['|',('mrs_cutting_tool_integral_model_ids', '!=', []),('mrs_cutting_tool_cutterbar_model_ids', '!=', [])]}"/>
|
||||||
|
<field name="pad_code" attrs="{'invisible': ['|',('mrs_cutting_tool_integral_model_ids', '!=', []),('mrs_cutting_tool_cutterbar_model_ids', '!=', [])]}"/>
|
||||||
|
<field name="mrs_cutting_tool_cutterhandle_model_ids" string="刀柄型号" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags"/>
|
||||||
<field name="handle_code"/>
|
<field name="handle_code"/>
|
||||||
<field name="mrs_cutting_tool_cutterhandle_model_ids" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags"/>
|
<field name="mrs_cutting_tool_cutterhead_model_ids" string="夹头型号" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags"/>
|
||||||
<field name="chuck_code"/>
|
<field name="chuck_code"/>
|
||||||
<field name="mrs_cutting_tool_cutterhead_model_ids" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags"/>
|
|
||||||
</group>
|
</group>
|
||||||
<group>
|
<group>
|
||||||
<field name="integral_name"/>
|
<field name="integral_name" attrs="{'invisible': [('mrs_cutting_tool_blade_model_ids', '!=', [])]}"/>
|
||||||
<field name="sf_tool_brand_id_1"/>
|
<field name="sf_tool_brand_id_1" attrs="{'invisible': [('mrs_cutting_tool_blade_model_ids', '!=', [])]}"/>
|
||||||
<field name="blade_name"/>
|
<field name="blade_name" attrs="{'invisible': [('mrs_cutting_tool_integral_model_ids', '!=', [])]}"/>
|
||||||
<field name="sf_tool_brand_id_2"/>
|
<field name="sf_tool_brand_id_2" attrs="{'invisible': [('mrs_cutting_tool_integral_model_ids', '!=', [])]}"/>
|
||||||
<field name="bar_name"/>
|
<field name="bar_name" attrs="{'invisible': ['|',('mrs_cutting_tool_integral_model_ids', '!=', []),('mrs_cutting_tool_cutterpad_model_ids', '!=', [])]}"/>
|
||||||
<field name="sf_tool_brand_id_3"/>
|
<field name="sf_tool_brand_id_3" attrs="{'invisible': ['|',('mrs_cutting_tool_integral_model_ids', '!=', []),('mrs_cutting_tool_cutterpad_model_ids', '!=', [])]}"/>
|
||||||
<field name="pad_name"/>
|
<field name="pad_name" attrs="{'invisible': ['|',('mrs_cutting_tool_integral_model_ids', '!=', []),('mrs_cutting_tool_cutterbar_model_ids', '!=', [])]}"/>
|
||||||
<field name="sf_tool_brand_id_4"/>
|
<field name="sf_tool_brand_id_4" attrs="{'invisible': ['|',('mrs_cutting_tool_integral_model_ids', '!=', []),('mrs_cutting_tool_cutterbar_model_ids', '!=', [])]}"/>
|
||||||
<field name="handle_name"/>
|
<field name="handle_name"/>
|
||||||
<field name="sf_tool_brand_id_5"/>
|
<field name="sf_tool_brand_id_5"/>
|
||||||
<field name="chuck_name"/>
|
<field name="chuck_name"/>
|
||||||
|
|||||||
Reference in New Issue
Block a user