diff --git a/mrp_workorder/static/src/scss/table_custom.scss b/mrp_workorder/static/src/scss/table_custom.scss
index d0557894..54553dba 100644
--- a/mrp_workorder/static/src/scss/table_custom.scss
+++ b/mrp_workorder/static/src/scss/table_custom.scss
@@ -7,7 +7,7 @@
}
html .o_web_client > .o_action_manager > .o_action {
- height: unset !important;
+ //height: unset !important;
overflow: scroll !important;
}
@@ -26,3 +26,7 @@ html .o_web_client > .o_action_manager > .o_action {
background-color: unset !important;
min-height: unset !important;
}
+
+.o_form_view .o_form_view_container {
+ height: unset !important;
+}
diff --git a/sf_base/models/base.py b/sf_base/models/base.py
index 60c999b1..bb225b9b 100644
--- a/sf_base/models/base.py
+++ b/sf_base/models/base.py
@@ -36,10 +36,10 @@ class MachineBrand(models.Model):
name = fields.Char('名称')
tag_ids = fields.Many2many('sf.machine.brand.tags', 'rel_machine_brand_tags', string='类别')
image_brand = fields.Image("品牌图片")
- manufacturer_model_number = fields.Char('厂家型号', size=10)
remark = fields.Text('备注')
active = fields.Boolean('有效', default=True)
+
# 机床
class MachineTool(models.Model):
_name = 'sf.machine_tool'
@@ -316,6 +316,7 @@ class MachineToolCategory(models.Model):
code = fields.Char('编码')
name = fields.Char('名称')
remark = fields.Text('备注')
+ active = fields.Boolean('有效', default=True)
category = fields.Selection([('shukong', u'数控'), ('putong', u'普通')], string=u'机床类别',
default='shukong')
diff --git a/sf_base/models/fixture.py b/sf_base/models/fixture.py
index d929cad9..db22b8d6 100644
--- a/sf_base/models/fixture.py
+++ b/sf_base/models/fixture.py
@@ -1,8 +1,4 @@
from odoo import models, fields, api
-from odoo.addons.sf_base.commons.common import Common
-from odoo.exceptions import ValidationError
-import requests
-import json
class FixtureMaterial(models.Model):
@@ -36,7 +32,6 @@ class FixtureModel(models.Model):
fixture_material_type = fields.Char(string="夹具物料类型", related='fixture_material_id.name', store=True)
multi_mounting_type_id = fields.Many2one('sf.multi_mounting.type', string="联装类型")
brand_id = fields.Many2one('sf.machine.brand', string="品牌")
- manufacturer_model_number = fields.Char(string="厂家型号")
clamping_way = fields.Char(string="装夹方式")
port_type = fields.Char(string="接口类型")
model_file = fields.Binary(string="3D模型图")
@@ -56,5 +51,7 @@ class FixtureModel(models.Model):
string="适用机床型号")
through_hole_size = fields.Integer(string="过孔大小[mm]", size=6)
screw_size = fields.Integer(string="螺牙大小[mm]", size=6)
+ active = fields.Boolean('有效', default=True)
+
diff --git a/sf_base/models/fixture_base.py b/sf_base/models/fixture_base.py
deleted file mode 100644
index 6ca48f71..00000000
--- a/sf_base/models/fixture_base.py
+++ /dev/null
@@ -1,240 +0,0 @@
-from odoo import models, fields
-
-'''============================定位元件型号====================================='''
-
-
-class FixtureSettingElement(models.Model):
- _name = 'sf.fixture.setting.element'
- _description = "定位元件型号"
-
- code = fields.Char(string='编码', readonly=True)
- name = fields.Char(string="型号名称", readonly=True)
- setting_ele_type_id = fields.Many2one('sf.setting.element.type', string="定位元件类型", readonly=True)
- brand_id = fields.Many2one('sf.machine.brand', string="品牌", readonly=True)
-
- length = fields.Char(string='长度(mm)', readonly=True)
- width = fields.Char(string='宽度(mm)', readonly=True)
- height = fields.Char(string='高度(mm)', readonly=True)
- diameter = fields.Char(string='直径(mm)', readonly=True)
-
- material_type_id = fields.Many2one('sf.materials.model', string='材料型号', readonly=True)
- hardness = fields.Char(string='硬度(°)', readonly=True)
- chucking_power = fields.Char(string='夹持力', readonly=True)
- surface_treatment = fields.Char(string='表面处理', readonly=True)
- accuracy_grade = fields.Char(string='精度等级', readonly=True)
-
- picture = fields.Binary(string="图片", readonly=True)
- comment = fields.Text(string='备注', readonly=True)
-
-
-'''=============================定位原件类型============================================='''
-
-
-class SettingElementType(models.Model):
- _name = 'sf.setting.element.type'
- _description = "定位原件类型"
-
- code = fields.Char(string='编码', readonly=True)
- name = fields.Char(string='定位原件类型', readonly=True)
- comment = fields.Text(string='备注', readonly=True)
-
-
-'''==============================夹紧元件型号=============================================='''
-
-
-class FixtureClampingElement(models.Model):
- _name = 'sf.fixture.clamping.element'
- _description = "夹紧元件型号"
-
- code = fields.Char(string='编码', readonly=True)
- name = fields.Char(string="型号名称", readonly=True)
- clamping_ele_type_id = fields.Many2one('sf.clamping.element.type', string="夹紧元件类型", readonly=True)
- brand_id = fields.Many2one('sf.machine.brand', string="品牌", readonly=True)
-
- length = fields.Char(string='长度(mm)', readonly=True)
- width = fields.Char(string='宽度(mm)', readonly=True)
- height = fields.Char(string='高度(mm)', readonly=True)
- diameter = fields.Char(string='直径(mm)', readonly=True)
-
- material_type_id = fields.Many2one('sf.materials.model', string='材料型号', readonly=True)
- hardness = fields.Char(string='硬度(°)', readonly=True)
- chucking_power = fields.Char(string='夹持力', readonly=True)
- surface_treatment = fields.Char(string='夹持方式', readonly=True)
- accuracy_grade = fields.Char(string='精度等级', readonly=True)
-
- picture = fields.Binary(string="图片", readonly=True)
- comment = fields.Text(string='备注', readonly=True)
-
-
-'''============================夹紧元件类型======================================='''
-
-
-# 夹紧元件类型
-class ClampingElementType(models.Model):
- _name = "sf.clamping.element.type"
- _description = "夹紧元件类型"
-
- code = fields.Char(string='编码', readonly=True)
- name = fields.Char(name='夹紧元件类型', readonly=True)
- comment = fields.Text(string='备注', readonly=True)
-
-
-'''=========================对刀夹具型号====================================='''
-
-
-class FixtureToolSetting(models.Model):
- _name = 'sf.fixture.tool.setting'
- _description = "对刀夹具型号"
-
- code = fields.Char(string='编码', readonly=True)
- name = fields.Char(string="型号名称", readonly=True)
- tool_setting_type_id = fields.Many2one('sf.tool.setting.type', string="对刀夹具类型", readonly=True)
- brand_id = fields.Many2one('sf.machine.brand', string="品牌", readonly=True)
-
- length = fields.Char(string='长度(mm)', readonly=True)
- width = fields.Char(string='宽度(mm)', readonly=True)
- height = fields.Char(string='高度(mm)', readonly=True)
- diameter = fields.Char(string='直径(mm)', readonly=True)
-
- material_type_id = fields.Many2one('sf.materials.model', string='材料型号', readonly=True)
- hardness = fields.Char(string='硬度(°)', readonly=True)
- chucking_power = fields.Char(string='夹持力', readonly=True)
- clamp_mode = fields.Char(string='夹持方式', readonly=True)
- accuracy_grade = fields.Char(string='精度等级', readonly=True)
- max_clamp_diameter = fields.Char('最大夹持直接(mm)', readonly=True)
-
- picture = fields.Binary(string="图片", readonly=True)
- comment = fields.Text(string='备注', readonly=True)
-
-
-'''===========================对刀夹具类型=========================================='''
-
-
-class ToolSettingType(models.Model):
- _name = 'sf.tool.setting.type'
- _description = "对刀夹具类型"
-
- code = fields.Char('编码', readonly=True)
- name = fields.Char(string='对刀夹具类型', readonly=True)
- comment = fields.Text(string='备注', readonly=True)
-
-
-'''==========================定位装置型号======================================='''
-
-
-class FixtureLocatingDevice(models.Model):
- _name = 'sf.fixture.locating.device'
- _description = "定位装置型号"
-
- code = fields.Char(string='编码', readonly=True)
- name = fields.Char(string="型号名称", readonly=True)
- locating_device_type_id = fields.Many2one('sf.locating.device.type', string="定位装置类型", readonly=True)
- brand_id = fields.Many2one('sf.machine.brand', string="品牌", readonly=True)
-
- length = fields.Char(string='长度(mm)', readonly=True)
- width = fields.Char(string='宽度(mm)', readonly=True)
- height = fields.Char(string='高度(mm)', readonly=True)
- diameter = fields.Char(string='直径(mm)', readonly=True)
-
- material_type_id = fields.Many2one('sf.materials.model', string='材料型号', readonly=True)
- weight = fields.Char(string='重量(kg)', readonly=True)
- accuracy_grade = fields.Char(string='精度等级', readonly=True)
- locate_mode_ids = fields.Many2many('sf.locating.device.locate.mode', string='定位装置定位方式', readonly=True)
- max_bearing_capacity = fields.Char(string='最大承载力', readonly=True)
-
- picture = fields.Binary(string="图片", readonly=True)
- comment = fields.Text(string='备注', readonly=True)
-
-
-'''==============================定位装置类型================================'''
-
-
-# 定位装置型号
-class LocatingDeviceType(models.Model):
- _name = 'sf.locating.device.type'
- _description = "定位装置类型"
-
- code = fields.Char('编码', readonly=True)
- name = fields.Char(string='定位装置类型', readonly=True)
- comment = fields.Text(string='备注', readonly=True)
-
-
-'''============================定位装置定位方式========================================'''
-
-
-# 定位装置定位方式
-class LocatingDeviceLocateMode(models.Model):
- _name = 'sf.locating.device.locate.mode'
- _description = "定位装置定位方式"
-
- code = fields.Char('编码', readonly=True)
- name = fields.Char('定位方式', readonly=True)
- name_id = fields.Many2many('sf.fixture.locating.device', string='定位装置', readonly=True)
- comment = fields.Text(string='备注', readonly=True)
-
-
-'''===========================导向元件型号===================================='''
-
-
-class FixtureGuideElement(models.Model):
- _name = 'sf.fixture.guide.element'
- _description = "导向元件型号"
-
- code = fields.Char(string='编码', readonly=True)
- name = fields.Char(string="型号名称", readonly=True)
- guide_ele_type_id = fields.Many2one('sf.guide.element.type', string="导向元件类型", readonly=True)
- brand_id = fields.Many2one('sf.machine.brand', string="品牌", readonly=True)
-
- length = fields.Char(string='长度(mm)', readonly=True)
- width = fields.Char(string='宽度(mm)', readonly=True)
- height = fields.Char(string='高度(mm)', readonly=True)
- diameter = fields.Char(string='直径(mm)', readonly=True)
-
- material_type_id = fields.Many2one('sf.materials.model', string='材料型号', readonly=True)
- weight = fields.Char(string='重量', readonly=True)
- accuracy_grade = fields.Char(string='精度等级', readonly=True)
- guide_ele_guide_mode_id = fields.Many2many('sf.guide.element.guide.mode', string='导向元件导向方式', readonly=True)
- scope_of_application = fields.Char(string='适用范围', readonly=True)
- guide_ele_way_to_install_id = fields.Many2many('sf.guide.element.way.to.install', string='导向元件安装方式',
- readonly=True)
-
- picture = fields.Binary(string="图片", readonly=True)
- comment = fields.Text(string='备注', readonly=True)
-
-
-'''=============================导向元件类型============================================'''
-
-
-class GuideElementType(models.Model):
- _name = 'sf.guide.element.type'
- _description = "导向元件类型"
-
- code = fields.Char(string='编码', readonly=True)
- name = fields.Char(string="导向元件类型", readonly=True)
- comment = fields.Text(string='备注', readonly=True)
-
-
-'''================================导向元件导向方式=========================================='''
-
-
-class GuideElementGuideMode(models.Model):
- _name = 'sf.guide.element.guide.mode'
- _description = "导向元件导向方式"
-
- code = fields.Char(string='编码', readonly=True)
- name = fields.Char(string="导向元件导向方式", readonly=True)
- name_id = fields.Many2many('sf.fixture.guide.element', string='导向元件', readonly=True)
- comment = fields.Text(string='备注', readonly=True)
-
-
-'''=============================导向元件安装方式==========================================='''
-
-
-class GuideElementWayToInstall(models.Model):
- _name = 'sf.guide.element.way.to.install'
- _description = '导向元件安装方式'
-
- code = fields.Char(string='编码', readonly=True)
- name = fields.Char(string="导向元件安装方式", readonly=True)
- name_id = fields.Many2many('sf.fixture.guide.element', string='导向元件', readonly=True)
- comment = fields.Text(string='备注', readonly=True)
diff --git a/sf_base/models/functional_fixture.py b/sf_base/models/functional_fixture.py
index 86cc015f..5a769757 100644
--- a/sf_base/models/functional_fixture.py
+++ b/sf_base/models/functional_fixture.py
@@ -37,7 +37,7 @@ class FunctionalFixture(models.Model):
vice_tray_model_ids = fields.Many2many('sf.fixture.model', 'rel_fixture_model_vice_tray', string="虎钳托盘型号",
domain=[('fixture_material_type', '=', '虎钳托盘')])
registration_status = fields.Selection([("已注册", "已注册"), ("未注册", "未注册")], string="注册状态", default='未注册', tracking=True)
-
+ active = fields.Boolean('有效', default=True)
@api.onchange('type_id')
def _onchange_type_id(self):
diff --git a/sf_base/models/tool_base.py b/sf_base/models/tool_base.py
index 08452e69..2d7d7028 100644
--- a/sf_base/models/tool_base.py
+++ b/sf_base/models/tool_base.py
@@ -15,6 +15,7 @@ class CuttingToolMaterial(models.Model):
code = fields.Char('编码')
name = fields.Char('名称')
remark = fields.Char('备注')
+ active = fields.Boolean('有效', default=True)
# 功能刀具
@@ -43,6 +44,7 @@ class FunctionalCuttingTool(models.Model):
is_standard = fields.Boolean('是否标准刀')
applicable_range = fields.Char('适用范围')
image = fields.Binary('图片')
+ active = fields.Boolean('有效', default=True)
# 功能刀具类型
@@ -53,6 +55,7 @@ class FunctionalCuttingToolModel(models.Model):
name = fields.Char('名称')
code = fields.Char('编码')
remark = fields.Char('备注')
+ active = fields.Boolean('有效', default=True)
# 整体式刀具
@@ -82,6 +85,7 @@ class IntegralCuttingTool(models.Model):
chuck_model = fields.Many2many('sf.chuck', string='适用夹头型号')
scope = fields.Char('适用范围')
image = fields.Binary('图片')
+ active = fields.Boolean('有效', default=True)
# 整体式刀具类型
diff --git a/sf_base/models/tool_base_new.py b/sf_base/models/tool_base_new.py
index 048c94d3..575afd5f 100644
--- a/sf_base/models/tool_base_new.py
+++ b/sf_base/models/tool_base_new.py
@@ -12,6 +12,7 @@ class CuttingToolMaterial(models.Model):
code = fields.Char('编码')
name = fields.Char('名称')
remark = fields.Char('备注')
+ active = fields.Boolean('有效', default=True)
# 功能刀具
@@ -21,57 +22,60 @@ class FunctionalCuttingTool(models.Model):
code = fields.Char('编码')
name = fields.Char('名称')
+ active = fields.Boolean('有效', default=True)
mrs_cutting_tool_type_id = fields.Many2one('sf.functional.cutting.tool.model', string='功能刀具类型')
mrs_cutting_tool_model_id = fields.Many2one('sf.cutting.tool.model', string='刀具型号')
- # 整体式刀具型号
- mrs_cutting_tool_integral_model_ids = fields.Many2many('sf.cutting.tool.model', 'rel_integral_model_functional_sf',
- string='整体式刀具型号', domain=
- [('mrs_cutting_tool_material_name', '=', '整体式刀具')])
- # 刀片型号
- mrs_cutting_tool_blade_model_ids = fields.Many2many('sf.cutting.tool.model', 'rel_blade_model_functional_sf',
- string='刀片型号', domain=
- [('mrs_cutting_tool_material_name', '=', '刀片')])
- # 刀杆型号
- mrs_cutting_tool_cutterbar_model_ids = fields.Many2many('sf.cutting.tool.model',
- 'rel_cutterbar_model_functional_sf',
- string='刀杆型号', domain=
- [('mrs_cutting_tool_material_name', '=', '刀杆')])
- # 刀盘型号
- mrs_cutting_tool_cutterpad_model_ids = fields.Many2many('sf.cutting.tool.model',
- 'rel_cutterpad_model_functional_sf',
- string='刀盘型号', domain=
- [('mrs_cutting_tool_material_name', '=', '刀盘')])
- # 刀柄型号
- mrs_cutting_tool_cutterhandle_model_ids = fields.Many2many('sf.cutting.tool.model',
- 'rel_cutterhandle_model_functional_sf', string='刀柄型号',
- domain=
- [('mrs_cutting_tool_material_name', '=', '刀柄')])
- # 夹头型号
- mrs_cutting_tool_cutterhead_model_ids = fields.Many2many('sf.cutting.tool.model',
- 'rel_cutterhead_model_functional_sf',
- string='夹头型号', domain=
- [('mrs_cutting_tool_material_name', '=', '夹头')])
-
- diameter = fields.Float('直径(mm)')
- tool_grade = fields.Selection([('1', 'P1'), ('2', 'P2'), ('3', 'P3'), ('4', 'P4'), ('5', 'P5'), ('6', 'P6')],
- string='刀具等级')
- machining_accuracy = fields.Float('加工精度(mm)')
- tool_length = fields.Float('装刀长')
- blade_number = fields.Integer('刃数')
- integral_blade_length = fields.Float('整体刃长(mm)')
- effective_blade_length = fields.Float('有效刃长(mm)')
- max_life = fields.Float('最大寿命值')
- is_standard = fields.Boolean('是否标准刀')
- applicable_range = fields.Char('适用范围')
- image = fields.Binary('图片')
-
- def _get_functional_tool_model_ids(self, functional_tool_model_code):
- functional_tool_model_ids = []
- for item in functional_tool_model_code:
- functional_tool_model = self.env['sf.cutting.tool.model'].search([('code', '=', item)])
- functional_tool_model_ids.append(functional_tool_model.id)
- return [(6, 0, functional_tool_model_ids)]
+ # # 整体式刀具型号
+ # mrs_cutting_tool_integral_model_ids = fields.Many2many('sf.cutting.tool.model', 'rel_integral_model_functional_sf',
+ # string='整体式刀具型号', domain=
+ # [('cutting_tool_type', '=', '整体式刀具')])
+ # # 刀片型号
+ # mrs_cutting_tool_blade_model_ids = fields.Many2many('sf.cutting.tool.model', 'rel_blade_model_functional_sf',
+ # string='刀片型号', domain=
+ # [('cutting_tool_type', '=', '刀片')])
+ # # 刀杆型号
+ # mrs_cutting_tool_cutterbar_model_ids = fields.Many2many('sf.cutting.tool.model',
+ # 'rel_cutterbar_model_functional_sf',
+ # string='刀杆型号', domain=
+ # [('cutting_tool_type', '=', '刀杆')])
+ # # 刀盘型号
+ # mrs_cutting_tool_cutterpad_model_ids = fields.Many2many('sf.cutting.tool.model',
+ # 'rel_cutterpad_model_functional_sf',
+ # string='刀盘型号', domain=
+ # [('cutting_tool_type', '=', '刀盘')])
+ # # 刀柄型号
+ # mrs_cutting_tool_cutterhandle_model_ids = fields.Many2many('sf.cutting.tool.model',
+ # 'rel_cutterhandle_model_functional_sf',
+ # string='刀柄型号',
+ # domain=
+ # [('cutting_tool_type', '=', '刀柄')])
+ # # 夹头型号
+ # mrs_cutting_tool_cutterhead_model_ids = fields.Many2many('sf.cutting.tool.model',
+ # 'rel_cutterhead_model_functional_sf',
+ # string='夹头型号', domain=
+ # [('cutting_tool_type', '=', '夹头')])
+ #
+ # diameter = fields.Float('直径(mm)')
+ # tool_grade = fields.Selection([('1', 'P1'), ('2', 'P2'), ('3', 'P3'), ('4', 'P4'), ('5', 'P5'), ('6', 'P6')],
+ # string='刀具等级')
+ # machining_accuracy = fields.Float('加工精度(mm)')
+ # tool_length = fields.Float('装刀长')
+ # blade_number = fields.Integer('刃数')
+ # integral_blade_length = fields.Float('整体刃长(mm)')
+ # effective_blade_length = fields.Float('有效刃长(mm)')
+ # max_life = fields.Float('最大寿命值')
+ # is_standard = fields.Boolean('是否标准刀')
+ # applicable_range = fields.Char('适用范围')
+ # image = fields.Binary('图片')
+ # active = fields.Boolean('有效', default=True)
+ #
+ # def _get_functional_tool_model_ids(self, functional_tool_model_code):
+ # functional_tool_model_ids = []
+ # for item in functional_tool_model_code:
+ # functional_tool_model = self.env['sf.cutting.tool.model'].search([('code', '=', item)])
+ # functional_tool_model_ids.append(functional_tool_model.id)
+ # return [(6, 0, functional_tool_model_ids)]
# 功能刀具类型
@@ -82,6 +86,7 @@ class FunctionalCuttingToolModel(models.Model):
name = fields.Char('名称', required=True)
code = fields.Char('编码', required=True)
remark = fields.Char('备注')
+ active = fields.Boolean('有效', default=True)
# 刀具型号
@@ -91,214 +96,93 @@ class CuttingToolModel(models.Model):
name = fields.Char('名称')
code = fields.Char('编码')
- mrs_machine_brand_id = fields.Many2one('sf.machine.brand', '品牌')
- mrs_materials_model_id = fields.Many2one('sf.materials.model', '材料型号')
- # 关联刀具物料
- mrs_cutting_tool_material_id = fields.Many2one('sf.cutting.tool.material', '刀具物料', required=True)
- # 关联刀具物料名称
- mrs_cutting_tool_material_name = fields.Char(related='mrs_cutting_tool_material_id.name', string='刀具物料名称',
- store=True)
- # 关联刀具类型
- mrs_cutting_tool_type_id = fields.Many2one(
- 'sf.cutting.tool.type', '刀具类型',
- domain="[('mrs_cutting_tool_material_id.name', '=', mrs_cutting_tool_material_name)]", required=True)
-
- # 整体式刀具特有字段
- integral_code = fields.Char('整体式刀具编码')
- integral_accuracy = fields.Float('精度(μm)')
- integral_hardness = fields.Float('加工硬度(HRC)')
- integral_coating_material = fields.Char('涂层材质')
- integral_total_length = fields.Float('总长度(mm)')
- integral_shank_length = fields.Float('柄部长度(mm)')
- integral_blade_length = fields.Float('刃部长度(mm)')
- integral_diameter = fields.Float('直径(mm)')
- integral_blade_number = fields.Integer('刃数')
- integral_front_angle = fields.Float('前角(°)')
- integral_rear_angle = fields.Float('后角(°)')
- integral_main_included_angle = fields.Float('主偏角(°)')
- integral_nut = fields.Float('配对螺母(mm)')
- integral_scope = fields.Char('适用范围')
-
- # 刀片特有字段
- blade_code = fields.Char('刀片编码')
- blade_coating_material = fields.Char('涂层材质')
- blade_length = fields.Float('长度L(mm)')
- blade_width = fields.Float('宽度D(mm)')
- blade_height = fields.Float('高度T(mm)')
- blade_top_angle = fields.Float('顶角(°)')
- blade_front_angle = fields.Float('前角(°)')
- blade_rear_angle = fields.Float('后角(°)')
- blade_main_included_angle = fields.Float('主偏角(°)')
- blade_r_angle = fields.Float('R角(°)')
- blade_hardness = fields.Char('加工硬度')
- blade_accuracy = fields.Char('精度等级')
- blade_radius = fields.Float('刀尖半径(mm)')
- blade_nut = fields.Float('配对螺母(mm)')
- mrs_cutting_tool_model_blade_cutter_bar_ids = fields.Many2many(
+ cutting_tool_material_id = fields.Many2one('sf.cutting.tool.material', string='刀具物料')
+ cutting_tool_type = fields.Char(string="刀具物料类型", related='cutting_tool_material_id.name', store=True)
+ cutting_tool_type_id = fields.Many2one('sf.cutting.tool.type', string='刀具类型',
+ )
+ brand_id = fields.Many2one('sf.machine.brand', '品牌')
+ tool_length = fields.Integer('长度(mm)', size=6)
+ tool_width = fields.Integer('宽度(mm)', size=6)
+ tool_height = fields.Integer('高度(mm)', size=6)
+ tool_thickness = fields.Integer('厚度(mm)', size=6)
+ tool_weight = fields.Float('重量(kg)', size=4)
+ coating_material = fields.Char('涂层材质')
+ # 整体式刀具参数
+ total_length = fields.Float('总长度(mm)')
+ shank_length = fields.Float('柄部长度(mm)')
+ blade_length = fields.Float('刃部长度(mm)')
+ diameter = fields.Float('直径(mm)')
+ blade_number = fields.Integer('刃数')
+ front_angle = fields.Float('前角(°)')
+ rear_angle = fields.Float('后角(°)')
+ main_included_angle = fields.Float('主偏角(°)')
+ material_model_id = fields.Many2one('sf.materials.model', '材料型号')
+ nut = fields.Float('配对螺母(mm)')
+ # 适用夹头型号可以多选
+ chuck_ids = fields.Many2many(
'sf.cutting.tool.model',
- relation='sf_cutting_tool_model_blade_cutter_bar_rel',
+ relation='cutting_tool_model_handle_chuck_rel',
column1='model_id_1',
column2='model_id_2',
- domain="[('mrs_cutting_tool_material_id.name', '=', '刀杆')]",
- string='适用刀杆型号',
- default=lambda self: [], # 使用空列表作为默认值
- )
- mrs_cutting_tool_model_blade_cutter_pad_ids = fields.Many2many(
+ domain="[('cutting_tool_type', '=', '夹头')]",
+ string='适用夹头型号')
+ # 刀片参数
+ top_angle = fields.Float('顶角(°)')
+ jump_accuracy = fields.Float('径跳精度(um)')
+ working_hardness = fields.Char('加工硬度(hrc)')
+ cutter_bar_ids = fields.Many2many(
'sf.cutting.tool.model',
- relation='sf_cutting_tool_model_blade_cutter_pad_rel',
+ relation='cutting_tool_model_blade_cutter_bar_rel',
column1='model_id_1',
column2='model_id_2',
- domain="[('mrs_cutting_tool_material_id.name', '=', '刀盘')]",
- string='适用刀盘型号',
- default=lambda self: [], # 使用空列表作为默认值
+ domain="[('cutting_tool_type', '=', '刀杆')]",
+ string='适用刀杆型号'
)
-
- # 刀杆特有字段
- bar_code = fields.Char('刀杆编码')
- bar_c_diameter = fields.Float('C柄径(mm)')
- bar_total_length = fields.Float('L总长(mm)')
- bar_blade_number = fields.Integer('刃数')
- bar_d_diameter = fields.Float('D刃径(mm)')
- mrs_cutting_tool_model_bar_blade_ids = fields.Many2many(
+ cutter_pad_ids = fields.Many2many(
'sf.cutting.tool.model',
- relation='sf_cutting_tool_model_bar_blade_rel',
+ relation='cutting_tool_model_blade_cutter_pad_rel',
column1='model_id_1',
column2='model_id_2',
- domain="[('mrs_cutting_tool_material_id.name', '=', '刀片')]",
- string='适用刀片型号',
- default=lambda self: [], # 使用空列表作为默认值
+ domain="[('cutting_tool_type', '=', '刀盘')]",
+ string='适用刀盘型号' # 使用空列表作为默认值
)
- bar_wrench = fields.Float('配对扳手(mm)')
- bar_screw = fields.Float('配备螺丝(mm)')
- bar_radius = fields.Float('刀尖圆角半径')
- bar_accuracy = fields.Char('精度等级')
- bar_hardness = fields.Char('硬度(°)')
- bar_scope = fields.Char('适用范围')
-
- # 刀盘特有字段
- pad_code = fields.Char('刀盘编码')
- pad_c_diameter = fields.Float('C柄径(mm)')
- pad_total_length = fields.Float('L总长(mm)')
- pad_blade_number = fields.Integer('刃数')
- pad_d_diameter = fields.Float('D刃径(mm)')
- mrs_cutting_tool_model_pad_blade_ids = fields.Many2many(
+ # 刀杆/参数
+ blade_diameter = fields.Float('刃径(mm)')
+ blade_ids = fields.Many2many(
'sf.cutting.tool.model',
- relation='sf_cutting_tool_model_pad_blade_rel',
+ relation='cutting_tool_model_pad_blade_rel',
column1='model_id_1',
column2='model_id_2',
- domain="[('mrs_cutting_tool_material_id.name', '=', '刀片')]",
- string='适用刀片型号',
- default=lambda self: [], # 使用空列表作为默认值
+ domain="[('cutting_tool_type', '=', '刀片')]",
+ string='适用刀片型号' # 使用空列表作为默认值
)
- pad_wrench = fields.Float('配对扳手(mm)')
- pad_screw = fields.Float('配备螺丝(mm)')
- pad_radius = fields.Float('刀尖圆角半径')
- pad_accuracy = fields.Char('精度等级')
- pad_hardness = fields.Char('硬度(°)')
- pad_scope = fields.Char('适用范围')
-
- # 刀柄特有字段
- handle_code = fields.Char('刀柄编码')
- # 柄长L(mm)、法兰柄长L1(mm)、法兰直径D1(mm)
- handle_length = fields.Float('柄长L(mm)')
- handle_diameter = fields.Float('直径D(mm)')
- handle_flange_length = fields.Float('法兰柄长L1(mm)')
- handle_flange_diameter = fields.Float('法兰直径D1(mm)')
- # 夹持直径min、夹持直径max、径跳精度、最大转速n/min、3D模型图
- handle_clamping_diameter_min = fields.Float('夹持直径min')
- handle_clamping_diameter_max = fields.Float('夹持直径max')
- handle_jump_accuracy = fields.Float('径跳精度')
- handle_max_speed = fields.Float('最大转速n/min')
- handle_weight = fields.Float('重量(kg)')
- handle_body_accuracy = fields.Float('本体精度(mm)')
- handle_nut = fields.Float('配对螺母(mm)')
- mrs_cutting_tool_model_handle_chuck_model_ids = fields.Many2many(
+ wrench = fields.Float('配对扳手(mm)')
+ screw = fields.Float('配备螺丝(mm)')
+ accuracy_level = fields.Char('精度等级')
+ # 刀柄参数
+ diameter_max = fields.Float('最大直径(mm)')
+ clamping_diameter = fields.Float('夹持直径(mm)')
+ flange_length = fields.Float('法兰柄长度(mm)')
+ flange_diameter = fields.Float('法兰直径(mm)')
+ # 夹头参数
+ outer_diameter = fields.Float('外径(mm)')
+ inner_diameter = fields.Float('内径(mm)')
+ handle_ids = fields.Many2many(
'sf.cutting.tool.model',
- relation='sf_cutting_tool_model_handle_chuck_rel',
+ relation='cutting_tool_model_chuck_handle_rel',
column1='model_id_1',
column2='model_id_2',
- domain="[('mrs_cutting_tool_material_id.name', '=', '夹头')]",
- string='适用夹头型号',
-
+ domain="[('cutting_tool_type', '=', '刀柄')]",
+ string='适用刀柄型号'
)
- handle_clamping_range = fields.Float('夹持范围(mm)')
- handle_detection_accuracy = fields.Float('检测精度')
- handle_detection_hardness = fields.Char('检测硬度')
- handle_standard_speed = fields.Float('标准转速')
+ active = fields.Boolean('有效', default=True)
- # 夹头特有字段
- chuck_code = fields.Char('夹头编码')
- chuck_accuracy = fields.Float('精度(mm)')
- # 夹持直径min、夹持直径max、3D模型图
- chuck_clamping_diameter_min = fields.Float('夹持直径min')
- chuck_clamping_diameter_max = fields.Float('夹持直径max')
- chuck_diameter = fields.Float('外径(mm)')
- chuck_inner_diameter = fields.Float('内径(mm)')
- chuck_height = fields.Float('高度(mm)')
- chuck_nut = fields.Float('配对螺母(mm)')
- mrs_cutting_tool_model_chuck_handle_model_ids = fields.Many2many(
- 'sf.cutting.tool.model',
- relation='sf_cutting_tool_model_chuck_handle_rel',
- column1='model_id_1',
- column2='model_id_2',
- domain="[('mrs_cutting_tool_material_id.name', '=', '刀柄')]",
- string='适用刀柄型号',
- default=lambda self: [], # 使用空列表作为默认值
- )
- chuck_clamping_range = fields.Float('夹持范围(mm)')
- chuck_feature = fields.Char('特性')
-
- image = fields.Binary('图片')
- three_d_model = fields.Many2one('ir.attachment', '3D模型')
-
- hide_integral = fields.Boolean(compute='_compute_hide_model_number', default=False, string='隐藏整体式刀具')
- hide_blade = fields.Boolean(compute='_compute_hide_model_number', default=False, string='隐藏刀片')
- hide_cutter_bar = fields.Boolean(compute='_compute_hide_model_number', default=False, string='隐藏刀杆')
- hide_cutter_pad = fields.Boolean(compute='_compute_hide_model_number', default=False, string='隐藏刀盘')
- hide_handler = fields.Boolean(compute='_compute_hide_model_number', default=False, string='隐藏刀柄')
- hide_chuck = fields.Boolean(compute='_compute_hide_model_number', default=False, string='隐藏夹头')
- hide_model = fields.Boolean(compute='_compute_hide_model_number', default=True, string='隐藏型号')
- image_is_visible = fields.Boolean(compute='_compute_image_is_visible', default=True, string='隐藏图片')
-
- @api.depends('mrs_cutting_tool_material_id')
- def _compute_image_is_visible(self):
- for record in self:
- record.image_is_visible = not (record.hide_handler or record.hide_chuck)
-
- @api.depends('mrs_cutting_tool_material_id')
- def _compute_hide_model_number(self):
- """
- 根据刀具物料类型,显示不同的字段
- """
- for record in self:
- record.hide_integral = False
- record.hide_blade = False
- record.hide_cutter_bar = False
- record.hide_cutter_pad = False
- record.hide_handler = False
- record.hide_chuck = False
- record.hide_model = True
-
- if record.mrs_cutting_tool_material_id and record.mrs_cutting_tool_material_id.name == '整体式刀具':
- record.hide_model = False
- record.hide_integral = True
- elif record.mrs_cutting_tool_material_id and record.mrs_cutting_tool_material_id.name == '刀片':
- record.hide_model = False
- record.hide_blade = True
- elif record.mrs_cutting_tool_material_id and record.mrs_cutting_tool_material_id.name == '刀杆':
- record.hide_model = False
- record.hide_cutter_bar = True
- elif record.mrs_cutting_tool_material_id and record.mrs_cutting_tool_material_id.name == '刀盘':
- record.hide_model = False
- record.hide_cutter_pad = True
- elif record.mrs_cutting_tool_material_id and record.mrs_cutting_tool_material_id.name == '刀柄':
- record.hide_model = False
- record.hide_handler = True
- elif record.mrs_cutting_tool_material_id and record.mrs_cutting_tool_material_id.name == '夹头':
- record.hide_model = False
- record.hide_chuck = True
- else:
- record.hide_model = True
+ # @api.model
+ # def create(self, vals):
+ # if vals.get('name', '/') == '/' or vals.get('name', '/') is False:
+ # vals['name'] = '/'
+ # obj = super(CuttingToolModel, self).create(vals)
+ # return obj
# 刀具类型
@@ -309,18 +193,6 @@ class CuttingToolType(models.Model):
code = fields.Char('编码')
name = fields.Char('名称')
# 关联刀具物料
- mrs_cutting_tool_material_id = fields.Many2one('sf.cutting.tool.material', '刀具物料')
- # 整体式刀具类型特有字段
- integral_tool_type_code = fields.Char('整体式刀具类型编码')
- # 刀片类型特有字段
- blade_type_code = fields.Char('刀片类型编码')
- # 刀杆类型特有字段
- bar_type_code = fields.Char('刀杆类型编码')
- # 刀盘类型特有字段
- pad_type_code = fields.Char('刀盘类型编码')
- # 刀柄类型特有字段
- handle_type_code = fields.Char('刀柄类型编码')
- # 夹头类型特有字段
- chuck_type_code = fields.Char('夹头类型编码')
-
+ cutting_tool_material_id = fields.Many2one('sf.cutting.tool.material', '刀具物料')
remark = fields.Char('备注')
+ active = fields.Boolean('有效', default=True)
diff --git a/sf_base/views/base_view.xml b/sf_base/views/base_view.xml
index 4425ae13..6c4f9660 100644
--- a/sf_base/views/base_view.xml
+++ b/sf_base/views/base_view.xml
@@ -10,6 +10,7 @@