优化刀具产品

This commit is contained in:
jinling.yang
2024-03-12 17:32:40 +08:00
parent 0289e2f9ff
commit 0c44bba5f2
9 changed files with 238 additions and 159 deletions

View File

@@ -6,8 +6,10 @@ import os
from odoo import models, fields, api, _
from odoo.exceptions import ValidationError
from odoo.modules import get_resource_path
from OCC.Extend.DataExchange import read_step_file
from OCC.Extend.DataExchange import write_stl_file
# from OCC.Extend.DataExchange import read_step_file
# from OCC.Extend.DataExchange import write_stl_file
class ResProductMo(models.Model):
@@ -101,6 +103,10 @@ class ResProductMo(models.Model):
compaction_way_id = fields.Many2one('maintenance.equipment.image',
'压紧方式', domain=[('type', '=', '压紧方式')])
@api.onchange('cutting_tool_model_id')
def _onchange_cutting_tool_model_id(self):
self.specification_id = False
@api.onchange('cutting_tool_material_id')
def _onchange_cutting_tool_material_id(self):
for item in self:
@@ -350,30 +356,30 @@ class ResProductMo(models.Model):
self.cutting_speed_ids = False
self.feed_per_tooth_ids = False
@api.constrains('fit_blade_shape_id', 'suitable_machining_method_ids', 'blade_tip_characteristics_id',
'handle_type_id', 'cutting_direction_ids', 'suitable_coolant_ids', 'compaction_way_id')
def _check_cutting_tool_ability(self):
if self.cutting_tool_type in ['整体式刀具', '刀片', '刀杆', '刀盘']:
if self.cutting_tool_type in ['刀片', '刀杆', '刀盘']:
if not self.fit_blade_shape_id:
raise ValidationError("请选择适配刀片形状")
if self.cutting_tool_type in ['刀杆', '刀盘']:
if not self.compaction_way_id:
raise ValidationError("请选择压紧方式")
if self.cutting_tool_type == '刀片':
if not self.suitable_coolant_ids:
raise ValidationError("请选择适合冷却方式")
elif self.cutting_tool_type == '整体式刀具':
if not self.handle_type_id:
raise ValidationError("请选择柄部类型")
if not self.suitable_coolant_ids:
raise ValidationError("请选择适合冷却方式")
if not self.suitable_machining_method_ids:
raise ValidationError("请选择适合加工方式")
if not self.blade_tip_characteristics_id:
raise ValidationError("请选择刀尖特征")
if not self.cutting_direction_ids:
raise ValidationError("请选择走刀方向")
# @api.constrains('fit_blade_shape_id', 'suitable_machining_method_ids', 'blade_tip_characteristics_id',
# 'handle_type_id', 'cutting_direction_ids', 'suitable_coolant_ids', 'compaction_way_id')
# def _check_cutting_tool_ability(self):
# if self.cutting_tool_type in ['整体式刀具', '刀片', '刀杆', '刀盘']:
# if self.cutting_tool_type in ['刀片', '刀杆', '刀盘']:
# if not self.fit_blade_shape_id:
# raise ValidationError("请选择适配刀片形状")
# if self.cutting_tool_type in ['刀杆', '刀盘']:
# if not self.compaction_way_id:
# raise ValidationError("请选择压紧方式")
# if self.cutting_tool_type == '刀片':
# if not self.suitable_coolant_ids:
# raise ValidationError("请选择适合冷却方式")
# elif self.cutting_tool_type == '整体式刀具':
# if not self.handle_type_id:
# raise ValidationError("请选择柄部类型")
# if not self.suitable_coolant_ids:
# raise ValidationError("请选择适合冷却方式")
# if not self.suitable_machining_method_ids:
# raise ValidationError("请选择适合加工方式")
# if not self.blade_tip_characteristics_id:
# raise ValidationError("请选择刀尖特征")
# if not self.cutting_direction_ids:
# raise ValidationError("请选择走刀方向")
cutting_speed_ids = fields.One2many('sf.cutting.speed', 'product_template_id', string='切削速度Vc')
feed_per_tooth_ids = fields.One2many('sf.feed.per.tooth', 'product_template_id', string='每齿走刀量fz')