Files
jikimo_sf/sf_manufacturing/wizard/cutting_tool_specification_wizard.py
2023-10-24 17:47:05 +08:00

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