# -*- coding: utf-8 -*- from odoo import models, fields, api, _ from odoo.exceptions import ValidationError import logging _logger = logging.getLogger(__name__) class Cutting_toolSpecificationWizard(models.TransientModel): _name = "sf.cutting_tool.specification.wizard" _description = u'刀具规格' product_id = fields.Many2one('product.template', string='产品') cutting_tool_library_id = fields.Many2one('sf.cutting_tool.standard.library', '刀具标准库') cutting_tool_material_id = fields.Many2one('sf.cutting.tool.material', '刀具物料') cutting_tool_type = fields.Char(related=cutting_tool_material_id.name) cutting_tool_type_id = fields.Many2one('sf.cutting.tool.type', '刀具类型', compute='set_specification') brand_id = fields.Many2one('sf.machine.brand', '品牌', compute='set_specification') integral_tool_basic_parameters_ids = fields.One2many('sf.tool.materials.basic.parameters', 'specification_id', string='整体式刀具基本参数', compute='set_specification') blade_basic_parameters_ids = fields.One2many('sf.tool.materials.basic.parameters', 'specification_id', string='刀片基本参数', compute='set_specification') cutter_bar_basic_parameters_ids = fields.One2many('sf.tool.materials.basic.parameters', 'specification_id', string='刀杆基本参数', compute='set_specification') cutter_head_basic_parameters_ids = fields.One2many('sf.tool.materials.basic.parameters', 'specification_id', string='刀盘基本参数', compute='set_specification') knife_handle_basic_parameters_ids = fields.One2many('sf.tool.materials.basic.parameters', 'specification_id', string='刀柄基本参数', compute='set_specification') chuck_basic_parameters_ids = fields.One2many('sf.tool.materials.basic.parameters', 'specification_id', string='夹头基本参数', compute='set_specification') cutting_speed_ids = fields.One2many('sf.cutting.speed', 'specification_id', string='切削速度Vc') feed_per_tooth_ids = fields.One2many('sf.feed.per.tooth', 'specification_id', '每齿走刀量fz', domain=[('cutting_speed', '!=', False)]) feed_per_tooth_ids_2 = fields.One2many('sf.feed.per.tooth', 'specification_id', '每齿走刀量fz', domain=[('machining_method', '!=', False)]) feed_per_tooth_ids_3 = fields.One2many('sf.feed.per.tooth', 'specification_id', '每齿走刀量fz', domain=[('cutting_speed', '!=', False)]) feed_per_tooth_ids_4 = fields.One2many('sf.feed.per.tooth', 'specification_id', '每齿走刀量fz', domain=[('machining_method', '!=', False)]) def choose_basic_param(self): self.product_id.brand_id = self.brand_id.id self.product_id.cutting_tool_type_id = self.cutting_tool_type_id.id record = self.integral_tool_basic_parameters_ids.browse(id) # selected_record = self.integral_tool_basic_parameters_ids.browse(self._context.get('active_id')) if self.cutting_tool_type == '整体式刀具': for record in self.integral_tool_basic_parameters_ids: selected_record1 = self.env['sf.tool.materials.basic.parameters'].browse(self._context.get('active_id')) # 获取选中记录的字段值 self.product_id.cutting_tool_total_length = selected_record1.total_length # self.product_id.blade_diameter = self.integral_tool_basic_parameters_ids[0].blade_diameter # self.product_id.blade_length = self.integral_tool_basic_parameters_ids[0].blade_length # self.product_id.blade = self.integral_tool_basic_parameters_ids[0].shank_diameter # self.product_id.shank_length = self.integral_tool_basic_parameters_ids[0].shank_length # elif self.cutting_tool_type == '刀片': # # elif self.cutting_tool_type == '刀杆': # # elif self.cutting_tool_type == '刀盘': # # elif self.cutting_tool_type == '刀柄': @api.depends('cutting_tool_library_id', 'cutting_tool_type') def set_specification(self): self.integral_tool_basic_parameters_ids = False self.blade_basic_parameters_ids = False self.cutter_bar_basic_parameters_ids = False self.cutter_head_basic_parameters_ids = False self.knife_handle_basic_parameters_ids = False self.chuck_basic_parameters_ids = False self.cutting_tool_type_id = False self.brand_id = False if self.cutting_tool_library_id: for item in self: item.cutting_tool_type_id = self.cutting_tool_library_id.cutting_tool_type_id.id item.brand_id = self.cutting_tool_library_id.brand_id.id if item.cutting_tool_type == '整体式刀具': integral_tool_basic_parameters = [] for line in item.cutting_tool_library_id.integral_tool_basic_parameters_ids: integral_tool_basic_parameters.append( self.env['sf.tool.materials.basic.parameters']._json_integral_tool_basic_param( line)) item.integral_tool_basic_parameters_ids = integral_tool_basic_parameters elif item.cutting_tool_type == '刀片': blade_basic_parameters = [] for line in item.cutting_tool_library_id.blade_basic_parameters_ids: blade_basic_parameters.append( self.env['sf.tool.materials.basic.parameters']._json_blade_basic_param(line)) item.blade_basic_parameters_ids = blade_basic_parameters elif item.cutting_tool_type == '刀杆': cutter_bar_basic_parameters = [] for line in item.cutting_tool_library_id.cutter_bar_basic_parameters_ids: cutter_bar_basic_parameters.append( self.env['sf.tool.materials.basic.parameters']._json_cutter_bar_basic_param(line)) item.cutter_bar_basic_parameters_ids = cutter_bar_basic_parameters elif item.cutting_tool_type == '刀盘': cutter_head_basic_parameters = [] for line in item.cutting_tool_library_id.cutter_head_basic_parameters_ids: cutter_head_basic_parameters.append( self.env['sf.tool.materials.basic.parameters']._json_cutter_head_basic_param(line)) item.cutter_head_basic_parameters_ids = cutter_head_basic_parameters elif item.cutting_tool_type == '刀柄': knife_handle_basic_parameters = [] for line in item.cutting_tool_library_id.knife_handle_basic_parameters_ids: knife_handle_basic_parameters.append( self.env['sf.tool.materials.basic.parameters']._json_knife_handle_basic_param(line)) item.knife_handle_basic_parameters_ids = knife_handle_basic_parameters elif item.cutting_tool_type == '夹头': chuck_basic_parameters = [] for line in item.cutting_tool_library_id.chuck_basic_parameters_ids: chuck_basic_parameters.append( self.env['sf.tool.materials.basic.parameters']._json_chuck_basic_param(line)) item.chuck_basic_parameters_ids = chuck_basic_parameters