新增同步cloud的刀具标准库接口
This commit is contained in:
@@ -10,7 +10,7 @@
|
||||
""",
|
||||
'category': 'sf',
|
||||
'website': 'https://www.sf.jikimo.com',
|
||||
'depends': ['account', 'base', 'mrp_workorder', 'sale'],
|
||||
'depends': ['account', 'base', 'mrp_workorder', 'sale', 'sf_maintenance'],
|
||||
'data': [
|
||||
'security/group_security.xml',
|
||||
'security/ir.model.access.csv',
|
||||
|
||||
@@ -1,304 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import logging
|
||||
|
||||
from odoo import fields, models, api
|
||||
# from odoo.exceptions import UserError
|
||||
# # from odoo.addons import sf_base, sf_common
|
||||
# from datetime import datetime
|
||||
|
||||
|
||||
# 功能刀具物料
|
||||
class CuttingToolMaterial(models.Model):
|
||||
_name = 'sf.cutting.tool.material'
|
||||
_description = '刀具物料'
|
||||
|
||||
code = fields.Char('编码')
|
||||
name = fields.Char('名称')
|
||||
remark = fields.Char('备注')
|
||||
active = fields.Boolean('有效', default=True)
|
||||
|
||||
|
||||
# 功能刀具
|
||||
class FunctionalCuttingTool(models.Model):
|
||||
_name = 'sf.functional.cutting.tool'
|
||||
_description = '功能刀具'
|
||||
|
||||
code = fields.Char('编码')
|
||||
name = fields.Char('名称')
|
||||
functional_model_number = fields.Many2one('sf.functional.cutting.tool.model', string='功能刀具类型')
|
||||
integral_model_number = fields.Many2one('sf.integral.cutting.tool', string='整体式刀具型号')
|
||||
blade_model_number = fields.Many2one('sf.blade', string='刀片型号')
|
||||
cutterbar_model_number = fields.Many2one('sf.cutter.bar', string='刀杆型号')
|
||||
cutterpad_model_number = fields.Many2one('sf.cutter.pad', string='刀盘型号')
|
||||
handle_model_number = fields.Many2one('sf.handle', string='刀柄型号')
|
||||
chuck_model_number = fields.Many2one('sf.chuck', string='夹头型号')
|
||||
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)
|
||||
|
||||
|
||||
# 功能刀具类型
|
||||
class FunctionalCuttingToolModel(models.Model):
|
||||
_name = 'sf.functional.cutting.tool.model'
|
||||
_description = '功能刀具类型'
|
||||
|
||||
name = fields.Char('名称')
|
||||
code = fields.Char('编码')
|
||||
remark = fields.Char('备注')
|
||||
active = fields.Boolean('有效', default=True)
|
||||
|
||||
|
||||
# 整体式刀具
|
||||
class IntegralCuttingTool(models.Model):
|
||||
_name = 'sf.integral.cutting.tool'
|
||||
_description = '整体式刀具'
|
||||
|
||||
code = fields.Char('编码')
|
||||
name = fields.Char('型号名称')
|
||||
# 关联刀具物料
|
||||
cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料')
|
||||
# 整体式刀具类型字段,关联整体式刀具类型对象
|
||||
integral_model_number = fields.Many2one('sf.integral.cutting.tool.model', '整体式刀具类型')
|
||||
# 增加品牌、总长度(mm)、柄部长度(mm)、刃部长度(mm)、直径(mm)、刃数、前角(°)、后角(°)、主偏角(°)、材料型号、配对螺母(mm)、适用夹头型号、适用范围、图片、创建人、创建时间等字段
|
||||
brand = fields.Many2one('sf.machine.brand', '品牌')
|
||||
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 = fields.Many2one('sf.materials.model', '材料型号')
|
||||
nut = fields.Float('配对螺母(mm)')
|
||||
# 适用夹头型号可以多选
|
||||
chuck_model = fields.Many2many('sf.chuck', string='适用夹头型号')
|
||||
scope = fields.Char('适用范围')
|
||||
image = fields.Binary('图片')
|
||||
active = fields.Boolean('有效', default=True)
|
||||
|
||||
|
||||
# 整体式刀具类型
|
||||
class IntegralCuttingToolModel(models.Model):
|
||||
_name = 'sf.integral.cutting.tool.model'
|
||||
_description = '整体式刀具类型'
|
||||
|
||||
code = fields.Char('编码')
|
||||
name = fields.Char('名称')
|
||||
# 关联刀具物料
|
||||
cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料')
|
||||
remark = fields.Char('备注')
|
||||
|
||||
|
||||
# 刀片
|
||||
class Blade(models.Model):
|
||||
_name = 'sf.blade'
|
||||
_description = '刀片'
|
||||
|
||||
code = fields.Char('编码')
|
||||
name = fields.Char('型号名称')
|
||||
# 关联刀具物料
|
||||
cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料')
|
||||
# 刀片类型字段,关联刀片类型对象
|
||||
blade_model_number = fields.Many2one('sf.blade.model', '刀片类型')
|
||||
# 编码、型号名称、刀片类型、品牌、长度L(mm)、宽度D(mm)、高度T(mm)、顶角(°)、前角(°)、后角(°)、主偏角(°)、R角(°)、材料型号、加工硬度、配对螺母(mm)、适用刀杆/刀盘型号、刀尖半径(mm)、图片、创建人、创建时间字段
|
||||
brand = fields.Many2one('sf.machine.brand', '品牌', )
|
||||
length = fields.Float('长度L(mm)')
|
||||
width = fields.Float('宽度D(mm)')
|
||||
height = fields.Float('高度T(mm)')
|
||||
top_angle = fields.Float('顶角(°)')
|
||||
front_angle = fields.Float('前角(°)')
|
||||
rear_angle = fields.Float('后角(°)')
|
||||
main_included_angle = fields.Float('主偏角(°)')
|
||||
r_angle = fields.Float('R角(°)')
|
||||
material_model = fields.Many2one('sf.materials.model', '材料型号')
|
||||
hardness = fields.Char('加工硬度')
|
||||
nut = fields.Float('配对螺母(mm)')
|
||||
# 适用刀杆型号可以多选
|
||||
cutter_bar = fields.Many2many('sf.cutter.bar', string='适用刀杆型号')
|
||||
# 适用刀盘型号可以多选
|
||||
cutter_pad = fields.Many2many('sf.cutter.pad', string='适用刀盘型号')
|
||||
radius = fields.Float('刀尖半径(mm)')
|
||||
image = fields.Binary('图片')
|
||||
|
||||
|
||||
# 刀片类型
|
||||
class BladeModel(models.Model):
|
||||
_name = 'sf.blade.model'
|
||||
_description = '刀片类型'
|
||||
|
||||
code = fields.Char('编码')
|
||||
name = fields.Char('名称')
|
||||
# 关联刀具物料
|
||||
cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料')
|
||||
# 刀片类型字段,关联刀片对象
|
||||
blade_ids = fields.One2many('sf.blade', 'blade_model_number', '刀片类型')
|
||||
remark = fields.Char('备注')
|
||||
|
||||
|
||||
# 刀杆
|
||||
class CutterBar(models.Model):
|
||||
_name = 'sf.cutter.bar'
|
||||
_description = '刀杆'
|
||||
|
||||
code = fields.Char('编码')
|
||||
name = fields.Char('型号名称')
|
||||
# 关联刀具物料
|
||||
cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料')
|
||||
# 刀杆类型字段,关联刀杆类型对象
|
||||
cutter_bar_model_number = fields.Many2one('sf.cutter.bar.model', '刀杆类型')
|
||||
# 品牌、C柄径(mm)、L总长(mm)、材料型号、刃数、D刃径(mm)、适用刀片型号、配对扳手(mm)、配备螺丝(mm)、刀尖圆角半径、精度等级、硬度(°)、适用范围、图片、创建人、创建时间
|
||||
brand = fields.Many2one('sf.machine.brand', '品牌')
|
||||
c_diameter = fields.Float('C柄径(mm)')
|
||||
total_length = fields.Float('L总长(mm)')
|
||||
material_model = fields.Many2one('sf.materials.model', '材料型号')
|
||||
blade_number = fields.Integer('刃数')
|
||||
d_diameter = fields.Float('D刃径(mm)')
|
||||
blade = fields.Many2many('sf.blade', string='适用刀片型号')
|
||||
wrench = fields.Float('配对扳手(mm)')
|
||||
screw = fields.Float('配备螺丝(mm)')
|
||||
radius = fields.Float('刀尖圆角半径')
|
||||
accuracy = fields.Char('精度等级')
|
||||
hardness = fields.Char('硬度(°)')
|
||||
scope = fields.Char('适用范围')
|
||||
image = fields.Binary('图片')
|
||||
|
||||
|
||||
# 刀杆类型
|
||||
class CutterBarModel(models.Model):
|
||||
_name = 'sf.cutter.bar.model'
|
||||
_description = '刀杆类型'
|
||||
|
||||
code = fields.Char('编码')
|
||||
name = fields.Char('名称')
|
||||
# 关联刀具物料
|
||||
cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料')
|
||||
remark = fields.Char('备注')
|
||||
|
||||
|
||||
# 刀盘
|
||||
class CutterPad(models.Model):
|
||||
_name = 'sf.cutter.pad'
|
||||
_description = '刀盘'
|
||||
|
||||
code = fields.Char('编码')
|
||||
name = fields.Char('型号名称')
|
||||
# 关联刀具物料
|
||||
cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料')
|
||||
# 刀盘类型字段,关联刀盘类型对象
|
||||
cutter_pad_model_number = fields.Many2one('sf.cutter.pad.model', '刀盘类型')
|
||||
# 增加品牌、C柄径(mm)、L总长(mm)、材料型号、刃数、D刃径(mm)、适用刀片型号、配对扳手(mm)、配备螺丝(mm)、刀尖圆角半径、精度等级、硬度(°)、适用范围、图片、创建人、创建时间
|
||||
brand = fields.Many2one('sf.machine.brand', '品牌')
|
||||
c_diameter = fields.Float('C柄径(mm)')
|
||||
total_length = fields.Float('L总长(mm)')
|
||||
material_model = fields.Many2one('sf.materials.model', '材料型号')
|
||||
blade_number = fields.Integer('刃数')
|
||||
d_diameter = fields.Float('D刃径(mm)')
|
||||
blade = fields.Many2many('sf.blade', string='适用刀片型号')
|
||||
wrench = fields.Float('配对扳手(mm)')
|
||||
screw = fields.Float('配备螺丝(mm)')
|
||||
radius = fields.Float('刀尖圆角半径')
|
||||
accuracy = fields.Char('精度等级')
|
||||
hardness = fields.Char('硬度(°)')
|
||||
scope = fields.Char('适用范围')
|
||||
image = fields.Binary('图片')
|
||||
|
||||
|
||||
# 刀盘类型
|
||||
class CutterPadModel(models.Model):
|
||||
_name = 'sf.cutter.pad.model'
|
||||
_description = '刀盘类型'
|
||||
|
||||
code = fields.Char('编码')
|
||||
name = fields.Char('名称')
|
||||
# 关联刀具物料
|
||||
cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料')
|
||||
remark = fields.Char('备注')
|
||||
|
||||
|
||||
# 刀柄
|
||||
class Handle(models.Model):
|
||||
_name = 'sf.handle'
|
||||
_description = '刀柄'
|
||||
|
||||
code = fields.Char('编码')
|
||||
name = fields.Char('型号名称')
|
||||
# 关联刀具物料
|
||||
cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料')
|
||||
# 刀柄类型字段,关联刀柄类型对象
|
||||
handle_model_number = fields.Many2one('sf.handle.model', '刀柄类型')
|
||||
# 增加、刀柄类型、品牌、L(mm)、L1(mm)、D1(mm)、重量(kg)、材料型号、本体精度(mm)、配对螺母(mm)、适用夹头型号、夹持范围(mm)、检测精度、检测硬度、标准转速、图片、创建人、创建时间
|
||||
brand = fields.Many2one('sf.machine.brand', '品牌')
|
||||
length = fields.Float('L(mm)')
|
||||
length1 = fields.Float('L1(mm)')
|
||||
diameter1 = fields.Float('D1(mm)')
|
||||
weight = fields.Float('重量(kg)')
|
||||
material_model = fields.Many2one('sf.materials.model', '材料型号')
|
||||
body_accuracy = fields.Float('本体精度(mm)')
|
||||
nut = fields.Float('配对螺母(mm)')
|
||||
chuck_model = fields.Many2many('sf.chuck.model', string='适用夹头型号')
|
||||
clamping_range = fields.Float('夹持范围(mm)')
|
||||
detection_accuracy = fields.Float('检测精度')
|
||||
detection_hardness = fields.Char('检测硬度')
|
||||
standard_speed = fields.Float('标准转速')
|
||||
image = fields.Binary('图片')
|
||||
|
||||
|
||||
# 刀柄类型
|
||||
class HandleModel(models.Model):
|
||||
_name = 'sf.handle.model'
|
||||
_description = '刀柄类型'
|
||||
|
||||
code = fields.Char('编码')
|
||||
name = fields.Char('名称')
|
||||
# 关联刀具物料
|
||||
cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料')
|
||||
remark = fields.Char('备注')
|
||||
|
||||
|
||||
# 夹头对象(夹头型号对象)
|
||||
class Chuck(models.Model):
|
||||
_name = 'sf.chuck'
|
||||
_description = '夹头'
|
||||
_rec_name = 'code'
|
||||
|
||||
code = fields.Char('编码')
|
||||
name = fields.Char('型号名称')
|
||||
# 关联刀具物料
|
||||
cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料')
|
||||
# 夹头类型字段,关联夹头类型对象
|
||||
chuck_model_number = fields.Many2one('sf.chuck.model', '夹头类型')
|
||||
# 增加品牌、精度(mm)、外径(mm)、内径(mm)、高度(mm)、材料型号、配对螺母(mm)、适用刀柄型号、夹持范围(mm)、特性、图片、创建人、创建时间
|
||||
brand = fields.Many2one('sf.machine.brand', '品牌')
|
||||
accuracy = fields.Float('精度(mm)')
|
||||
diameter = fields.Float('外径(mm)')
|
||||
inner_diameter = fields.Float('内径(mm)')
|
||||
height = fields.Float('高度(mm)')
|
||||
material_model = fields.Many2one('sf.materials.model', '材料型号')
|
||||
nut = fields.Float('配对螺母(mm)')
|
||||
handle_model = fields.Many2many('sf.handle.model', string='适用刀柄型号')
|
||||
clamping_range = fields.Float('夹持范围(mm)')
|
||||
feature = fields.Char('特性')
|
||||
image = fields.Binary('图片')
|
||||
|
||||
|
||||
# 夹头类型
|
||||
class ChuckModel(models.Model):
|
||||
_name = 'sf.chuck.model'
|
||||
_description = '夹头类型'
|
||||
|
||||
code = fields.Char('编码')
|
||||
name = fields.Char('名称')
|
||||
# 关联刀具物料
|
||||
cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料')
|
||||
remark = fields.Char('备注')
|
||||
@@ -91,133 +91,6 @@ class FunctionalCuttingToolModel(models.Model):
|
||||
active = fields.Boolean('有效', default=True)
|
||||
|
||||
|
||||
# 刀具型号
|
||||
class CuttingToolModel(models.Model):
|
||||
_name = 'sf.cutting.tool.model'
|
||||
_description = '刀具型号'
|
||||
|
||||
name = fields.Char('名称')
|
||||
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)')
|
||||
tool_width = fields.Integer('宽度(mm)')
|
||||
tool_height = fields.Integer('高度(mm)')
|
||||
tool_thickness = fields.Integer('厚度(mm)')
|
||||
tool_weight = fields.Float('重量(kg)')
|
||||
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='cutting_tool_model_handle_chuck_rel',
|
||||
column1='model_id_1',
|
||||
column2='model_id_2',
|
||||
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='cutting_tool_model_blade_cutter_bar_rel',
|
||||
column1='model_id_1',
|
||||
column2='model_id_2',
|
||||
domain="[('cutting_tool_type', '=', '刀杆')]",
|
||||
string='适用刀杆型号'
|
||||
)
|
||||
cutter_pad_ids = fields.Many2many(
|
||||
'sf.cutting.tool.model',
|
||||
relation='cutting_tool_model_blade_cutter_pad_rel',
|
||||
column1='model_id_1',
|
||||
column2='model_id_2',
|
||||
domain="[('cutting_tool_type', '=', '刀盘')]",
|
||||
string='适用刀盘型号' # 使用空列表作为默认值
|
||||
)
|
||||
# 刀杆/参数
|
||||
blade_diameter = fields.Float('刃径(mm)')
|
||||
blade_ids = fields.Many2many(
|
||||
'sf.cutting.tool.model',
|
||||
relation='cutting_tool_model_pad_blade_rel',
|
||||
column1='model_id_1',
|
||||
column2='model_id_2',
|
||||
domain="[('cutting_tool_type', '=', '刀片')]",
|
||||
string='适用刀片型号' # 使用空列表作为默认值
|
||||
)
|
||||
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='cutting_tool_model_chuck_handle_rel',
|
||||
column1='model_id_1',
|
||||
column2='model_id_2',
|
||||
domain="[('cutting_tool_type', '=', '刀柄')]",
|
||||
string='适用刀柄型号'
|
||||
)
|
||||
active = fields.Boolean('有效', default=True)
|
||||
|
||||
def _get_code(self, cutting_tool_type_code):
|
||||
cutting_tool_model = self.search(
|
||||
[('code', 'ilike', cutting_tool_type_code)],
|
||||
limit=1,
|
||||
order="id desc")
|
||||
if not cutting_tool_model:
|
||||
num = "%03d" % 1
|
||||
else:
|
||||
m = int(cutting_tool_model.code[-3:]) + 1
|
||||
num = "%03d" % m
|
||||
return "%s%s" % (cutting_tool_type_code, num)
|
||||
|
||||
code = fields.Char(string='编码', readonly=True)
|
||||
|
||||
def _onchange_cutting_tool_material_id(self, cutting_tool_material_id):
|
||||
if cutting_tool_material_id:
|
||||
if cutting_tool_material_id.name == "整体式刀具":
|
||||
code = self._get_code("JKM-T-DJWL-ZTDJ-")
|
||||
elif cutting_tool_material_id.name == "刀片":
|
||||
code = self._get_code("JKM-T-DJWL-DPIA-")
|
||||
elif cutting_tool_material_id.name == "刀杆":
|
||||
code = self._get_code("JKM-T-DJWL-DGAN-")
|
||||
elif cutting_tool_material_id.name == "刀盘":
|
||||
code = self._get_code("JKM-T-DJWL-DPAN-")
|
||||
elif cutting_tool_material_id.name == "夹头":
|
||||
code = self._get_code("JKM-T-DJWL-DJIA-")
|
||||
else:
|
||||
code = self._get_code("JKM-T-DJWL-DBIN-")
|
||||
return code
|
||||
|
||||
@api.model_create_multi
|
||||
def create(self, vals):
|
||||
obj = super(CuttingToolModel, self).create(vals)
|
||||
if obj.cutting_tool_material_id:
|
||||
code = self._onchange_cutting_tool_material_id(obj.cutting_tool_material_id)
|
||||
obj.code = code
|
||||
return obj
|
||||
|
||||
|
||||
# 刀具类型
|
||||
class CuttingToolType(models.Model):
|
||||
_name = 'sf.cutting.tool.type'
|
||||
@@ -229,3 +102,105 @@ class CuttingToolType(models.Model):
|
||||
cutting_tool_material_id = fields.Many2one('sf.cutting.tool.material', '刀具物料')
|
||||
remark = fields.Char('备注')
|
||||
active = fields.Boolean('有效', default=True)
|
||||
|
||||
|
||||
# 刀具标准库
|
||||
class CuttingToolModel(models.Model):
|
||||
_name = 'sf.cutting_tool.standard.library'
|
||||
_description = '刀具标准库'
|
||||
|
||||
code = fields.Char(string='编码')
|
||||
name = fields.Char('名称')
|
||||
# 关联刀具物料
|
||||
cutting_tool_material_id = fields.Many2one('sf.cutting.tool.material', '刀具物料', required=True)
|
||||
# 刀具物料类型
|
||||
cutting_tool_type = fields.Char(related='cutting_tool_material_id.name', string='刀具物料类型',
|
||||
store=True)
|
||||
# 关联刀具类型
|
||||
cutting_tool_type_id = fields.Many2one('sf.cutting.tool.type', '类型',
|
||||
domain="[('cutting_tool_material_id.name', '=', cutting_tool_type)]")
|
||||
brand_id = fields.Many2one('sf.machine.brand', '品牌')
|
||||
status = fields.Boolean(string='状态', default=False)
|
||||
image = fields.Binary('图片')
|
||||
|
||||
# 整体式刀具参数
|
||||
material_model_id = fields.Many2one('mrs.materials.model', '刀具材质')
|
||||
tool_hardness = fields.Integer('刀具硬度(hrc)')
|
||||
coating_material = fields.Char('涂层材质')
|
||||
blade_type = fields.Char('刃部类型')
|
||||
integral_coarse_medium_fine = fields.Selection([('粗', '粗'), ('中', '中'), ('精', '精')], '粗/中/精')
|
||||
integral_run_out_accuracy_max = fields.Char('整体式刀具端跳精度max')
|
||||
integral_run_out_accuracy_min = fields.Char('整体式刀具端跳精度min')
|
||||
|
||||
fit_blade_shape_ids = fields.Many2many('maintenance.equipment.image', 'fit_blade_shape_library_rel',
|
||||
'适配刀片形状', domain=[('type', '=', '刀片形状')])
|
||||
suitable_machining_method_ids = fields.Many2many('maintenance.equipment.image',
|
||||
'suitable_machining_method_library_rel',
|
||||
'适合加工方式', domain=[('type', '=', '加工能力')])
|
||||
blade_tip_characteristics_ids = fields.Many2many('maintenance.equipment.image',
|
||||
'blade_tip_character_library_rel',
|
||||
'刀尖特征', domain=[('type', '=', '刀尖特征')])
|
||||
handle_type_ids = fields.Many2many('maintenance.equipment.image', 'handle_type_library_rel',
|
||||
'柄部类型', 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', '=', '冷却液')])
|
||||
compaction_way_ids = fields.Many2many('maintenance.equipment.image', 'compaction_way_library_rel',
|
||||
'压紧方式', domain=[('type', '=', '压紧方式')])
|
||||
# tool_materials_basic_parameters_ids = fields.One2many('mrs.tool.materials.basic.parameters',
|
||||
# 'cutting_tool_model_id', string='基本参数')
|
||||
# cutting_speed_ids = fields.One2many('mrs.cutting.speed', 'cutting_tool_model_id', string='切削速度Vc')
|
||||
# feed_per_tooth_ids = fields.One2many('mrs.feed.per.tooth', 'cutting_tool_model_id', '每齿走刀量fz')
|
||||
|
||||
material_model_id = fields.Many2one('sf.materials.model', '材料型号')
|
||||
nut = fields.Float('配对螺母(mm)')
|
||||
# 适用夹头型号可以多选
|
||||
chuck_ids = fields.Many2many(
|
||||
'sf.cutting.tool.type',
|
||||
relation='cutting_tool_type_library_handle_chuck_rel',
|
||||
column1='model_id_1',
|
||||
column2='model_id_2',
|
||||
domain="[('cutting_tool_material_id.name', '=', '夹头')]",
|
||||
string='适用夹头型号')
|
||||
|
||||
working_hardness = fields.Char('加工硬度(hrc)')
|
||||
cutter_bar_ids = fields.Many2many(
|
||||
'sf.cutting.tool.type',
|
||||
relation='cutting_tool_type_library_cutter_bar_rel',
|
||||
column1='model_id_1',
|
||||
column2='model_id_2',
|
||||
domain="[('cutting_tool_material_id.name', '=', '刀杆')]",
|
||||
string='适用刀杆型号'
|
||||
)
|
||||
cutter_pad_ids = fields.Many2many(
|
||||
'sf.cutting.tool.type',
|
||||
relation='cutting_tool_type_library_cutter_pad_rel',
|
||||
column1='model_id_1',
|
||||
column2='model_id_2',
|
||||
domain="[('cutting_tool_material_id.name', '=', '刀盘')]",
|
||||
string='适用刀盘型号' # 使用空列表作为默认值
|
||||
)
|
||||
# 刀杆/参数
|
||||
blade_diameter = fields.Float('刃径(mm)')
|
||||
blade_ids = fields.Many2many(
|
||||
'sf.cutting.tool.type',
|
||||
relation='cutting_tool_type_library_pad_blade_rel',
|
||||
column1='model_id_1',
|
||||
column2='model_id_2',
|
||||
domain="[('cutting_tool_material_id.name', '=', '刀片')]",
|
||||
string='适用刀片型号' # 使用空列表作为默认值
|
||||
)
|
||||
handle_ids = fields.Many2many(
|
||||
'sf.cutting.tool.type',
|
||||
relation='cutting_tool_type_library_chuck_handle_rel',
|
||||
column1='model_id_1',
|
||||
column2='model_id_2',
|
||||
domain="[('cutting_tool_material_id.name', '=', '刀柄')]",
|
||||
string='适用刀柄型号'
|
||||
)
|
||||
active = fields.Boolean('有效', default=True)
|
||||
is_cloud = fields.Boolean('云端数据', default=False)
|
||||
|
||||
def get_cutter_bar_ids(self):
|
||||
return self.cutter_bar_ids
|
||||
|
||||
@@ -26,6 +26,7 @@ access_sf_functional_fixture,sf_functional_fixture,model_sf_functional_fixture,b
|
||||
access_sf_sync_common,sf_sync_common,model_sf_sync_common,base.group_user,1,1,1,1
|
||||
access_sf_international_standards,sf_international_standards,model_sf_international_standards,base.group_user,1,1,1,1
|
||||
access_material_apply,material_apply,model_material_apply,base.group_user,1,1,1,1
|
||||
access_sf_cutting_tool_standard_library,sf_cutting_tool_standard_library,model_sf_cutting_tool_standard_library,base.group_user,1,1,1,1
|
||||
|
||||
|
||||
|
||||
|
||||
|
@@ -1,234 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<odoo>
|
||||
<data>
|
||||
<!-- action -->
|
||||
<record id="action_sf_cutting_tool" model="ir.actions.act_window">
|
||||
<field name="name">整体式刀具型号</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">sf.integral.cutting.tool</field>
|
||||
<!-- <field name="view_type">form</field> -->
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
<!-- 功能刀具action -->
|
||||
<record id="action_sf_functional_cutting_tool" model="ir.actions.act_window">
|
||||
<field name="name">功能刀具</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">sf.functional.cutting.tool</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
<!-- 刀片action -->
|
||||
<record id="action_sf_cutting_tool_blade" model="ir.actions.act_window">
|
||||
<field name="name">刀片型号</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">sf.blade</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
<!-- 刀杆action -->
|
||||
<record id="action_sf_cutting_tool_rod" model="ir.actions.act_window">
|
||||
<field name="name">刀杆型号</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">sf.cutter.bar</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
<!-- 刀盘action -->
|
||||
<record id="action_sf_cutting_tool_disc" model="ir.actions.act_window">
|
||||
<field name="name">刀盘型号</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">sf.cutter.pad</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
<!-- 刀柄action -->
|
||||
<record id="action_sf_cutting_tool_handle" model="ir.actions.act_window">
|
||||
<field name="name">刀柄型号</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">sf.handle</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
<!-- 夹头action -->
|
||||
<record id="action_sf_cutting_tool_clamp_head" model="ir.actions.act_window">
|
||||
<field name="name">夹头型号</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">sf.chuck</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
<!-- 功能刀具类型action -->
|
||||
<record id="action_sf_functional_cutting_tool_type" model="ir.actions.act_window">
|
||||
<field name="name">功能刀具类型</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">sf.functional.cutting.tool.model</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
<!-- 整体式刀具类型action -->
|
||||
<record id="action_sf_integral_cutting_tool_type" model="ir.actions.act_window">
|
||||
<field name="name">整体式刀具类型</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">sf.integral.cutting.tool.model</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
<!-- 刀片类型action -->
|
||||
<record id="action_sf_cutting_tool_blade_type" model="ir.actions.act_window">
|
||||
<field name="name">刀片类型</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">sf.blade.model</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
<!-- 刀杆类型action -->
|
||||
<record id="action_sf_cutting_tool_rod_type" model="ir.actions.act_window">
|
||||
<field name="name">刀杆类型</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">sf.cutter.bar.model</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
<!-- 刀盘类型action -->
|
||||
<record id="action_sf_cutting_tool_disc_type" model="ir.actions.act_window">
|
||||
<field name="name">刀盘类型</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">sf.cutter.pad.model</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
<!-- 刀柄类型action -->
|
||||
<record id="action_sf_cutting_tool_handle_type" model="ir.actions.act_window">
|
||||
<field name="name">刀柄类型</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">sf.handle.model</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
<!-- 夹头类型action -->
|
||||
<record id="action_sf_cutting_tool_clamp_head_type" model="ir.actions.act_window">
|
||||
<field name="name">夹头类型</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">sf.chuck.model</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
<!-- 刀具物料action -->
|
||||
<record id="action_sf_cutting_tool_material" model="ir.actions.act_window">
|
||||
<field name="name">刀具物料</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">sf.cutting.tool.material</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
<!-- 功能刀具 -->
|
||||
<!-- <menuitem-->
|
||||
<!-- id="menu_sf_functional_cutting_tool"-->
|
||||
<!-- parent="menu_sf_base"-->
|
||||
<!-- name="功能刀具"-->
|
||||
<!-- sequence="3"-->
|
||||
<!-- action="action_sf_functional_cutting_tool"-->
|
||||
<!-- />-->
|
||||
<!-- 刀具物料 -->
|
||||
<menuitem
|
||||
id="menu_sf_cutting_tool_material"
|
||||
parent="menu_sf_base"
|
||||
name="刀具物料"
|
||||
sequence="1"
|
||||
action="action_sf_cutting_tool_material"
|
||||
/>
|
||||
|
||||
|
||||
<!-- 整体式刀具 -->
|
||||
<menuitem
|
||||
id="menu_sf_integral_cutting_tool"
|
||||
parent="menu_sf_base"
|
||||
name="整体式刀具型号"
|
||||
sequence="9"
|
||||
action="action_sf_cutting_tool"
|
||||
/>
|
||||
<!-- 刀片 -->
|
||||
<menuitem
|
||||
id="menu_sf_cutting_tool_blade"
|
||||
parent="menu_sf_base"
|
||||
name="刀片型号"
|
||||
sequence="12"
|
||||
action="action_sf_cutting_tool_blade"
|
||||
/>
|
||||
<!-- 刀杆 -->
|
||||
<menuitem
|
||||
id="menu_sf_cutting_tool_rod"
|
||||
parent="menu_sf_base"
|
||||
name="刀杆型号"
|
||||
sequence="16"
|
||||
action="action_sf_cutting_tool_rod"
|
||||
/>
|
||||
<!-- 刀盘 -->
|
||||
<menuitem
|
||||
id="menu_sf_cutting_tool_disc"
|
||||
parent="menu_sf_base"
|
||||
name="刀盘型号"
|
||||
sequence="20"
|
||||
action="action_sf_cutting_tool_disc"
|
||||
/>
|
||||
<!-- 刀柄 -->
|
||||
<menuitem
|
||||
id="menu_sf_cutting_tool_handle"
|
||||
parent="menu_sf_base"
|
||||
name="刀柄型号"
|
||||
sequence="28"
|
||||
action="action_sf_cutting_tool_handle"
|
||||
/>
|
||||
<!-- 夹头 -->
|
||||
<menuitem
|
||||
id="menu_sf_cutting_tool_clamp_head"
|
||||
parent="menu_sf_base"
|
||||
name="夹头型号"
|
||||
sequence="36"
|
||||
action="action_sf_cutting_tool_clamp_head"
|
||||
/>
|
||||
<!-- 功能刀具类型 -->
|
||||
<menuitem
|
||||
id="menu_sf_functional_cutting_tool_type"
|
||||
parent="menu_sf_base"
|
||||
name="功能刀具类型"
|
||||
sequence="40"
|
||||
action="action_sf_functional_cutting_tool_type"
|
||||
/>
|
||||
<!-- 整体式刀具类型 -->
|
||||
<menuitem
|
||||
id="menu_sf_integral_cutting_tool_type"
|
||||
parent="menu_sf_base"
|
||||
name="整体式刀具类型"
|
||||
sequence="44"
|
||||
action="action_sf_integral_cutting_tool_type"
|
||||
/>
|
||||
<!-- 刀片类型 -->
|
||||
<menuitem
|
||||
id="menu_sf_cutting_tool_blade_type"
|
||||
parent="menu_sf_base"
|
||||
name="刀片类型"
|
||||
sequence="48"
|
||||
action="action_sf_cutting_tool_blade_type"
|
||||
/>
|
||||
<!-- 刀杆类型 -->
|
||||
<menuitem
|
||||
id="menu_sf_cutting_tool_rod_type"
|
||||
parent="menu_sf_base"
|
||||
name="刀杆类型"
|
||||
sequence="52"
|
||||
action="action_sf_cutting_tool_rod_type"
|
||||
/>
|
||||
<!-- 刀盘类型 -->
|
||||
<menuitem
|
||||
id="menu_sf_cutting_tool_disc_type"
|
||||
parent="menu_sf_base"
|
||||
name="刀盘类型"
|
||||
sequence="56"
|
||||
action="action_sf_cutting_tool_disc_type"
|
||||
/>
|
||||
<!-- 刀柄类型 -->
|
||||
<menuitem
|
||||
id="menu_sf_cutting_tool_handle_type"
|
||||
parent="menu_sf_base"
|
||||
name="刀柄类型"
|
||||
sequence="60"
|
||||
action="action_sf_cutting_tool_handle_type"
|
||||
/>
|
||||
<!-- 夹头类型 -->
|
||||
<menuitem
|
||||
id="menu_sf_cutting_tool_clamp_head_type"
|
||||
parent="menu_sf_base"
|
||||
name="夹头类型"
|
||||
sequence="64"
|
||||
action="action_sf_cutting_tool_clamp_head_type"
|
||||
/>
|
||||
</data>
|
||||
</odoo>
|
||||
@@ -1,849 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<odoo>
|
||||
<data>
|
||||
<!-- 刀具物料tree view -->
|
||||
<record id="view_cutting_tool_material_tree" model="ir.ui.view">
|
||||
<field name="name">sf.cutting.tool.material.tree</field>
|
||||
<field name="model">sf.cutting.tool.material</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="刀具物料">
|
||||
<field name="code"/>
|
||||
<field name="name" string="名称"/>
|
||||
<field name="remark"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<!-- 刀具物料form view -->
|
||||
<record id="view_cutting_tool_material_form" model="ir.ui.view">
|
||||
<field name="name">sf.cutting.tool.material.form</field>
|
||||
<field name="model">sf.cutting.tool.material</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="刀具物料">
|
||||
<sheet>
|
||||
<group col='1'>
|
||||
<group string='基本信息'>
|
||||
<group>
|
||||
<field name="code"/>
|
||||
<field name="name" string="名称"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="remark"/>
|
||||
</group>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<!-- ================================================刀具物料视图================================================ -->
|
||||
<record model="ir.ui.view" id="view_cutting_tool_material_search">
|
||||
<field name="name">sf.cutting.tool.material.search</field>
|
||||
<field name="model">sf.cutting.tool.material</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="刀具物料">
|
||||
<field name="name" string="名称搜索" filter_domain="[('name','ilike',self)]"/>
|
||||
<field name="code" string="编码搜索" filter_domain="[('code','ilike',self)]"/>
|
||||
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
<!-- 功能刀具tree view -->
|
||||
<record id="view_functional_cutting_tool_tree" model="ir.ui.view">
|
||||
<field name="name">sf.functional.cutting.tool.tree</field>
|
||||
<field name="model">sf.functional.cutting.tool</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="功能刀具">
|
||||
<field name="code" />
|
||||
<field name="name" />
|
||||
<field name="functional_model_number" />
|
||||
<field name="integral_model_number"/>
|
||||
<field name="blade_model_number" optional="hide"/>
|
||||
<field name="cutterbar_model_number" optional="hide"/>
|
||||
<field name="cutterpad_model_number" optional="hide"/>
|
||||
<field name="handle_model_number" optional="hide"/>
|
||||
<field name="chuck_model_number" optional="hide"/>
|
||||
<field name="diameter" optional="show"/>
|
||||
<field name="tool_grade" optional="show"/>
|
||||
<field name="machining_accuracy" optional="hide"/>
|
||||
<field name="tool_length" optional="show"/>
|
||||
<field name="blade_number" optional="show"/>
|
||||
<field name="integral_blade_length" optional="show"/>
|
||||
<field name="effective_blade_length" optional="show"/>
|
||||
<field name="max_life" optional="show"/>
|
||||
<field name="is_standard" optional="show"/>
|
||||
<field name="applicable_range" optional="show"/>
|
||||
<field name="image" widget='image' optional="show"/>
|
||||
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<!-- form view -->
|
||||
<record id="view_functional_cutting_tool_form" model="ir.ui.view">
|
||||
<field name="name">sf.functional.cutting.tool.form</field>
|
||||
<field name="model">sf.functional.cutting.tool</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="功能刀具">
|
||||
<sheet>
|
||||
<group col='1'>
|
||||
<group string='基本信息'>
|
||||
<group>
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="functional_model_number"/>
|
||||
<field name="integral_model_number"/>
|
||||
<field name="blade_model_number"/>
|
||||
<field name="cutterbar_model_number"/>
|
||||
<field name="cutterpad_model_number"/>
|
||||
<field name="handle_model_number"/>
|
||||
<field name="chuck_model_number"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="image" nolabel="1" widget="image"/>
|
||||
</group>
|
||||
|
||||
</group>
|
||||
<group string='参数信息'>
|
||||
<group>
|
||||
<field name="diameter"/>
|
||||
<field name="tool_grade"/>
|
||||
<field name="machining_accuracy"/>
|
||||
<field name="tool_length"/>
|
||||
<field name="blade_number"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="integral_blade_length"/>
|
||||
<field name="effective_blade_length"/>
|
||||
<field name="max_life"/>
|
||||
<field name="is_standard"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string='其他信息'>
|
||||
<group>
|
||||
<field name="applicable_range"/>
|
||||
|
||||
</group>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<!-- 功能刀具search view -->
|
||||
<record model="ir.ui.view" id="view_sf_functional_cutting_tool_search">
|
||||
<field name="name">sf.functional.cutting.tool.search</field>
|
||||
<field name="model">sf.functional.cutting.tool</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="功能刀具">
|
||||
<field name="name" string="名称搜索" filter_domain="[('name','ilike',self)]"/>
|
||||
<field name="code" string="编码搜索" filter_domain="[('code','ilike',self)]"/>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- 整体式刀具tree view -->
|
||||
<record id="view_integral_cutting_tool_tree" model="ir.ui.view">
|
||||
<field name="name">sf.integral.cutting.tool.tree</field>
|
||||
<field name="model">sf.integral.cutting.tool</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="整体式刀具">
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="integral_model_number"/>
|
||||
<field name="brand"/>
|
||||
<field name="image" widget='image'/>
|
||||
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- form view -->
|
||||
<record id="view_integral_cutting_tool_form" model="ir.ui.view">
|
||||
<field name="name">sf.integral.cutting.tool.form</field>
|
||||
<field name="model">sf.integral.cutting.tool</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="整体式刀具">
|
||||
<sheet>
|
||||
<group col='1'>
|
||||
<group string='基本信息'>
|
||||
<group>
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="integral_model_number"/>
|
||||
<field name="brand"/>
|
||||
<field name="cutting_tool_material"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="image" nolabel="1" widget="image"/>
|
||||
</group>
|
||||
|
||||
</group>
|
||||
<group string='参数信息'>
|
||||
<group>
|
||||
<field name="total_length"/>
|
||||
<field name="shank_length"/>
|
||||
<field name="blade_length"/>
|
||||
<field name="diameter"/>
|
||||
<field name="blade_number"/>
|
||||
<field name="chuck_model" widget="many2many_tags" options="{'no_create': True, 'no_quick_create': True}"/>
|
||||
|
||||
</group>
|
||||
<group>
|
||||
<field name="front_angle"/>
|
||||
<field name="rear_angle"/>
|
||||
<field name="main_included_angle"/>
|
||||
<field name="material_model"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string='其他信息'>
|
||||
<group>
|
||||
<field name="nut"/>
|
||||
<field name="scope"/>
|
||||
|
||||
</group>
|
||||
|
||||
</group>
|
||||
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<!-- 整体式刀具search view -->
|
||||
<record model="ir.ui.view" id="view_integral_cutting_tool_search">
|
||||
<field name="name">sf.integral.cutting.tool.search</field>
|
||||
<field name="model">sf.integral.cutting.tool</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="整体式刀具">
|
||||
<field name="name" string="名称搜索" filter_domain="[('name','ilike',self)]"/>
|
||||
<field name="code" string="编码搜索" filter_domain="[('code','ilike',self)]"/>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
<!-- 刀片tree -->
|
||||
<record id="view_blade_tree" model="ir.ui.view">
|
||||
<field name="name">sf.blade.tree</field>
|
||||
<field name="model">sf.blade</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="刀片">
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="blade_model_number"/>
|
||||
<field name="image" widget='image'/>
|
||||
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<!-- 刀片form -->
|
||||
<record id="view_blade_form" model="ir.ui.view">
|
||||
<field name="name">sf.blade.form</field>
|
||||
<field name="model">sf.blade</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="刀片">
|
||||
<sheet>
|
||||
<group col='1'>
|
||||
<group string='基本信息'>
|
||||
<group>
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="blade_model_number"/>
|
||||
<field name="brand" options="{'no_create': True, 'no_quick_create': True}"/>
|
||||
<field name="cutting_tool_material"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="image" nolabel="1" widget="image"/>
|
||||
</group>
|
||||
|
||||
</group>
|
||||
<group string='参数信息'>
|
||||
<group>
|
||||
<field name="length"/>
|
||||
<field name="width"/>
|
||||
<field name="height"/>
|
||||
<field name="top_angle"/>
|
||||
<field name="front_angle"/>
|
||||
<field name="cutter_bar" widget="many2many_tags" options="{'no_create': True, 'no_quick_create': True}"/>
|
||||
<field name="cutter_pad" widget="many2many_tags" options="{'no_create': True, 'no_quick_create': True}"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="main_included_angle"/>
|
||||
<field name="r_angle"/>
|
||||
<field name="material_model"/>
|
||||
<field name="hardness"/>
|
||||
<field name="radius"/>
|
||||
<field name="rear_angle"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string='其他信息'>
|
||||
<group>
|
||||
<field name="nut"/>
|
||||
</group>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<!-- 刀片search view -->
|
||||
<record model="ir.ui.view" id="view_blade_search">
|
||||
<field name="name">sf.blade.search</field>
|
||||
<field name="model">sf.blade</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="刀片">
|
||||
<field name="name" string="名称搜索" filter_domain="[('name','ilike',self)]"/>
|
||||
<field name="code" string="编码搜索" filter_domain="[('code','ilike',self)]"/>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
<!-- 刀杆tree -->
|
||||
<record id="view_cutter_bar_tree" model="ir.ui.view">
|
||||
<field name="name">sf.cutter.bar.tree</field>
|
||||
<field name="model">sf.cutter.bar</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="刀杆">
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="cutter_bar_model_number"/>
|
||||
<field name="image" widget='image'/>
|
||||
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<!-- 刀杆form -->
|
||||
<record id="view_cutter_bar_form" model="ir.ui.view">
|
||||
<field name="name">sf.cutter.bar.form</field>
|
||||
<field name="model">sf.cutter.bar</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="刀杆">
|
||||
<sheet>
|
||||
<group col='1'>
|
||||
<group string='基本信息'>
|
||||
<group>
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="cutter_bar_model_number"/>
|
||||
<field name="brand"/>
|
||||
<field name="cutting_tool_material"/>
|
||||
<field name="blade" widget="many2many_tags" options="{'no_create': True, 'no_quick_create': True}"/>
|
||||
|
||||
</group>
|
||||
<group>
|
||||
<field name="image" nolabel="1" widget="image"/>
|
||||
</group>
|
||||
|
||||
</group>
|
||||
<group string='参数信息'>
|
||||
<group>
|
||||
<field name="c_diameter"/>
|
||||
<field name="total_length"/>
|
||||
<field name="material_model"/>
|
||||
<field name="blade_number"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="d_diameter"/>
|
||||
<field name="radius"/>
|
||||
<field name="accuracy"/>
|
||||
<field name="hardness"/>
|
||||
|
||||
</group>
|
||||
</group>
|
||||
<group string='其他信息'>
|
||||
<group>
|
||||
<field name="wrench"/>
|
||||
<field name="screw"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="scope"/>
|
||||
|
||||
</group>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<!-- 刀杆search view -->
|
||||
<record model="ir.ui.view" id="view_cutter_bar_search">
|
||||
<field name="name">sf.cutter.bar.search</field>
|
||||
<field name="model">sf.cutter.bar</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="刀杆">
|
||||
<field name="name" string="名称搜索" filter_domain="[('name','ilike',self)]"/>
|
||||
<field name="code" string="编码搜索" filter_domain="[('code','ilike',self)]"/>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- 刀盘tree -->
|
||||
<record id="view_cutter_pad_tree" model="ir.ui.view">
|
||||
<field name="name">sf.cutter.pad.tree</field>
|
||||
<field name="model">sf.cutter.pad</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="刀盘">
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="cutter_pad_model_number"/>
|
||||
<field name="image" widget='image'/>
|
||||
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<!-- 刀盘form -->
|
||||
<record id="view_cutter_pad_form" model="ir.ui.view">
|
||||
<field name="name">sf.cutter.pad.form</field>
|
||||
<field name="model">sf.cutter.pad</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="刀盘">
|
||||
<sheet>
|
||||
<group col='1'>
|
||||
<group string='基本信息'>
|
||||
<group>
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="cutter_pad_model_number"/>
|
||||
<field name="brand"/>
|
||||
<field name="cutting_tool_material"/>
|
||||
<field name="blade" widget="many2many_tags" options="{'no_create': True, 'no_quick_create': True}"/>
|
||||
|
||||
</group>
|
||||
<group>
|
||||
<field name="image" nolabel="1" widget="image"/>
|
||||
</group>
|
||||
|
||||
</group>
|
||||
<group string='参数信息'>
|
||||
<group>
|
||||
<field name="c_diameter"/>
|
||||
<field name="total_length"/>
|
||||
<field name="material_model"/>
|
||||
<field name="blade_number"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="d_diameter"/>
|
||||
<field name="radius"/>
|
||||
<field name="accuracy"/>
|
||||
<field name="hardness"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string='其他信息'>
|
||||
<group>
|
||||
<field name="wrench"/>
|
||||
<field name="screw"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="scope"/>
|
||||
</group>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<!-- 刀盘search view -->
|
||||
<record model="ir.ui.view" id="view_cutter_pad_search">
|
||||
<field name="name">sf.cutter.pad.search</field>
|
||||
<field name="model">sf.cutter.pad</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="刀盘">
|
||||
<field name="name" string="名称搜索" filter_domain="[('name','ilike',self)]"/>
|
||||
<field name="code" string="编码搜索" filter_domain="[('code','ilike',self)]"/>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- 刀柄tree -->
|
||||
<record id="view_cutter_handle_tree" model="ir.ui.view">
|
||||
<field name="name">sf.cutter.handle.tree</field>
|
||||
<field name="model">sf.handle</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="刀柄">
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="handle_model_number"/>
|
||||
<field name="image" widget='image'/>
|
||||
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<!-- 刀柄form -->
|
||||
<record id="view_cutter_handle_form" model="ir.ui.view">
|
||||
<field name="name">sf.cutter.handle.form</field>
|
||||
<field name="model">sf.handle</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="刀柄">
|
||||
<sheet>
|
||||
<group col='1'>
|
||||
<group string='基本信息'>
|
||||
<group>
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="handle_model_number"/>
|
||||
<field name="brand"/>
|
||||
<field name="cutting_tool_material"/>
|
||||
<field name="chuck_model" widget="many2many_tags" options="{'no_create': True, 'no_quick_create': True}"/>
|
||||
|
||||
</group>
|
||||
<group>
|
||||
<field name="image" nolabel="1" widget="image"/>
|
||||
</group>
|
||||
|
||||
</group>
|
||||
<group string='参数信息'>
|
||||
<group>
|
||||
<field name="length"/>
|
||||
<field name="length1"/>
|
||||
<field name="diameter1"/>
|
||||
<field name="weight"/>
|
||||
<field name="material_model"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="body_accuracy"/>
|
||||
<field name="clamping_range"/>
|
||||
<field name="detection_accuracy"/>
|
||||
<field name="detection_hardness"/>
|
||||
<field name="standard_speed"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string='其他信息'>
|
||||
<group>
|
||||
<field name="nut"/>
|
||||
</group>
|
||||
<!-- <group> -->
|
||||
<!-- <field name="scope"/> -->
|
||||
<!-- <field name="blade"/> -->
|
||||
<!-- </group> -->
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<!-- 刀柄search view -->
|
||||
<record model="ir.ui.view" id="view_handle_search">
|
||||
<field name="name">sf.handle.search</field>
|
||||
<field name="model">sf.handle</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="刀柄">
|
||||
<field name="name" string="名称搜索" filter_domain="[('name','ilike',self)]"/>
|
||||
<field name="code" string="编码搜索" filter_domain="[('code','ilike',self)]"/>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- 夹头tree -->
|
||||
<record id="view_cutter_chuck_tree" model="ir.ui.view">
|
||||
<field name="name">sf.cutter.chuck.tree</field>
|
||||
<field name="model">sf.chuck</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="夹头">
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="chuck_model_number"/>
|
||||
<field name="image" widget='image'/>
|
||||
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<!-- 夹头form -->
|
||||
<record id="view_cutter_chuck_form" model="ir.ui.view">
|
||||
<field name="name">sf.cutter.chuck.form</field>
|
||||
<field name="model">sf.chuck</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="夹头">
|
||||
<sheet>
|
||||
<group col='1'>
|
||||
<group string='基本信息'>
|
||||
<group>
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="chuck_model_number"/>
|
||||
<field name="brand"/>
|
||||
<field name="cutting_tool_material"/>
|
||||
<field name="handle_model" widget="many2many_tags" options="{'no_create': True, 'no_quick_create': True}"/>
|
||||
|
||||
</group>
|
||||
<group>
|
||||
<field name="image" nolabel="1" widget="image"/>
|
||||
</group>
|
||||
|
||||
</group>
|
||||
<group string='参数信息'>
|
||||
<group>
|
||||
<field name="accuracy"/>
|
||||
<field name="diameter"/>
|
||||
<field name="inner_diameter"/>
|
||||
<field name="height"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="material_model"/>
|
||||
<field name="clamping_range"/>
|
||||
<field name="feature"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string='其他信息'>
|
||||
<group>
|
||||
<field name="nut"/>
|
||||
</group>
|
||||
<!-- <group> -->
|
||||
<!-- <field name="scope"/> -->
|
||||
<!-- <field name="blade"/> -->
|
||||
<!-- </group> -->
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<!-- 夹头search view -->
|
||||
<record model="ir.ui.view" id="view_chuck_search">
|
||||
<field name="name">sf.chuck.search</field>
|
||||
<field name="model">sf.chuck</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="夹头">
|
||||
<field name="name" string="名称搜索" filter_domain="[('name','ilike',self)]"/>
|
||||
<field name="code" string="编码搜索" filter_domain="[('code','ilike',self)]"/>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- 功能刀具类型tree -->
|
||||
<record id="view_cutter_function_tree" model="ir.ui.view">
|
||||
<field name="name">sf.cutter.function.tree</field>
|
||||
<field name="model">sf.functional.cutting.tool.model</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="功能刀具类型">
|
||||
<field name="name"/>
|
||||
<field name="code"/>
|
||||
<field name="remark"/>
|
||||
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<!-- 功能刀具类型form -->
|
||||
<record id="view_cutter_function_form" model="ir.ui.view">
|
||||
<field name="name">sf.cutter.function.form</field>
|
||||
<field name="model">sf.functional.cutting.tool.model</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="功能刀具类型">
|
||||
<sheet>
|
||||
<group string="功能刀具类型">
|
||||
<group>
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="remark"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<!-- 整体式刀具类型tree -->
|
||||
<record id="view_integral_cutting_tool_model_tree" model="ir.ui.view">
|
||||
<field name="name">sf.integral.cutting.tool.model.tree</field>
|
||||
<field name="model">sf.integral.cutting.tool.model</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="整体式刀具类型">
|
||||
<field name="name"/>
|
||||
<field name="code"/>
|
||||
<field name="remark"/>
|
||||
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<!-- 整体式刀具类型form -->
|
||||
<record id="view_integral_cutting_tool_model_form" model="ir.ui.view">
|
||||
<field name="name">sf.integral.cutting.tool.model.form</field>
|
||||
<field name="model">sf.integral.cutting.tool.model</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="整体式刀具类型">
|
||||
<sheet>
|
||||
<group string="整体式刀具类型">
|
||||
<group>
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="cutting_tool_material"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="remark"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<!-- 刀片类型tree -->
|
||||
<record id="view_blade_model_tree" model="ir.ui.view">
|
||||
<field name="name">sf.blade.model.tree</field>
|
||||
<field name="model">sf.blade.model</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="刀片类型">
|
||||
<field name="name"/>
|
||||
<field name="code"/>
|
||||
<field name="remark"/>
|
||||
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<!-- 刀片类型form -->
|
||||
<record id="view_blade_model_form" model="ir.ui.view">
|
||||
<field name="name">sf.blade.model.form</field>
|
||||
<field name="model">sf.blade.model</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="刀片类型">
|
||||
<sheet>
|
||||
<group string="刀片类型">
|
||||
<group>
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="cutting_tool_material"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="remark"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<!-- 刀杆类型tree -->
|
||||
<record id="view_cutter_bar_model_tree" model="ir.ui.view">
|
||||
<field name="name">sf.cutter.bar.model.tree</field>
|
||||
<field name="model">sf.cutter.bar.model</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="刀杆类型">
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="remark"/>
|
||||
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<!-- 刀杆类型form -->
|
||||
<record id="view_cutter_bar_model_form" model="ir.ui.view">
|
||||
<field name="name">sf.cutter.bar.model.form</field>
|
||||
<field name="model">sf.cutter.bar.model</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="刀杆类型">
|
||||
<sheet>
|
||||
<group string="刀杆类型">
|
||||
<group>
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="cutting_tool_material"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="remark"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<!-- 刀盘类型tree -->
|
||||
<record id="view_cutter_pad_model_tree" model="ir.ui.view">
|
||||
<field name="name">sf.cutter.pad.model.tree</field>
|
||||
<field name="model">sf.cutter.pad.model</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="刀盘类型">
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="remark"/>
|
||||
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<!-- 刀盘类型form -->
|
||||
<record id="view_cutter_pad_model_form" model="ir.ui.view">
|
||||
<field name="name">sf.cutter.pad.model.form</field>
|
||||
<field name="model">sf.cutter.pad.model</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="刀盘类型">
|
||||
<sheet>
|
||||
<group string="刀盘类型">
|
||||
<group>
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="cutting_tool_material"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="remark"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- 刀柄类型tree -->
|
||||
<record id="view_handle_model_tree" model="ir.ui.view">
|
||||
<field name="name">sf.handle.model.tree</field>
|
||||
<field name="model">sf.handle.model</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="刀柄类型">
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="remark"/>
|
||||
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<!-- 刀柄类型form -->
|
||||
<record id="view_handle_model_form" model="ir.ui.view">
|
||||
<field name="name">sf.handle.model.form</field>
|
||||
<field name="model">sf.handle.model</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="刀柄类型">
|
||||
<sheet>
|
||||
<group string="刀柄类型">
|
||||
<group>
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="cutting_tool_material"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="remark"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<!-- 夹头类型tree -->
|
||||
<record id="view_chuck_model_tree" model="ir.ui.view">
|
||||
<field name="name">sf.chuck.model.tree</field>
|
||||
<field name="model">sf.chuck.model</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="夹头类型">
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="remark"/>
|
||||
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<!-- 夹头类型form -->
|
||||
<record id="view_chuck_model_form" model="ir.ui.view">
|
||||
<field name="name">sf.chuck.model.form</field>
|
||||
<field name="model">sf.chuck.model</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="夹头类型">
|
||||
<sheet>
|
||||
<group string="夹头类型">
|
||||
<group>
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="cutting_tool_material"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="remark"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
</data>
|
||||
</odoo>
|
||||
@@ -16,11 +16,11 @@
|
||||
<field name="res_model">sf.cutting.tool.type</field>
|
||||
<field name="view_mode">tree</field>
|
||||
</record>
|
||||
<!-- 刀具型号action -->
|
||||
<record id="action_sf_cutting_tool" model="ir.actions.act_window">
|
||||
<field name="name">刀具型号</field>
|
||||
<!-- 刀具标准库action -->
|
||||
<record id="action_sf_cutting_tool_standard_library" model="ir.actions.act_window">
|
||||
<field name="name">刀具标准库</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">sf.cutting.tool.model</field>
|
||||
<field name="res_model">sf.cutting_tool.standard.library</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
<!-- 功能刀具action -->
|
||||
@@ -61,14 +61,13 @@
|
||||
sequence="2"
|
||||
action="action_sf_cutting_tool_type"
|
||||
/>
|
||||
<!-- 刀具型号 -->
|
||||
<!-- <menuitem-->
|
||||
<!-- id="menu_sf_integral_cutting_tool"-->
|
||||
<!-- parent="menu_sf_cutting_tool"-->
|
||||
<!-- name="刀具型号"-->
|
||||
<!-- sequence="3"-->
|
||||
<!-- action="action_sf_cutting_tool"-->
|
||||
<!-- />-->
|
||||
<menuitem
|
||||
id="menu_sf_cutting_tool_standard_library"
|
||||
parent="menu_sf_cutting_tool"
|
||||
name="刀具标准库"
|
||||
sequence="3"
|
||||
action="action_sf_cutting_tool_standard_library"
|
||||
/>
|
||||
<!-- 功能刀具 -->
|
||||
<!-- <menuitem-->
|
||||
<!-- id="menu_sf_functional_cutting_tool"-->
|
||||
|
||||
@@ -14,29 +14,6 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- <record id="view_cutting_tool_material_form" model="ir.ui.view">-->
|
||||
<!-- <field name="name">sf.cutting.tool.material.form</field>-->
|
||||
<!-- <field name="model">sf.cutting.tool.material</field>-->
|
||||
<!-- <field name="arch" type="xml">-->
|
||||
<!-- <form string="刀具物料">-->
|
||||
<!-- <sheet>-->
|
||||
<!-- <group col='1'>-->
|
||||
<!-- <group string='基本信息'>-->
|
||||
<!-- <group>-->
|
||||
<!-- <field name="code"/>-->
|
||||
<!-- <field name="name"/>-->
|
||||
<!-- </group>-->
|
||||
<!-- <group>-->
|
||||
<!-- <field name="remark"/>-->
|
||||
<!-- </group>-->
|
||||
|
||||
<!-- </group>-->
|
||||
<!-- </group>-->
|
||||
<!-- </sheet>-->
|
||||
<!-- </form>-->
|
||||
<!-- </field>-->
|
||||
<!-- </record>-->
|
||||
|
||||
<record model="ir.ui.view" id="view_cutting_tool_material_search">
|
||||
<field name="name">sf.cutting.tool.material.search</field>
|
||||
<field name="model">sf.cutting.tool.material</field>
|
||||
@@ -160,25 +137,6 @@
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<!-- <record id="view_cutter_function_form" model="ir.ui.view">-->
|
||||
<!-- <field name="name">sf.cutter.function.form</field>-->
|
||||
<!-- <field name="model">sf.functional.cutting.tool.model</field>-->
|
||||
<!-- <field name="arch" type="xml">-->
|
||||
<!-- <form string="功能刀具类型">-->
|
||||
<!-- <sheet>-->
|
||||
<!-- <group string="功能刀具类型">-->
|
||||
<!-- <group>-->
|
||||
<!-- <field name="code"/>-->
|
||||
<!-- <field name="name"/>-->
|
||||
<!-- </group>-->
|
||||
<!-- <group>-->
|
||||
<!-- <field name="remark"/>-->
|
||||
<!-- </group>-->
|
||||
<!-- </group>-->
|
||||
<!-- </sheet>-->
|
||||
<!-- </form>-->
|
||||
<!-- </field>-->
|
||||
<!-- </record>-->
|
||||
|
||||
<!-- 功能刀具类型搜索 -->
|
||||
<record model="ir.ui.view" id="view_cutter_function_search">
|
||||
@@ -193,148 +151,178 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- ================================================刀具型号================================================ -->
|
||||
<record id="view_cutting_tool_model_tree" model="ir.ui.view">
|
||||
<field name="name">sf.cutting.tool.model.tree</field>
|
||||
<field name="model">sf.cutting.tool.model</field>
|
||||
<!-- ================================================刀具标准库================================================ -->
|
||||
<record id="view_cutting_tool_standard_library_tree" model="ir.ui.view">
|
||||
<field name="name">sf.cutting_tool.standard.library.tree</field>
|
||||
<field name="model">sf.cutting_tool.standard.library</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="刀具型号" edit="0" delete="0" create="1">
|
||||
<field name="code"/>
|
||||
<field name="name" string="名称"/>
|
||||
<tree string="刀具标准库" delete="0" create="0" edit="0">
|
||||
<field name="code" readonly="True"/>
|
||||
<field name="name" readonly="True" string="型号名称"/>
|
||||
<field name="cutting_tool_material_id"/>
|
||||
<field name="cutting_tool_type_id"/>
|
||||
<field name="brand_id"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_cutting_tool_model_form" model="ir.ui.view">
|
||||
<field name="name">sf.cutting.tool.model.form</field>
|
||||
<field name="model">sf.cutting.tool.model</field>
|
||||
<record id="view_cutting_tool_standard_library_form" model="ir.ui.view">
|
||||
<field name="name">sf.cutting_tool.standard.library.form</field>
|
||||
<field name="model">sf.cutting_tool.standard.library</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="刀具型号" edit="0" delete="0" create="1">
|
||||
<form string="刀具标准库" delete="0" create="0" edit="0">
|
||||
<sheet>
|
||||
<field name="image" widget='image' class="oe_avatar"
|
||||
options="{'zoom': true, 'preview_image':'image_128'}"/>
|
||||
<div class="oe_title">
|
||||
<h1>
|
||||
<field name="name" placeholder="e.g. LED Monitor"/>
|
||||
<field name="code"/>
|
||||
</h1>
|
||||
</div>
|
||||
<group>
|
||||
<group>
|
||||
<field name="code" />
|
||||
<field name="cutting_tool_material_id"
|
||||
options="{'no_create': True, 'no_quick_create': True}"/>
|
||||
<field name="cutting_tool_type" invisible="1"/>
|
||||
<field name="name"/>
|
||||
<field name="cutting_tool_material_id"/>
|
||||
<field name="cutting_tool_type"/>
|
||||
<field name="cutting_tool_type_id"/>
|
||||
<field name="brand_id"/>
|
||||
<label for="integral_run_out_accuracy_min" string="端跳精度"
|
||||
attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/>
|
||||
<div class="o_address_format"
|
||||
attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}">
|
||||
<label for="integral_run_out_accuracy_min" string="最小"/>
|
||||
<field name="integral_run_out_accuracy_min" class="o_address_zip"
|
||||
options="{'format': false}"/>
|
||||
<span>(mm)&nbsp;</span>
|
||||
<label for="integral_run_out_accuracy_max" string="最大"/>
|
||||
<field name="integral_run_out_accuracy_max" class="o_address_zip"
|
||||
options="{'format': false}"/>
|
||||
<span>(mm)&nbsp;</span>
|
||||
</div>
|
||||
<field name="cutter_bar_ids" widget="many2many_tags"
|
||||
options="{'no_create': True}" search="[]"
|
||||
attrs="{'invisible': [('cutting_tool_type', '!=', '刀片')]}"/>
|
||||
<field name="cutter_pad_ids" widget="many2many_tags"
|
||||
options="{'no_create': True}" search="[]"
|
||||
attrs="{'invisible': [('cutting_tool_type', '!=', '刀片')]}"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="material_model_id" placeholder="请选择" string="材质"
|
||||
attrs="{'required': [('cutting_tool_type', 'not in', ['刀柄', '夹头'])]}"/>
|
||||
<field name="tool_hardness" string="硬度(hrc)" options="{'format': false}"
|
||||
widget="integer"/>
|
||||
<field name="coating_material"/>
|
||||
<field name="blade_type"
|
||||
attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/>
|
||||
<field name="integral_coarse_medium_fine" placeholder="请选择"
|
||||
attrs="{'invisible': [('cutting_tool_type', 'not in', ('整体式刀具','刀片'))]}"/>
|
||||
</group>
|
||||
<!-- <group>-->
|
||||
<!-- <field name="image" nolabel="1" widget="image"/>-->
|
||||
<!-- </group>-->
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="参数"
|
||||
attrs="{'invisible': [('cutting_tool_type', '=', False)]}">
|
||||
<group>
|
||||
<!--整体式刀具-->
|
||||
<group>
|
||||
<field name="brand_id"/>
|
||||
<field name="cutting_tool_type_id" />
|
||||
<field name="material_model_id"/>
|
||||
<field name="total_length"
|
||||
attrs="{'invisible': [('cutting_tool_type', 'not in', ('整体式刀具','刀柄'))]}"/>
|
||||
<field name="shank_length"
|
||||
attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/>
|
||||
<field name="blade_length"
|
||||
attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/>
|
||||
|
||||
<!--刀片-->
|
||||
<label for="tool_length" string="尺寸(mm)"
|
||||
attrs='{"invisible": [("cutting_tool_type","not in",("刀片","刀杆","刀盘"))]}'/>
|
||||
<div class="test_model"
|
||||
attrs='{"invisible": [("cutting_tool_type","not in",("刀片","刀杆","刀盘"))]}'>
|
||||
<label for="tool_length" string="长"/>
|
||||
<field name="tool_length" class="o_address_zip"
|
||||
options="{'format': false}"/>
|
||||
<label for="tool_width" string="宽"/>
|
||||
<field name="tool_width" class="o_address_zip"
|
||||
options="{'format': false}"/>
|
||||
<label for="tool_thickness" string="厚"/>
|
||||
<field name="tool_thickness" class="o_address_zip"
|
||||
options="{'format': false}"/>
|
||||
</div>
|
||||
<field name="diameter"
|
||||
attrs="{'invisible': [('cutting_tool_type', 'not in', ('整体式刀具','刀片','刀杆','刀盘'))]}"/>
|
||||
<field name="blade_diameter"
|
||||
attrs="{'invisible': [('cutting_tool_type', 'not in', ('刀杆','刀盘'))]}"/>
|
||||
<field name="blade_number"
|
||||
attrs="{'invisible': [('cutting_tool_type', 'not in', ('整体式刀具','刀片','刀杆','刀盘'))]}"/>
|
||||
<field name="diameter_max"
|
||||
attrs="{'invisible': [('cutting_tool_type', '!=', '刀柄')]}"/>
|
||||
<field name="flange_length"
|
||||
attrs="{'invisible': [('cutting_tool_type', '!=', '刀柄')]}"/>
|
||||
<field name="flange_diameter"
|
||||
attrs="{'invisible': [('cutting_tool_type', '!=', '刀柄')]}"/>
|
||||
<!--夹头-->
|
||||
<field name="outer_diameter"
|
||||
attrs='{"invisible": [("cutting_tool_type","!=","夹头")]}'/>
|
||||
<field name="inner_diameter"
|
||||
attrs='{"invisible": [("cutting_tool_type","!=","夹头")]}'/>
|
||||
<field name="tool_height"
|
||||
attrs='{"invisible": [("cutting_tool_type","!=","夹头")]}'/>
|
||||
<field name="tool_weight"
|
||||
attrs='{"invisible": [("cutting_tool_type","not in",("夹头","刀柄"))]}'/>
|
||||
<field name="clamping_diameter"
|
||||
attrs="{'invisible': [('cutting_tool_type', 'not in', ('夹头','刀柄'))]}"/>
|
||||
<field name="cutter_bar_ids" widget="many2many_tags"
|
||||
attrs="{'invisible': [('cutting_tool_type', 'not in', ('刀片'))]}"/>
|
||||
<field name="cutter_pad_ids" widget="many2many_tags"
|
||||
attrs="{'invisible': [('cutting_tool_type', 'not in', ('刀片'))]}"/>
|
||||
<field name="blade_ids" widget="many2many_tags"
|
||||
attrs="{'invisible': [('cutting_tool_type', 'not in', ('刀杆','刀盘'))]}"/>
|
||||
<field name="chuck_ids" widget="many2many_tags"
|
||||
attrs="{'invisible': [('cutting_tool_type', 'not in', ('整体式刀具','刀杆','刀盘','刀柄'))]}"/>
|
||||
<field name="handle_ids" widget="many2many_tags"
|
||||
attrs="{'invisible': [('cutting_tool_type', 'not in', ('夹头'))]}"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="jump_accuracy"
|
||||
attrs="{'invisible': [('cutting_tool_type', '!=', '刀柄')]}"/>
|
||||
<field name="front_angle"
|
||||
attrs="{'invisible': [('cutting_tool_type', 'not in', ('整体式刀具','刀片'))]}"/>
|
||||
<field name="top_angle"
|
||||
attrs="{'invisible': [('cutting_tool_type', 'not in', ('整体式刀具','刀片'))]}"/>
|
||||
<field name="rear_angle"
|
||||
attrs="{'invisible': [('cutting_tool_type', 'not in', ('整体式刀具','刀片'))]}"/>
|
||||
<field name="main_included_angle"
|
||||
attrs="{'invisible': [('cutting_tool_type', 'not in', ('整体式刀具','刀片'))]}"/>
|
||||
<field name="coating_material"
|
||||
attrs="{'invisible': [('cutting_tool_type', 'not in', ('整体式刀具','刀片'))]}"/>
|
||||
<field name="accuracy_level"
|
||||
attrs="{'invisible': [('cutting_tool_type', 'in', ('刀柄'))]}"/>
|
||||
<field name="working_hardness"/>
|
||||
<field name="wrench"
|
||||
attrs="{'invisible': [('cutting_tool_type', 'not in', ('夹头','刀柄','刀杆','刀盘' ))]}"/>
|
||||
<field name="screw"
|
||||
attrs="{'invisible': [('cutting_tool_type', 'not in', ('夹头','刀柄'))]}"/>
|
||||
<field name="nut"
|
||||
attrs="{'invisible': [('cutting_tool_type', 'not in', ('整体式刀具','刀片'))]}"/>
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
</notebook>
|
||||
<group string="适配刀片形状"
|
||||
attrs="{'invisible': [('cutting_tool_type', 'in', ('刀柄','夹头','整体式刀具',False))]}">
|
||||
<field name="fit_blade_shape_ids" string="" widget="custom_many2many_checkboxes"/>
|
||||
</group>
|
||||
<group string="适合加工方式"
|
||||
attrs="{'invisible': [('cutting_tool_type', 'not in', ('整体式刀具','刀杆','刀盘','刀片'))]}">
|
||||
<field name="suitable_machining_method_ids" string=""
|
||||
widget="custom_many2many_checkboxes"/>
|
||||
</group>
|
||||
<group string="刀尖特征"
|
||||
attrs="{'invisible': [('cutting_tool_type', 'not in', ('整体式刀具','刀杆','刀盘','刀片'))]}">
|
||||
<field name="blade_tip_characteristics_ids" string=""
|
||||
widget="custom_many2many_checkboxes"/>
|
||||
</group>
|
||||
<group attrs="{'invisible': [('cutting_tool_type', 'not in', ('整体式刀具','刀杆','刀盘','刀片'))]}">
|
||||
<group string="柄部类型" attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}">
|
||||
<field name="handle_type_ids" string="" widget="custom_many2many_checkboxes"/>
|
||||
</group>
|
||||
<group string="压紧方式"
|
||||
attrs="{'invisible': [('cutting_tool_type', 'not in', ('刀杆','刀盘'))]}">
|
||||
<field name="compaction_way_ids" string="" widget="custom_many2many_checkboxes"/>
|
||||
</group>
|
||||
</group>
|
||||
<group attrs="{'invisible': [('cutting_tool_type', 'not in', ('整体式刀具','刀杆','刀盘','刀片'))]}">
|
||||
<group string="走刀方向">
|
||||
<field name="cutting_direction_ids" string="" widget="custom_many2many_checkboxes"/>
|
||||
</group>
|
||||
<group string="适合冷却液">
|
||||
<field name="suitable_coolant_ids" string="" widget="custom_many2many_checkboxes"/>
|
||||
</group>
|
||||
</group>
|
||||
<!-- <notebook>-->
|
||||
<!-- <page string="基本参数">-->
|
||||
<!-- <field name="tool_materials_basic_parameters_ids">-->
|
||||
<!-- <tree editable="bottom" class="center">-->
|
||||
<!-- <field name="code"/>-->
|
||||
<!-- <field name="total_length"/>-->
|
||||
<!-- <field name="blade_diameter"/>-->
|
||||
<!-- <field name="blade_length"/>-->
|
||||
<!-- <field name="blade_number"/>-->
|
||||
<!-- <field name="neck_length"/>-->
|
||||
<!-- <field name="neck_diameter"/>-->
|
||||
<!-- <field name="handle_length"/>-->
|
||||
<!-- <field name="handle_diameter"/>-->
|
||||
<!-- <field name="blade_tip_diameter"/>-->
|
||||
<!-- <field name="blade_tip_working_size"/>-->
|
||||
<!-- <field name="blade_tip_taper"/>-->
|
||||
<!-- <field name="blade_helix_angle"/>-->
|
||||
<!-- <field name="blade_width"/>-->
|
||||
<!-- <field name="blade_depth"/>-->
|
||||
<!-- <field name="pitch"/>-->
|
||||
<!-- <field name="cutting_depth"/>-->
|
||||
<!-- </tree>-->
|
||||
<!-- </field>-->
|
||||
<!-- </page>-->
|
||||
<!-- <page string="切削速度Vc"-->
|
||||
<!-- attrs="{'invisible': [('cutting_tool_type', 'not in', ('整体式刀具','刀片'))]}">-->
|
||||
<!-- <field name="cutting_speed_ids">-->
|
||||
<!-- <tree editable="bottom" class="center">-->
|
||||
<!-- <field name="execution_standard_id"/>-->
|
||||
<!-- <field name="material_code"/>-->
|
||||
<!-- <field name="material_name_id"/>-->
|
||||
<!-- <field name="material_grade"/>-->
|
||||
<!-- <field name="tensile_strength"/>-->
|
||||
<!-- <field name="hardness"/>-->
|
||||
<!-- <field name="cutting_speed_n1"/>-->
|
||||
<!-- <field name="cutting_speed_n2"/>-->
|
||||
<!-- <field name="cutting_speed_n3"/>-->
|
||||
<!-- <field name="cutting_speed_n4"/>-->
|
||||
<!-- <field name="cutting_speed_n5"/>-->
|
||||
<!-- <field name="rough_machining"/>-->
|
||||
<!-- <field name="precision_machining"/>-->
|
||||
<!-- <field name="application"/>-->
|
||||
<!-- </tree>-->
|
||||
<!-- </field>-->
|
||||
<!-- </page>-->
|
||||
<!-- <page string="每齿走刀量fz"-->
|
||||
<!-- attrs="{'invisible': [('cutting_tool_type', 'not in', ('整体式刀具','刀片'))]}">-->
|
||||
<!-- <field name="feed_per_tooth_ids">-->
|
||||
<!-- <tree editable="bottom" class="center">-->
|
||||
<!-- <field name="cutting_speed"/>-->
|
||||
<!-- <field name="machining_method"/>-->
|
||||
<!-- <field name="materials_type_id"/>-->
|
||||
<!-- <field name="blade_diameter"/>-->
|
||||
<!-- <field name="feed_per_tooth"/>-->
|
||||
<!-- <field name="unit"/>-->
|
||||
<!-- </tree>-->
|
||||
<!-- </field>-->
|
||||
<!-- </page>-->
|
||||
<!-- </notebook>-->
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- 刀具型号搜索 -->
|
||||
<record id="view_cutting_tool_model_search" model="ir.ui.view">
|
||||
<field name="name">sf.cutting.tool.model.search</field>
|
||||
<field name="model">sf.cutting.tool.model</field>
|
||||
<record id="view_cutting_tool_standard_library_search" model="ir.ui.view">
|
||||
<field name="name">sf.cutting_tool.standard.library.search</field>
|
||||
<field name="model">sf.cutting_tool.standard.library</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="刀具型号">
|
||||
<search string="刀具标准库">
|
||||
<field name="name" string="名称搜索" filter_domain="[('name','ilike',self)]"/>
|
||||
<field name="code" string="编码搜索" filter_domain="[('code','ilike',self)]"/>
|
||||
<filter name="filter_active" string="已归档" domain="[('active','=',False)]"/>
|
||||
<searchpanel class="account_root">
|
||||
<field name="cutting_tool_material_id" icon="fa-filter"/>
|
||||
<field name="cutting_tool_material_id" icon="fa-filter" enable_counters="1"/>
|
||||
</searchpanel>
|
||||
</search>
|
||||
</field>
|
||||
@@ -355,27 +343,6 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- <record id="view_cutting_tool_type_form" model="ir.ui.view">-->
|
||||
<!-- <field name="name">sf.cutting.tool.type.form</field>-->
|
||||
<!-- <field name="model">sf.cutting.tool.type</field>-->
|
||||
<!-- <field name="arch" type="xml">-->
|
||||
<!-- <form string="刀具类型">-->
|
||||
<!-- <sheet>-->
|
||||
<!-- <group string="刀具类型">-->
|
||||
<!-- <group>-->
|
||||
<!-- <field name="code"/>-->
|
||||
<!-- <field name="name"/>-->
|
||||
<!-- <field name="mrs_cutting_tool_material_id" options="{'no_create': True, 'no_quick_create': True}"/>-->
|
||||
<!-- </group>-->
|
||||
<!-- <group>-->
|
||||
<!-- <field name="remark"/>-->
|
||||
<!-- </group>-->
|
||||
<!-- </group>-->
|
||||
<!-- </sheet>-->
|
||||
<!-- </form>-->
|
||||
<!-- </field>-->
|
||||
<!-- </record>-->
|
||||
|
||||
<!-- 刀具类型搜索 -->
|
||||
<record id="view_cutting_tool_type_search" model="ir.ui.view">
|
||||
<field name="name">sf.cutting.tool.type.search</field>
|
||||
@@ -391,6 +358,5 @@
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
||||
|
||||
@@ -51,18 +51,6 @@
|
||||
attrs="{'invisible': ['|',('categ_type', '!=', '表面工艺'),('categ_type', '=', False)]}"/>
|
||||
<field name="cutting_tool_material_id" attrs="{'invisible': [('categ_type', '!=', '刀具')]}"
|
||||
placeholder="请选择"/>
|
||||
<!-- <field name="cutting_tool_model_id" placeholder="请选择"-->
|
||||
<!-- attrs="{'invisible': [('categ_type', '!=', '刀具')]}"/>-->
|
||||
<field name="cutting_tool_model" attrs="{'invisible': [('categ_type', '!=', '刀具')]}">
|
||||
<templates>
|
||||
|
||||
<t t-foreach="cutting_tool_model_data" t-as="data">
|
||||
<td>
|
||||
<t t-esc="cutting_tool_model_data.name"/>
|
||||
</td>
|
||||
</t>
|
||||
</templates>
|
||||
</field>
|
||||
<field name="fixture_material_id" attrs="{'invisible': [('categ_type', '!=', '夹具')]}"
|
||||
placeholder="请选择"/>
|
||||
<field name="fixture_model_id" string="型号" placeholder="请选择"
|
||||
|
||||
@@ -410,17 +410,25 @@ class ResProductMo(models.Model):
|
||||
|
||||
@api.onchange('cutting_tool_material_id')
|
||||
def _onchange_cutting_tool_material_id(self):
|
||||
try:
|
||||
config = self.env['res.config.settings'].get_values()
|
||||
headers = Common.get_headers(self, config['token'], config['sf_secret_key'])
|
||||
url = config['sf_url'] + '/api/cutting_model/list'
|
||||
res = {'token': config['token'], 'cutting_tool_material_code': self.cutting_tool_material_id.code}
|
||||
result = requests.post(url, json={}, data=res, headers=headers)
|
||||
result = result.json()
|
||||
if result['status'] == 1:
|
||||
self.cutting_tool_model = result['data']
|
||||
except Exception as e:
|
||||
logging.info("获取刀具标准库失败")
|
||||
if self.cutting_tool_material_id:
|
||||
try:
|
||||
config = self.env['res.config.settings'].get_values()
|
||||
headers = Common.get_headers(self, config['token'], config['sf_secret_key'])
|
||||
url = config['sf_url'] + '/api/cutting_model/list'
|
||||
res = {'token': config['token'], 'cutting_tool_material_code': self.cutting_tool_material_id.code}
|
||||
result = requests.post(url, json={}, data=res, headers=headers)
|
||||
result = result.json()
|
||||
if result['status'] == 1:
|
||||
data = result['data']
|
||||
model_ids = []
|
||||
for item in data:
|
||||
model_ids.append((0, 0, {
|
||||
'name': item['name']
|
||||
}))
|
||||
self.cutting_tool_model = model_ids
|
||||
return {}
|
||||
except Exception as e:
|
||||
logging.info("获取刀具标准库失败")
|
||||
|
||||
@api.depends('cutting_tool_material_id')
|
||||
def _get_cutting_tool_model(self):
|
||||
@@ -888,7 +896,8 @@ class SfMaintenanceEquipmentTool(models.Model):
|
||||
_description = '机床刀位'
|
||||
|
||||
equipment_id = fields.Many2one('maintenance.equipment', string='设备')
|
||||
product_template_id = fields.Many2one('product.template', string='功能刀具名称', domain="[('categ_type', '=', '刀具')]")
|
||||
product_template_id = fields.Many2one('product.template', string='功能刀具名称',
|
||||
domain="[('categ_type', '=', '刀具')]")
|
||||
image_1920 = fields.Binary('图片', related='product_template_id.image_1920')
|
||||
categ_type = fields.Char(string='功能刀具类型')
|
||||
diameter = fields.Char('直径')
|
||||
@@ -900,4 +909,3 @@ class SfMaintenanceEquipmentTool(models.Model):
|
||||
alarm_value = fields.Char('报警值')
|
||||
used_value = fields.Char('已使用值')
|
||||
code = fields.Char('机床刀位号')
|
||||
|
||||
|
||||
@@ -60,12 +60,11 @@ class ResConfigSettings(models.TransientModel):
|
||||
_logger.info("同步夹具型号")
|
||||
self.env['sf.fixture.model'].sync_all_fixture_model()
|
||||
_logger.info("同步功能夹具类型")
|
||||
# self.env['sf.functional.fixture'].sync_all_functional_fixture()
|
||||
|
||||
self.env['sf.functional.fixture.type'].sync_all_functional_fixture_type()
|
||||
|
||||
self.env['sf.machine_tool.type'].sync_all_machine_tool_type()
|
||||
_logger.info("同步资源库机床型号完成")
|
||||
self.env['sf.cutting_tool.standard.library'].sync_all_cutting_tool_standard_library()
|
||||
_logger.info("同步刀具标准库完成")
|
||||
except Exception as e:
|
||||
_logger.info("捕获错误信息:%s" % e)
|
||||
raise ValidationError("数据错误导致同步失败,请联系管理员")
|
||||
|
||||
@@ -56,6 +56,8 @@ class MrStaticResourceDataSync(models.Model):
|
||||
logging.info("刀具物料已每日同步成功")
|
||||
self.env['sf.cutting.tool.type'].sync_tool_type_yesterday()
|
||||
logging.info("刀具类型已每日同步成功")
|
||||
self.env['sf.cutting_tool.standard.library'].sync_cutting_tool_standard_library_yesterday()
|
||||
logging.info("刀具标准库已每日同步成功")
|
||||
self.env['sf.functional.cutting.tool.model'].sync_functional_cutting_tool_model_yesterday()
|
||||
logging.info("功能刀具类型已每日同步成功")
|
||||
self.env['maintenance.equipment.image'].sync_maintenance_equipment_image_yesterday()
|
||||
@@ -378,7 +380,6 @@ class sfProductionProcess(models.Model):
|
||||
raise ValidationError("表面工艺认证未通过")
|
||||
|
||||
|
||||
|
||||
class sfProcessingTechnology(models.Model):
|
||||
_inherit = 'sf.processing.technology'
|
||||
_description = '加工工艺'
|
||||
@@ -1708,6 +1709,7 @@ class SfMaintenanceEquipmentImage(models.Model):
|
||||
else:
|
||||
raise ValidationError("认证未通过")
|
||||
|
||||
|
||||
class MaterialApply(models.Model):
|
||||
_inherit = 'material.apply'
|
||||
_description = '材料应用'
|
||||
@@ -1726,19 +1728,17 @@ class MaterialApply(models.Model):
|
||||
result = json.loads(r['result'])
|
||||
if result['status'] == 1:
|
||||
for item in result['material_apply_yesterday_list']:
|
||||
brand = self.env['material.apply'].search(
|
||||
[("name", '=', item['name'])])
|
||||
if brand:
|
||||
brand.name = item['name'],
|
||||
brand.active = item['active']
|
||||
material_apply = self.search([("name", '=', item['name'])])
|
||||
if material_apply:
|
||||
material_apply.name = item['name']
|
||||
material_apply.active = item['active']
|
||||
else:
|
||||
self.env['material.apply'].create({
|
||||
self.create({
|
||||
"name": item['name'],
|
||||
"active": item['active'],
|
||||
|
||||
})
|
||||
else:
|
||||
raise ValidationError("认证未通过")
|
||||
raise ValidationError("材料应用认证未通过")
|
||||
|
||||
# 同步所有材料应用
|
||||
def sync_all_material_apply(self):
|
||||
@@ -1753,15 +1753,18 @@ class MaterialApply(models.Model):
|
||||
result = json.loads(r['result'])
|
||||
if result['status'] == 1:
|
||||
for item in result['material_apply_all_list']:
|
||||
brand = self.env['material.apply'].search(
|
||||
[("name", '=', item['name'])])
|
||||
if not brand:
|
||||
self.env['material.apply'].create({
|
||||
material_apply = self.search([("name", '=', item['name'])])
|
||||
if not material_apply:
|
||||
self.create({
|
||||
"name": item['name'],
|
||||
"active": item['active'],
|
||||
})
|
||||
else:
|
||||
material_apply.name = item['name']
|
||||
material_apply.active = item['active']
|
||||
else:
|
||||
raise ValidationError("认证未通过")
|
||||
raise ValidationError("材料应用认证未通过")
|
||||
|
||||
|
||||
class ModelInternationalStandards(models.Model):
|
||||
_inherit = 'sf.international.standards'
|
||||
@@ -1781,19 +1784,17 @@ class ModelInternationalStandards(models.Model):
|
||||
result = json.loads(r['result'])
|
||||
if result['status'] == 1:
|
||||
for item in result['mrs_international_standards_yesterday_list']:
|
||||
brand = self.env['sf.international.standards'].search(
|
||||
[("name", '=', item['name'])])
|
||||
if brand:
|
||||
brand.name = item['name'],
|
||||
brand.active = item['active']
|
||||
international_standards = self.search([("name", '=', item['name'])])
|
||||
if international_standards:
|
||||
international_standards.name = item['name']
|
||||
international_standards.active = item['active']
|
||||
else:
|
||||
self.env['sf.international.standards'].create({
|
||||
self.create({
|
||||
"name": item['name'],
|
||||
"active": item['active'],
|
||||
|
||||
})
|
||||
else:
|
||||
raise ValidationError("认证未通过")
|
||||
raise ValidationError("制造标准认证未通过")
|
||||
|
||||
# 同步所有制造标准
|
||||
def sync_all_mrs_international_standards(self):
|
||||
@@ -1808,12 +1809,106 @@ class ModelInternationalStandards(models.Model):
|
||||
result = json.loads(r['result'])
|
||||
if result['status'] == 1:
|
||||
for item in result['mrs_international_standards_all_list']:
|
||||
brand = self.env['sf.international.standards'].search(
|
||||
[("name", '=', item['name'])])
|
||||
if not brand:
|
||||
self.env['sf.international.standards'].create({
|
||||
international_standards = self.search([("name", '=', item['name'])])
|
||||
if not international_standards:
|
||||
self.create({
|
||||
"name": item['name'],
|
||||
"active": item['active'],
|
||||
})
|
||||
else:
|
||||
international_standards.name = item['name']
|
||||
international_standards.active = item['active']
|
||||
else:
|
||||
raise ValidationError("制造标准认证未通过")
|
||||
|
||||
|
||||
class Cutting_tool_standard_library(models.Model):
|
||||
_inherit = 'sf.cutting_tool.standard.library'
|
||||
_description = '刀具标准库'
|
||||
url = '/api/cutting_tool_standard_library/list'
|
||||
|
||||
# 定时同步刀具标准库
|
||||
def sync_cutting_tool_standard_library_yesterday(self):
|
||||
sf_sync_config = self.env['res.config.settings'].get_values()
|
||||
token = sf_sync_config['token']
|
||||
sf_secret_key = sf_sync_config['sf_secret_key']
|
||||
headers = Common.get_headers(self, token, sf_secret_key)
|
||||
|
||||
strUrl = sf_sync_config['sf_url'] + self.url
|
||||
r = requests.post(strUrl, json={}, data=None, headers=headers)
|
||||
r = r.json()
|
||||
result = json.loads(r['result'])
|
||||
if result['status'] == 1:
|
||||
for item in result['cutting_tool_standard_library_yesterday_list']:
|
||||
cutting_tool_standard_library = self.search(
|
||||
[("code", '=', item['code'])])
|
||||
if cutting_tool_standard_library:
|
||||
cutting_tool_standard_library.write(
|
||||
{"name": item['name'],
|
||||
"active": item['active']}
|
||||
)
|
||||
else:
|
||||
self.create({
|
||||
"name": item['name'],
|
||||
"active": item['active'],
|
||||
})
|
||||
else:
|
||||
raise ValidationError("能力特征库认证未通过")
|
||||
raise ValidationError("刀具标准库认证未通过")
|
||||
|
||||
# 同步所有刀具标准库
|
||||
def sync_all_cutting_tool_standard_library(self):
|
||||
sf_sync_config = self.env['res.config.settings'].get_values()
|
||||
token = sf_sync_config['token']
|
||||
sf_secret_key = sf_sync_config['sf_secret_key']
|
||||
headers = Common.get_headers(self, token, sf_secret_key)
|
||||
|
||||
strUrl = sf_sync_config['sf_url'] + self.url
|
||||
r = requests.post(strUrl, json={}, data=None, headers=headers)
|
||||
r = r.json()
|
||||
result = json.loads(r['result'])
|
||||
if result['status'] == 1:
|
||||
for item in result['cutting_tool_standard_library_all_list']:
|
||||
cutting_tool_standard_library = self.search([("code", '=', item['code'])])
|
||||
cutting_tool_type = self.env['sf.cutting.tool.type'].search(
|
||||
[("code", '=', item['cutting_tool_type_code'])])
|
||||
cutting_tool_material = self.env['sf.cutting.tool.material'].search(
|
||||
[("code", '=', item['cutting_tool_material_code'])])
|
||||
materials_model = self.env['sf.materials.model'].search(
|
||||
[("code", '=', item['materials_model_code'])])
|
||||
brand = self.env['sf.machine.brand'].search([("code", '=', item['brand_code'])])
|
||||
if not cutting_tool_standard_library:
|
||||
self.create({
|
||||
"name": item['name'],
|
||||
"cutting_tool_material_id": cutting_tool_material.id,
|
||||
"cutting_tool_type_id": cutting_tool_type.id,
|
||||
"brand_id": brand.id,
|
||||
"material_model_id": materials_model.id,
|
||||
"tool_hardness": item['tool_hardness'],
|
||||
"coating_material": item['coating_material'],
|
||||
"blade_type": item['blade_type'],
|
||||
"blade_diameter": item['blade_diameter'],
|
||||
"working_hardness": item['working_hardness'],
|
||||
"integral_coarse_medium_fine": item['integral_coarse_medium_fine'],
|
||||
"integral_run_out_accuracy_max": item['integral_run_out_accuracy_max'],
|
||||
"integral_run_out_accuracy_min": item['integral_run_out_accuracy_min'],
|
||||
"active": item['active'],
|
||||
})
|
||||
else:
|
||||
cutting_tool_standard_library.write(
|
||||
{"name": item['name'],
|
||||
"cutting_tool_material_id": cutting_tool_material.id,
|
||||
"cutting_tool_type_id": cutting_tool_type.id,
|
||||
"brand_id": brand.id,
|
||||
"material_model_id": materials_model.id,
|
||||
"tool_hardness": item['tool_hardness'],
|
||||
"coating_material": item['coating_material'],
|
||||
"blade_type": item['blade_type'],
|
||||
"blade_diameter": item['blade_diameter'],
|
||||
"working_hardness": item['working_hardness'],
|
||||
"integral_coarse_medium_fine": item['integral_coarse_medium_fine'],
|
||||
"integral_run_out_accuracy_max": item['integral_run_out_accuracy_max'],
|
||||
"integral_run_out_accuracy_min": item['integral_run_out_accuracy_min'],
|
||||
"active": item['active'], }
|
||||
)
|
||||
else:
|
||||
raise ValidationError("刀具标准库认证未通过")
|
||||
|
||||
Reference in New Issue
Block a user