diff --git a/sf_dlm/views/product_template_view.xml b/sf_dlm/views/product_template_view.xml index 2dd34d50..c475f529 100644 --- a/sf_dlm/views/product_template_view.xml +++ b/sf_dlm/views/product_template_view.xml @@ -12,17 +12,18 @@ widget="many2many_binary" attrs="{'invisible': ['|', ('categ_type', '!=', '成品'),('categ_type', '=', False)]}"/> + attrs="{'invisible': ['|','|', ('categ_type', '!=', '成品'),('categ_type', '=', False),('model_file', '=', False)]}"/> + + attrs="{'invisible': [('categ_type', 'not in', ['成品','坯料', '原材料'])]}"/> + attrs="{'invisible': [('categ_type', 'not in', ['成品','坯料', '原材料'])]}"/> @@ -30,8 +31,11 @@ + + - diff --git a/sf_maintenance/__manifest__.py b/sf_maintenance/__manifest__.py index eca38b9c..529c62fc 100644 --- a/sf_maintenance/__manifest__.py +++ b/sf_maintenance/__manifest__.py @@ -7,7 +7,7 @@ 'category': '工厂设备', 'description': """ Track equipments and maintenance requests""", - 'depends': ['maintenance', 'sf_base'], + 'depends': ['mrp_maintenance', 'sf_base'], 'summary': 'Track equipment and manage maintenance requests', 'data': [ 'security/group_security.xml', diff --git a/sf_manufacturing/__manifest__.py b/sf_manufacturing/__manifest__.py index 2f181b42..b13036ef 100644 --- a/sf_manufacturing/__manifest__.py +++ b/sf_manufacturing/__manifest__.py @@ -10,7 +10,7 @@ """, 'category': 'sf', 'website': 'https://www.sf.jikimo.com', - 'depends': ['mrp', 'sf_base', 'maintenance', 'web_widget_model_viewer', 'stock'], + 'depends': ['mrp', 'sf_base', 'mrp_maintenance', 'web_widget_model_viewer', 'stock'], 'data': [ 'data/stock_data.xml', 'security/group_security.xml', diff --git a/sf_manufacturing/models/product_template.py b/sf_manufacturing/models/product_template.py index 911f188c..07b87027 100644 --- a/sf_manufacturing/models/product_template.py +++ b/sf_manufacturing/models/product_template.py @@ -45,35 +45,37 @@ class ResProductMo(models.Model): cutting_tool_model_id = fields.Many2one('sf.cutting.tool.model', string='型号', ) - cutting_tool_parameter_brand_id = fields.Many2one('sf.machine.brand', '品牌') + brand_id = fields.Many2one('sf.machine.brand', '品牌') + tool_length = fields.Float('长度L[mm]') + tool_width = fields.Float('宽度D[mm])') + tool_height = fields.Float('高度T[mm]') + tool_weight = fields.Float('重量[kg]') # 整体式刀具参数 - cutting_tool_parameter_total_length = fields.Float('总长度[mm]') - cutting_tool_parameter_shank_length = fields.Float('柄部长度[mm]') - cutting_tool_parameter_blade_length = fields.Float('刃部长度[mm]') - cutting_tool_parameter_diameter = fields.Float('直径[mm]') - cutting_tool_parameter_blade_number = fields.Integer('刃数') - cutting_tool_parameter_front_angle = fields.Float('前角(°)') - cutting_tool_parameter_rear_angle = fields.Float('后角(°)') - cutting_tool_parameter_main_included_angle = fields.Float('主偏角(°)') - cutting_tool_parameter_material_model_id = fields.Many2one('sf.materials.model', '材料型号') - cutting_tool_parameter_nut = fields.Float('配对螺母[mm]') + cutting_tool_total_length = fields.Float('总长度[mm]') + cutting_tool_shank_length = fields.Float('柄部长度[mm]') + cutting_tool_blade_length = fields.Float('刃部长度[mm]') + cutting_tool_diameter = fields.Float('直径[mm]') + cutting_tool_blade_number = fields.Integer('刃数') + cutting_tool_front_angle = fields.Float('前角(°)') + cutting_tool_rear_angle = fields.Float('后角(°)') + cutting_tool_main_included_angle = fields.Float('主偏角(°)') + cutting_tool_material_model_id = fields.Many2one('sf.materials.model', '材料型号') + cutting_tool_nut = fields.Float('配对螺母[mm]') # 适用夹头型号可以多选 - cutting_tool_parameter_chuck_model_ids = fields.Many2many( + cutting_tool_chuck_model_ids = fields.Many2many( 'sf.cutting.tool.model', relation='product_cutting_tool_model_handle_chuck_rel', column1='model_id_1', column2='model_id_2', domain="[('mrs_cutting_tool_material_id.name', '=', '夹头')]", string='适用夹头型号') - cutting_tool_parameter_scope = fields.Char('适用范围') + cutting_tool_scope = fields.Char('适用范围') # 刀片参数 - cutting_tool_parameter_length = fields.Float('长度L[mm]') - cutting_tool_parameter_width = fields.Float('宽度D[mm])') - cutting_tool_parameter_height = fields.Float('高度T[mm]') - cutting_tool_parameter_top_angle = fields.Float('顶角(°)') - cutting_tool_parameter_r_angle = fields.Float('R角(°)') - cutting_tool_parameter_working_hardness = fields.Char('加工硬度') - cutting_tool_parameter_cutter_bar_ids = fields.Many2many( + + cutting_tool_top_angle = fields.Float('顶角(°)') + cutting_tool_r_angle = fields.Float('R角(°)') + cutting_tool_working_hardness = fields.Char('加工硬度') + cutting_tool_cutter_bar_ids = fields.Many2many( 'sf.cutting.tool.model', relation='product_cutting_tool_model_blade_cutter_bar_rel', column1='model_id_1', @@ -81,7 +83,7 @@ class ResProductMo(models.Model): domain="[('mrs_cutting_tool_material_id.name', '=', '刀杆')]", string='适用刀杆型号' ) - cutting_tool_parameter_cutter_pad_ids = fields.Many2many( + cutting_tool_cutter_pad_ids = fields.Many2many( 'sf.cutting.tool.model', relation='product_cutting_tool_model_blade_cutter_pad_rel', column1='model_id_1', @@ -89,12 +91,12 @@ class ResProductMo(models.Model): domain="[('mrs_cutting_tool_material_id.name', '=', '刀盘')]", string='适用刀盘型号' # 使用空列表作为默认值 ) - cutting_tool_parameter_radius = fields.Float('刀尖半径[mm]') + cutting_tool_radius = fields.Float('刀尖半径[mm]') # 刀杆/刀盘参数 - cutting_tool_parameter_c_diameter = fields.Float('C柄径[mm]') - cutting_tool_parameter_l_total_length = fields.Float('L总长[mm]') - cutting_tool_parameter_d_diameter = fields.Float('D刃径[mm]') - cutting_tool_parameter_blade_ids = fields.Many2many( + cutting_tool_c_diameter = fields.Float('C柄径[mm]') + cutting_tool_l_total_length = fields.Float('L总长[mm]') + cutting_tool_d_diameter = fields.Float('D刃径[mm]') + cutting_tool_blade_ids = fields.Many2many( 'sf.cutting.tool.model', relation='product_cutting_tool_model_pad_blade_rel', column1='model_id_1', @@ -102,26 +104,26 @@ class ResProductMo(models.Model): domain="[('mrs_cutting_tool_material_id.name', '=', '刀片')]", string='适用刀片型号' # 使用空列表作为默认值 ) - cutting_tool_parameter_wrench = fields.Float('配对扳手[mm]') - cutting_tool_parameter_screw = fields.Float('配备螺丝[mm]') - cutting_tool_parameter_accuracy_level = fields.Char('精度等级') - cutting_tool_parameter_rounded_corner = fields.Float('刀尖圆角半径[mm]') - cutting_tool_parameter_hardness = fields.Char('硬度(°)') + cutting_tool_wrench = fields.Float('配对扳手[mm]') + cutting_tool_screw = fields.Float('配备螺丝[mm]') + cutting_tool_accuracy_level = fields.Char('精度等级') + cutting_tool_rounded_corner = fields.Float('刀尖圆角半径[mm]') + cutting_tool_hardness = fields.Char('硬度(°)') # 刀柄参数 - cutting_tool_parameter_handle_length = fields.Float('L[mm]') - cutting_tool_parameter_length1 = fields.Float('L1[mm]') - cutting_tool_parameter_diameter1 = fields.Float('D1[mm]') - cutting_tool_parameter_weight = fields.Float('重量(kg)') - cutting_tool_parameter_body_accuracy = fields.Float('本体精度[mm]') - cutting_tool_parameter_clamping_range = fields.Float('夹持范围[mm]') - cutting_tool_parameter_detection_accuracy = fields.Float('检测精度') - cutting_tool_parameter_detection_hardness = fields.Float('检测硬度') - cutting_tool_parameter_standard_speed = fields.Float('标准转速') + cutting_tool_handle_length = fields.Float('L[mm]') + cutting_tool_length1 = fields.Float('L1[mm]') + cutting_tool_diameter1 = fields.Float('D1[mm]') + + cutting_tool_body_accuracy = fields.Float('本体精度[mm]') + cutting_tool_clamping_range = fields.Float('夹持范围[mm]') + cutting_tool_detection_accuracy = fields.Float('检测精度') + cutting_tool_detection_hardness = fields.Float('检测硬度') + cutting_tool_standard_speed = fields.Float('标准转速') # 夹头参数 - cutting_tool_parameter_accuracy = fields.Float('精度[mm]') - cutting_tool_parameter_outer_diameter = fields.Float('外径[mm]') - cutting_tool_parameter_inner_diameter = fields.Float('内径[mm]') - cutting_tool_parameter_handle_model_ids = fields.Many2many( + cutting_tool_accuracy = fields.Float('精度[mm]') + cutting_tool_outer_diameter = fields.Float('外径[mm]') + cutting_tool_inner_diameter = fields.Float('内径[mm]') + cutting_tool_handle_model_ids = fields.Many2many( 'sf.cutting.tool.model', relation='product_cutting_tool_model_chuck_handle_rel', column1='model_id_1', @@ -129,7 +131,25 @@ class ResProductMo(models.Model): domain="[('mrs_cutting_tool_material_id.name', '=', '刀柄')]", string='适用刀柄型号' ) - cutting_tool_parameter_feature = fields.Char('特性') + cutting_tool_feature = fields.Char('特性') + # 夹具参数 + fixture_material_id = fields.Many2one('sf.fixture.material', string="夹具物料") + fixture_model_id = fields.Many2one('sf.fixture.model', string="夹具型号") + fixture_material_type = fields.Char(string="夹具物料类型", related='fixture_material_id.name') + fixture_multi_mounting_type_id = fields.Many2one('sf.multi_mounting.type', string="联装类型") + fixture_clamping_way = fields.Char(string="装夹方式") + fixture_port_type = fields.Char(string="接口类型") + fixture_model_file = fields.Binary(string="3D模型图") + fixture_clamp_workpiece_length_max = fields.Char(string="夹持工件长度MAX[mm]") + fixture_clamp_workpiece_width_max = fields.Char(string="夹持工件宽度MAX[mm]") + fixture_clamp_workpiece_height_max = fields.Char(string="夹持工件高度MAX[mm]") + fixture_clamp_workpiece_diameter_max = fields.Char(string="夹持工件直径MAX[mm]") + fixture_maximum_carrying_weight = fields.Char(string="最大承载重量[kg]") + fixture_maximum_clamping_force = fields.Char(string="最大夹持力[n]") + fixture_driving_way = fields.Char(string="驱动方式") + fixture_apply_machine_tool_type = fields.Char(string="适用机床型号") + fixture_through_hole_size = fields.Integer(string="过孔大小[mm]", size=6) + fixture_screw_size = fields.Integer(string="螺牙大小[mm]", size=6) def _get_ids(self, param): type_ids = [] @@ -141,159 +161,271 @@ class ResProductMo(models.Model): @api.onchange('categ_id') def _onchange_categ_id(self): - if self.categ_type == '刀具': + if self.categ_type in ('刀具', '夹具'): self.invoice_policy = 'delivery' self.sale_ok = False - + @api.onchange('cutting_tool_material_id') def _onchange_cutting_tool_material_id(self): for item in self: if item.cutting_tool_material_id.id != item.cutting_tool_model_id.mrs_cutting_tool_material_id.id: item.cutting_tool_model_id = False - @api.onchange('cutting_tool_model_id') - def _onchange_cutting_tool_model_id_id(self): + @api.onchange('fixture_model_id') + def _onchange_fixture_model_id(self): for item in self: if self.cutting_tool_type == '整体式刀具': - item.cutting_tool_parameter_brand_id = item.cutting_tool_model_id.mrs_machine_brand_id.id - item.cutting_tool_parameter_total_length = item.cutting_tool_model_id.integral_total_length - item.cutting_tool_parameter_shank_length = item.cutting_tool_model_id.integral_shank_length - item.cutting_tool_parameter_blade_length = item.cutting_tool_model_id.integral_blade_length - item.cutting_tool_parameter_diameter = item.cutting_tool_model_id.integral_diameter - item.cutting_tool_parameter_nut = item.cutting_tool_model_id.integral_nut - item.cutting_tool_parameter_blade_number = item.cutting_tool_model_id.integral_blade_number - item.cutting_tool_parameter_material_model_id = item.cutting_tool_model_id.mrs_materials_model_id.id - item.cutting_tool_parameter_front_angle = item.cutting_tool_model_id.integral_front_angle - item.cutting_tool_parameter_rear_angle = item.cutting_tool_model_id.integral_rear_angle - item.cutting_tool_parameter_main_included_angle = item.cutting_tool_model_id.integral_main_included_angle - # item.cutting_tool_parameter_chuck_model_ids = self._get_ids( - # item.cutting_tool_model_id.mrs_materials_model_id.id) - item.cutting_tool_parameter_scope = item.cutting_tool_model_id.integral_scope + item.brand_id = item.cutting_tool_model_id.mrs_machine_brand_id.id + item.cutting_tool_total_length = item.cutting_tool_model_id.integral_total_length + item.cutting_tool_shank_length = item.cutting_tool_model_id.integral_shank_length + item.cutting_tool_blade_length = item.cutting_tool_model_id.integral_blade_length + item.cutting_tool_diameter = item.cutting_tool_model_id.integral_diameter + item.cutting_tool_nut = item.cutting_tool_model_id.integral_nut + item.cutting_tool_blade_number = item.cutting_tool_model_id.integral_blade_number + item.cutting_tool_material_model_id = item.cutting_tool_model_id.mrs_materials_model_id.id + item.cutting_tool_front_angle = item.cutting_tool_model_id.integral_front_angle + item.cutting_tool_rear_angle = item.cutting_tool_model_id.integral_rear_angle + item.cutting_tool_main_included_angle = item.cutting_tool_model_id.integral_main_included_angle + item.cutting_tool_chuck_model_ids = self._get_ids( + item.cutting_tool_model_id.mrs_cutting_tool_model_handle_chuck_model_ids) + item.cutting_tool_scope = item.cutting_tool_model_id.integral_scope item.image_1920 = '' if not item.cutting_tool_model_id.image else item.cutting_tool_model_id.image elif self.cutting_tool_type == '刀片': - item.cutting_tool_parameter_brand_id = item.cutting_tool_model_id.mrs_machine_brand_id.id - item.cutting_tool_parameter_top_angle = item.cutting_tool_model_id.blade_top_angle - item.cutting_tool_parameter_front_angle = item.cutting_tool_model_id.blade_front_angle - item.cutting_tool_parameter_rear_angle = item.cutting_tool_model_id.blade_rear_angle - item.cutting_tool_parameter_main_included_angle = item.cutting_tool_model_id.blade_main_included_angle - item.cutting_tool_parameter_r_angle = item.cutting_tool_model_id.blade_r_angle - item.cutting_tool_parameter_working_hardness = item.cutting_tool_model_id.blade_hardness - item.cutting_tool_parameter_material_model_id = item.cutting_tool_model_id.mrs_materials_model_id.id - item.cutting_tool_parameter_length = item.cutting_tool_model_id.blade_length - item.cutting_tool_parameter_width = item.cutting_tool_model_id.blade_width - item.cutting_tool_parameter_height = item.cutting_tool_model_id.blade_height - item.cutting_tool_parameter_radius = item.cutting_tool_model_id.blade_radius - item.cutting_tool_parameter_nut = item.cutting_tool_model_id.blade_nut - item.cutting_tool_parameter_cutter_bar_ids = self._get_ids( + item.brand_id = item.cutting_tool_model_id.mrs_machine_brand_id.id + item.cutting_tool_top_angle = item.cutting_tool_model_id.blade_top_angle + item.cutting_tool_front_angle = item.cutting_tool_model_id.blade_front_angle + item.cutting_tool_rear_angle = item.cutting_tool_model_id.blade_rear_angle + item.cutting_tool_main_included_angle = item.cutting_tool_model_id.blade_main_included_angle + item.cutting_tool_r_angle = item.cutting_tool_model_id.blade_r_angle + item.cutting_tool_working_hardness = item.cutting_tool_model_id.blade_hardness + item.cutting_tool_material_model_id = item.cutting_tool_model_id.mrs_materials_model_id.id + item.tool_length = item.cutting_tool_model_id.blade_length + item.tool_width = item.cutting_tool_model_id.blade_width + item.tool_height = item.cutting_tool_model_id.blade_height + item.cutting_tool_radius = item.cutting_tool_model_id.blade_radius + item.cutting_tool_nut = item.cutting_tool_model_id.blade_nut + item.cutting_tool_cutter_bar_ids = self._get_ids( item.cutting_tool_model_id.mrs_cutting_tool_model_blade_cutter_bar_ids) - item.cutting_tool_parameter_cutter_pad_ids = self._get_ids( + item.cutting_tool_cutter_pad_ids = self._get_ids( item.cutting_tool_model_id.mrs_cutting_tool_model_blade_cutter_pad_ids) item.image_1920 = '' if not item.cutting_tool_model_id.image else item.cutting_tool_model_id.image elif self.cutting_tool_type == '刀杆': - item.cutting_tool_parameter_brand_id = item.cutting_tool_model_id.mrs_machine_brand_id.id - item.cutting_tool_parameter_c_diameter = item.cutting_tool_model_id.bar_c_diameter - item.cutting_tool_parameter_d_diameter = item.cutting_tool_model_id.bar_d_diameter - item.cutting_tool_parameter_l_total_length = item.cutting_tool_model_id.bar_total_length - item.cutting_tool_parameter_wrench = item.cutting_tool_model_id.bar_wrench - item.cutting_tool_parameter_screw = item.cutting_tool_model_id.bar_screw - item.cutting_tool_parameter_blade_ids = self._get_ids( + item.brand_id = item.cutting_tool_model_id.mrs_machine_brand_id.id + item.cutting_tool_c_diameter = item.cutting_tool_model_id.bar_c_diameter + item.cutting_tool_d_diameter = item.cutting_tool_model_id.bar_d_diameter + item.cutting_tool_l_total_length = item.cutting_tool_model_id.bar_total_length + item.cutting_tool_wrench = item.cutting_tool_model_id.bar_wrench + item.cutting_tool_screw = item.cutting_tool_model_id.bar_screw + item.cutting_tool_blade_ids = self._get_ids( item.cutting_tool_model_id.mrs_cutting_tool_model_pad_blade_ids) - item.cutting_tool_parameter_scope = item.cutting_tool_model_id.bar_scope - item.cutting_tool_parameter_material_model_id = item.cutting_tool_model_id.mrs_materials_model_id.id - item.cutting_tool_parameter_rounded_corner = item.cutting_tool_model_id.bar_radius - item.cutting_tool_parameter_accuracy_level = item.cutting_tool_model_id.bar_accuracy - item.cutting_tool_parameter_blade_number = item.cutting_tool_model_id.bar_blade_number - item.cutting_tool_parameter_hardness = item.cutting_tool_model_id.bar_hardness + item.cutting_tool_scope = item.cutting_tool_model_id.bar_scope + item.cutting_tool_material_model_id = item.cutting_tool_model_id.mrs_materials_model_id.id + item.cutting_tool_rounded_corner = item.cutting_tool_model_id.bar_radius + item.cutting_tool_accuracy_level = item.cutting_tool_model_id.bar_accuracy + item.cutting_tool_blade_number = item.cutting_tool_model_id.bar_blade_number + item.cutting_tool_hardness = item.cutting_tool_model_id.bar_hardness item.image_1920 = '' if not item.cutting_tool_model_id.image else item.cutting_tool_model_id.image elif self.cutting_tool_type == '刀盘': - item.cutting_tool_parameter_brand_id = item.cutting_tool_model_id.mrs_machine_brand_id.id - item.cutting_tool_parameter_c_diameter = item.cutting_tool_model_id.pad_c_diameter - item.cutting_tool_parameter_d_diameter = item.cutting_tool_model_id.pad_d_diameter - item.cutting_tool_parameter_l_total_length = item.cutting_tool_model_id.pad_total_length - item.cutting_tool_parameter_wrench = item.cutting_tool_model_id.pad_wrench - item.cutting_tool_parameter_screw = item.cutting_tool_model_id.pad_screw - item.cutting_tool_parameter_blade_ids = self._get_ids( + item.brand_id = item.cutting_tool_model_id.mrs_machine_brand_id.id + item.cutting_tool_c_diameter = item.cutting_tool_model_id.pad_c_diameter + item.cutting_tool_d_diameter = item.cutting_tool_model_id.pad_d_diameter + item.cutting_tool_l_total_length = item.cutting_tool_model_id.pad_total_length + item.cutting_tool_wrench = item.cutting_tool_model_id.pad_wrench + item.cutting_tool_screw = item.cutting_tool_model_id.pad_screw + item.cutting_tool_blade_ids = self._get_ids( item.cutting_tool_model_id.mrs_cutting_tool_model_pad_blade_ids) - item.cutting_tool_parameter_scope = item.cutting_tool_model_id.pad_scope - item.cutting_tool_parameter_material_model_id = item.cutting_tool_model_id.mrs_materials_model_id.id - item.cutting_tool_parameter_rounded_corner = item.cutting_tool_model_id.pad_radius - item.cutting_tool_parameter_accuracy_level = item.cutting_tool_model_id.pad_accuracy - item.cutting_tool_parameter_blade_number = item.cutting_tool_model_id.pad_blade_number - item.cutting_tool_parameter_hardness = item.cutting_tool_model_id.pad_hardness + item.cutting_tool_scope = item.cutting_tool_model_id.pad_scope + item.cutting_tool_material_model_id = item.cutting_tool_model_id.mrs_materials_model_id.id + item.cutting_tool_rounded_corner = item.cutting_tool_model_id.pad_radius + item.cutting_tool_accuracy_level = item.cutting_tool_model_id.pad_accuracy + item.cutting_tool_blade_number = item.cutting_tool_model_id.pad_blade_number + item.cutting_tool_hardness = item.cutting_tool_model_id.pad_hardness item.image_1920 = '' if not item.cutting_tool_model_id.image else item.cutting_tool_model_id.image elif self.cutting_tool_type == '刀柄': - item.cutting_tool_parameter_brand_id = item.cutting_tool_model_id.mrs_machine_brand_id.id - item.cutting_tool_parameter_handle_length = item.cutting_tool_model_id.handle_length - item.cutting_tool_parameter_length1 = item.cutting_tool_model_id.handle_length - item.cutting_tool_parameter_diameter1 = item.cutting_tool_model_id.handle_diameter - item.cutting_tool_parameter_body_accuracy = item.cutting_tool_model_id.handle_body_accuracy - item.cutting_tool_parameter_nut = item.cutting_tool_model_id.handle_nut - item.cutting_tool_parameter_clamping_range = item.cutting_tool_model_id.handle_clamping_range - item.cutting_tool_parameter_weight = item.cutting_tool_model_id.handle_weight - item.cutting_tool_parameter_material_model_id = item.cutting_tool_model_id.mrs_materials_model_id.id - item.cutting_tool_parameter_chuck_model_ids = self._get_ids( + item.brand_id = item.cutting_tool_model_id.mrs_machine_brand_id.id + item.cutting_tool_handle_length = item.cutting_tool_model_id.handle_length + item.cutting_tool_length1 = item.cutting_tool_model_id.handle_length + item.cutting_tool_diameter1 = item.cutting_tool_model_id.handle_diameter + item.cutting_tool_body_accuracy = item.cutting_tool_model_id.handle_body_accuracy + item.cutting_tool_nut = item.cutting_tool_model_id.handle_nut + item.cutting_tool_clamping_range = item.cutting_tool_model_id.handle_clamping_range + item.tool_weight = item.cutting_tool_model_id.handle_weight + item.cutting_tool_material_model_id = item.cutting_tool_model_id.mrs_materials_model_id.id + item.cutting_tool_chuck_model_ids = self._get_ids( item.cutting_tool_model_id.mrs_cutting_tool_model_handle_chuck_model_ids) - item.cutting_tool_parameter_detection_accuracy = item.cutting_tool_model_id.handle_detection_accuracy - item.cutting_tool_parameter_detection_hardness = item.cutting_tool_model_id.handle_detection_hardness - item.cutting_tool_parameter_standard_speed = item.cutting_tool_model_id.handle_standard_speed + item.cutting_tool_detection_accuracy = item.cutting_tool_model_id.handle_detection_accuracy + item.cutting_tool_detection_hardness = item.cutting_tool_model_id.handle_detection_hardness + item.cutting_tool_standard_speed = item.cutting_tool_model_id.handle_standard_speed item.image_1920 = '' if not item.cutting_tool_model_id.image else item.cutting_tool_model_id.image elif self.cutting_tool_type == '夹头': - item.cutting_tool_parameter_brand_id = item.cutting_tool_model_id.mrs_machine_brand_id.id - item.cutting_tool_parameter_outer_diameter = item.cutting_tool_model_id.chuck_diameter - item.cutting_tool_parameter_inner_diameter = item.cutting_tool_model_id.chuck_inner_diameter - item.cutting_tool_parameter_accuracy = item.cutting_tool_model_id.chuck_accuracy - item.cutting_tool_parameter_nut = item.cutting_tool_model_id.chuck_nut - item.cutting_tool_parameter_clamping_range = item.cutting_tool_model_id.chuck_clamping_range - item.cutting_tool_parameter_handle_model_ids = self._get_ids( + item.brand_id = item.cutting_tool_model_id.mrs_machine_brand_id.id + item.cutting_tool_outer_diameter = item.cutting_tool_model_id.chuck_diameter + item.cutting_tool_inner_diameter = item.cutting_tool_model_id.chuck_inner_diameter + item.cutting_tool_accuracy = item.cutting_tool_model_id.chuck_accuracy + item.cutting_tool_nut = item.cutting_tool_model_id.chuck_nut + item.cutting_tool_clamping_range = item.cutting_tool_model_id.chuck_clamping_range + item.cutting_tool_handle_model_ids = self._get_ids( item.cutting_tool_model_id.mrs_cutting_tool_model_chuck_handle_model_ids) - item.cutting_tool_parameter_material_model_id = item.cutting_tool_model_id.mrs_materials_model_id.id - item.cutting_tool_parameter_height = item.cutting_tool_model_id.chuck_height - item.cutting_tool_parameter_feature = item.cutting_tool_model_id.chuck_feature + item.cutting_tool_material_model_id = item.cutting_tool_model_id.mrs_materials_model_id.id + item.tool_height = item.cutting_tool_model_id.chuck_height + item.cutting_tool_feature = item.cutting_tool_model_id.chuck_feature item.image_1920 = '' if not item.cutting_tool_model_id.image else item.cutting_tool_model_id.image else: - item.cutting_tool_parameter_brand_id = False - item.cutting_tool_parameter_total_length = False - item.cutting_tool_parameter_shank_length = False - item.cutting_tool_parameter_blade_length = False - item.cutting_tool_parameter_diameter = False - item.cutting_tool_parameter_nut = False - item.cutting_tool_parameter_blade_number = False - item.cutting_tool_parameter_material_model_id = False - item.cutting_tool_parameter_front_angle = False - item.cutting_tool_parameter_rear_angle = False - item.cutting_tool_parameter_main_included_angle = False - item.cutting_tool_parameter_chuck_model_ids = False - item.cutting_tool_parameter_scope = False - item.cutting_tool_parameter_top_angle = False - item.cutting_tool_parameter_r_angle = False - item.cutting_tool_parameter_working_hardness = False - item.cutting_tool_parameter_length = False - item.cutting_tool_parameter_width = False - item.cutting_tool_parameter_height = False - item.cutting_tool_parameter_radius = False - item.cutting_tool_parameter_cutter_bar_ids = False - item.cutting_tool_parameter_cutter_pad_ids = False - item.cutting_tool_parameter_c_diameter = False - item.cutting_tool_parameter_d_diameter = False - item.cutting_tool_parameter_l_total_length = False - item.cutting_tool_parameter_wrench = False - item.cutting_tool_parameter_screw = False - item.cutting_tool_parameter_blade_ids = False - item.cutting_tool_parameter_rounded_corner = False - item.cutting_tool_parameter_accuracy_level = False - item.cutting_tool_parameter_hardness = False - item.cutting_tool_parameter_handle_length = False - item.cutting_tool_parameter_length1 = False - item.cutting_tool_parameter_diameter1 = False - item.cutting_tool_parameter_body_accuracy = False - item.cutting_tool_parameter_clamping_range = False - item.cutting_tool_parameter_weight = False - item.cutting_tool_parameter_detection_accuracy = False - item.cutting_tool_parameter_detection_hardness = False - item.cutting_tool_parameter_standard_speed = False + item.brand_id = False + item.cutting_tool_total_length = False + item.cutting_tool_shank_length = False + item.cutting_tool_blade_length = False + item.cutting_tool_diameter = False + item.cutting_tool_nut = False + item.cutting_tool_blade_number = False + item.cutting_tool_material_model_id = False + item.cutting_tool_front_angle = False + item.cutting_tool_rear_angle = False + item.cutting_tool_main_included_angle = False + item.cutting_tool_chuck_model_ids = False + item.cutting_tool_scope = False + + @api.onchange('cutting_tool_model_id') + def _onchange_cutting_tool_model_id(self): + for item in self: + if self.cutting_tool_type == '整体式刀具': + item.brand_id = item.cutting_tool_model_id.mrs_machine_brand_id.id + item.cutting_tool_total_length = item.cutting_tool_model_id.integral_total_length + item.cutting_tool_shank_length = item.cutting_tool_model_id.integral_shank_length + item.cutting_tool_blade_length = item.cutting_tool_model_id.integral_blade_length + item.cutting_tool_diameter = item.cutting_tool_model_id.integral_diameter + item.cutting_tool_nut = item.cutting_tool_model_id.integral_nut + item.cutting_tool_blade_number = item.cutting_tool_model_id.integral_blade_number + item.cutting_tool_material_model_id = item.cutting_tool_model_id.mrs_materials_model_id.id + item.cutting_tool_front_angle = item.cutting_tool_model_id.integral_front_angle + item.cutting_tool_rear_angle = item.cutting_tool_model_id.integral_rear_angle + item.cutting_tool_main_included_angle = item.cutting_tool_model_id.integral_main_included_angle + item.cutting_tool_chuck_model_ids = self._get_ids( + item.cutting_tool_model_id.mrs_cutting_tool_model_handle_chuck_model_ids) + item.cutting_tool_scope = item.cutting_tool_model_id.integral_scope + item.image_1920 = '' if not item.cutting_tool_model_id.image else item.cutting_tool_model_id.image + elif self.cutting_tool_type == '刀片': + item.brand_id = item.cutting_tool_model_id.mrs_machine_brand_id.id + item.cutting_tool_top_angle = item.cutting_tool_model_id.blade_top_angle + item.cutting_tool_front_angle = item.cutting_tool_model_id.blade_front_angle + item.cutting_tool_rear_angle = item.cutting_tool_model_id.blade_rear_angle + item.cutting_tool_main_included_angle = item.cutting_tool_model_id.blade_main_included_angle + item.cutting_tool_r_angle = item.cutting_tool_model_id.blade_r_angle + item.cutting_tool_working_hardness = item.cutting_tool_model_id.blade_hardness + item.cutting_tool_material_model_id = item.cutting_tool_model_id.mrs_materials_model_id.id + item.tool_length = item.cutting_tool_model_id.blade_length + item.tool_width = item.cutting_tool_model_id.blade_width + item.tool_height = item.cutting_tool_model_id.blade_height + item.cutting_tool_radius = item.cutting_tool_model_id.blade_radius + item.cutting_tool_nut = item.cutting_tool_model_id.blade_nut + item.cutting_tool_cutter_bar_ids = self._get_ids( + item.cutting_tool_model_id.mrs_cutting_tool_model_blade_cutter_bar_ids) + item.cutting_tool_cutter_pad_ids = self._get_ids( + item.cutting_tool_model_id.mrs_cutting_tool_model_blade_cutter_pad_ids) + item.image_1920 = '' if not item.cutting_tool_model_id.image else item.cutting_tool_model_id.image + elif self.cutting_tool_type == '刀杆': + item.brand_id = item.cutting_tool_model_id.mrs_machine_brand_id.id + item.cutting_tool_c_diameter = item.cutting_tool_model_id.bar_c_diameter + item.cutting_tool_d_diameter = item.cutting_tool_model_id.bar_d_diameter + item.cutting_tool_l_total_length = item.cutting_tool_model_id.bar_total_length + item.cutting_tool_wrench = item.cutting_tool_model_id.bar_wrench + item.cutting_tool_screw = item.cutting_tool_model_id.bar_screw + item.cutting_tool_blade_ids = self._get_ids( + item.cutting_tool_model_id.mrs_cutting_tool_model_pad_blade_ids) + item.cutting_tool_scope = item.cutting_tool_model_id.bar_scope + item.cutting_tool_material_model_id = item.cutting_tool_model_id.mrs_materials_model_id.id + item.cutting_tool_rounded_corner = item.cutting_tool_model_id.bar_radius + item.cutting_tool_accuracy_level = item.cutting_tool_model_id.bar_accuracy + item.cutting_tool_blade_number = item.cutting_tool_model_id.bar_blade_number + item.cutting_tool_hardness = item.cutting_tool_model_id.bar_hardness + item.image_1920 = '' if not item.cutting_tool_model_id.image else item.cutting_tool_model_id.image + elif self.cutting_tool_type == '刀盘': + item.brand_id = item.cutting_tool_model_id.mrs_machine_brand_id.id + item.cutting_tool_c_diameter = item.cutting_tool_model_id.pad_c_diameter + item.cutting_tool_d_diameter = item.cutting_tool_model_id.pad_d_diameter + item.cutting_tool_l_total_length = item.cutting_tool_model_id.pad_total_length + item.cutting_tool_wrench = item.cutting_tool_model_id.pad_wrench + item.cutting_tool_screw = item.cutting_tool_model_id.pad_screw + item.cutting_tool_blade_ids = self._get_ids( + item.cutting_tool_model_id.mrs_cutting_tool_model_pad_blade_ids) + item.cutting_tool_scope = item.cutting_tool_model_id.pad_scope + item.cutting_tool_material_model_id = item.cutting_tool_model_id.mrs_materials_model_id.id + item.cutting_tool_rounded_corner = item.cutting_tool_model_id.pad_radius + item.cutting_tool_accuracy_level = item.cutting_tool_model_id.pad_accuracy + item.cutting_tool_blade_number = item.cutting_tool_model_id.pad_blade_number + item.cutting_tool_hardness = item.cutting_tool_model_id.pad_hardness + item.image_1920 = '' if not item.cutting_tool_model_id.image else item.cutting_tool_model_id.image + elif self.cutting_tool_type == '刀柄': + item.brand_id = item.cutting_tool_model_id.mrs_machine_brand_id.id + item.cutting_tool_handle_length = item.cutting_tool_model_id.handle_length + item.cutting_tool_length1 = item.cutting_tool_model_id.handle_length + item.cutting_tool_diameter1 = item.cutting_tool_model_id.handle_diameter + item.cutting_tool_body_accuracy = item.cutting_tool_model_id.handle_body_accuracy + item.cutting_tool_nut = item.cutting_tool_model_id.handle_nut + item.cutting_tool_clamping_range = item.cutting_tool_model_id.handle_clamping_range + item.tool_weight = item.cutting_tool_model_id.handle_weight + item.cutting_tool_material_model_id = item.cutting_tool_model_id.mrs_materials_model_id.id + item.cutting_tool_chuck_model_ids = self._get_ids( + item.cutting_tool_model_id.mrs_cutting_tool_model_handle_chuck_model_ids) + item.cutting_tool_detection_accuracy = item.cutting_tool_model_id.handle_detection_accuracy + item.cutting_tool_detection_hardness = item.cutting_tool_model_id.handle_detection_hardness + item.cutting_tool_standard_speed = item.cutting_tool_model_id.handle_standard_speed + item.image_1920 = '' if not item.cutting_tool_model_id.image else item.cutting_tool_model_id.image + elif self.cutting_tool_type == '夹头': + item.brand_id = item.cutting_tool_model_id.mrs_machine_brand_id.id + item.cutting_tool_outer_diameter = item.cutting_tool_model_id.chuck_diameter + item.cutting_tool_inner_diameter = item.cutting_tool_model_id.chuck_inner_diameter + item.cutting_tool_accuracy = item.cutting_tool_model_id.chuck_accuracy + item.cutting_tool_nut = item.cutting_tool_model_id.chuck_nut + item.cutting_tool_clamping_range = item.cutting_tool_model_id.chuck_clamping_range + item.cutting_tool_handle_model_ids = self._get_ids( + item.cutting_tool_model_id.mrs_cutting_tool_model_chuck_handle_model_ids) + item.cutting_tool_material_model_id = item.cutting_tool_model_id.mrs_materials_model_id.id + item.tool_height = item.cutting_tool_model_id.chuck_height + item.cutting_tool_feature = item.cutting_tool_model_id.chuck_feature + item.image_1920 = '' if not item.cutting_tool_model_id.image else item.cutting_tool_model_id.image + else: + item.brand_id = False + item.cutting_tool_total_length = False + item.cutting_tool_shank_length = False + item.cutting_tool_blade_length = False + item.cutting_tool_diameter = False + item.cutting_tool_nut = False + item.cutting_tool_blade_number = False + item.cutting_tool_material_model_id = False + item.cutting_tool_front_angle = False + item.cutting_tool_rear_angle = False + item.cutting_tool_main_included_angle = False + item.cutting_tool_chuck_model_ids = False + item.cutting_tool_scope = False + item.cutting_tool_top_angle = False + item.cutting_tool_r_angle = False + item.cutting_tool_working_hardness = False + item.tool_length = False + item.tool_width = False + item.tool_height = False + item.cutting_tool_radius = False + item.cutting_tool_cutter_bar_ids = False + item.cutting_tool_cutter_pad_ids = False + item.cutting_tool_c_diameter = False + item.cutting_tool_d_diameter = False + item.cutting_tool_l_total_length = False + item.cutting_tool_wrench = False + item.cutting_tool_screw = False + item.cutting_tool_blade_ids = False + item.cutting_tool_rounded_corner = False + item.cutting_tool_accuracy_level = False + item.cutting_tool_hardness = False + item.cutting_tool_handle_length = False + item.cutting_tool_length1 = False + item.cutting_tool_diameter1 = False + item.cutting_tool_body_accuracy = False + item.cutting_tool_clamping_range = False + item.tool_weight = False + item.cutting_tool_detection_accuracy = False + item.cutting_tool_detection_hardness = False + item.cutting_tool_standard_speed = False item.image_1920 = False - # if self.cutting_tool_material_id != self.cutting_tool_model_id.mrs_cutting_tool_material_id: - # self.cutting_tool_model_id = False class ResMrpBomMo(models.Model):