新增刀具及刀具型号联动展示相关字段并显示对应信息,不同刀具的页面布局
This commit is contained in:
@@ -19,6 +19,8 @@
|
||||
"views/menu_view.xml",
|
||||
"views/tool_base_views.xml",
|
||||
"views/tool_base_menu.xml",
|
||||
'views/fixture_base_view.xml',
|
||||
'views/menu_fixture_view.xml',
|
||||
|
||||
],
|
||||
'demo': [
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
from . import base
|
||||
from . import common
|
||||
from . import tool_base
|
||||
from . import fixture_base
|
||||
|
||||
|
||||
|
||||
240
sf_base/models/fixture_base.py
Normal file
240
sf_base/models/fixture_base.py
Normal file
@@ -0,0 +1,240 @@
|
||||
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)
|
||||
@@ -31,6 +31,18 @@ access_sf_chuck,sf.chuck,model_sf_chuck,base.group_user,1,1,1,1
|
||||
access_sf_chuck_model,sf.chuck.model,model_sf_chuck_model,base.group_user,1,1,1,1
|
||||
|
||||
|
||||
|
||||
access_sf_fixture_setting_element,sf_fixture_setting_element,model_sf_fixture_setting_element,base.group_user,1,1,1,1
|
||||
access_sf_setting_element_type,sf_setting_element_type,model_sf_setting_element_type,base.group_user,1,1,1,1
|
||||
access_sf_fixture_clamping_element,sf_fixture_clamping_element,model_sf_fixture_clamping_element,base.group_user,1,1,1,1
|
||||
access_sf_clamping_element_type,sf_clamping_element_type,model_sf_clamping_element_type,base.group_user,1,1,1,1
|
||||
access_sf_fixture_tool_setting,sf_fixture_tool_setting,model_sf_fixture_tool_setting,base.group_user,1,1,1,1
|
||||
access_sf_tool_setting_type,sf_tool_setting_type,model_sf_tool_setting_type,base.group_user,1,1,1,1
|
||||
access_sf_fixture_locating_device,sf_fixture_locating_device,model_sf_fixture_locating_device,base.group_user,1,1,1,1
|
||||
access_sf_locating_device_type,sf_locating_device_type,model_sf_locating_device_type,base.group_user,1,1,1,1
|
||||
access_sf_locating_device_locate_mode,sf_locating_device_locate_mode,model_sf_locating_device_locate_mode,base.group_user,1,1,1,1
|
||||
access_sf_fixture_guide_element,sf_fixture_guide_element,model_sf_fixture_guide_element,base.group_user,1,1,1,1
|
||||
access_sf_guide_element_type,sf_guide_element_type,model_sf_guide_element_type,base.group_user,1,1,1,1
|
||||
access_sf_guide_element_guide_mode,sf_guide_element_guide_mode,model_sf_guide_element_guide_mode,base.group_user,1,1,1,1
|
||||
access_sf_guide_element_way_to_install,sf_guide_element_way_to_install,model_sf_guide_element_way_to_install,base.group_user,1,1,1,1
|
||||
|
||||
|
||||
|
||||
|
681
sf_base/views/fixture_base_view.xml
Normal file
681
sf_base/views/fixture_base_view.xml
Normal file
@@ -0,0 +1,681 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
|
||||
<!-- ======================================定位元件型号view视图================================================== -->
|
||||
<record id="sf_fixture_setting_element_view_tree" model="ir.ui.view">
|
||||
<field name="name">定位元件型号</field>
|
||||
<field name="model">sf.fixture.setting.element</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="定位元件型号">
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="setting_ele_type_id"/>
|
||||
<field name="brand_id"/>
|
||||
<field name="picture" widget="image"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="sf_fixture_setting_element_view_form" model="ir.ui.view">
|
||||
<field name="name">定位元件型号</field>
|
||||
<field name="model">sf.fixture.setting.element</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="定位元件型号">
|
||||
<sheet>
|
||||
<group string="基本信息">
|
||||
<group>
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="setting_ele_type_id"/>
|
||||
<field name="brand_id"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="picture" widget="image" nolabel="1"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string="参数">
|
||||
<group>
|
||||
<field name="length"/>
|
||||
<field name="width"/>
|
||||
<field name="height"/>
|
||||
<field name="diameter"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="material_type_id"/>
|
||||
<field name="hardness"/>
|
||||
<field name="surface_treatment"/>
|
||||
<field name="accuracy_grade"/>
|
||||
<field name="chucking_power"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string="其他">
|
||||
<group>
|
||||
<field name="comment"/>
|
||||
</group>
|
||||
</group>
|
||||
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="sf_fixture_setting_element_view_act" model="ir.actions.act_window">
|
||||
<field name="name">定位元件型号</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">sf.fixture.setting.element</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
|
||||
|
||||
<!-- ======================================定位原件类型================================================== -->
|
||||
<record id="sf_setting_element_type_view_tree" model="ir.ui.view">
|
||||
<field name="name">定位原件类型</field>
|
||||
<field name="model">sf.setting.element.type</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="定位原件类型">
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="sf_setting_element_type_view_form" model="ir.ui.view">
|
||||
<field name="name">定位元件类型</field>
|
||||
<field name="model">sf.setting.element.type</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="定位元件类型">
|
||||
<sheet>
|
||||
<group string="基本信息">
|
||||
<group>
|
||||
<field name="code"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="name"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string="其他">
|
||||
<field name="comment"/>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="sf_setting_element_type_view_act" model="ir.actions.act_window">
|
||||
<field name="name">定位元件类型</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">sf.setting.element.type</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- ======================================夹紧元件型号================================================== -->
|
||||
<record id="sf_fixture_clamping_element_view_tree" model="ir.ui.view">
|
||||
<field name="name">夹紧元件型号</field>
|
||||
<field name="model">sf.fixture.clamping.element</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="夹紧元件型号">
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="clamping_ele_type_id"/>
|
||||
<field name="brand_id"/>
|
||||
<field name="picture" widget="image"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="sf_fixture_clamping_element_view_form" model="ir.ui.view">
|
||||
<field name="name">夹紧元件型号</field>
|
||||
<field name="model">sf.fixture.clamping.element</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="夹紧元件型号">
|
||||
<sheet>
|
||||
<group string="基本信息">
|
||||
<group>
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="clamping_ele_type_id"/>
|
||||
<field name="brand_id"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="picture" widget="image" nolabel="1"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string="参数">
|
||||
<group>
|
||||
<field name="length"/>
|
||||
<field name="width"/>
|
||||
<field name="height"/>
|
||||
<field name="diameter"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="material_type_id"/>
|
||||
<field name="hardness"/>
|
||||
<field name="chucking_power"/>
|
||||
<field name="surface_treatment"/>
|
||||
<field name="accuracy_grade"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string="其他">
|
||||
<group>
|
||||
<field name="comment"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="sf_fixture_clamping_element_view_act" model="ir.actions.act_window">
|
||||
<field name="name">夹紧元件型号</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">sf.fixture.clamping.element</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- ======================================夹紧元件类型================================================== -->
|
||||
<record id="sf_clamping_element_type_view_tree" model="ir.ui.view">
|
||||
<field name="name">夹紧元件类型</field>
|
||||
<field name="model">sf.clamping.element.type</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="夹紧元件类型">
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="sf_clamping_element_type_view_form" model="ir.ui.view">
|
||||
<field name="name">夹紧元件类型</field>
|
||||
<field name="model">sf.clamping.element.type</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="夹紧元件类型">
|
||||
<sheet>
|
||||
<group string="基本信息">
|
||||
<group>
|
||||
<field name="code"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="name"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string="其他">
|
||||
<field name="comment"/>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="sf_clamping_element_type_view_act" model="ir.actions.act_window">
|
||||
<field name="name">夹紧元件类型</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">sf.clamping.element.type</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
|
||||
|
||||
<!-- ===================================对刀夹具型号view视图============================================ -->
|
||||
<record id="sf_fixture_tool_setting_view_tree" model="ir.ui.view">
|
||||
<field name="name">对刀夹具型号</field>
|
||||
<field name="model">sf.fixture.tool.setting</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="对刀夹具型号">
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="tool_setting_type_id"/>
|
||||
<field name="brand_id"/>
|
||||
<field name="picture" widget="image"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="sf_fixture_tool_setting_view_form" model="ir.ui.view">
|
||||
<field name="name">对刀夹具型号</field>
|
||||
<field name="model">sf.fixture.tool.setting</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="对刀夹具型号">
|
||||
<sheet>
|
||||
<group string="基本信息">
|
||||
<group>
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="tool_setting_type_id"/>
|
||||
<field name="brand_id"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="picture" widget="image" nolabel="1"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string="参数">
|
||||
<group>
|
||||
<field name="length"/>
|
||||
<field name="width"/>
|
||||
<field name="height"/>
|
||||
<field name="diameter"/>
|
||||
<field name="hardness"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="clamp_mode"/>
|
||||
<field name="accuracy_grade"/>
|
||||
<field name="max_clamp_diameter"/>
|
||||
<field name="material_type_id"/>
|
||||
<field name="chucking_power"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string="其他">
|
||||
<group>
|
||||
<field name="comment"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="sf_fixture_tool_setting_view_act" model="ir.actions.act_window">
|
||||
<field name="name">对刀夹具型号</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">sf.fixture.tool.setting</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
|
||||
<!-- ==================================对刀夹具类型view视图=============================================== -->
|
||||
<record id="sf_tool_setting_type_view_tree" model="ir.ui.view">
|
||||
<field name="name">对刀夹具类型</field>
|
||||
<field name="model">sf.tool.setting.type</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="对刀夹具类型">
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="sf_tool_setting_type_view_form" model="ir.ui.view">
|
||||
<field name="name">对刀夹具类型</field>
|
||||
<field name="model">sf.tool.setting.type</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="对刀夹具类型">
|
||||
<sheet>
|
||||
<group string="基本信息">
|
||||
<group>
|
||||
<field name="code"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="name"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string="其他">
|
||||
<field name="comment"/>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="sf_tool_setting_type_view_act" model="ir.actions.act_window">
|
||||
<field name="name">对刀夹具类型</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">sf.tool.setting.type</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
|
||||
|
||||
<!-- =================================定位装置型号view视图==================================== -->
|
||||
<record id="sf_fixture_locating_device_view_tree" model="ir.ui.view">
|
||||
<field name="name">定位装置型号</field>
|
||||
<field name="model">sf.fixture.locating.device</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="定位装置型号">
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="locating_device_type_id"/>
|
||||
<field name="brand_id"/>
|
||||
<field name="picture" widget="image"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="sf_fixture_locating_device_view_form" model="ir.ui.view">
|
||||
<field name="name">定位装置型号</field>
|
||||
<field name="model">sf.fixture.locating.device</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="定位装置型号">
|
||||
<sheet>
|
||||
<group string="基本信息">
|
||||
<group>
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="locating_device_type_id"/>
|
||||
<field name="brand_id"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="picture" widget="image" nolabel="1"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string="参数">
|
||||
<group>
|
||||
<field name="length"/>
|
||||
<field name="width"/>
|
||||
<field name="height"/>
|
||||
<field name="diameter"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="material_type_id"/>
|
||||
<field name="weight"/>
|
||||
<field name="max_bearing_capacity"/>
|
||||
<field name="accuracy_grade"/>
|
||||
<field name="locate_mode_ids"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string="其他">
|
||||
<group>
|
||||
<field name="comment"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="sf_fixture_locating_device_view_act" model="ir.actions.act_window">
|
||||
<field name="name">定位装置型号</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">sf.fixture.locating.device</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
|
||||
<!-- ==========================================定位装置类型view视图=============================================== -->
|
||||
<record id="sf_locating_device_type_view_tree" model="ir.ui.view">
|
||||
<field name="name">定位装置类型</field>
|
||||
<field name="model">sf.locating.device.type</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="定位装置类型">
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="sf_locating_device_type_view_form" model="ir.ui.view">
|
||||
<field name="name">定位装置类型</field>
|
||||
<field name="model">sf.locating.device.type</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="定位装置类型">
|
||||
<sheet>
|
||||
<group string="基本信息">
|
||||
<group>
|
||||
<field name="code"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="name"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string="其他">
|
||||
<field name="comment"/>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="sf_locating_device_type_view_act" model="ir.actions.act_window">
|
||||
<field name="name">定位装置类型</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">sf.locating.device.type</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
|
||||
<!-- ====================================定位装置定位方式view视图========================================== -->
|
||||
<record id="sf_locating_device_locate_mode_view_tree" model="ir.ui.view">
|
||||
<field name="name">定位装置定位方式</field>
|
||||
<field name="model">sf.locating.device.locate.mode</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="定位装置定位方式">
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="sf_locating_device_locate_mode_view_form" model="ir.ui.view">
|
||||
<field name="name">定位装置定位方式</field>
|
||||
<field name="model">sf.locating.device.locate.mode</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="定位装置定位方式">
|
||||
<sheet>
|
||||
<group string="基本信息">
|
||||
<group>
|
||||
<field name="code"/>
|
||||
<field name="name_id"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="name"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string="其他">
|
||||
<field name="comment"/>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="sf_locating_device_locate_mode_view_act" model="ir.actions.act_window">
|
||||
<field name="name">定位装置定位方式</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">sf.locating.device.locate.mode</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
|
||||
<!-- ======================================导向元件view视图=========================================== -->
|
||||
<record id="sf_fixture_guide_element_view_tree" model="ir.ui.view">
|
||||
<field name="name">导向元件型号</field>
|
||||
<field name="model">sf.fixture.guide.element</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="导向元件型号">
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="guide_ele_type_id"/>
|
||||
<field name="brand_id"/>
|
||||
<field name="picture" widget="image"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="sf_fixture_guide_element_view_form" model="ir.ui.view">
|
||||
<field name="name">导向元件型号</field>
|
||||
<field name="model">sf.fixture.guide.element</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="导向元件型号">
|
||||
<sheet>
|
||||
<group string="基本信息">
|
||||
<group>
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="guide_ele_type_id"/>
|
||||
<field name="brand_id"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="picture" widget="image" nolabel="1"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string="参数">
|
||||
<group>
|
||||
<field name="length"/>
|
||||
<field name="width"/>
|
||||
<field name="height"/>
|
||||
<field name="diameter"/>
|
||||
<field name="guide_ele_way_to_install_id"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="material_type_id"/>
|
||||
<field name="accuracy_grade"/>
|
||||
<field name="weight"/>
|
||||
<field name="scope_of_application"/>
|
||||
<field name="guide_ele_guide_mode_id"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string="其他">
|
||||
<group>
|
||||
<field name="comment"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="sf_fixture_guide_element_view_act" model="ir.actions.act_window">
|
||||
<field name="name">导向元件型号</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">sf.fixture.guide.element</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
|
||||
<!-- ========================================导向元件类型view视图==================================== -->
|
||||
<record id="sf_guide_element_type_view_tree" model="ir.ui.view">
|
||||
<field name="name">导向元件类型</field>
|
||||
<field name="model">sf.guide.element.type</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="定位原件类型">
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="sf_guide_element_type_view_form" model="ir.ui.view">
|
||||
<field name="name">导向元件类型</field>
|
||||
<field name="model">sf.guide.element.type</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="定位元件类型">
|
||||
<sheet>
|
||||
<group string="基本信息">
|
||||
<group>
|
||||
<field name="code"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="name"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string="其他">
|
||||
<field name="comment"/>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="sf_guide_element_type_view_act" model="ir.actions.act_window">
|
||||
<field name="name">导向元件类型</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">sf.guide.element.type</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
|
||||
|
||||
<!-- ==========================================导向元件导向方式view视图======================================== -->
|
||||
<record id="sf_guide_element_guide_mode_view_tree" model="ir.ui.view">
|
||||
<field name="name">导向元件导向方式</field>
|
||||
<field name="model">sf.guide.element.guide.mode</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="导向元件导向方式">
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="sf_guide_element_guide_mode_view_form" model="ir.ui.view">
|
||||
<field name="name">导向元件导向方式</field>
|
||||
<field name="model">sf.guide.element.guide.mode</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="导向元件导向方式">
|
||||
<sheet>
|
||||
<group string="基本信息">
|
||||
<group>
|
||||
<field name="code"/>
|
||||
<field name="name_id"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="name"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string="其他">
|
||||
<field name="comment"/>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="sf_guide_element_guide_mode_view_act" model="ir.actions.act_window">
|
||||
<field name="name">导向元件导向方式</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">sf.guide.element.guide.mode</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
|
||||
|
||||
<!-- ==========================================导向元件安装方式view视图============================================== -->
|
||||
<record id="sf_guide_element_way_to_install_view_tree" model="ir.ui.view">
|
||||
<field name="name">导向元件安装方式</field>
|
||||
<field name="model">sf.guide.element.way.to.install</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="导向元件导向方式">
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="sf_guide_element_way_to_install_view_form" model="ir.ui.view">
|
||||
<field name="name">导向元件安装方式</field>
|
||||
<field name="model">sf.guide.element.way.to.install</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="导向元件导向方式">
|
||||
<sheet>
|
||||
<group string="基本信息">
|
||||
<group>
|
||||
<field name="code"/>
|
||||
<field name="name_id"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="name"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string="其他">
|
||||
<field name="comment"/>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="sf_guide_element_way_to_install_view_act" model="ir.actions.act_window">
|
||||
<field name="name">导向元件安装方式</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">sf.guide.element.way.to.install</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
|
||||
|
||||
</odoo>
|
||||
106
sf_base/views/menu_fixture_view.xml
Normal file
106
sf_base/views/menu_fixture_view.xml
Normal file
@@ -0,0 +1,106 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
<!--<menuitem id="menu_sf_functional_fixture_list_1"-->
|
||||
<!-- name="功能夹具列表"-->
|
||||
<!-- sequence="0"-->
|
||||
<!-- />-->
|
||||
|
||||
<menuitem id="menu_sf_functional_fixture_list_2"
|
||||
name="夹具"
|
||||
parent="menu_sf_base"
|
||||
sequence="6"
|
||||
/>
|
||||
|
||||
<!-- <menuitem id="menu_sf_functional_fixture_list_3"-->
|
||||
<!-- name="类型列表"-->
|
||||
<!-- parent="menu_sf_functional_fixture_list_1"-->
|
||||
<!-- sequence="0"-->
|
||||
<!-- />-->
|
||||
|
||||
<menuitem id="menu_sf_fixture_setting_element_1"
|
||||
name="定位元件型号"
|
||||
parent="menu_sf_functional_fixture_list_2"
|
||||
sequence="0"
|
||||
action="sf_fixture_setting_element_view_act"
|
||||
/>
|
||||
<menuitem id="menu_sf_setting_element_type_1"
|
||||
name="定位元件类型"
|
||||
parent="menu_sf_functional_fixture_list_2"
|
||||
sequence="10"
|
||||
action="sf_setting_element_type_view_act"
|
||||
/>
|
||||
|
||||
|
||||
|
||||
<menuitem id="menu_sf_fixture_clamping_element_1"
|
||||
name="夹紧元件型号"
|
||||
parent="menu_sf_functional_fixture_list_2"
|
||||
sequence="2"
|
||||
action="sf_fixture_clamping_element_view_act"
|
||||
/>
|
||||
<menuitem id="menu_sf_clamping_element_type_1"
|
||||
name="夹紧元件类型"
|
||||
parent="menu_sf_functional_fixture_list_2"
|
||||
sequence="12"
|
||||
action="sf_clamping_element_type_view_act"
|
||||
/>
|
||||
|
||||
|
||||
<menuitem id="menu_sf_fixture_tool_setting_1"
|
||||
name="对刀夹具型号"
|
||||
parent="menu_sf_functional_fixture_list_2"
|
||||
sequence="4"
|
||||
action="sf_fixture_tool_setting_view_act"
|
||||
/>
|
||||
<menuitem id="menu_sf_tool_setting_type_1"
|
||||
name="对刀夹具类型"
|
||||
parent="menu_sf_functional_fixture_list_2"
|
||||
sequence="14"
|
||||
action="sf_tool_setting_type_view_act"
|
||||
/>
|
||||
|
||||
<menuitem id="menu_sf_fixture_locating_device_1"
|
||||
name="定位装置型号"
|
||||
parent="menu_sf_functional_fixture_list_2"
|
||||
sequence="6"
|
||||
action="sf_fixture_locating_device_view_act"
|
||||
/>
|
||||
<menuitem id="menu_sf_locating_device_type_1"
|
||||
name="定位装置型号"
|
||||
parent="menu_sf_functional_fixture_list_2"
|
||||
sequence="16"
|
||||
action="sf_locating_device_type_view_act"
|
||||
/>
|
||||
<menuitem id="menu_sf_locating_device_locate_mode_1"
|
||||
name="定位装置定位方式"
|
||||
parent="menu_sf_functional_fixture_list_2"
|
||||
sequence="18"
|
||||
action="sf_locating_device_locate_mode_view_act"
|
||||
/>
|
||||
|
||||
|
||||
<menuitem id="menu_sf_fixture_guide_element_1"
|
||||
name="导向元件型号"
|
||||
parent="menu_sf_functional_fixture_list_2"
|
||||
sequence="8"
|
||||
action="sf_fixture_guide_element_view_act"
|
||||
/>
|
||||
<menuitem id="menu_sf_guide_element_type_1"
|
||||
name="导向元件类型"
|
||||
parent="menu_sf_functional_fixture_list_2"
|
||||
sequence="20"
|
||||
action="sf_guide_element_type_view_act"
|
||||
/>
|
||||
<menuitem id="menu_sf_guide_element_guide_mode_1"
|
||||
name="导向元件导向方式"
|
||||
parent="menu_sf_functional_fixture_list_2"
|
||||
sequence="22"
|
||||
action="sf_guide_element_guide_mode_view_act"
|
||||
/>
|
||||
<menuitem id="menu_sf_guide_element_way_to_install_1"
|
||||
name="导向元件安装方式"
|
||||
parent="menu_sf_functional_fixture_list_2"
|
||||
sequence="24"
|
||||
action="sf_guide_element_way_to_install_view_act"
|
||||
/>
|
||||
</odoo>
|
||||
@@ -18,13 +18,27 @@
|
||||
<field name='categ_type' invisible="1"/>
|
||||
<field name="embryo_model_type_id" string="模型类型"
|
||||
attrs="{'invisible': ['|',('categ_type', '!=', '坯料'),('categ_type', '=', False)]}"/>
|
||||
<field name="materials_id" string="材料" attrs="{'invisible': [('categ_type', '=', '表面工艺')]}"/>
|
||||
<field name="materials_id" string="材料"
|
||||
attrs="{'invisible': ['|',('categ_type', '=', '表面工艺'),('categ_type', '=', '刀具')]}"/>
|
||||
<field name="materials_type_id" string="型号"
|
||||
domain="[('materials_id', '=', materials_id)]"
|
||||
attrs="{'invisible': [('categ_type', '=', '表面工艺')]}"/>
|
||||
attrs="{'invisible': ['|',('categ_type', '=', '表面工艺'),('categ_type', '=', '刀具')]}"/>
|
||||
<field name="server_product_process_parameters_id" string="表面工艺参数"
|
||||
options="{'no_create': True}"
|
||||
attrs="{'invisible': ['|',('categ_type', '!=', '表面工艺'),('categ_type', '=', False)]}"/>
|
||||
<field name="cutting_tool" attrs="{'invisible': [('categ_type', '!=', '刀具')]}"/>
|
||||
<field name="integral_cutting_tool_type_id"
|
||||
attrs="{'invisible': ['|',('categ_type', '!=', '刀具'),('cutting_tool', '!=', '整体式刀具')]}"/>
|
||||
<field name="blade_type_id"
|
||||
attrs="{'invisible': ['|',('categ_type', '!=', '刀具'),('cutting_tool', '!=', '刀片')]}"/>
|
||||
<field name="cutter_bar_type_id"
|
||||
attrs="{'invisible': ['|',('categ_type', '!=', '刀具'),('cutting_tool', '!=', '刀杆')]}"/>
|
||||
<field name="cutter_pad_type_id"
|
||||
attrs="{'invisible': ['|',('categ_type', '!=', '刀具'),('cutting_tool', '!=', '刀盘')]}"/>
|
||||
<field name="handle_type_id"
|
||||
attrs="{'invisible': ['|',('categ_type', '!=', '刀具'),('cutting_tool', '!=', '刀柄')]}"/>
|
||||
<field name="chuck_type_id"
|
||||
attrs="{'invisible': ['|',('categ_type', '!=', '刀具'),('cutting_tool', '!=', '夹头')]}"/>
|
||||
</field>
|
||||
|
||||
<xpath expr="//label[@for='volume']" position="before">
|
||||
@@ -51,21 +65,15 @@
|
||||
<div class="o_address_format">
|
||||
<label for="model_long" string="长"/>
|
||||
<field name="model_long" class="o_address_zip"/>
|
||||
<!-- <span>&nbsp;</span>-->
|
||||
<label for="model_width" string="宽"/>
|
||||
<field name="model_width" class="o_address_zip"/>
|
||||
<!-- <span>&nbsp;</span>-->
|
||||
<label for="model_height" string="高"/>
|
||||
<field name="model_height" class="o_address_zip"/>
|
||||
</div>
|
||||
<!-- <field name="model_long" string="长[mm]"/>-->
|
||||
<!-- <field name="model_width" string="宽[mm]"/>-->
|
||||
<!-- <field name="model_height" string="高[mm]"/>-->
|
||||
<field name="model_volume" string="体积[mm³]"/>
|
||||
<field name="product_model_type_id" string="模型类型"/>
|
||||
<field name="model_processing_panel" placeholder="例如R,U" string="加工面板"/>
|
||||
<field name="model_machining_precision"/>
|
||||
<!-- <field name="model_surface_process_ids" string="表面工艺"/>-->
|
||||
<field name="model_process_parameters_ids" string="表面工艺参数" widget="many2many_tags"
|
||||
options="{'no_create': True}"/>
|
||||
<field name="model_remark" string="备注说明"/>
|
||||
@@ -74,52 +82,141 @@
|
||||
</page>
|
||||
</xpath>
|
||||
<xpath expr="//page[last()-1]" position="after">
|
||||
<page string="刀具物料参数">
|
||||
<page string="刀具物料参数" attrs="{'invisible': [('categ_type', '!=', '刀具')]}">
|
||||
<group>
|
||||
<group>
|
||||
<div>
|
||||
<field name="cutting_tool_parameter_brand"/>
|
||||
<field name="cutting_tool_parameter_total_length"/>
|
||||
<field name="cutting_tool_parameter_shank_length"/>
|
||||
<field name="cutting_tool_parameter_blade_length"/>
|
||||
<field name="cutting_tool_parameter_diameter"/>
|
||||
<field name="cutting_tool_parameter_blade_number"/>
|
||||
<field name="cutting_tool_parameter_front_angle"/>
|
||||
<field name="cutting_tool_parameter_rear_angle"/>
|
||||
<field name="cutting_tool_parameter_main_included_angle"/>
|
||||
<field name="cutting_tool_parameter_material_model"/>
|
||||
<field name="cutting_tool_parameter_nut"/>
|
||||
<field name="cutting_tool_parameter_chuck_model"/>
|
||||
<field name="cutting_tool_parameter_scope"/>
|
||||
<field name="cutting_tool_parameter_image"/>
|
||||
</div>
|
||||
<div>
|
||||
<field name="cutting_tool_parameter_length"/>
|
||||
<field name="cutting_tool_parameter_width"/>
|
||||
<field name="cutting_tool_parameter_height"/>
|
||||
<field name="cutting_tool_parameter_top_angle"/>
|
||||
<field name="cutting_tool_parameter_hardness"/>
|
||||
<field name="cutting_tool_parameter_cutter_bar"/>
|
||||
<field name="cutting_tool_parameter_cutter_pad"/>
|
||||
<field name="cutting_tool_parameter_radius"/>
|
||||
</div>
|
||||
<div>
|
||||
<field name="cutting_tool_parameter_c_diameter"/>
|
||||
<field name="cutting_tool_parameter_total_length"/>
|
||||
<field name="cutting_tool_parameter_d_diameter"/>
|
||||
<field name="cutting_tool_parameter_blade"/>
|
||||
<field name="cutting_tool_parameter_wrench"/>
|
||||
<field name="cutting_tool_parameter_screw"/>
|
||||
<field name="cutting_tool_parameter_hardness"/>
|
||||
</div>
|
||||
<div>
|
||||
<field name="cutting_tool_parameter_accuracy"/>
|
||||
<field name="cutting_tool_parameter_diameter"/>
|
||||
<field name="cutting_tool_parameter_inner_diameter"/>
|
||||
<field name="cutting_tool_parameter_handle_model"/>
|
||||
<field name="cutting_tool_parameter_feature"/>
|
||||
</div>
|
||||
<!--整体式刀具-->
|
||||
<group attrs="{'invisible': ['|',('categ_type', '!=', '刀具'),('cutting_tool', '!=', '整体式刀具')]}">
|
||||
<field name="cutting_tool_parameter_brand"
|
||||
attrs="{'invisible': [('cutting_tool', '!=', '整体式刀具')]}"/>
|
||||
<field name="cutting_tool_parameter_total_length"/>
|
||||
<field name="cutting_tool_parameter_shank_length"/>
|
||||
<field name="cutting_tool_parameter_blade_length"/>
|
||||
<field name="cutting_tool_parameter_diameter"/>
|
||||
<field name="cutting_tool_parameter_nut"
|
||||
attrs="{'invisible': [('cutting_tool', '!=', '整体式刀具')]}"/>
|
||||
<field name="cutting_tool_parameter_blade_number"
|
||||
attrs="{'invisible': [('cutting_tool', '!=', '整体式刀具')]}"/>
|
||||
</group>
|
||||
<group attrs="{'invisible': ['|',('categ_type', '!=', '刀具'),('cutting_tool', '!=', '整体式刀具')]}">
|
||||
<field name="cutting_tool_parameter_material_model"/>
|
||||
<field name="cutting_tool_parameter_front_angle"
|
||||
attrs="{'invisible': [('cutting_tool', '!=', '整体式刀具')]}"/>
|
||||
<field name="cutting_tool_parameter_rear_angle"
|
||||
attrs="{'invisible': [('cutting_tool', '!=', '整体式刀具')]}"/>
|
||||
<field name="cutting_tool_parameter_main_included_angle"
|
||||
attrs="{'invisible': [('cutting_tool', '!=', '整体式刀具')]}"/>
|
||||
</group>
|
||||
<group attrs="{'invisible': ['|',('categ_type', '!=', '刀具'),('cutting_tool', '!=', '整体式刀具')]}">
|
||||
<field name="cutting_tool_parameter_chuck_model" widget="many2many_tags"
|
||||
attrs="{'invisible': [('cutting_tool', '!=', '整体式刀具')]}"/>
|
||||
<field name="cutting_tool_parameter_scope"
|
||||
attrs="{'invisible': [('cutting_tool', '!=', '整体式刀具')]}"/>
|
||||
</group>
|
||||
<!--刀片-->
|
||||
<group attrs="{'invisible': ['|',('categ_type', '!=', '刀具'),('cutting_tool', '!=', '刀片')]}">
|
||||
<field name="cutting_tool_parameter_brand"
|
||||
attrs="{'invisible': [('cutting_tool', '!=', '刀片')]}"/>
|
||||
<field name="cutting_tool_parameter_top_angle"/>
|
||||
<field name="cutting_tool_parameter_front_angle"
|
||||
attrs="{'invisible': [('cutting_tool', '!=', '刀片')]}"/>
|
||||
<field name="cutting_tool_parameter_rear_angle"
|
||||
attrs="{'invisible': [('cutting_tool', '!=', '刀片')]}"/>
|
||||
<field name="cutting_tool_parameter_main_included_angle"
|
||||
attrs="{'invisible': [('cutting_tool', '!=', '刀片')]}"/>
|
||||
<field name="cutting_tool_parameter_r_angle"/>
|
||||
<field name="cutting_tool_parameter_working_hardness"/>
|
||||
</group>
|
||||
<group attrs="{'invisible': ['|',('categ_type', '!=', '刀具'),('cutting_tool', '!=', '刀片')]}">
|
||||
<field name="cutting_tool_parameter_material_model"
|
||||
attrs="{'invisible': [('cutting_tool', '!=', '刀片')]}"/>
|
||||
<label for="cutting_tool_parameter_length" string="尺寸[mm]"/>
|
||||
<div class="o_address_format">
|
||||
<label for="cutting_tool_parameter_length" string="长度L"/>
|
||||
<field name="cutting_tool_parameter_length" class="o_address_zip"/>
|
||||
<label for="cutting_tool_parameter_width" string="宽度D"/>
|
||||
<field name="cutting_tool_parameter_width" class="o_address_zip"/>
|
||||
<label for="cutting_tool_parameter_height" string="高度T"
|
||||
attrs="{'invisible': [('cutting_tool', '!=', '刀片')]}"/>
|
||||
<field name="cutting_tool_parameter_height" class="o_address_zip"
|
||||
attrs="{'invisible': [('cutting_tool', '!=', '刀片')]}"/>
|
||||
</div>
|
||||
<field name="cutting_tool_parameter_radius"/>
|
||||
<field name="cutting_tool_parameter_nut"
|
||||
attrs="{'invisible': [('cutting_tool', '!=', '刀片')]}"/>
|
||||
<field name="cutting_tool_parameter_cutter_bar" widget="many2many_tags"/>
|
||||
<field name="cutting_tool_parameter_cutter_pad" widget="many2many_tags"/>
|
||||
</group>
|
||||
|
||||
<!--刀杆/刀盘-->
|
||||
<group attrs="{'invisible': ['|',('categ_type', '!=', '刀具'),('cutting_tool', 'not in', ['刀杆','刀盘'])]}">
|
||||
<field name="cutting_tool_parameter_brand"
|
||||
attrs="{'invisible': [('cutting_tool', 'not in', ['刀杆','刀盘'])]}"/>
|
||||
<field name="cutting_tool_parameter_c_diameter"/>
|
||||
<field name="cutting_tool_parameter_d_diameter"/>
|
||||
<field name="cutting_tool_parameter_l_total_length"/>
|
||||
<field name="cutting_tool_parameter_wrench"/>
|
||||
<field name="cutting_tool_parameter_screw"/>
|
||||
<field name="cutting_tool_parameter_blade" widget="many2many_tags"/>
|
||||
<field name="cutting_tool_parameter_scope"
|
||||
attrs="{'invisible': [('cutting_tool', 'not in', ['刀杆','刀盘'])]}"/>
|
||||
|
||||
</group>
|
||||
<group attrs="{'invisible': ['|',('categ_type', '!=', '刀具'),('cutting_tool', 'not in', ['刀杆','刀盘'])]}">
|
||||
<field name="cutting_tool_parameter_material_model"
|
||||
attrs="{'invisible': [('cutting_tool', 'not in', ['刀杆','刀盘'])]}"/>
|
||||
<field name="cutting_tool_parameter_rounded_corner"/>
|
||||
<field name="cutting_tool_parameter_accuracy_level"/>
|
||||
<field name="cutting_tool_parameter_blade_number"
|
||||
attrs="{'invisible': [('cutting_tool', 'not in', ['刀杆','刀盘'])]}"/>
|
||||
<field name="cutting_tool_parameter_hardness"/>
|
||||
</group>
|
||||
<!--刀柄-->
|
||||
<group attrs="{'invisible': ['|',('categ_type', '!=', '刀具'),('cutting_tool', '!=', '刀柄')]}">
|
||||
<field name="cutting_tool_parameter_brand"
|
||||
attrs="{'invisible': [('cutting_tool', '!=', '刀柄')]}"/>
|
||||
<field name="cutting_tool_parameter_handle_length"/>
|
||||
<field name="cutting_tool_parameter_length1"/>
|
||||
<field name="cutting_tool_parameter_diameter1"/>
|
||||
<field name="cutting_tool_parameter_body_accuracy"/>
|
||||
<field name="cutting_tool_parameter_nut"
|
||||
attrs="{'invisible': [('cutting_tool', '!=', '刀柄')]}"/>
|
||||
<field name="cutting_tool_parameter_clamping_range"
|
||||
attrs="{'invisible': [('cutting_tool', '!=', '刀柄')]}"/>
|
||||
<field name="cutting_tool_parameter_weight"/>
|
||||
<field name="cutting_tool_parameter_chuck_model" widget="many2many_tags"
|
||||
attrs="{'invisible': [('cutting_tool', '!=', '刀柄')]}"/>
|
||||
</group>
|
||||
<group attrs="{'invisible': ['|',('categ_type', '!=', '刀具'),('cutting_tool', '!=', '刀柄')]}">
|
||||
<field name="cutting_tool_parameter_material_model"
|
||||
attrs="{'invisible': [('cutting_tool', '!=', '刀柄')]}"/>
|
||||
<field name="cutting_tool_parameter_detection_accuracy"/>
|
||||
<field name="cutting_tool_parameter_detection_hardness"/>
|
||||
<field name="cutting_tool_parameter_standard_speed"/>
|
||||
</group>
|
||||
<!--夹头-->
|
||||
<group attrs="{'invisible': ['|',('categ_type', '!=', '刀具'),('cutting_tool', '!=', '夹头')]}">
|
||||
<field name="cutting_tool_parameter_brand"
|
||||
attrs="{'invisible': [('cutting_tool', '!=', '夹头')]}"/>
|
||||
<field name="cutting_tool_parameter_outer_diameter"/>
|
||||
<field name="cutting_tool_parameter_inner_diameter"/>
|
||||
<field name="cutting_tool_parameter_accuracy"/>
|
||||
<field name="cutting_tool_parameter_nut"
|
||||
attrs="{'invisible': [('cutting_tool', '!=', '夹头')]}"/>
|
||||
<field name="cutting_tool_parameter_clamping_range"
|
||||
attrs="{'invisible': [('cutting_tool', '!=', '夹头')]}"/>
|
||||
<field name="cutting_tool_parameter_handle_model" widget="many2many_tags"
|
||||
attrs="{'invisible': [('cutting_tool', '!=', '夹头')]}"/>
|
||||
</group>
|
||||
<group attrs="{'invisible': ['|',('categ_type', '!=', '刀具'),('cutting_tool', '!=', '夹头')]}">
|
||||
<field name="cutting_tool_parameter_material_model"
|
||||
attrs="{'invisible': [('cutting_tool', '!=', '夹头')]}"/>
|
||||
<field name="cutting_tool_parameter_height" string="高度[mm]"
|
||||
attrs="{'invisible': [('cutting_tool', '!=', '夹头')]}"/>
|
||||
<field name="cutting_tool_parameter_feature"/>
|
||||
</group>
|
||||
</group>
|
||||
<group attrs="{'invisible': [('categ_type', '!=', '刀具')]}">
|
||||
<field name="cutting_tool_parameter_image"/>
|
||||
</group>
|
||||
</page>
|
||||
</xpath>
|
||||
|
||||
@@ -50,55 +50,75 @@ class ResProductTemplate(models.Model):
|
||||
model_code = fields.Char('模型编码')
|
||||
is_bfm = fields.Boolean('业务平台是否自动创建', default=False)
|
||||
|
||||
cutting_tool = fields.Selection([
|
||||
('整体式刀具', '整体式刀具'),
|
||||
('刀片', '刀片'),
|
||||
('刀杆', '刀杆'),
|
||||
('刀盘', '刀盘'),
|
||||
('刀柄', '刀柄'),
|
||||
('夹头', '夹头')], string='刀具')
|
||||
# 关联整体式刀具型号
|
||||
integral_cutting_tool_type_id = fields.Many2one('sf.integral.cutting.tool', '整体式刀具型号')
|
||||
# 关联刀片型号
|
||||
blade_type_id = fields.Many2one('sf.blade', '刀片型号')
|
||||
# 关联刀杆型号
|
||||
cutter_bar_type_id = fields.Many2one('sf.cutter.bar', '刀杆型号')
|
||||
# 关联刀盘型号
|
||||
cutter_pad_type_id = fields.Many2one('sf.cutter.pad', '刀盘型号')
|
||||
# 关联刀柄型号
|
||||
handle_type_id = fields.Many2one('sf.handle', '刀柄型号')
|
||||
# 关联夹头型号
|
||||
chuck_type_id = fields.Many2one('sf.chuck', '夹头型号')
|
||||
cutting_tool_parameter_brand = fields.Many2one('sf.machine.brand', '品牌')
|
||||
# 整体式刀具参数
|
||||
cutting_tool_parameter_total_length = fields.Float('总长度(mm)')
|
||||
cutting_tool_parameter_shank_length = fields.Float('柄部长度(mm)')
|
||||
cutting_tool_parameter_blade_length = fields.Float('刃部长度(mm)')
|
||||
cutting_tool_parameter_diameter = fields.Float('直径(mm)')
|
||||
cutting_tool_parameter_total_length = fields.Float('总长度[mm]')
|
||||
cutting_tool_parameter_shank_length = fields.Float('柄部长度[mm]')
|
||||
cutting_tool_parameter_blade_length = fields.Float('刃部长度[mm]')
|
||||
cutting_tool_parameter_diameter = fields.Float('直径[mm]')
|
||||
cutting_tool_parameter_blade_number = fields.Integer('刃数')
|
||||
cutting_tool_parameter_front_angle = fields.Float('前角(°)')
|
||||
cutting_tool_parameter_rear_angle = fields.Float('后角(°)')
|
||||
cutting_tool_parameter_main_included_angle = fields.Float('主偏角(°)')
|
||||
cutting_tool_parameter_material_model = fields.Many2one('sf.materials.model', '材料型号')
|
||||
cutting_tool_parameter_nut = fields.Float('配对螺母(mm)')
|
||||
cutting_tool_parameter_nut = fields.Float('配对螺母[mm]')
|
||||
# 适用夹头型号可以多选
|
||||
cutting_tool_parameter_chuck_model = fields.Many2many('sf.chuck', string='适用夹头型号')
|
||||
cutting_tool_parameter_scope = fields.Char('适用范围')
|
||||
cutting_tool_parameter_image = fields.Binary('图片')
|
||||
# 刀片参数
|
||||
cutting_tool_parameter_length = fields.Float('长度L(mm)')
|
||||
cutting_tool_parameter_width = fields.Float('宽度D(mm)')
|
||||
cutting_tool_parameter_height = fields.Float('高度T(mm)')
|
||||
cutting_tool_parameter_length = fields.Float('长度L[mm]')
|
||||
cutting_tool_parameter_width = fields.Float('宽度D[mm])')
|
||||
cutting_tool_parameter_height = fields.Float('高度T[mm]')
|
||||
cutting_tool_parameter_top_angle = fields.Float('顶角(°)')
|
||||
cutting_tool_parameter_top_angle = fields.Float('R角(°)')
|
||||
cutting_tool_parameter_hardness = fields.Char('加工硬度')
|
||||
cutting_tool_parameter_r_angle = fields.Float('R角(°)')
|
||||
cutting_tool_parameter_working_hardness = fields.Char('加工硬度')
|
||||
cutting_tool_parameter_cutter_bar = fields.Many2many('sf.cutter.bar', string='适用刀杆型号')
|
||||
cutting_tool_parameter_cutter_pad = fields.Many2many('sf.cutter.pad', string='适用刀盘型号')
|
||||
cutting_tool_parameter_radius = fields.Float('刀尖半径(mm)')
|
||||
cutting_tool_parameter_radius = fields.Float('刀尖半径[mm]')
|
||||
# 刀杆/刀盘参数
|
||||
cutting_tool_parameter_c_diameter = fields.Float('C柄径(mm)')
|
||||
cutting_tool_parameter_total_length = fields.Float('L总长(mm)')
|
||||
cutting_tool_parameter_d_diameter = fields.Float('D刃径(mm)')
|
||||
cutting_tool_parameter_c_diameter = fields.Float('C柄径[mm]')
|
||||
cutting_tool_parameter_l_total_length = fields.Float('L总长[mm]')
|
||||
cutting_tool_parameter_d_diameter = fields.Float('D刃径[mm]')
|
||||
cutting_tool_parameter_blade = fields.Many2many('sf.blade', string='适用刀片型号')
|
||||
cutting_tool_parameter_wrench = fields.Float('配对扳手(mm)')
|
||||
cutting_tool_parameter_screw = fields.Float('配备螺丝(mm)')
|
||||
cutting_tool_parameter_accuracy = fields.Char('精度等级')
|
||||
cutting_tool_parameter_wrench = fields.Float('配对扳手[mm]')
|
||||
cutting_tool_parameter_screw = fields.Float('配备螺丝[mm]')
|
||||
cutting_tool_parameter_accuracy_level = fields.Char('精度等级')
|
||||
cutting_tool_parameter_rounded_corner = fields.Float('刀尖圆角半径[mm]')
|
||||
cutting_tool_parameter_hardness = fields.Char('硬度(°)')
|
||||
# 刀柄参数
|
||||
cutting_tool_parameter_handle_length = fields.Float('L(mm)')
|
||||
cutting_tool_parameter_length1 = fields.Float('L1(mm)')
|
||||
cutting_tool_parameter_diameter1 = fields.Float('D1(mm)')
|
||||
cutting_tool_parameter_handle_length = fields.Float('L[mm]')
|
||||
cutting_tool_parameter_length1 = fields.Float('L1[mm]')
|
||||
cutting_tool_parameter_diameter1 = fields.Float('D1[mm]')
|
||||
cutting_tool_parameter_weight = fields.Float('重量(kg)')
|
||||
cutting_tool_parameter_body_accuracy = fields.Float('本体精度(mm)')
|
||||
cutting_tool_parameter_clamping_range = fields.Float('夹持范围(mm)')
|
||||
cutting_tool_parameter_body_accuracy = fields.Float('本体精度[mm]')
|
||||
cutting_tool_parameter_clamping_range = fields.Float('夹持范围[mm]')
|
||||
cutting_tool_parameter_detection_accuracy = fields.Float('检测精度')
|
||||
cutting_tool_parameter_detection_hardness = fields.Char('检测硬度')
|
||||
cutting_tool_parameter_standard_speed = fields.Float('标准转速')
|
||||
# 夹头参数
|
||||
cutting_tool_parameter_accuracy = fields.Float('精度(mm)')
|
||||
cutting_tool_parameter_diameter = fields.Float('外径(mm)')
|
||||
cutting_tool_parameter_inner_diameter = fields.Float('内径(mm)')
|
||||
cutting_tool_parameter_accuracy = fields.Float('精度[mm]')
|
||||
cutting_tool_parameter_outer_diameter = fields.Float('外径[mm]')
|
||||
cutting_tool_parameter_inner_diameter = fields.Float('内径[mm]')
|
||||
cutting_tool_parameter_handle_model = fields.Many2many('sf.handle.model', string='适用刀柄型号')
|
||||
cutting_tool_parameter_feature = fields.Char('特性')
|
||||
|
||||
@@ -109,28 +129,6 @@ class ResProductTemplate(models.Model):
|
||||
else:
|
||||
return self.env.ref('sf_dlm.product_uom_cubic_millimeter')
|
||||
|
||||
# model_file = fields.Binary('模型文件')
|
||||
|
||||
# 坯料的库存路线设置
|
||||
# def _get_routes(self, route_type):
|
||||
# route_manufacture = self.env.ref('mrp.route_warehouse0_manufacture', raise_if_not_found=False).sudo()
|
||||
# route_mto = self.env.ref('stock.route_warehouse0_mto', raise_if_not_found=False).sudo()
|
||||
# route_purchase = self.env.ref('purchase_stock.route_warehouse0_buy', raise_if_not_found=False).sudo()
|
||||
# if route_manufacture and route_mto:
|
||||
# # 外协
|
||||
# if route_type == 'subcontract':
|
||||
# route_subcontract = self.env.ref('mrp_subcontracting.route_resupply_subcontractor_mto',
|
||||
# raise_if_not_found=False).sudo()
|
||||
# return [route_mto.id, route_purchase.id, route_subcontract.id]
|
||||
# elif route_type == 'purchase':
|
||||
# # 采购
|
||||
# return [route_mto.id, route_purchase.id]
|
||||
# else:
|
||||
# return [route_mto.id, route_manufacture.id]
|
||||
# return []
|
||||
|
||||
# route_ids = fields.Many2many(default=lambda self: self._get_route())
|
||||
|
||||
# 业务平台分配工厂后在智能工厂先创建销售订单再创建该产品
|
||||
def product_create(self, product_id, item, order_id, order_number, i):
|
||||
copy_product_id = product_id.with_user(self.env.ref("base.user_admin")).copy()
|
||||
@@ -314,6 +312,112 @@ class ResProductTemplate(models.Model):
|
||||
return base64_data
|
||||
|
||||
|
||||
@api.onchange('integral_cutting_tool_type_id')
|
||||
def _get_integral_cutting_tool_type_info(self):
|
||||
for item in self:
|
||||
item.cutting_tool_parameter_brand = item.integral_cutting_tool_type_id.brand.id
|
||||
item.cutting_tool_parameter_total_length = item.integral_cutting_tool_type_id.total_length
|
||||
item.cutting_tool_parameter_shank_length = item.integral_cutting_tool_type_id.shank_length
|
||||
item.cutting_tool_parameter_blade_length = item.integral_cutting_tool_type_id.blade_length
|
||||
item.cutting_tool_parameter_diameter = item.integral_cutting_tool_type_id.diameter
|
||||
item.cutting_tool_parameter_nut = item.integral_cutting_tool_type_id.control_system_id
|
||||
item.cutting_tool_parameter_blade_number = item.integral_cutting_tool_type_id.blade_number
|
||||
item.cutting_tool_parameter_material_model = item.integral_cutting_tool_type_id.material_model.id
|
||||
item.cutting_tool_parameter_front_angle = item.integral_cutting_tool_type_id.front_angle
|
||||
item.cutting_tool_parameter_rear_angle = item.integral_cutting_tool_type_id.rear_angle
|
||||
item.cutting_tool_parameter_main_included_angle = item.integral_cutting_tool_type_id.main_included_angle
|
||||
item.cutting_tool_parameter_chuck_model = item.integral_cutting_tool_type_id.chuck_model.id
|
||||
item.cutting_tool_parameter_scope = item.integral_cutting_tool_type_id.scope
|
||||
|
||||
@api.onchange('blade_type_id')
|
||||
def _get_blade_type_info(self):
|
||||
for item in self:
|
||||
item.cutting_tool_parameter_brand = item.blade_type_id.brand.id
|
||||
item.cutting_tool_parameter_top_angle = item.blade_type_id.top_angle
|
||||
item.cutting_tool_parameter_front_angle = item.blade_type_id.front_angle
|
||||
item.cutting_tool_parameter_rear_angle = item.blade_type_id.rear_angle
|
||||
item.cutting_tool_parameter_main_included_angle = item.blade_type_id.main_included_angle
|
||||
item.cutting_tool_parameter_r_angle = item.blade_type_id.r_angle
|
||||
item.cutting_tool_parameter_working_hardness = item.blade_type_id.hardness
|
||||
item.cutting_tool_parameter_material_model = item.blade_type_id.material_model.id
|
||||
item.cutting_tool_parameter_length = item.blade_type_id.length
|
||||
item.cutting_tool_parameter_width = item.blade_type_id.width
|
||||
item.cutting_tool_parameter_height = item.blade_type_id.height
|
||||
item.cutting_tool_parameter_radius = item.blade_type_id.radius
|
||||
item.cutting_tool_parameter_nut = item.blade_type_id.nut
|
||||
item.cutting_tool_parameter_cutter_bar = item.blade_type_id.cutter_bar.id
|
||||
item.cutting_tool_parameter_cutter_pad = item.blade_type_id.cutter_pad.id
|
||||
|
||||
@api.onchange('cutter_bar_type_id')
|
||||
def _get_cutter_bar_type_info(self):
|
||||
for item in self:
|
||||
item.cutting_tool_parameter_brand = item.cutter_bar_type_id.brand.id
|
||||
item.cutting_tool_parameter_c_diameter = item.cutter_bar_type_id.c_diameter
|
||||
item.cutting_tool_parameter_d_diameter = item.cutter_bar_type_id.d_diameter
|
||||
item.cutting_tool_parameter_l_total_length = item.cutter_bar_type_id.total_length
|
||||
item.cutting_tool_parameter_wrench = item.cutter_bar_type_id.wrench
|
||||
item.cutting_tool_parameter_screw = item.cutter_bar_type_id.screw
|
||||
item.cutting_tool_parameter_blade = item.cutter_bar_type_id.blade.id
|
||||
item.cutting_tool_parameter_scope = item.cutter_bar_type_id.scope
|
||||
item.cutting_tool_parameter_material_model = item.cutter_bar_type_id.material_model.id
|
||||
item.cutting_tool_parameter_rounded_corner = item.cutter_bar_type_id.radius
|
||||
item.cutting_tool_parameter_accuracy_level = item.cutter_bar_type_id.accuracy
|
||||
item.cutting_tool_parameter_blade_number = item.cutter_bar_type_id.blade_number
|
||||
item.cutting_tool_parameter_hardness = item.cutter_bar_type_id.hardness
|
||||
|
||||
@api.onchange('cutter_pad_type_id')
|
||||
def _get_cutter_pad_type_info(self):
|
||||
for item in self:
|
||||
item.cutting_tool_parameter_brand = item.cutter_pad_type_id.brand.id
|
||||
item.cutting_tool_parameter_c_diameter = item.cutter_pad_type_id.c_diameter
|
||||
item.cutting_tool_parameter_d_diameter = item.cutter_pad_type_id.d_diameter
|
||||
item.cutting_tool_parameter_l_total_length = item.cutter_pad_type_id.total_length
|
||||
item.cutting_tool_parameter_wrench = item.cutter_pad_type_id.wrench
|
||||
item.cutting_tool_parameter_screw = item.cutter_pad_type_id.screw
|
||||
item.cutting_tool_parameter_blade = item.cutter_pad_type_id.blade.id
|
||||
item.cutting_tool_parameter_scope = item.cutter_pad_type_id.scope
|
||||
item.cutting_tool_parameter_material_model = item.cutter_pad_type_id.material_model.id
|
||||
item.cutting_tool_parameter_rounded_corner = item.cutter_pad_type_id.radius
|
||||
item.cutting_tool_parameter_accuracy_level = item.cutter_pad_type_id.accuracy
|
||||
item.cutting_tool_parameter_blade_number = item.cutter_pad_type_id.blade_number
|
||||
item.cutting_tool_parameter_hardness = item.cutter_pad_type_id.hardness
|
||||
|
||||
@api.onchange('handle_type_id')
|
||||
def _get_handle_type_info(self):
|
||||
for item in self:
|
||||
item.cutting_tool_parameter_brand = item.handle_type_id.brand.id
|
||||
item.cutting_tool_parameter_handle_length = item.handle_type_id.length
|
||||
item.cutting_tool_parameter_length1 = item.handle_type_id.length1
|
||||
item.cutting_tool_parameter_diameter1 = item.handle_type_id.diameter1
|
||||
item.cutting_tool_parameter_body_accuracy = item.handle_type_id.body_accuracy
|
||||
item.cutting_tool_parameter_nut = item.handle_type_id.nut
|
||||
item.cutting_tool_parameter_clamping_range = item.handle_type_id.clamping_range
|
||||
item.cutting_tool_parameter_weight = item.handle_type_id.weight
|
||||
item.cutting_tool_parameter_material_model = item.handle_type_id.material_model.id
|
||||
item.cutting_tool_parameter_chuck_model = item.handle_type_id.chuck_model.id
|
||||
item.cutting_tool_parameter_detection_accuracy = item.handle_type_id.detection_accuracy
|
||||
item.cutting_tool_parameter_detection_hardness = item.handle_type_id.detection_hardness
|
||||
item.cutting_tool_parameter_standard_speed = item.handle_type_id.standard_speed
|
||||
|
||||
@api.onchange('chuck_type_id')
|
||||
def _get_chuck_type_info(self):
|
||||
for item in self:
|
||||
item.cutting_tool_parameter_brand = item.chuck_type_id.brand.id
|
||||
item.cutting_tool_parameter_outer_diameter = item.chuck_type_id.diameter
|
||||
item.cutting_tool_parameter_inner_diameter = item.chuck_type_id.inner_diameter
|
||||
item.cutting_tool_parameter_accuracy = item.chuck_type_id.accuracy
|
||||
item.cutting_tool_parameter_nut = item.chuck_type_id.nut
|
||||
item.cutting_tool_parameter_clamping_range = item.chuck_type_id.clamping_range
|
||||
item.cutting_tool_parameter_handle_model = item.chuck_type_id.handle_model.id
|
||||
item.cutting_tool_parameter_material_model = item.chuck_type_id.material_model.id
|
||||
item.cutting_tool_parameter_height = item.chuck_type_id.height
|
||||
item.cutting_tool_parameter_feature = item.chuck_type_id.detection_accuracy
|
||||
item.cutting_tool_parameter_detection_hardness = item.chuck_type_id.detection_hardness
|
||||
item.cutting_tool_parameter_standard_speed = item.chuck_type_id.standard_speed
|
||||
|
||||
|
||||
|
||||
|
||||
class ResMrpBom(models.Model):
|
||||
_inherit = 'mrp.bom'
|
||||
|
||||
@@ -393,9 +497,6 @@ class ResMrpBom(models.Model):
|
||||
[('categ_id.type', '=', '原材料'), ('materials_type_id', '=', product.materials_type_id.id)])
|
||||
return raw_bom
|
||||
|
||||
|
||||
|
||||
|
||||
# @api.constrains('type')
|
||||
# def _check_type(self):
|
||||
# category = self.env['product.category'].search(
|
||||
|
||||
@@ -285,4 +285,48 @@
|
||||
<field name="numbercall">-1</field>
|
||||
<field name="doall" eval="False"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.cron" id="sf_cron29">
|
||||
<field name="name">同步资源库夹紧元件型号</field>
|
||||
<field name="model_id" ref="model_sf_fixture_clamping_element"/>
|
||||
<field name="state">code</field>
|
||||
<field name="code">model.sync_fixture_clamping_element()</field>
|
||||
<field name="interval_number">1</field>
|
||||
<field name="interval_type">days</field>
|
||||
<field name="numbercall">-1</field>
|
||||
<field name="doall" eval="False"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.cron" id="sf_cron30">
|
||||
<field name="name">同步资源库夹紧元件类型</field>
|
||||
<field name="model_id" ref="model_sf_clamping_element_type"/>
|
||||
<field name="state">code</field>
|
||||
<field name="code">model.sync_clamping_element_type()</field>
|
||||
<field name="interval_number">1</field>
|
||||
<field name="interval_type">days</field>
|
||||
<field name="numbercall">-1</field>
|
||||
<field name="doall" eval="False"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.cron" id="sf_cron31">
|
||||
<field name="name">同步资源库导向元件类型</field>
|
||||
<field name="model_id" ref="model_sf_guide_element_type"/>
|
||||
<field name="state">code</field>
|
||||
<field name="code">model.sync_guide_element_type()</field>
|
||||
<field name="interval_number">1</field>
|
||||
<field name="interval_type">days</field>
|
||||
<field name="numbercall">-1</field>
|
||||
<field name="doall" eval="False"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.cron" id="sf_cron31">
|
||||
<field name="name">同步资源库导向元件导向方式</field>
|
||||
<field name="model_id" ref="model_sf_guide_element_guide_mode"/>
|
||||
<field name="state">code</field>
|
||||
<field name="code">model.sync_guide_element_guide_mode()</field>
|
||||
<field name="interval_number">1</field>
|
||||
<field name="interval_type">days</field>
|
||||
<field name="numbercall">-1</field>
|
||||
<field name="doall" eval="False"/>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -130,6 +130,15 @@ class ResConfigSettings(models.TransientModel):
|
||||
self.env['sf.functional.cutting.tool'].sync_all_functional_cutting_tool()
|
||||
_logger.info("同步所有功能刀具列表完成")
|
||||
|
||||
self.env['sf.fixture.clamping.element'].sync_all_fixture_clamping_element()
|
||||
_logger.info("同步资源库夹紧元件型号")
|
||||
self.env['sf.clamping.element.type'].sync_all_clamping_element_type()
|
||||
_logger.info("同步资源库夹紧元件类型")
|
||||
self.env['sf.guide.element.type'].sync_all_guide_element_type()
|
||||
_logger.info("同步资源库导向元件类型")
|
||||
self.env['sf.guide.element.guide.mode'].sync_all_guide_element_guide_mode()
|
||||
_logger.info("同步资源库导向元件导向方式")
|
||||
|
||||
except Exception as e:
|
||||
_logger.info("捕获错误信息:%s" % e)
|
||||
raise ValidationError("数据错误导致同步失败,请联系管理员")
|
||||
|
||||
@@ -2768,3 +2768,339 @@ class SyncChuckModel(models.Model):
|
||||
print('同步夹头类型列表成功')
|
||||
else:
|
||||
raise ValidationError("认证未通过")
|
||||
|
||||
|
||||
|
||||
|
||||
'''=========================================夹紧元件类型==============================================='''
|
||||
|
||||
|
||||
class sfClampingElementType(models.Model):
|
||||
_inherit = 'sf.clamping.element.type'
|
||||
_description = '夹紧元件类型'
|
||||
url = '/api/mrs_clamping_element_type/list'
|
||||
|
||||
# 定时同步每日夹紧元件类型
|
||||
def sync_clamping_element_type(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['mrs_clamping_element_type_yesterday_list']:
|
||||
if item:
|
||||
brand = self.env['sf.clamping.element.type'].search(
|
||||
[("code", '=', item['code'])])
|
||||
if brand:
|
||||
brand.name = item['name'],
|
||||
brand.code = item['code'],
|
||||
brand.comment = item['comment']
|
||||
else:
|
||||
self.env['sf.clamping.element.type'].create({
|
||||
"name": item['name'],
|
||||
"code": item['code'],
|
||||
"comment": item['comment']
|
||||
})
|
||||
else:
|
||||
raise ValidationError("认证未通过")
|
||||
|
||||
# 同步所有夹紧元件类型
|
||||
def sync_all_clamping_element_type(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:
|
||||
_logger.info('result:%s' % result)
|
||||
for item in result['mrs_clamping_element_type_all_list']:
|
||||
if item:
|
||||
brand = self.env['sf.clamping.element.type'].search(
|
||||
[("code", '=', item['code'])])
|
||||
if not brand:
|
||||
self.env['sf.clamping.element.type'].create({
|
||||
"name": item['name'],
|
||||
"code": item['code'],
|
||||
"comment": item['comment']
|
||||
})
|
||||
else:
|
||||
raise ValidationError("认证未通过")
|
||||
|
||||
|
||||
'''=================================夹紧元件型号============================================='''
|
||||
|
||||
|
||||
class sfFixtureClampingElement(models.Model):
|
||||
_inherit = 'sf.fixture.clamping.element'
|
||||
_description = '夹紧元件型号'
|
||||
url = '/api/mrs_fixture_clamping_element/list'
|
||||
|
||||
# 定时同步夹紧元件型号
|
||||
def sync_fixture_clamping_element(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['mrs_fixture_clamping_element_yesterday_list']:
|
||||
brand = self.env['sf.fixture.clamping.element'].search(
|
||||
[("code", '=', item['code'])])
|
||||
if brand:
|
||||
brand.code = item['code'],
|
||||
brand.name = item['name'],
|
||||
|
||||
brand.length = item['length'],
|
||||
brand.width = item['width'],
|
||||
brand.height = item['height'],
|
||||
brand.diameter = item['diameter'],
|
||||
brand.hardness = item['hardness'],
|
||||
brand.chucking_power = item['chucking_power'],
|
||||
brand.surface_treatment = item['surface_treatment'],
|
||||
brand.accuracy_grade = item['accuracy_grade'],
|
||||
# brand.picture = item['picture'].encode('utf-8'),
|
||||
brand.picture = base64.b64decode(item['picture']),
|
||||
brand.comment = item['comment'],
|
||||
|
||||
brand.brand_id = self.env['sf.machine.brand'].search(
|
||||
[('code', '=', item['brand_id'])]).id,
|
||||
brand.material_type_id = self.env['sf.materials.model'].search(
|
||||
[('materials_no', '=', item['material_type_id'])]).id,
|
||||
brand.clamping_ele_type_id = self.env['sf.clamping.element.type'].search(
|
||||
[('code', '=', item['clamping_ele_type_id'])]).id
|
||||
|
||||
else:
|
||||
self.env['sf.fixture.clamping.element'].create({
|
||||
"code": item['code'],
|
||||
"name": item['name'],
|
||||
|
||||
"length": item['length'],
|
||||
"width": item['width'],
|
||||
"height": item['height'],
|
||||
"diameter": item['diameter'],
|
||||
"hardness": item['hardness'],
|
||||
"chucking_power": item['chucking_power'],
|
||||
"surface_treatment": item['surface_treatment'],
|
||||
"accuracy_grade": item['accuracy_grade'],
|
||||
|
||||
'picture': base64.b64decode(item['picture']),
|
||||
# "picture": item['picture'].encode('utf-8'),
|
||||
"comment": item['comment'],
|
||||
|
||||
|
||||
'brand_id': self.env['sf.machine.brand'].search(
|
||||
[('code', '=', item['brand_id'])]).id,
|
||||
"material_type_id": self.env['sf.materials.model'].search(
|
||||
[('materials_no', '=', item['material_type_id'])]).id,
|
||||
"clamping_ele_type_id": self.env['sf.clamping.element.type'].search(
|
||||
[('code', '=', item['clamping_ele_type_id'])]).id,
|
||||
})
|
||||
else:
|
||||
raise ValidationError("认证未通过")
|
||||
|
||||
# 同步所有夹紧元件型号
|
||||
def sync_all_fixture_clamping_element(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'])
|
||||
print(result)
|
||||
if result['status'] == 1:
|
||||
for item in result['mrs_fixture_clamping_element_all_list']:
|
||||
brand = self.env['sf.fixture.clamping.element'].search(
|
||||
[("code", '=', item['code'])])
|
||||
if not brand:
|
||||
self.env['sf.fixture.clamping.element'].create({
|
||||
"code": item['code'],
|
||||
"name": item['name'],
|
||||
|
||||
"length": item['length'],
|
||||
"width": item['width'],
|
||||
"height": item['height'],
|
||||
"diameter": item['diameter'],
|
||||
"hardness": item['hardness'],
|
||||
"chucking_power": item['chucking_power'],
|
||||
"surface_treatment": item['surface_treatment'],
|
||||
"accuracy_grade": item['accuracy_grade'],
|
||||
|
||||
# "picture": item['picture'].encode('utf-8'),
|
||||
'picture': base64.b64decode(item['picture']),
|
||||
"comment": item['comment'],
|
||||
|
||||
'brand_id': self.env['sf.machine.brand'].search(
|
||||
[('code', '=', item['brand_id'])]).id,
|
||||
"material_type_id": self.env['sf.materials.model'].search(
|
||||
[('materials_no', '=', item['material_type_id'])]).id,
|
||||
"clamping_ele_type_id": self.env['sf.clamping.element.type'].search(
|
||||
[('code', '=', item['clamping_ele_type_id'])]).id,
|
||||
})
|
||||
|
||||
|
||||
else:
|
||||
raise ValidationError("认证未通过")
|
||||
|
||||
|
||||
'''===================================导向元件类型=========================================='''
|
||||
|
||||
|
||||
class sfGuideElementType(models.Model):
|
||||
_inherit = 'sf.guide.element.type'
|
||||
_description = '导向元件类型'
|
||||
url = '/api/mrs_guide_element_type/list'
|
||||
|
||||
# 定时同步每日导向元件类型
|
||||
def sync_guide_element_type(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:
|
||||
_logger.info('result:%s' % result)
|
||||
for item in result['mrs_guide_element_type_yesterday_list']:
|
||||
if item:
|
||||
brand = self.env['sf.guide.element.type'].search(
|
||||
[("code", '=', item['code'])])
|
||||
if brand:
|
||||
brand.name = item['name'],
|
||||
brand.code = item['code'],
|
||||
brand.comment = item['comment']
|
||||
else:
|
||||
self.env['sf.guide.element.type'].create({
|
||||
"name": item['name'],
|
||||
"code": item['code'],
|
||||
"comment": item['comment']
|
||||
})
|
||||
else:
|
||||
raise ValidationError("认证未通过")
|
||||
|
||||
# 同步所有导向元件类型
|
||||
def sync_all_guide_element_type(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:
|
||||
_logger.info('result:%s' % result)
|
||||
for item in result['mrs_guide_element_type_all_list']:
|
||||
if item:
|
||||
brand = self.env['sf.guide.element.type'].search(
|
||||
[("code", '=', item['code'])])
|
||||
if not brand:
|
||||
self.env['sf.guide.element.type'].create({
|
||||
"name": item['name'],
|
||||
"code": item['code'],
|
||||
"comment": item['comment']
|
||||
})
|
||||
# guide_element_type = self.env['sf.guide.element.type'].search([('code', '=', code)])
|
||||
# tags = self.env['sf.tag'].search([('name', '=', 'new_tag_name')])
|
||||
# guide_element_type.write({'tag_ids': [(6, 0, tags.ids)]})
|
||||
else:
|
||||
raise ValidationError("认证未通过")
|
||||
|
||||
|
||||
'''===================================导向元件导向方式=========================================='''
|
||||
|
||||
|
||||
class sfGuideElementGuideMode(models.Model):
|
||||
_inherit = 'sf.guide.element.guide.mode'
|
||||
_description = '导向元件导向方式'
|
||||
url = '/api/mrs_guide_element_guide_mode/list'
|
||||
|
||||
# 定时同步每日导向元件导向方式
|
||||
def sync_guide_element_guide_mode(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:
|
||||
_logger.info('result:%s' % result)
|
||||
for item in result['mrs_guide_element_guide_mode_yesterday_list']:
|
||||
name_id_list = []
|
||||
if item.get('guide_ele_guide_mode_id'):
|
||||
for i in item.get('guide_ele_guide_mode_id'):
|
||||
name_id_list.append(self.env['sf.fixture.guide.element'].search(
|
||||
[("code", '=', i)]).id)
|
||||
if item:
|
||||
brand = self.env['sf.guide.element.guide.mode'].search(
|
||||
[("code", '=', item['code'])])
|
||||
if brand:
|
||||
brand.name = item['name'],
|
||||
brand.code = item['code'],
|
||||
brand.comment = item['comment']
|
||||
brand.name_id = name_id_list
|
||||
|
||||
else:
|
||||
self.env['sf.guide.element.guide.mode'].create({
|
||||
"name": item['name'],
|
||||
"code": item['code'],
|
||||
"comment": item['comment'],
|
||||
"name_id": name_id_list
|
||||
})
|
||||
else:
|
||||
raise ValidationError("认证未通过")
|
||||
|
||||
# 同步所有导向元件导向方式
|
||||
def sync_all_guide_element_guide_mode(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:
|
||||
_logger.info('result:%s' % result)
|
||||
for item in result['mrs_guide_element_guide_mode_all_list']:
|
||||
name_id_list = []
|
||||
if item.get('guide_ele_guide_mode_id'):
|
||||
for i in item.get('guide_ele_guide_mode_id'):
|
||||
name_id_list.append(self.env['sf.fixture.guide.element'].search(
|
||||
[("code", '=', i)]).id)
|
||||
if item:
|
||||
brand = self.env['sf.guide.element.guide.mode'].search(
|
||||
[("code", '=', item['code'])])
|
||||
if not brand:
|
||||
self.env['sf.guide.element.guide.mode'].create({
|
||||
"name": item['name'],
|
||||
"code": item['code'],
|
||||
"comment": item['comment'],
|
||||
"name_id": name_id_list
|
||||
})
|
||||
else:
|
||||
raise ValidationError("认证未通过")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user