126 lines
8.0 KiB
Python
126 lines
8.0 KiB
Python
# -*- 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
|
|
|
|
|