Accept Merge Request #403: (feature/功能刀具优化 -> develop)

Merge Request: 计划管理模块和刀具管理模块优化

Created By: @禹翔辉
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/403?initial=true
This commit is contained in:
禹翔辉
2023-09-25 13:44:19 +08:00
committed by Coding
7 changed files with 146 additions and 147 deletions

View File

@@ -8,48 +8,42 @@ class ProcedureEquipmentResourceSetting(models.Model):
name = fields.Many2one('sf.production.line', string='生产线', required=True)
work_center_name_id = fields.Many2one('mrp.workcenter', string='工作中心名称')
equipment_code = fields.Char(string='机台号', readonly=True, compute='_onchange_equipment_name_id')
equipment_name_id = fields.Many2one('maintenance.equipment',
string='设备名称',
readonly=True,
compute='_onchange_work_center_name_id')
brand = fields.Char(string='品牌', readonly=True, compute='_onchange_equipment_name_id')
model = fields.Char(string='型号', readonly=True, compute='_onchange_equipment_name_id')
equipment_name_id = fields.Many2one('maintenance.equipment', string='设备名称', readonly=True, search=True,
compute='_compute_equipment_name_id')
equipment_code = fields.Char(string='机台号', readonly=True, related='equipment_name_id.code')
brand_id = fields.Many2one('sf.machine.brand', string='品牌', readonly=True, related='equipment_name_id.brand_id')
type_id = fields.Many2one('sf.machine_tool.type', string='型号', readonly=True, related='equipment_name_id.type_id')
status = fields.Selection(string='设备状态', readonly=True, related='equipment_name_id.state')
# todo 传入工序数据
working_procedure = fields.Char(string='工序', readonly=True)
production_capacity = fields.Float(string='产能', required=True, digits=(4, 1))
working_calendar_id = fields.Many2one('sf.work.log.setting', string='工作日历')
working_shift_id = fields.Many2many('sf.working.shift', string='班次', readonly=True, compute='_onchange_working_calendar_id')
working_shift_id = fields.Many2many('sf.working.shift', string='班次', readonly=True,
compute='_compute_working_shift_id')
create_time = fields.Datetime(string='新增时间', default=lambda self: fields.Datetime.now(), readonly=True)
status = fields.Selection([('正常', '正常'), ('1', '故障停机'), ('2', '计划停机')],
string='设备状态',
readonly=True,
compute='_onchange_equipment_name_id')
participate_in_scheduling = fields.Boolean(string='参与排程', default=True)
@api.onchange('production_capacity')
def _onchange_production_capacity(self):
@api.depends('work_center_name_id')
def _compute_equipment_name_id(self):
for record in self:
if record.work_center_name_id:
record.equipment_name_id = record.work_center_name_id.equipment_id
else:
record.equipment_name_id = None
@api.constrains('production_capacity')
def _check_production_capacity(self):
for record in self:
if record.production_capacity < 0:
raise UserError("输入的产能值不正确,请重新输入")
@api.depends('work_center_name_id')
def _onchange_work_center_name_id(self):
for record in self:
record.equipment_name_id = record.work_center_name_id.equipment_id
@api.onchange('equipment_name_id')
def _onchange_equipment_name_id(self):
for record in self:
record.equipment_code = record.equipment_name_id.code
record.brand = record.equipment_name_id.brand_id.name
record.model = record.equipment_name_id.type_id.name
record.status = record.equipment_name_id.state
raise UserError("产能不能为负")
@api.depends('working_calendar_id')
def _onchange_working_calendar_id(self):
def _compute_working_shift_id(self):
for record in self:
record.working_shift_id = record.working_calendar_id.working_shift_ids
if record.working_calendar_id:
record.working_shift_id = record.working_calendar_id.working_shift_ids
else:
record.working_shift_id = None

View File

@@ -256,7 +256,7 @@ class WorkScheduleCalendar(models.Model):
name = fields.Selection([('休息日', '休息日'), ('计划停机', '计划停机'), ('工作日', '工作日')], '日历事件名称')
date_time = fields.Date('休息时间')
name_id = fields.Many2one('sf.work.log.setting', '工作日历名称')
calendar_code = fields.Char('工作日历编码', readonly=True, compute='_compute_name_id')
calendar_code = fields.Char('工作日历编码', readonly=True, compute='_compute_calendar_code')
day_off_id = fields.Many2many('sf.day.off', string='休息日')
scheduled_outage = fields.Char('计划停机')
@@ -266,7 +266,7 @@ class WorkScheduleCalendar(models.Model):
annual_planned_downtime = fields.Char('年计划停机时长', readonly=True)
@api.depends('name_id')
def _compute_name_id(self):
def _compute_calendar_code(self):
for record in self:
if record:
record.calendar_code = record.name_id.code

View File

@@ -47,7 +47,7 @@
<group>
<group>
<field name="code"/>
<field name="day_off_ids" widget="many2many_tags"
<field name="day_off_ids" widget="many2many_tags" placeholder="请选择"
options="{'no_create': True, 'no_quick_create': True}"/>
<field name="status"/>
</group>
@@ -101,8 +101,8 @@
<tree string="班次" editable="bottom" >
<field name="code"/>
<field name="name"/>
<field name="start_time"/>
<field name="end_time"/>
<field name="start_time" placeholder="请选择"/>
<field name="end_time" placeholder="请选择"/>
<field name="remark"/>
</tree>
</field>
@@ -211,8 +211,8 @@
<field name="work_center_name_id"/>
<field name="equipment_name_id"/>
<field name="equipment_code"/>
<field name="brand" optional="hide"/>
<field name="model" optional="hide"/>
<field name="brand_id" optional="hide"/>
<field name="type_id" optional="hide"/>
<field name="working_procedure"/>
<field name="production_capacity" optional="hide"/>
<field name="working_calendar_id" optional="hide"/>
@@ -233,14 +233,14 @@
<sheet>
<div>
<h1>
<field name="name"/>
<field name="name" placeholder="请选择"/>
</h1>
</div>
<group>
<group>
<field name="work_center_name_id"/>
<field name="work_center_name_id" placeholder="请选择"/>
<field name="production_capacity"/>
<field name="working_calendar_id"/>
<field name="working_calendar_id" placeholder="请选择"/>
<field name="create_time"/>
</group>
<group>
@@ -254,12 +254,12 @@
<group>`
<group>
<field name="equipment_name_id"/>
<field name="brand"/>
<field name="brand_id"/>
<field name="status"/>
</group>
<group>
<field name="equipment_code" string="机台号"/>
<field name="model"/>
<field name="type_id"/>
</group>
</group>
</page>
@@ -277,8 +277,8 @@
<field name="work_center_name_id"/>
<field name="equipment_code"/>
<field name="equipment_name_id"/>
<field name="brand"/>
<field name="model"/>
<field name="brand_id"/>
<field name="type_id"/>
<field name="working_procedure"/>
<field name="production_capacity"/>
<field name="working_calendar_id"/>

View File

@@ -24,28 +24,28 @@ class FunctionalCuttingToolEntity(models.Model):
return categories.browse(mrs_cutting_tool_type_ids)
# 整体式刀具型号
cutting_tool_integral_model_id = fields.Many2one('sf.tool.material.search', string='整体式刀具型号', readonly=True,
domain=[('cutting_tool_type', '=', '整体式刀具')])
cutting_tool_integral_model_id = fields.Many2one('product.product', string='整体式刀具型号', readonly=True,
domain=[('cutting_tool_material_id', '=', '整体式刀具')])
# 刀片型号
cutting_tool_blade_model_id = fields.Many2one('sf.tool.material.search', string='刀片型号', readonly=True,
domain=[('cutting_tool_type', '=', '刀片')])
cutting_tool_blade_model_id = fields.Many2one('product.product', string='刀片型号', readonly=True,
domain=[('cutting_tool_material_id', '=', '刀片')])
# 刀杆型号
cutting_tool_cutterbar_model_id = fields.Many2one('sf.tool.material.search', string='刀杆型号', readonly=True,
domain=[('cutting_tool_type', '=', '刀杆')])
cutting_tool_cutterbar_model_id = fields.Many2one('product.product', string='刀杆型号', readonly=True,
domain=[('cutting_tool_material_id', '=', '刀杆')])
# 刀盘型号
cutting_tool_cutterpad_model_id = fields.Many2one('sf.tool.material.search', string='刀盘型号', readonly=True,
domain=[('cutting_tool_type', '=', '刀盘')])
cutting_tool_cutterpad_model_id = fields.Many2one('product.product', string='刀盘型号', readonly=True,
domain=[('cutting_tool_material_id', '=', '刀盘')])
# 刀柄型号
cutting_tool_cutterhandle_model_id = fields.Many2one('sf.tool.material.search', string='刀柄型号', readonly=True,
domain=[('cutting_tool_type', '=', '刀柄')])
cutting_tool_cutterhandle_model_id = fields.Many2one('product.product', string='刀柄型号', readonly=True,
domain=[('cutting_tool_material_id', '=', '刀柄')])
# 夹头型号
cutting_tool_cutterhead_model_id = fields.Many2one('sf.tool.material.search', string='夹头型号', readonly=True,
domain=[('cutting_tool_type', '=', '夹头')])
cutting_tool_cutterhead_model_id = fields.Many2one('product.product', string='夹头型号', readonly=True,
domain=[('cutting_tool_material_id', '=', '夹头')])
diameter = fields.Float('直径(mm)')
tool_grade = fields.Selection([('1', 'P1'), ('2', 'P2'), ('3', 'P3'), ('4', 'P4'), ('5', 'P5'), ('6', 'P6')],
@@ -103,28 +103,28 @@ class FunctionalCuttingToolEntityCache(models.Model):
mrs_cutting_tool_model_id = fields.Many2one('sf.cutting.tool.model', string='刀具型号')
# 整体式刀具型号
cutting_tool_integral_model_id = fields.Many2one('sf.tool.material.search', string='整体式刀具型号', readonly=True,
domain=[('cutting_tool_type', '=', '整体式刀具')])
cutting_tool_integral_model_id = fields.Many2one('product.product', string='整体式刀具型号', readonly=True,
domain=[('cutting_tool_material_id', '=', '整体式刀具')])
# 刀片型号
cutting_tool_blade_model_id = fields.Many2one('sf.tool.material.search', string='刀片型号', readonly=True,
domain=[('cutting_tool_type', '=', '刀片')])
cutting_tool_blade_model_id = fields.Many2one('product.product', string='刀片型号', readonly=True,
domain=[('cutting_tool_material_id', '=', '刀片')])
# 刀杆型号
cutting_tool_cutterbar_model_id = fields.Many2one('sf.tool.material.search', string='刀杆型号', readonly=True,
domain=[('cutting_tool_type', '=', '刀杆')])
cutting_tool_cutterbar_model_id = fields.Many2one('product.product', string='刀杆型号', readonly=True,
domain=[('cutting_tool_material_id', '=', '刀杆')])
# 刀盘型号
cutting_tool_cutterpad_model_id = fields.Many2one('sf.tool.material.search', string='刀盘型号', readonly=True,
domain=[('cutting_tool_type', '=', '刀盘')])
cutting_tool_cutterpad_model_id = fields.Many2one('product.product', string='刀盘型号', readonly=True,
domain=[('cutting_tool_material_id', '=', '刀盘')])
# 刀柄型号
cutting_tool_cutterhandle_model_id = fields.Many2one('sf.tool.material.search', string='刀柄型号', readonly=True,
domain=[('cutting_tool_type', '=', '刀柄')])
cutting_tool_cutterhandle_model_id = fields.Many2one('product.product', string='刀柄型号', readonly=True,
domain=[('cutting_tool_material_id', '=', '刀柄')])
# 夹头型号
cutting_tool_cutterhead_model_id = fields.Many2one('sf.tool.material.search', string='夹头型号', readonly=True,
domain=[('cutting_tool_type', '=', '夹头')])
cutting_tool_cutterhead_model_id = fields.Many2one('product.product', string='夹头型号', readonly=True,
domain=[('cutting_tool_material_id', '=', '夹头')])
diameter = fields.Float('直径(mm)')
tool_grade = fields.Selection([('1', 'P1'), ('2', 'P2'), ('3', 'P3'), ('4', 'P4'), ('5', 'P5'), ('6', 'P6')],
@@ -153,33 +153,33 @@ class FunctionalToolWarning(models.Model):
related='functional_cutting_tool_id.mrs_cutting_tool_type_id')
# 整体式刀具型号
cutting_tool_integral_model_id = fields.Many2one('sf.tool.material.search', string='整体式刀具型号', readonly=True,
domain=[('cutting_tool_type', '=', '整体式刀具')],
cutting_tool_integral_model_id = fields.Many2one('product.product', string='整体式刀具型号', readonly=True,
domain=[('cutting_tool_material_id', '=', '整体式刀具')],
related='functional_cutting_tool_id.cutting_tool_integral_model_id')
# 刀片型号
cutting_tool_blade_model_id = fields.Many2one('sf.tool.material.search', string='刀片型号', readonly=True,
domain=[('cutting_tool_type', '=', '刀片')],
cutting_tool_blade_model_id = fields.Many2one('product.product', string='刀片型号', readonly=True,
domain=[('cutting_tool_material_id', '=', '刀片')],
related='functional_cutting_tool_id.cutting_tool_blade_model_id')
# 刀杆型号
cutting_tool_cutterbar_model_id = fields.Many2one('sf.tool.material.search', string='刀杆型号', readonly=True,
domain=[('cutting_tool_type', '=', '刀杆')],
cutting_tool_cutterbar_model_id = fields.Many2one('product.product', string='刀杆型号', readonly=True,
domain=[('cutting_tool_material_id', '=', '刀杆')],
related='functional_cutting_tool_id.cutting_tool_cutterbar_model_id')
# 刀盘型号
cutting_tool_cutterpad_model_id = fields.Many2one('sf.tool.material.search', string='刀盘型号', readonly=True,
domain=[('cutting_tool_type', '=', '刀盘')],
cutting_tool_cutterpad_model_id = fields.Many2one('product.product', string='刀盘型号', readonly=True,
domain=[('cutting_tool_material_id', '=', '刀盘')],
related='functional_cutting_tool_id.cutting_tool_cutterpad_model_id')
# 刀柄型号
cutting_tool_cutterhandle_model_id = fields.Many2one('sf.tool.material.search', string='刀柄型号', readonly=True,
domain=[('cutting_tool_type', '=', '刀柄')],
cutting_tool_cutterhandle_model_id = fields.Many2one('product.product', string='刀柄型号', readonly=True,
domain=[('cutting_tool_material_id', '=', '刀柄')],
related='functional_cutting_tool_id.cutting_tool_cutterhandle_model_id')
# 夹头型号
cutting_tool_cutterhead_model_id = fields.Many2one('sf.tool.material.search', string='夹头型号', readonly=True,
domain=[('cutting_tool_type', '=', '夹头')],
cutting_tool_cutterhead_model_id = fields.Many2one('product.product', string='夹头型号', readonly=True,
domain=[('cutting_tool_material_id', '=', '夹头')],
related='functional_cutting_tool_id.cutting_tool_cutterhead_model_id')
diameter = fields.Float('直径(mm)', readonly=True, related='functional_cutting_tool_id.diameter')
@@ -267,33 +267,33 @@ class RealTimeDistributionOfFunctionalTools(models.Model):
# related='functional_cutting_tool_id.mrs_cutting_tool_type_id')
# 整体式刀具型号
cutting_tool_integral_model_id = fields.Many2one('sf.tool.material.search', string='整体式刀具型号', readonly=True,
domain=[('cutting_tool_type', '=', '整体式刀具')],
cutting_tool_integral_model_id = fields.Many2one('product.product', string='整体式刀具型号', readonly=True,
domain=[('cutting_tool_material_id', '=', '整体式刀具')],
related='functional_cutting_tool_id.cutting_tool_integral_model_id')
# 刀片型号
cutting_tool_blade_model_id = fields.Many2one('sf.tool.material.search', string='刀片型号', readonly=True,
domain=[('cutting_tool_type', '=', '刀片')],
cutting_tool_blade_model_id = fields.Many2one('product.product', string='刀片型号', readonly=True,
domain=[('cutting_tool_material_id', '=', '刀片')],
related='functional_cutting_tool_id.cutting_tool_blade_model_id')
# 刀杆型号
cutting_tool_cutterbar_model_id = fields.Many2one('sf.tool.material.search', string='刀杆型号', readonly=True,
domain=[('cutting_tool_type', '=', '刀杆')],
cutting_tool_cutterbar_model_id = fields.Many2one('product.product', string='刀杆型号', readonly=True,
domain=[('cutting_tool_material_id', '=', '刀杆')],
related='functional_cutting_tool_id.cutting_tool_cutterbar_model_id')
# 刀盘型号
cutting_tool_cutterpad_model_id = fields.Many2one('sf.tool.material.search', string='刀盘型号', readonly=True,
domain=[('cutting_tool_type', '=', '刀盘')],
cutting_tool_cutterpad_model_id = fields.Many2one('product.product', string='刀盘型号', readonly=True,
domain=[('cutting_tool_material_id', '=', '刀盘')],
related='functional_cutting_tool_id.cutting_tool_cutterpad_model_id')
# 刀柄型号
cutting_tool_cutterhandle_model_id = fields.Many2one('sf.tool.material.search', string='刀柄型号', readonly=True,
domain=[('cutting_tool_type', '=', '刀柄')],
cutting_tool_cutterhandle_model_id = fields.Many2one('product.product', string='刀柄型号', readonly=True,
domain=[('cutting_tool_material_id', '=', '刀柄')],
related='functional_cutting_tool_id.cutting_tool_cutterhandle_model_id')
# 夹头型号
cutting_tool_cutterhead_model_id = fields.Many2one('sf.tool.material.search', string='夹头型号', readonly=True,
domain=[('cutting_tool_type', '=', '夹头')],
cutting_tool_cutterhead_model_id = fields.Many2one('product.product', string='夹头型号', readonly=True,
domain=[('cutting_tool_material_id', '=', '夹头')],
related='functional_cutting_tool_id.cutting_tool_cutterhead_model_id')
diameter = fields.Float('直径(mm)', readonly=True, related='functional_cutting_tool_id.diameter')
@@ -375,33 +375,33 @@ class InboundAndOutboundRecordsOfFunctionalTools(models.Model):
name = fields.Char('名称', invisible=True, readonly=True, related='functional_cutting_tool_id.name')
# 整体式刀具型号
cutting_tool_integral_model_id = fields.Many2one('sf.tool.material.search', string='整体式刀具型号', readonly=True,
domain=[('cutting_tool_type', '=', '整体式刀具')],
cutting_tool_integral_model_id = fields.Many2one('product.product', string='整体式刀具型号', readonly=True,
domain=[('cutting_tool_material_id', '=', '整体式刀具')],
related='functional_cutting_tool_id.cutting_tool_integral_model_id')
# 刀片型号
cutting_tool_blade_model_id = fields.Many2one('sf.tool.material.search', string='刀片型号', readonly=True,
domain=[('cutting_tool_type', '=', '刀片')],
cutting_tool_blade_model_id = fields.Many2one('product.product', string='刀片型号', readonly=True,
domain=[('cutting_tool_material_id', '=', '刀片')],
related='functional_cutting_tool_id.cutting_tool_blade_model_id')
# 刀杆型号
cutting_tool_cutterbar_model_id = fields.Many2one('sf.tool.material.search', string='刀杆型号', readonly=True,
domain=[('cutting_tool_type', '=', '刀杆')],
cutting_tool_cutterbar_model_id = fields.Many2one('product.product', string='刀杆型号', readonly=True,
domain=[('cutting_tool_material_id', '=', '刀杆')],
related='functional_cutting_tool_id.cutting_tool_cutterbar_model_id')
# 刀盘型号
cutting_tool_cutterpad_model_id = fields.Many2one('sf.tool.material.search', string='刀盘型号', readonly=True,
domain=[('cutting_tool_type', '=', '刀盘')],
cutting_tool_cutterpad_model_id = fields.Many2one('product.product', string='刀盘型号', readonly=True,
domain=[('cutting_tool_material_id', '=', '刀盘')],
related='functional_cutting_tool_id.cutting_tool_cutterpad_model_id')
# 刀柄型号
cutting_tool_cutterhandle_model_id = fields.Many2one('sf.tool.material.search', string='刀柄型号', readonly=True,
domain=[('cutting_tool_type', '=', '刀柄')],
cutting_tool_cutterhandle_model_id = fields.Many2one('product.product', string='刀柄型号', readonly=True,
domain=[('cutting_tool_material_id', '=', '刀柄')],
related='functional_cutting_tool_id.cutting_tool_cutterhandle_model_id')
# 夹头型号
cutting_tool_cutterhead_model_id = fields.Many2one('sf.tool.material.search', string='夹头型号', readonly=True,
domain=[('cutting_tool_type', '=', '夹头')],
cutting_tool_cutterhead_model_id = fields.Many2one('product.product', string='夹头型号', readonly=True,
domain=[('cutting_tool_material_id', '=', '夹头')],
related='functional_cutting_tool_id.cutting_tool_cutterhead_model_id')
diameter = fields.Float('直径(mm)', readonly=True, related='functional_cutting_tool_id.diameter')
@@ -752,39 +752,39 @@ class FunctionalToolAssembly(models.Model):
functional_tool_cutting_type = fields.Char(string='功能刀具切削类型', readonly=False)
# 整体式刀具型号
cutting_tool_integral_model_id = fields.Many2one('sf.tool.material.search', string='整体式刀具型号', readonly=True,
domain=[('cutting_tool_type', '=', '整体式刀具')])
cutting_tool_integral_model_id = fields.Many2one('product.product', string='整体式刀具型号', readonly=True,
domain=[('cutting_tool_material_id', '=', '整体式刀具')])
integral_code = fields.Char('整体式刀具序列号', readonly=True)
integral_name = fields.Char('整体式刀具名称', readonly=True)
sf_tool_brand_id_1 = fields.Many2one('sf.machine.brand', '整体式刀具品牌', readonly=True)
# 刀片型号
cutting_tool_blade_model_id = fields.Many2one('sf.tool.material.search', string='刀片型号', readonly=True,
domain=[('cutting_tool_type', '=', '刀片')])
cutting_tool_blade_model_id = fields.Many2one('product.product', string='刀片型号', readonly=True,
domain=[('cutting_tool_material_id', '=', '刀片')])
blade_code = fields.Char('刀片序列号', readonly=True)
blade_name = fields.Char('刀片名称', readonly=True)
sf_tool_brand_id_2 = fields.Many2one('sf.machine.brand', '刀片品牌', readonly=True)
# 刀杆型号
cutting_tool_cutterbar_model_id = fields.Many2one('sf.tool.material.search', string='刀杆型号', readonly=True,
domain=[('cutting_tool_type', '=', '刀杆')])
cutting_tool_cutterbar_model_id = fields.Many2one('product.product', string='刀杆型号', readonly=True,
domain=[('cutting_tool_material_id', '=', '刀杆')])
bar_code = fields.Char('刀杆序列号', readonly=True)
bar_name = fields.Char('刀杆名称', readonly=True)
sf_tool_brand_id_3 = fields.Many2one('sf.machine.brand', '刀杆品牌', readonly=True)
# 刀盘型号
cutting_tool_cutterpad_model_id = fields.Many2one('sf.tool.material.search', string='刀盘型号', readonly=True,
domain=[('cutting_tool_type', '=', '刀盘')])
cutting_tool_cutterpad_model_id = fields.Many2one('product.product', string='刀盘型号', readonly=True,
domain=[('cutting_tool_material_id', '=', '刀盘')])
pad_code = fields.Char('刀盘序列号', readonly=True)
pad_name = fields.Char('刀盘名称', readonly=True)
sf_tool_brand_id_4 = fields.Many2one('sf.machine.brand', '刀盘品牌', readonly=True)
# 刀柄型号
cutting_tool_cutterhandle_model_id = fields.Many2one('sf.tool.material.search', string='刀柄型号', readonly=True,
domain=[('cutting_tool_type', '=', '刀柄')])
cutting_tool_cutterhandle_model_id = fields.Many2one('product.product', string='刀柄型号', readonly=True,
domain=[('cutting_tool_material_id', '=', '刀柄')])
handle_code = fields.Char('刀柄序列号', readonly=True)
handle_name = fields.Char('刀柄名称', readonly=True)
sf_tool_brand_id_5 = fields.Many2one('sf.machine.brand', '刀柄品牌', readonly=True)
# 夹头型号
cutting_tool_cutterhead_model_id = fields.Many2one('sf.tool.material.search', string='夹头型号', readonly=True,
domain=[('cutting_tool_type', '=', '夹头')])
cutting_tool_cutterhead_model_id = fields.Many2one('product.product', string='夹头型号', readonly=True,
domain=[('cutting_tool_material_id', '=', '夹头')])
chuck_code = fields.Char('夹头序列号', readonly=True)
chuck_name = fields.Char('夹头名称', readonly=True)
sf_tool_brand_id_6 = fields.Many2one('sf.machine.brand', '夹头品牌', readonly=True)

View File

@@ -95,24 +95,27 @@
<!-- attrs="{'invisible': [('cutting_tool_blade_model_id', '!=', False)]}"-->
<group col="1">
<group string="适合加工方式">
<field name="suitable_machining_method_ids" string=""
widget="custom_many2many_checkboxes"/>
<field name="suitable_machining_method_ids" string="" widget="custom_many2many_checkboxes"
domain="[('id','in',suitable_machining_method_ids)]"/>
</group>
<group>
<group string="刀尖特征">
<field name="blade_tip_characteristics_ids" string=""
widget="custom_many2many_checkboxes"/>
<field name="blade_tip_characteristics_ids" string="" widget="custom_many2many_checkboxes"
domain="[('id','in',blade_tip_characteristics_ids)]"/>
</group>
<group string="柄部类型">
<field name="handle_type_ids" string="" widget="custom_many2many_checkboxes"/>
<field name="handle_type_ids" string="" widget="custom_many2many_checkboxes"
domain="[('id','in',handle_type_ids)]"/>
</group>
</group>
<group>
<group string="走刀方向">
<field name="cutting_direction_ids" string="" widget="custom_many2many_checkboxes"/>
<field name="cutting_direction_ids" string="" widget="custom_many2many_checkboxes"
domain="[('id','in',cutting_direction_ids)]"/>
</group>
<group string="适合冷却液">
<field name="suitable_coolant_ids" string="" widget="custom_many2many_checkboxes"/>
<field name="suitable_coolant_ids" string="" widget="custom_many2many_checkboxes"
domain="[('id','in',suitable_coolant_ids)]"/>
</group>
</group>
</group>

View File

@@ -137,8 +137,8 @@ class FunctionalToolAssemblyOrder(models.TransientModel):
# 功能刀具组装信息
# 整体式刀具型号
cutting_tool_integral_model_id = fields.Many2one('sf.tool.material.search', string='整体式刀具型号', readonly=False,
domain=[('cutting_tool_type', '=', '整体式刀具')])
cutting_tool_integral_model_id = fields.Many2one('product.product', string='整体式刀具型号', readonly=False,
domain=[('cutting_tool_material_id', '=', '整体式刀具')])
integral_code = fields.Char('整体式刀具序列号', readonly=True, compute='_compute_integral_code')
integral_name = fields.Char('整体式刀具名称', readonly=True, compute='_compute_integral_name')
sf_tool_brand_id_1 = fields.Many2one('sf.machine.brand', '整体式刀具品牌', readonly=True,
@@ -164,13 +164,13 @@ class FunctionalToolAssemblyOrder(models.TransientModel):
def _compute_sf_tool_brand_id_1(self):
for record in self:
if record.cutting_tool_integral_model_id:
self.sf_tool_brand_id_1 = record.cutting_tool_integral_model_id.mrs_machine_brand_id.id
self.sf_tool_brand_id_1 = record.cutting_tool_integral_model_id.brand_id.id
else:
self.sf_tool_brand_id_1 = None
# 刀片型号
cutting_tool_blade_model_id = fields.Many2one('sf.tool.material.search', string='刀片型号', readonly=False,
domain=[('cutting_tool_type', '=', '刀片')])
cutting_tool_blade_model_id = fields.Many2one('product.product', string='刀片型号', readonly=False,
domain=[('cutting_tool_material_id', '=', '刀片')])
blade_code = fields.Char('刀片序列号', readonly=True, compute='_compute_blade_code')
blade_name = fields.Char('刀片名称', readonly=True, compute='_compute_blade_name')
sf_tool_brand_id_2 = fields.Many2one('sf.machine.brand', '刀片品牌', readonly=True,
@@ -196,13 +196,13 @@ class FunctionalToolAssemblyOrder(models.TransientModel):
def _compute_sf_tool_brand_id_2(self):
for record in self:
if record.cutting_tool_blade_model_id:
self.sf_tool_brand_id_2 = self.cutting_tool_blade_model_id.mrs_machine_brand_id.id
self.sf_tool_brand_id_2 = self.cutting_tool_blade_model_id.brand_id.id
else:
self.sf_tool_brand_id_2 = None
# 刀杆型号
cutting_tool_cutterbar_model_id = fields.Many2one('sf.tool.material.search', string='刀杆型号', readonly=False,
domain=[('cutting_tool_type', '=', '刀杆')])
cutting_tool_cutterbar_model_id = fields.Many2one('product.product', string='刀杆型号', readonly=False,
domain=[('cutting_tool_material_id', '=', '刀杆')])
bar_code = fields.Char('刀杆序列号', readonly=True, compute='_compute_bar_code')
bar_name = fields.Char('刀杆名称', readonly=True, compute='_compute_bar_name')
sf_tool_brand_id_3 = fields.Many2one('sf.machine.brand', '刀杆品牌', readonly=True,
@@ -228,13 +228,13 @@ class FunctionalToolAssemblyOrder(models.TransientModel):
def _compute_sf_tool_brand_id_3(self):
for record in self:
if record.cutting_tool_cutterbar_model_id:
self.sf_tool_brand_id_3 = self.cutting_tool_cutterbar_model_id.mrs_machine_brand_id.id
self.sf_tool_brand_id_3 = self.cutting_tool_cutterbar_model_id.brand_id.id
else:
self.sf_tool_brand_id_3 = None
# 刀盘型号
cutting_tool_cutterpad_model_id = fields.Many2one('sf.tool.material.search', string='刀盘型号', readonly=False,
domain=[('cutting_tool_type', '=', '刀盘')])
cutting_tool_cutterpad_model_id = fields.Many2one('product.product', string='刀盘型号', readonly=False,
domain=[('cutting_tool_material_id', '=', '刀盘')])
pad_code = fields.Char('刀盘序列号', readonly=True, compute='_compute_pad_code')
pad_name = fields.Char('刀盘名称', readonly=True, compute='_compute_pad_name')
sf_tool_brand_id_4 = fields.Many2one('sf.machine.brand', '刀盘品牌', readonly=True,
@@ -260,13 +260,13 @@ class FunctionalToolAssemblyOrder(models.TransientModel):
def _compute_sf_tool_brand_id_4(self):
for record in self:
if record.cutting_tool_cutterpad_model_id:
self.sf_tool_brand_id_4 = self.cutting_tool_cutterpad_model_id.mrs_machine_brand_id.id
self.sf_tool_brand_id_4 = self.cutting_tool_cutterpad_model_id.brand_id.id
else:
self.sf_tool_brand_id_4 = None
# 刀柄型号
cutting_tool_cutterhandle_model_id = fields.Many2one('sf.tool.material.search', string='刀柄型号', readonly=False,
domain=[('cutting_tool_type', '=', '刀柄')])
cutting_tool_cutterhandle_model_id = fields.Many2one('product.product', string='刀柄型号', readonly=False,
domain=[('cutting_tool_material_id', '=', '刀柄')])
handle_code = fields.Char('刀柄序列号', readonly=True, compute='_compute_handle_code')
handle_name = fields.Char('刀柄名称', readonly=True, compute='_compute_handle_name')
sf_tool_brand_id_5 = fields.Many2one('sf.machine.brand', '刀柄品牌', readonly=True,
@@ -292,13 +292,13 @@ class FunctionalToolAssemblyOrder(models.TransientModel):
def _compute_sf_tool_brand_id_5(self):
for record in self:
if record.cutting_tool_cutterhandle_model_id:
self.sf_tool_brand_id_5 = self.cutting_tool_cutterhandle_model_id.mrs_machine_brand_id.id
self.sf_tool_brand_id_5 = self.cutting_tool_cutterhandle_model_id.brand_id.id
else:
self.sf_tool_brand_id_5 = None
# 夹头型号
cutting_tool_cutterhead_model_id = fields.Many2one('sf.tool.material.search', string='夹头型号', readonly=False,
domain=[('cutting_tool_type', '=', '夹头')])
cutting_tool_cutterhead_model_id = fields.Many2one('product.product', string='夹头型号', readonly=False,
domain=[('cutting_tool_material_id', '=', '夹头')])
chuck_code = fields.Char('夹头序列号', readonly=True, compute='_compute_chuck_code')
chuck_name = fields.Char('夹头名称', readonly=True, compute='_compute_chuck_name')
sf_tool_brand_id_6 = fields.Many2one('sf.machine.brand', '夹头品牌', readonly=True,
@@ -324,7 +324,7 @@ class FunctionalToolAssemblyOrder(models.TransientModel):
def _compute_sf_tool_brand_id_6(self):
for record in self:
if record.cutting_tool_cutterhead_model_id:
self.sf_tool_brand_id_6 = self.cutting_tool_cutterhead_model_id.mrs_machine_brand_id.id
self.sf_tool_brand_id_6 = self.cutting_tool_cutterhead_model_id.brand_id.id
else:
self.sf_tool_brand_id_6 = None

View File

@@ -143,28 +143,30 @@
<group string="组装物料信息">
<group>
<field name="cutting_tool_integral_model_id" string="整体式刀具型号"
options="{'no_create': True, 'no_quick_create': True}"
options="{'no_create': True, 'no_quick_create': True}" placeholder="请选择"
attrs="{'invisible': [('cutting_tool_blade_model_id', '!=', False)]}"/>
<field name="integral_code"
attrs="{'invisible': [('cutting_tool_blade_model_id', '!=', False)]}"/>
<field name="cutting_tool_blade_model_id" string="刀片型号"
options="{'no_create': True, 'no_quick_create': True}"
options="{'no_create': True, 'no_quick_create': True}" placeholder="请选择"
attrs="{'invisible': [('cutting_tool_integral_model_id', '!=', False)]}"/>
<field name="blade_code"
attrs="{'invisible': [('cutting_tool_integral_model_id', '!=', False)]}"/>
<field name="cutting_tool_cutterbar_model_id" string="刀杆型号"
options="{'no_create': True, 'no_quick_create': True}"
options="{'no_create': True, 'no_quick_create': True}" placeholder="请选择"
attrs="{'invisible': ['|',('cutting_tool_integral_model_id', '!=', False),('cutting_tool_cutterpad_model_id', '!=', False)]}"/>
<field name="bar_code"
attrs="{'invisible': ['|',('cutting_tool_integral_model_id', '!=', False),('cutting_tool_cutterpad_model_id', '!=', False)]}"/>
<field name="cutting_tool_cutterpad_model_id" string="刀盘型号"
options="{'no_create': True, 'no_quick_create': True}"
options="{'no_create': True, 'no_quick_create': True}" placeholder="请选择"
attrs="{'invisible': ['|',('cutting_tool_integral_model_id', '!=', False),('cutting_tool_cutterbar_model_id', '!=', False)]}"/>
<field name="pad_code"
attrs="{'invisible': ['|',('cutting_tool_integral_model_id', '!=', False),('cutting_tool_cutterbar_model_id', '!=', False)]}"/>
<field name="cutting_tool_cutterhandle_model_id" string="刀柄型号" options="{'no_create': True, 'no_quick_create': True}"/>
<field name="cutting_tool_cutterhandle_model_id" string="刀柄型号"
options="{'no_create': True, 'no_quick_create': True}" placeholder="请选择"/>
<field name="handle_code"/>
<field name="cutting_tool_cutterhead_model_id" string="夹头型号" options="{'no_create': True, 'no_quick_create': True}"/>
<field name="cutting_tool_cutterhead_model_id" string="夹头型号"
options="{'no_create': True, 'no_quick_create': True}" placeholder="请选择"/>
<field name="chuck_code"/>
</group>
<group>