diff --git a/sf_base/models/tool_other_features.py b/sf_base/models/tool_other_features.py
index 56c8c8a6..80410e3b 100644
--- a/sf_base/models/tool_other_features.py
+++ b/sf_base/models/tool_other_features.py
@@ -9,7 +9,6 @@ class ToolMaterialsBasicParameters(models.Model):
specification_id = fields.Many2one('sf.cutting_tool.specification.wizard', string='刀具规格')
cutting_tool_type = fields.Char(related='standard_library_id.cutting_tool_type', string='刀具物料类型',
store=True)
- # cutting_tool_type_1 = fields.Char(related='cutting_tool_type', string='类型', store=True)
# 整体式刀具参数
code = fields.Char('物料号', size=50)
diff --git a/sf_dlm/__init__.py b/sf_dlm/__init__.py
index 40272379..8b137891 100644
--- a/sf_dlm/__init__.py
+++ b/sf_dlm/__init__.py
@@ -1 +1 @@
-from . import wizard
+
diff --git a/sf_dlm/__manifest__.py b/sf_dlm/__manifest__.py
index 85906b2b..5f692988 100644
--- a/sf_dlm/__manifest__.py
+++ b/sf_dlm/__manifest__.py
@@ -17,7 +17,7 @@
'data/product_data.xml',
'data/uom_data.xml',
'security/ir.model.access.csv',
- 'wizard/cutting_tool_specification_wizard.xml',
+ # 'wizard/cutting_tool_specification_wizard.xml',
'views/product_template_view.xml',
'views/product_workorder.xml'
],
diff --git a/sf_dlm/security/ir.model.access.csv b/sf_dlm/security/ir.model.access.csv
index 9039e2c1..fd6de5be 100644
--- a/sf_dlm/security/ir.model.access.csv
+++ b/sf_dlm/security/ir.model.access.csv
@@ -1,5 +1,4 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
-access_sf_cutting_tool_specification_wizard,sf_cutting_tool_specification_wizard,model_sf_cutting_tool_specification_wizard,base.group_user,1,1,1,1
diff --git a/sf_dlm/views/product_template_view.xml b/sf_dlm/views/product_template_view.xml
index bcb0e894..44351c94 100644
--- a/sf_dlm/views/product_template_view.xml
+++ b/sf_dlm/views/product_template_view.xml
@@ -56,9 +56,10 @@
-
diff --git a/sf_dlm/wizard/cutting_tool_specification_wizard.py b/sf_dlm/wizard/cutting_tool_specification_wizard.py
index 2a79d27e..0f861bc6 100644
--- a/sf_dlm/wizard/cutting_tool_specification_wizard.py
+++ b/sf_dlm/wizard/cutting_tool_specification_wizard.py
@@ -11,11 +11,14 @@ class Cutting_toolSpecificationWizard(models.TransientModel):
_name = "sf.cutting_tool.specification.wizard"
_description = u'刀具规格'
- cutting_tool_library_id = fields.Many2one('sf.cutting_tool.standard.library', '刀具标准库')
+ product_id = fields.Many2one('product.template', string='产品')
+ cutting_tool_library_id = fields.Many2one('sf.cutting_tool.standard.library', '刀具标准库',related='product_id.cutting_tool_library_id')
+
+ # 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', '刀具类型')
- brand_id = fields.Many2one('sf.machine.brand', '品牌')
+ brand_id = fields.Many2one('sf.machine.brand', '品牌',related=cutting_tool_library_id.brand_id)
integral_tool_basic_parameters_ids = fields.One2many('sf.tool.materials.basic.parameters',
'specification_id', string='整体式刀具基本参数')
blade_basic_parameters_ids = fields.One2many('sf.tool.materials.basic.parameters',
diff --git a/sf_manufacturing/__init__.py b/sf_manufacturing/__init__.py
index 899bcc97..a22f9844 100644
--- a/sf_manufacturing/__init__.py
+++ b/sf_manufacturing/__init__.py
@@ -1,2 +1,3 @@
from . import models
+from . import wizard
diff --git a/sf_manufacturing/__manifest__.py b/sf_manufacturing/__manifest__.py
index 9800bf5d..d88edf21 100644
--- a/sf_manufacturing/__manifest__.py
+++ b/sf_manufacturing/__manifest__.py
@@ -15,6 +15,7 @@
'data/stock_data.xml',
'security/group_security.xml',
'security/ir.model.access.csv',
+ 'wizard/cutting_tool_specification_wizard.xml',
'views/mrp_production_addional_change.xml',
# 'views/mrp_maintenance_views.xml',
'views/mrp_routing_workcenter_view.xml',
diff --git a/sf_manufacturing/security/ir.model.access.csv b/sf_manufacturing/security/ir.model.access.csv
index b20d0985..6fe2804b 100644
--- a/sf_manufacturing/security/ir.model.access.csv
+++ b/sf_manufacturing/security/ir.model.access.csv
@@ -6,6 +6,8 @@ access_sf_embryo_model_type_routing_sort,sf_embryo_model_type_routing_sort,model
access_sf_surface_technics_model_type_routing_sort,sf_surface_technics_model_type_routing_sort,model_sf_surface_technics_model_type_routing_sort,base.group_user,1,1,1,1
access_sf_production_line,sf.production.line,model_sf_production_line,base.group_user,1,1,1,1
access_maintenance_equipment_tool,maintenance_equipment_tool,model_maintenance_equipment_tool,base.group_user,1,1,1,1
+access_sf_cutting_tool_specification_wizard,sf_cutting_tool_specification_wizard,model_sf_cutting_tool_specification_wizard,base.group_user,1,1,1,1
+
diff --git a/sf_manufacturing/wizard/__init__.py b/sf_manufacturing/wizard/__init__.py
new file mode 100644
index 00000000..2e93b759
--- /dev/null
+++ b/sf_manufacturing/wizard/__init__.py
@@ -0,0 +1,3 @@
+# -*- coding: utf-8 -*-
+
+from . import cutting_tool_specification_wizard
diff --git a/sf_manufacturing/wizard/cutting_tool_specification_wizard.py b/sf_manufacturing/wizard/cutting_tool_specification_wizard.py
new file mode 100644
index 00000000..8b37dd27
--- /dev/null
+++ b/sf_manufacturing/wizard/cutting_tool_specification_wizard.py
@@ -0,0 +1,88 @@
+# -*- 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')
+ def set_specification(self):
+ 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
diff --git a/sf_manufacturing/wizard/cutting_tool_specification_wizard.xml b/sf_manufacturing/wizard/cutting_tool_specification_wizard.xml
new file mode 100644
index 00000000..fee87e2d
--- /dev/null
+++ b/sf_manufacturing/wizard/cutting_tool_specification_wizard.xml
@@ -0,0 +1,266 @@
+
+
+
+ sf.cutting_tool.specification.wizard.form.view
+ sf.cutting_tool.specification.wizard
+
+
+
+
+
+
+ 刀具规格
+ sf.cutting_tool.specification.wizard
+ form
+
+ new
+
+
+
+
+
+
\ No newline at end of file
diff --git a/sf_sale/models/quick_easy_order.py b/sf_sale/models/quick_easy_order.py
index 9ab4e5b8..91ddedc4 100644
--- a/sf_sale/models/quick_easy_order.py
+++ b/sf_sale/models/quick_easy_order.py
@@ -239,7 +239,6 @@ class QuickEasyOrder(models.Model):
product_bom_purchase.bom_create_line_has(purchase_embryo)
order_id.with_user(self.env.ref("base.user_admin")).sale_order_create_line(product, item)
except Exception as e:
- self.cr.rollback()
return UserError('工厂创建销售订单和产品失败,请联系管理员')