diff --git a/sf_base/models/tool_base_new.py b/sf_base/models/tool_base_new.py
index d64eae59..7f3921a2 100644
--- a/sf_base/models/tool_base_new.py
+++ b/sf_base/models/tool_base_new.py
@@ -89,8 +89,8 @@ class CuttingToolModel(models.Model):
'柄部类型', domain=[('type', '=', '柄部类型')])
cutting_direction_ids = fields.Many2many('maintenance.equipment.image', 'cutting_direction_library_rel',
'走刀方向', domain=[('type', '=', '走刀方向')])
- suitable_coolant_ids = fields.Many2many('maintenance.equipment.image', 'suitable_coolant_library_rel',
- '适合冷却液', domain=[('type', '=', '冷却液')])
+ suitable_coolant_ids = fields.Many2many('maintenance.equipment.image', 'suitable_coolants_library_rel',
+ '适合冷却方式', domain=[('type', '=', '冷却方式')])
compaction_way_id = fields.Many2one('maintenance.equipment.image',
'压紧方式', domain=[('type', '=', '压紧方式')])
integral_tool_basic_parameters_ids = fields.One2many('sf.tool.materials.basic.parameters',
diff --git a/sf_dlm_management/views/product_template_management_view.xml b/sf_dlm_management/views/product_template_management_view.xml
index 94cb4b7f..b1d0f50f 100644
--- a/sf_dlm_management/views/product_template_management_view.xml
+++ b/sf_dlm_management/views/product_template_management_view.xml
@@ -39,7 +39,7 @@
-
-
-
+
diff --git a/sf_manufacturing/models/product_template.py b/sf_manufacturing/models/product_template.py
index 759413d2..ef635f78 100644
--- a/sf_manufacturing/models/product_template.py
+++ b/sf_manufacturing/models/product_template.py
@@ -96,8 +96,8 @@ class ResProductMo(models.Model):
handle_type_id = fields.Many2one('maintenance.equipment.image', '柄部类型', domain=[('type', '=', '柄部类型')])
cutting_direction_ids = fields.Many2many('maintenance.equipment.image', 'rel_cutting_product_template',
'走刀方向', domain=[('type', '=', '走刀方向')])
- suitable_coolant_ids = fields.Many2many('maintenance.equipment.image', 'rel_coolant_product_template',
- '适合冷却液', domain=[('type', '=', '冷却液')])
+ suitable_coolant_ids = fields.Many2many('maintenance.equipment.image', 'rel_coolants_product_template',
+ '适合冷却方式', domain=[('type', '=', '冷却方式')])
compaction_way_id = fields.Many2one('maintenance.equipment.image',
'压紧方式', domain=[('type', '=', '压紧方式')])
@@ -201,7 +201,6 @@ class ResProductMo(models.Model):
self.feed_per_tooth_ids = self.cutting_tool_model_id.feed_per_tooth_ids.filtered(
lambda r: int(r.blade_diameter) == int(self.specification_id.blade_diameter))
elif self.cutting_tool_type == '夹头':
- self.cutting_tool_clamping_tolerance = self.specification_id.clamping_tolerance
self.cutting_tool_clamping_diameter_min = self.specification_id.min_clamping_diameter
self.cutting_tool_clamping_diameter_min = self.specification_id.max_clamping_diameter
self.cutting_tool_clamping_way = self.specification_id.clamping_mode
@@ -212,7 +211,7 @@ class ResProductMo(models.Model):
self.cutting_tool_jump_accuracy = self.specification_id.run_out_accuracy
self.cutting_tool_max_load_capacity = self.specification_id.max_load_capacity
self.cutting_tool_er_size_model = self.specification_id.er_size_model
- self.cutting_tool_handle_ids = self.cutting_tool_model_id.handle_ids
+ self.cutting_tool_handle_id = self.cutting_tool_model_id.handle_id.id
self.cooling_suit_type_ids = self.specification_id.cooling_jacket
elif self.cutting_tool_type == '刀片':
self.cutting_tool_total_length = self.specification_id.total_length
@@ -481,11 +480,17 @@ class ResProductMo(models.Model):
cooling_suit_type_ids = fields.Char('适用冷却套型号')
cutting_tool_max_load_capacity = fields.Float('最大负载能力(kg)')
cutting_tool_er_size_model = fields.Char('尺寸型号')
- cutting_tool_handle_ids = fields.Many2many(
+ # cutting_tool_handle_ids = fields.Many2many(
+ # 'sf.cutting_tool.standard.library',
+ # relation='product_cutting_tool_library_chuck_handle_rel',
+ # column1='model_id_1',
+ # column2='model_id_2',
+ # domain="[('cutting_tool_type', '=', '刀柄')]",
+ # string='适用刀柄型号'
+ # )
+
+ cutting_tool_handle_id = fields.Many2one(
'sf.cutting_tool.standard.library',
- relation='product_cutting_tool_library_chuck_handle_rel',
- column1='model_id_1',
- column2='model_id_2',
domain="[('cutting_tool_type', '=', '刀柄')]",
string='适用刀柄型号'
)
@@ -515,36 +520,6 @@ class ResProductMo(models.Model):
if self.tool_thickness > 1000000:
raise ValidationError("厚度不能超过1000000")
- @api.constrains('fixture_clamp_workpiece_length_max')
- def _check_fixture_clamp_workpiece_length_max_size(self):
- if self.fixture_clamp_workpiece_length_max > 1000000:
- raise ValidationError("夹持工件长度MAX不能超过1000000")
-
- @api.constrains('fixture_clamp_workpiece_width_max')
- def _check_fixture_clamp_workpiece_width_max_size(self):
- if self.fixture_clamp_workpiece_width_max > 1000000:
- raise ValidationError("夹持工件宽度MAX不能超过1000000")
-
- @api.constrains('fixture_clamp_workpiece_height_max')
- def _check_fixture_clamp_workpiece_height_max_size(self):
- if self.fixture_clamp_workpiece_height_max > 1000000:
- raise ValidationError("夹持工件高度MAX不能超过1000000")
-
- @api.constrains('fixture_maximum_clamping_force')
- def _check_fixture_maximum_clamping_force_size(self):
- if self.fixture_maximum_clamping_force > 100000000:
- raise ValidationError("最大夹持力不能超过100000000")
-
- @api.constrains('fixture_through_hole_size')
- def _check_fixture_through_hole_size_size(self):
- if self.fixture_through_hole_size > 1000000:
- raise ValidationError("过孔大小不能超过1000000")
-
- @api.constrains('fixture_screw_size')
- def _check_fixture_through_hole_size_size(self):
- if self.fixture_screw_size > 1000000:
- raise ValidationError("螺牙大小不能超过1000000")
-
def _json_apply_machine_tool_type_item_code(self, item):
code_arr = []
for i in item.product_id.fixture_apply_machine_tool_type_ids:
@@ -563,12 +538,6 @@ class ResProductMo(models.Model):
code_arr.append(i.code)
return code_arr
- def _json_handle_item_code(self, item):
- code_arr = []
- for i in item.product_id.cutting_tool_handle_ids:
- code_arr.append(i.code)
- return code_arr
-
def _get_ids(self, param):
type_ids = []
if not param:
@@ -584,72 +553,6 @@ class ResProductMo(models.Model):
self.detailed_type = 'product'
self.sale_ok = False
- @api.onchange('fixture_material_id')
- def _onchange_fixture_material_id(self):
- for item in self:
- if item.fixture_material_id.id != item.fixture_model_id.fixture_material_id.id:
- item.fixture_model_id = False
-
- #
- # @api.onchange('fixture_model_id')
- # def _onchange_fixture_model_id(self):
- # for item in self:
- # if self.fixture_material_type in ['气动夹具', '转接板(锁板)夹具', '磁吸夹具', '虎钳夹具', '零点卡盘']:
- # item.brand_id = item.fixture_model_id.brand_id.id
- # item.fixture_model_file = item.fixture_model_id.model_file
- # item.tool_length = item.fixture_model_id.length
- # item.tool_width = item.fixture_model_id.width
- # item.tool_height = item.fixture_model_id.height
- # item.tool_weight = item.fixture_model_id.weight
- # item.materials_type_id = item.fixture_model_id.materials_model_id.id
- # item.fixture_maximum_carrying_weight = item.fixture_model_id.maximum_carrying_weight
- # item.fixture_maximum_clamping_force = item.fixture_model_id.maximum_clamping_force
- # if self.fixture_material_type in ['零点卡盘', '转接板(锁板)夹具']:
- # item.fixture_clamping_way = item.fixture_model_id.clamping_way
- # item.fixture_port_type = item.fixture_model_id.port_type
- # if self.fixture_material_type in ['气动夹具', '转接板(锁板)夹具', '磁吸夹具']:
- # item.fixture_driving_way = item.fixture_model_id.driving_way
- # if self.fixture_material_type in ['气动夹具', '磁吸夹具', '虎钳夹具', '零点卡盘']:
- # item.fixture_through_hole_size = item.fixture_model_id.through_hole_size
- # item.fixture_screw_size = item.fixture_model_id.screw_size
- # if self.fixture_material_type in ['气动夹具', '转接板(锁板)夹具', '磁吸夹具', '虎钳夹具']:
- # item.fixture_clamp_workpiece_length_max = item.fixture_model_id.clamp_workpiece_length_max
- # item.fixture_clamp_workpiece_width_max = item.fixture_model_id.clamp_workpiece_width_max
- # item.fixture_clamp_workpiece_height_max = item.fixture_model_id.clamp_workpiece_height_max
- # item.fixture_clamp_workpiece_diameter_max = item.fixture_model_id.clamp_workpiece_diameter_max
- # item.fixture_apply_machine_tool_type_ids = self._get_ids(
- # item.fixture_model_id.apply_machine_tool_type_ids)
-
- # @api.onchange('fixture_model_id')
- # def _onchange_fixture_model_id(self):
- # for item in self:
- # if self.fixture_material_type in ['气动夹具', '转接板(锁板)夹具', '磁吸夹具', '虎钳夹具', '零点卡盘']:
- # item.brand_id = item.fixture_model_id.brand_id.id
- # item.fixture_multi_mounting_type_id = item.fixture_model_id.multi_mounting_type_id.id
- # item.fixture_model_file = item.fixture_model_id.model_file
- # item.tool_length = item.fixture_model_id.length
- # item.tool_width = item.fixture_model_id.width
- # item.tool_height = item.fixture_model_id.height
- # item.tool_weight = item.fixture_model_id.weight
- # item.materials_type_id = item.fixture_model_id.materials_model_id.id
- # item.fixture_maximum_carrying_weight = item.fixture_model_id.maximum_carrying_weight
- # item.fixture_maximum_clamping_force = item.fixture_model_id.maximum_clamping_force
- # if self.fixture_material_type in ['零点卡盘', '转接板(锁板)夹具']:
- # item.fixture_clamping_way = item.fixture_model_id.clamping_way
- # item.fixture_port_type = item.fixture_model_id.port_type
- # if self.fixture_material_type in ['气动夹具', '转接板(锁板)夹具', '磁吸夹具']:
- # item.fixture_driving_way = item.fixture_model_id.driving_way
- # if self.fixture_material_type in ['气动夹具', '磁吸夹具', '虎钳夹具', '零点卡盘']:
- # item.fixture_through_hole_size = item.fixture_model_id.through_hole_size
- # item.fixture_screw_size = item.fixture_model_id.screw_size
- # if self.fixture_material_type in ['气动夹具', '转接板(锁板)夹具', '磁吸夹具', '虎钳夹具']:
- # item.fixture_clamp_workpiece_length_max = item.fixture_model_id.clamp_workpiece_length_max
- # item.fixture_clamp_workpiece_width_max = item.fixture_model_id.clamp_workpiece_width_max
- # item.fixture_clamp_workpiece_height_max = item.fixture_model_id.clamp_workpiece_height_max
- # item.fixture_clamp_workpiece_diameter_max = item.fixture_model_id.clamp_workpiece_diameter_max
- # item.fixture_apply_machine_tool_type_ids = self._get_ids(
- # item.fixture_model_id.apply_machine_tool_type_ids)
-
def _get_volume_uom_id_from_ir_config_parameter(self):
product_length_in_feet_param = self.env['ir.config_parameter'].sudo().get_param('product.volume_in_cubic_feet')
if product_length_in_feet_param == '1':
@@ -839,9 +742,6 @@ class ResProductFixture(models.Model):
model_file = fields.Binary(string="3D模型图")
# 夹具物料基本参数
- # length = fields.Float('长度(mm)', digits=(16, 2))
- # width = fields.Float('宽度(mm)', digits=(16, 2))
- # height = fields.Float('高度(mm)', digits=(16, 2))
diameter = fields.Float('直径(mm)', digits=(16, 2))
# '零点卡盘' 字段
@@ -899,27 +799,6 @@ class ResProductFixture(models.Model):
mounting_hole_depth = fields.Float('安装孔深度(mm)', digits=(16, 2))
centering_diameter = fields.Float('定心直径(mm)', digits=(16, 2))
- # =========================待删除字段================================
- fixture_multi_mounting_type_id = fields.Many2one('sf.multi_mounting.type', string="联装类型")
- fixture_clamping_way = fields.Char(string="装夹方式")
- fixture_port_type = fields.Char(string="接口类型")
- fixture_model_file = fields.Binary(string="3D模型图")
-
- fixture_clamp_workpiece_length_max = fields.Integer(string="夹持工件长度max(mm)")
- fixture_clamp_workpiece_width_max = fields.Integer(string="夹持工件宽度max(mm)")
- fixture_clamp_workpiece_height_max = fields.Integer(string="夹持工件高度max(mm)")
- fixture_clamp_workpiece_diameter_max = fields.Float(string="夹持工件直径max(mm)", digits=(16, 6))
-
- fixture_maximum_carrying_weight = fields.Float(string="最大承载重量(kg)", digits=(16, 4))
- fixture_maximum_clamping_force = fields.Integer(string="最大夹持力(n)")
- fixture_driving_way = fields.Char(string="驱动方式")
- fixture_apply_machine_tool_type_ids = fields.Many2many('sf.machine_tool.type', 'rel_product_machine_tool_type',
- string="适用机床型号")
- fixture_through_hole_size = fields.Integer(string="过孔大小(mm)")
- fixture_screw_size = fields.Integer(string="螺牙大小(mm)")
-
- # ===============================================================
-
@api.onchange('specification_fixture_id')
def _onchange_specification_fixture_id(self):
if self.specification_fixture_id:
diff --git a/sf_sale/models/sale_order.py b/sf_sale/models/sale_order.py
index f49b4906..29a9be13 100644
--- a/sf_sale/models/sale_order.py
+++ b/sf_sale/models/sale_order.py
@@ -97,7 +97,7 @@ class ReSaleOrder(models.Model):
raise UserError('请对【订单行】中的【计量单位】进行选择')
if line.price_unit == 0:
raise UserError('请对【订单行】中的【单价】进行输入')
- if not line.taxes_id:
+ if not line.tax_id:
raise UserError('请对【订单行】中的【税】进行选择')
diff --git a/sf_sale/views/purchase_order_view.xml b/sf_sale/views/purchase_order_view.xml
index ed94be61..b22bb584 100644
--- a/sf_sale/views/purchase_order_view.xml
+++ b/sf_sale/views/purchase_order_view.xml
@@ -11,7 +11,7 @@
-
+
@@ -25,9 +25,10 @@
diff --git a/sf_sale/views/sale_order_view.xml b/sf_sale/views/sale_order_view.xml
index 8326d45f..bfbf5520 100644
--- a/sf_sale/views/sale_order_view.xml
+++ b/sf_sale/views/sale_order_view.xml
@@ -47,7 +47,7 @@
action="action_quotations_with_onboarding_inherit_sf"
groups="sales_team.group_sale_salesman,sf_base.group_sale_salemanager,sf_base.group_sale_director"
parent="sale.sale_order_menu"
- sequence="10"/>
+ sequence="11"/>
sale.order.form.inherit.sf
diff --git a/sf_tool_management/models/base.py b/sf_tool_management/models/base.py
index d1a5df23..62b0d97c 100644
--- a/sf_tool_management/models/base.py
+++ b/sf_tool_management/models/base.py
@@ -293,8 +293,8 @@ class RealTimeDistributionOfFunctionalTools(models.Model):
'maintenance.equipment.image', 'rel_cutting_product_template_distribution', '走刀方向',
domain=[('type', '=', '走刀方向')], related='sf_functional_cutting_tool_entity_ids.cutting_direction_ids')
suitable_coolant_ids = fields.Many2many(
- 'maintenance.equipment.image', 'rel_coolant_product_template_distribution', '适合冷却方式',
- domain=[('type', '=', '冷却液')], related='sf_functional_cutting_tool_entity_ids.suitable_coolant_ids')
+ 'maintenance.equipment.image', 'rel_coolants_product_template_distribution', '适合冷却方式',
+ domain=[('type', '=', '冷却方式')], related='sf_functional_cutting_tool_entity_ids.suitable_coolant_ids')
sf_functional_cutting_tool_entity_ids = fields.Many2many('sf.functional.cutting.tool.entity',
'sf_functional_cutting_tool_entity_ref',
diff --git a/sf_tool_management/models/tool_material_search.py b/sf_tool_management/models/tool_material_search.py
index 1dc48322..99ff6419 100644
--- a/sf_tool_management/models/tool_material_search.py
+++ b/sf_tool_management/models/tool_material_search.py
@@ -108,8 +108,8 @@ class SfToolMaterialSearch(models.Model):
'rel_cutting_product_template_material_search', '走刀方向',
domain=[('type', '=', '走刀方向')])
suitable_coolant_ids = fields.Many2many('maintenance.equipment.image',
- 'rel_coolant_product_template_material_search', '适合冷却液',
- domain=[('type', '=', '冷却液')])
+ 'rel_coolants_product_template_material_search', '适合冷却方式',
+ domain=[('type', '=', '冷却方式')])
cutting_speed_ids = fields.Many2many('sf.cutting.speed', string='切削速度Vc')
feed_per_tooth_ids = fields.Many2many('sf.feed.per.tooth', 'rel_feed_per_tooth_ids', '每齿走刀量fz')