@@ -578,61 +526,26 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
@@ -695,12 +608,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
@@ -1155,17 +1068,21 @@
attrs="{'invisible': [('assemble_status', '!=', '0')]}"
class="btn-primary"/>
-
+
-
+
-
+
-
+
+ class="oe_highlight" attrs="{'invisible': [('loading_task_source', '!=', '0')]}" />
+ class="oe_highlight" attrs="{'invisible': [('loading_task_source', '!=', '1')]}" />
@@ -1201,32 +1118,56 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sf_tool_management/wizard/wizard.py b/sf_tool_management/wizard/wizard.py
index 1c7c8e52..c33df86c 100644
--- a/sf_tool_management/wizard/wizard.py
+++ b/sf_tool_management/wizard/wizard.py
@@ -1,4 +1,5 @@
from odoo import fields, models, api
+from odoo.exceptions import ValidationError
class ToolChangeRequirementInformation(models.TransientModel):
@@ -136,54 +137,196 @@ class FunctionalToolAssemblyOrder(models.TransientModel):
# 功能刀具组装信息
# 整体式刀具型号
- mrs_cutting_tool_integral_model_ids = fields.Many2many('sf.cutting.tool.model',
- 'sf_functional_tool_assembly_order_id',
- string='整体式刀具型号', readonly=False, domain=
- [('cutting_tool_type', '=', '整体式刀具')])
- integral_code = fields.Char('整体式刀具序列号', readonly=True,
- compute='_compute_mrs_cutting_tool_integral_model_ids')
- integral_name = fields.Char('整体式刀具名称', readonly=True)
- sf_tool_brand_id_1 = fields.Many2one('sf.machine.brand', '整体式刀具品牌', readonly=True)
+ cutting_tool_integral_model_id = fields.Many2one('sf.tool.material.search', string='整体式刀具型号', readonly=False,
+ domain=[('cutting_tool_type', '=', '整体式刀具')])
+ 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,
+ compute='_compute_sf_tool_brand_id_1')
+
+ @api.depends('cutting_tool_integral_model_id')
+ def _compute_integral_code(self):
+ for record in self:
+ if record.cutting_tool_integral_model_id:
+ self.integral_code = record.cutting_tool_integral_model_id.code
+ else:
+ self.integral_code = None
+
+ @api.depends('cutting_tool_integral_model_id')
+ def _compute_integral_name(self):
+ for record in self:
+ if record.cutting_tool_integral_model_id:
+ self.integral_name = record.cutting_tool_integral_model_id.name
+ else:
+ self.integral_name = None
+
+ @api.depends('cutting_tool_integral_model_id')
+ 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
+ else:
+ self.sf_tool_brand_id_1 = None
+
# 刀片型号
- mrs_cutting_tool_blade_model_ids = fields.Many2many('sf.cutting.tool.model', 'sf_functional_tool_assembly_order_id',
- string='刀片型号', readonly=False, domain=
- [('cutting_tool_type', '=', '刀片')])
- blade_code = fields.Char('刀片序列号', readonly=True, compute='_compute_mrs_cutting_tool_blade_model_ids')
- blade_name = fields.Char('刀片名称', readonly=True)
- sf_tool_brand_id_2 = fields.Many2one('sf.machine.brand', '刀片品牌', readonly=True)
+ cutting_tool_blade_model_id = fields.Many2one('sf.tool.material.search', string='刀片型号', readonly=False,
+ domain=[('cutting_tool_type', '=', '刀片')])
+ 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,
+ compute='_compute_sf_tool_brand_id_2')
+
+ @api.depends('cutting_tool_blade_model_id')
+ def _compute_blade_code(self):
+ for record in self:
+ if record.cutting_tool_blade_model_id:
+ self.blade_code = self.cutting_tool_blade_model_id.code
+ else:
+ self.blade_code = None
+
+ @api.depends('cutting_tool_blade_model_id')
+ def _compute_blade_name(self):
+ for record in self:
+ if record.cutting_tool_blade_model_id:
+ self.blade_name = self.cutting_tool_blade_model_id.name
+ else:
+ self.blade_name = None
+
+ @api.depends('cutting_tool_blade_model_id')
+ 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
+ else:
+ self.sf_tool_brand_id_2 = None
+
# 刀杆型号
- mrs_cutting_tool_cutterbar_model_ids = fields.Many2many('sf.cutting.tool.model',
- 'sf_functional_tool_assembly_order_id',
- string='刀杆型号', readonly=False, domain=
- [('cutting_tool_type', '=', '刀杆')])
- bar_code = fields.Char('刀杆序列号', readonly=True, compute='_compute_mrs_cutting_tool_cutterbar_model_ids')
- bar_name = fields.Char('刀杆名称', readonly=True)
- sf_tool_brand_id_3 = fields.Many2one('sf.machine.brand', '刀杆品牌', readonly=True)
+ cutting_tool_cutterbar_model_id = fields.Many2one('sf.tool.material.search', string='刀杆型号', readonly=False,
+ domain=[('cutting_tool_type', '=', '刀杆')])
+ 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,
+ compute='_compute_sf_tool_brand_id_3')
+
+ @api.depends('cutting_tool_cutterbar_model_id')
+ def _compute_bar_code(self):
+ for record in self:
+ if record.cutting_tool_cutterbar_model_id:
+ self.bar_code = self.cutting_tool_cutterbar_model_id.code
+ else:
+ self.bar_code = None
+
+ @api.depends('cutting_tool_cutterbar_model_id')
+ def _compute_bar_name(self):
+ for record in self:
+ if record.cutting_tool_cutterbar_model_id:
+ self.bar_name = self.cutting_tool_cutterbar_model_id.name
+ else:
+ self.bar_name = None
+
+ @api.depends('cutting_tool_cutterbar_model_id')
+ 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
+ else:
+ self.sf_tool_brand_id_3 = None
+
# 刀盘型号
- mrs_cutting_tool_cutterpad_model_ids = fields.Many2many('sf.cutting.tool.model',
- 'sf_functional_tool_assembly_order_id',
- string='刀盘型号', readonly=False, domain=
- [('cutting_tool_type', '=', '刀盘')])
- pad_code = fields.Char('刀盘序列号', readonly=True, compute='_compute_mrs_cutting_tool_cutterpad_model_ids')
- pad_name = fields.Char('刀盘名称', readonly=True)
- sf_tool_brand_id_4 = fields.Many2one('sf.machine.brand', '刀盘品牌', readonly=True)
+ cutting_tool_cutterpad_model_id = fields.Many2one('sf.tool.material.search', string='刀盘型号', readonly=False,
+ domain=[('cutting_tool_type', '=', '刀盘')])
+ 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,
+ compute='_compute_sf_tool_brand_id_4')
+
+ @api.depends('cutting_tool_cutterpad_model_id')
+ def _compute_pad_code(self):
+ for record in self:
+ if record.cutting_tool_cutterpad_model_id:
+ self.pad_code = self.cutting_tool_cutterpad_model_id.code
+ else:
+ self.pad_code = None
+
+ @api.depends('cutting_tool_cutterpad_model_id')
+ def _compute_pad_name(self):
+ for record in self:
+ if record.cutting_tool_cutterpad_model_id:
+ self.pad_name = self.cutting_tool_cutterpad_model_id.name
+ else:
+ self.pad_name = None
+
+ @api.depends('cutting_tool_cutterpad_model_id')
+ 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
+ else:
+ self.sf_tool_brand_id_4 = None
# 刀柄型号
- mrs_cutting_tool_cutterhandle_model_ids = fields.Many2many('sf.cutting.tool.model',
- 'sf_functional_tool_assembly_order_id',
- string='刀柄型号', readonly=False, domain=
- [('cutting_tool_type', '=', '刀柄')])
- handle_code = fields.Char('刀柄序列号', readonly=True, compute='_compute_mrs_cutting_tool_cutterhandle_model_ids')
- handle_name = fields.Char('刀柄名称', readonly=True)
- sf_tool_brand_id_5 = fields.Many2one('sf.machine.brand', '刀柄品牌', readonly=True)
+ cutting_tool_cutterhandle_model_id = fields.Many2one('sf.tool.material.search', string='刀柄型号', readonly=False,
+ domain=[('cutting_tool_type', '=', '刀柄')])
+ 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,
+ compute='_compute_sf_tool_brand_id_5')
+
+ @api.depends('cutting_tool_cutterhandle_model_id')
+ def _compute_handle_code(self):
+ for record in self:
+ if record.cutting_tool_cutterhandle_model_id:
+ self.handle_code = self.cutting_tool_cutterhandle_model_id.code
+ else:
+ self.handle_code = None
+
+ @api.depends('cutting_tool_cutterhandle_model_id')
+ def _compute_handle_name(self):
+ for record in self:
+ if record.cutting_tool_cutterhandle_model_id:
+ self.handle_name = self.cutting_tool_cutterhandle_model_id.name
+ else:
+ self.handle_name = None
+
+ @api.depends('cutting_tool_cutterhandle_model_id')
+ 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
+ else:
+ self.sf_tool_brand_id_5 = None
+
# 夹头型号
- mrs_cutting_tool_cutterhead_model_ids = fields.Many2many('sf.cutting.tool.model',
- 'sf_functional_tool_assembly_order_id',
- string='夹头型号', readonly=False, domain=
- [('cutting_tool_type', '=', '夹头')])
- chuck_code = fields.Char('夹头序列号', readonly=True, compute='_compute_mrs_cutting_tool_cutterhead_model_ids')
- chuck_name = fields.Char('夹头名称', readonly=True)
- sf_tool_brand_id_6 = fields.Many2one('sf.machine.brand', '夹头品牌', readonly=True)
+ cutting_tool_cutterhead_model_id = fields.Many2one('sf.tool.material.search', string='夹头型号', readonly=False,
+ domain=[('cutting_tool_type', '=', '夹头')])
+ 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,
+ compute='_compute_sf_tool_brand_id_6')
+
+ @api.depends('cutting_tool_cutterhead_model_id')
+ def _compute_chuck_code(self):
+ for record in self:
+ if record.cutting_tool_cutterhead_model_id:
+ self.chuck_code = self.cutting_tool_cutterhead_model_id.code
+ else:
+ self.chuck_code = None
+
+ @api.depends('cutting_tool_cutterhead_model_id')
+ def _compute_chuck_name(self):
+ for record in self:
+ if record.cutting_tool_cutterhead_model_id:
+ self.chuck_name = self.cutting_tool_cutterhead_model_id.name
+ else:
+ self.chuck_name = None
+
+ @api.depends('cutting_tool_cutterhead_model_id')
+ 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
+ else:
+ self.sf_tool_brand_id_6 = None
coarse_middle_thin = fields.Selection([("1", "粗"), ('2', '中'), ('3', '精')], string='粗/中/精', default='1')
tool_loading_length = fields.Char(string='装刀长')
@@ -193,93 +336,33 @@ class FunctionalToolAssemblyOrder(models.TransientModel):
cut_length = 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.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.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.brand_id.id
-
- @api.depends('mrs_cutting_tool_cutterpad_model_ids')
- def _compute_mrs_cutting_tool_cutterpad_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.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.brand_id.id
-
- @api.depends('mrs_cutting_tool_cutterhead_model_ids')
- def _compute_mrs_cutting_tool_cutterhead_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.brand_id.id
-
def functional_tool_assembly(self):
"""
功能刀具组装
:return:
"""
desc_1 = {
- 'mrs_cutting_tool_integral_model_ids': self.mrs_cutting_tool_integral_model_ids.ids,
+ 'cutting_tool_integral_model_id': self.cutting_tool_integral_model_id.id,
'integral_code': self.integral_code,
'integral_name': self.integral_name,
'sf_tool_brand_id_1': self.sf_tool_brand_id_1,
- 'mrs_cutting_tool_blade_model_ids': self.mrs_cutting_tool_blade_model_ids.ids,
+ 'cutting_tool_blade_model_id': self.cutting_tool_blade_model_id.id,
'blade_code': self.blade_code,
'blade_name': self.blade_name,
'sf_tool_brand_id_2': self.sf_tool_brand_id_2,
- 'mrs_cutting_tool_cutterbar_model_ids': self.mrs_cutting_tool_cutterbar_model_ids.ids,
+ 'cutting_tool_cutterbar_model_id': self.cutting_tool_cutterbar_model_id.id,
'bar_code': self.bar_code,
'bar_name': self.bar_name,
'sf_tool_brand_id_3': self.sf_tool_brand_id_3,
- 'mrs_cutting_tool_cutterpad_model_ids': self.mrs_cutting_tool_cutterpad_model_ids.ids,
+ 'cutting_tool_cutterpad_model_id': self.cutting_tool_cutterpad_model_id.id,
'pad_code': self.pad_code,
'pad_name': self.pad_name,
'sf_tool_brand_id_4': self.sf_tool_brand_id_4,
- 'mrs_cutting_tool_cutterhandle_model_ids': self.mrs_cutting_tool_cutterhandle_model_ids.ids,
+ 'cutting_tool_cutterhandle_model_id': self.cutting_tool_cutterhandle_model_id.id,
'handle_code': self.handle_code,
'handle_name': self.handle_name,
'sf_tool_brand_id_5': self.sf_tool_brand_id_5,
- 'mrs_cutting_tool_cutterhead_model_ids': self.mrs_cutting_tool_cutterhead_model_ids.ids,
+ 'cutting_tool_cutterhead_model_id': self.cutting_tool_cutterhead_model_id.id,
'chuck_code': self.chuck_code,
'chuck_name': self.chuck_name,
'sf_tool_brand_id_6': self.sf_tool_brand_id_6,
@@ -300,19 +383,20 @@ class FunctionalToolAssemblyOrder(models.TransientModel):
('assemble_status', '=', '0'),
])
- print('功能刀具组装id:',functional_tool_assembly.id)
+ # print('功能刀具组装id:', functional_tool_assembly.id)
+ # print('整体式物料信息:', self.cutting_tool_integral_model_id.id)
# 封装功能刀具数据
desc_2 = {
'code': self.code,
'name': self.functional_tool_name_id.name,
'mrs_cutting_tool_type_id': self.functional_tool_type_id.id,
- 'mrs_cutting_tool_integral_model_ids': self.mrs_cutting_tool_integral_model_ids.ids,
- 'mrs_cutting_tool_blade_model_ids': self.mrs_cutting_tool_blade_model_ids.ids,
- 'mrs_cutting_tool_cutterbar_model_ids': self.mrs_cutting_tool_cutterbar_model_ids.ids,
- 'mrs_cutting_tool_cutterpad_model_ids': self.mrs_cutting_tool_cutterpad_model_ids.ids,
- 'mrs_cutting_tool_cutterhandle_model_ids': self.mrs_cutting_tool_cutterhandle_model_ids.ids,
- 'mrs_cutting_tool_cutterhead_model_ids': self.mrs_cutting_tool_cutterhead_model_ids.ids,
+ 'cutting_tool_integral_model_id': self.cutting_tool_integral_model_id.id,
+ 'cutting_tool_blade_model_id': self.cutting_tool_blade_model_id.id,
+ 'cutting_tool_cutterbar_model_id': self.cutting_tool_cutterbar_model_id.id,
+ 'cutting_tool_cutterpad_model_id': self.cutting_tool_cutterpad_model_id.id,
+ 'cutting_tool_cutterhandle_model_id': self.cutting_tool_cutterhandle_model_id.id,
+ 'cutting_tool_cutterhead_model_id': self.cutting_tool_cutterhead_model_id.id,
'diameter': self.functional_tool_diameter,
'tool_grade': None,
'machining_accuracy': None,
@@ -326,50 +410,59 @@ class FunctionalToolAssemblyOrder(models.TransientModel):
'image': None,
}
if self.new_former == '0':
- # 如果是新刀,则创建功能刀具列表、功能刀具预警、功能刀具实时分布
- record_1 = self.env['sf.functional.cutting.tool.entity'].create(desc_2)
- self.env['sf.functional.tool.warning'].create({
- 'functional_cutting_tool_id': record_1.id,
- 'functional_tool_assembly_id': functional_tool_assembly.id,
- 'machine_table_name_id': self.machine_tool_name_id.id,
- })
- self.env['sf.real.time.distribution.of.functional.tools'].create({
- 'functional_cutting_tool_id': record_1.id
- })
- self.env['sf.inbound.and.outbound.records.of.functional.tools'].create({
- 'functional_cutting_tool_id': record_1.id
- })
+ record = self.env['sf.functional.cutting.tool.entity'].search([('code', '=', self.code)])
+ if record:
+ raise ValidationError("该编码的功能刀具已存在!")
+ else:
+ # 如果是新刀,则创建功能刀具列表、功能刀具预警、功能刀具实时分布、功能刀具出入库记录
+ record_1 = self.env['sf.functional.cutting.tool.entity'].create(desc_2)
+ self.env['sf.functional.tool.warning'].create({
+ 'functional_cutting_tool_id': record_1.id,
+ 'functional_tool_assembly_id': functional_tool_assembly.id,
+ 'machine_table_name_id': self.machine_tool_name_id.id,
+ })
+ self.env['sf.real.time.distribution.of.functional.tools'].create({
+ 'functional_cutting_tool_id': record_1.id
+ })
+ self.env['sf.inbound.and.outbound.records.of.functional.tools'].create({
+ 'functional_cutting_tool_id': record_1.id
+ })
else:
record = self.env['sf.functional.cutting.tool.entity'].search([('code', '=', self.code)])
- # 创建功能刀具缓存信息
- self.env['sf.functional.cutting.tool.entity.cache'].create({
- 'code': record.code,
- 'name': record.name,
- 'mrs_cutting_tool_type_id': record.mrs_cutting_tool_type_id.id,
- 'mrs_cutting_tool_model_id': record.mrs_cutting_tool_model_id.id,
- 'mrs_cutting_tool_integral_model_ids': record.mrs_cutting_tool_integral_model_ids.ids,
- 'mrs_cutting_tool_blade_model_ids': record.mrs_cutting_tool_blade_model_ids.ids,
- 'mrs_cutting_tool_cutterbar_model_ids': record.mrs_cutting_tool_cutterbar_model_ids.ids,
- 'mrs_cutting_tool_cutterpad_model_ids': record.mrs_cutting_tool_cutterpad_model_ids.ids,
- 'mrs_cutting_tool_cutterhandle_model_ids': record.mrs_cutting_tool_cutterhandle_model_ids.ids,
- 'mrs_cutting_tool_cutterhead_model_ids': record.mrs_cutting_tool_cutterhead_model_ids.ids,
- 'diameter': record.diameter,
- 'tool_grade': record.tool_grade,
- 'machining_accuracy': record.machining_accuracy,
- 'tool_length': record.tool_length,
- 'blade_number': record.blade_number,
- 'integral_blade_length': record.integral_blade_length,
- 'effective_blade_length': record.effective_blade_length,
- 'max_life': record.max_life,
- 'is_standard': record.is_standard,
- 'applicable_range': record.applicable_range,
- 'image': record.image,
- })
- # 删除功能刀具列表信息
- self.env['sf.functional.cutting.tool.entity'].search([('code', '=', self.code)]).unlink()
- # 创建功能刀具列表信息
- self.env['sf.functional.cutting.tool.entity'].search([('code', '=', self.code)]).create(desc_2)
-
+ if not record:
+ raise ValidationError("该编码的功能刀具不存在!!!")
+ else:
+ # 创建功能刀具缓存信息
+ record1 = self.env['sf.functional.cutting.tool.entity.cache'].create({
+ 'code': record.code,
+ 'name': record.name,
+ 'mrs_cutting_tool_type_id': record.mrs_cutting_tool_type_id.id,
+ 'mrs_cutting_tool_model_id': record.mrs_cutting_tool_model_id.id,
+ 'cutting_tool_integral_model_id': record.cutting_tool_integral_model_id.id,
+ 'cutting_tool_blade_model_id': record.cutting_tool_blade_model_id.id,
+ 'cutting_tool_cutterbar_model_id': record.cutting_tool_cutterbar_model_id.id,
+ 'cutting_tool_cutterpad_model_id': record.cutting_tool_cutterpad_model_id.id,
+ 'cutting_tool_cutterhandle_model_id': record.cutting_tool_cutterhandle_model_id.id,
+ 'cutting_tool_cutterhead_model_id': record.cutting_tool_cutterhead_model_id.id,
+ 'diameter': record.diameter,
+ 'tool_grade': record.tool_grade,
+ 'machining_accuracy': record.machining_accuracy,
+ 'tool_length': record.tool_length,
+ 'blade_number': record.blade_number,
+ 'integral_blade_length': record.integral_blade_length,
+ 'effective_blade_length': record.effective_blade_length,
+ 'max_life': record.max_life,
+ 'is_standard': record.is_standard,
+ 'applicable_range': record.applicable_range,
+ 'image': record.image,
+ })
+ # # 删除功能刀具列表信息
+ # self.env['sf.functional.cutting.tool.entity'].search([('code', '=', self.code)]).unlink()
+ # # 创建功能刀具列表信息
+ # self.env['sf.functional.cutting.tool.entity'].search([('code', '=', self.code)]).create(desc_2)
+ # 修改功能刀具列表信息
+ self.env['sf.functional.cutting.tool.entity'].search([('code', '=', self.code)]).write(desc_2)
+ # 修改功能刀具组装信息
functional_tool_assembly.write(desc_1)
# 关闭弹出窗口
return {'type': 'ir.actions.act_window_close'}
diff --git a/sf_tool_management/wizard/wizard_view.xml b/sf_tool_management/wizard/wizard_view.xml
index 2c7f1bed..7f4c175d 100644
--- a/sf_tool_management/wizard/wizard_view.xml
+++ b/sf_tool_management/wizard/wizard_view.xml
@@ -142,34 +142,48 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
From e9e25c582e89cdec9f8121db9dd66e041b9bed98 Mon Sep 17 00:00:00 2001
From: mgw <1392924357@qq.com>
Date: Thu, 21 Sep 2023 14:32:05 +0800
Subject: [PATCH 2/2] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=8E=92=E7=A8=8B?=
=?UTF-8?q?=E7=BB=93=E6=9E=9C=E5=8F=8D=E9=A6=88=E7=BB=99=E5=88=B6=E9=80=A0?=
=?UTF-8?q?=E8=AE=A2=E5=8D=95=E7=9A=84=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
sf_manufacturing/views/mrp_production_addional_change.xml | 3 +++
sf_plan/models/custom_plan.py | 8 ++++++--
sf_plan/views/view.xml | 2 +-
3 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/sf_manufacturing/views/mrp_production_addional_change.xml b/sf_manufacturing/views/mrp_production_addional_change.xml
index b326f288..186ebc1c 100644
--- a/sf_manufacturing/views/mrp_production_addional_change.xml
+++ b/sf_manufacturing/views/mrp_production_addional_change.xml
@@ -28,6 +28,9 @@
+
+
+
diff --git a/sf_plan/models/custom_plan.py b/sf_plan/models/custom_plan.py
index 15af211a..064a1e20 100644
--- a/sf_plan/models/custom_plan.py
+++ b/sf_plan/models/custom_plan.py
@@ -180,9 +180,11 @@ class sf_production_plan(models.Model):
print(workorder_time)
self.date_planned_finished = self.date_planned_start + timedelta(minutes=workorder_time)
self.state = 'done'
+ aa.schedule_state = '已排'
else:
- self.date_planned_finished = self.date_planned_start + timedelta(days=3)
- self.state = 'done'
+ raise ValidationError("未找到工单")
+ # self.date_planned_finished = self.date_planned_start + timedelta(days=3)
+ # self.state = 'done'
return {
'name': '排程甘特图',
'type': 'ir.actions.act_window',
@@ -224,6 +226,8 @@ class sf_production_plan(models.Model):
def cancel_production_schedule(self):
self.date_planned_finished = False
self.state = 'draft'
+ aa = self.env['mrp.production'].sudo().search([('name', '=', self.name)])
+ aa.schedule_state = '未排'
return self.date_planned_finished
def liucheng_cs(self):
diff --git a/sf_plan/views/view.xml b/sf_plan/views/view.xml
index f7c22624..49a42c5f 100644
--- a/sf_plan/views/view.xml
+++ b/sf_plan/views/view.xml
@@ -31,7 +31,7 @@