# -*- 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)]) @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 def choose_basic_param(self): self.product_id.brand_id = self.brand_id.id # self.product_id.brand_id = self.brand_id.id # if self.cutting_tool_type == '整体式刀具': # self.product_id.brand_id = self.brand_id.id # # elif self.cutting_tool_type == '刀片': # # elif self.cutting_tool_type == '刀杆': # # elif self.cutting_tool_type == '刀盘': # # elif self.cutting_tool_type == '刀柄':