Merge branch 'develop' into feature/tree视图表格样式修改
# Conflicts: # sf_manufacturing/static/src/xml/kanban_change.xml
This commit is contained in:
@@ -18,7 +18,7 @@
|
||||
<field name="title"/>
|
||||
<field name="product_ids" widget="many2many_tags"/>
|
||||
<field name="product_category_ids" widget="many2many_tags"/>
|
||||
<field name="picking_type_ids" string="Operations" widget="many2many_tags"/>
|
||||
<field name="picking_type_ids" string="作业类型" widget="many2many_tags"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
</group>
|
||||
<group>
|
||||
@@ -112,7 +112,7 @@
|
||||
<field name="title" optional="show"/>
|
||||
<field name="product_ids" widget="many2many_tags" optional="show"/>
|
||||
<field name="product_category_ids" widget="many2many_tags" optional="hide"/>
|
||||
<field name="picking_type_ids" widget="many2many_tags" optional="show" string="Operations"/>
|
||||
<field name="picking_type_ids" widget="many2many_tags" optional="show" string="作业类型"/>
|
||||
<field name="test_type_id" optional="show" string="Type"/>
|
||||
<field name="team_id" optional="show"/>
|
||||
<field name="user_id" optional="hide" widget='many2one_avatar_user'/>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
""",
|
||||
'category': 'sf',
|
||||
'website': 'https://www.sf.jikimo.com',
|
||||
'depends': ['account', 'base', 'mrp'],
|
||||
'depends': ['account', 'base', 'mrp_workorder'],
|
||||
'data': [
|
||||
'security/group_security.xml',
|
||||
'security/ir.model.access.csv',
|
||||
|
||||
@@ -31,13 +31,13 @@ class MachineBrand(models.Model):
|
||||
_name = 'sf.machine.brand'
|
||||
_description = '品牌'
|
||||
|
||||
code = fields.Char('编码')
|
||||
name = fields.Char('名称')
|
||||
tag_ids = fields.Many2many('sf.machine.brand.tags', 'rel_machine_brand_tags', string='类别')
|
||||
image_brand = fields.Image("品牌图片")
|
||||
manufacturer_model_number = fields.Char('厂家型号', size=10)
|
||||
remark = fields.Text('备注')
|
||||
active = fields.Boolean('有效', default=True)
|
||||
code = fields.Char('编码')
|
||||
|
||||
|
||||
# 机床
|
||||
class MachineTool(models.Model):
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
from odoo import models, fields, api
|
||||
from odoo.addons.sf_base.commons.common import Common
|
||||
from odoo.exceptions import ValidationError
|
||||
import requests
|
||||
import json
|
||||
|
||||
|
||||
class FixtureMaterial(models.Model):
|
||||
@@ -29,7 +33,7 @@ class FixtureModel(models.Model):
|
||||
code = fields.Char(string='编码')
|
||||
name = fields.Char(string="名称", size=15)
|
||||
fixture_material_id = fields.Many2one('sf.fixture.material', string="夹具物料", )
|
||||
fixture_material_type = fields.Char(string="夹具物料类型", related='fixture_material_id.name')
|
||||
fixture_material_type = fields.Char(string="夹具物料类型", related='fixture_material_id.name', store=True)
|
||||
multi_mounting_type_id = fields.Many2one('sf.multi_mounting.type', string="联装类型")
|
||||
brand_id = fields.Many2one('sf.machine.brand', string="品牌")
|
||||
manufacturer_model_number = fields.Char(string="厂家型号")
|
||||
@@ -40,14 +44,17 @@ class FixtureModel(models.Model):
|
||||
width = fields.Char(string="宽度[mm]", size=6)
|
||||
height = fields.Char(string="高度[mm]", size=6)
|
||||
weight = fields.Char(string="重量[kg]", size=4)
|
||||
clamp_workpiece_length_max = fields.Char(string="夹持工件长度MAX[mm]", size=6)
|
||||
clamp_workpiece_width_max = fields.Char(string="夹持工件宽度MAX[mm]", size=6)
|
||||
clamp_workpiece_height_max = fields.Char(string="夹持工件高度MAX[mm]", size=6)
|
||||
clamp_workpiece_diameter_max = fields.Char(string="夹持工件直径MAX[mm]", size=6)
|
||||
maximum_carrying_weight = fields.Char(string="最大承载重量[kg]", size=4)
|
||||
maximum_clamping_force = fields.Char(string="最大夹持力[n]", size=8)
|
||||
clamp_workpiece_length_max = fields.Integer(string="夹持工件长度MAX[mm]", size=6)
|
||||
clamp_workpiece_width_max = fields.Integer(string="夹持工件宽度MAX[mm]", size=6)
|
||||
clamp_workpiece_height_max = fields.Integer(string="夹持工件高度MAX[mm]", size=6)
|
||||
clamp_workpiece_diameter_max = fields.Float(string="夹持工件直径MAX[mm]", size=6)
|
||||
maximum_carrying_weight = fields.Float(string="最大承载重量[kg]", size=4)
|
||||
maximum_clamping_force = fields.Integer(string="最大夹持力[n]", size=8)
|
||||
materials_model_id = fields.Many2one('sf.materials.model', string="材料型号")
|
||||
driving_way = fields.Char(string="驱动方式")
|
||||
apply_machine_tool_type_id = fields.Many2one('sf.machine_tool.type', string="适用机床型号")
|
||||
driving_way = fields.Selection([('气动', '气动'), ('液压', '液压'), ('机械', '机械')], string="驱动方式")
|
||||
apply_machine_tool_type_ids = fields.Many2many('sf.machine_tool.type', 'rel_fixture_model_machine_tool_type',
|
||||
string="适用机床型号")
|
||||
through_hole_size = fields.Integer(string="过孔大小[mm]", size=6)
|
||||
screw_size = fields.Integer(string="螺牙大小[mm]", size=6)
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
from odoo import models, fields, api
|
||||
from odoo.addons.sf_base.commons.common import Common
|
||||
from odoo.exceptions import ValidationError
|
||||
import requests
|
||||
import json
|
||||
|
||||
|
||||
class FunctionalFixtureType(models.Model):
|
||||
@@ -16,7 +20,6 @@ class FunctionalFixture(models.Model):
|
||||
_description = "功能夹具"
|
||||
|
||||
code = fields.Char(string='编码', readonly=True)
|
||||
name = fields.Char(string="名称", size=15, required=True)
|
||||
type_id = fields.Many2one('sf.functional.fixture.type', string="功能夹具类型", required=True)
|
||||
type = fields.Char(related='type_id.name', string="功能夹具类别", store=True)
|
||||
zero_chuck_model_ids = fields.Many2many('sf.fixture.model', 'rel_fixture_model_zero_chuck', string="零点卡盘型号",
|
||||
@@ -33,11 +36,124 @@ class FunctionalFixture(models.Model):
|
||||
domain=[('fixture_material_type', '=', '磁吸托盘')])
|
||||
vice_tray_model_ids = fields.Many2many('sf.fixture.model', 'rel_fixture_model_vice_tray', string="虎钳托盘型号",
|
||||
domain=[('fixture_material_type', '=', '虎钳托盘')])
|
||||
registration_status = fields.Selection([("已注册", "已注册"), ("未注册", "未注册")], string="注册状态", default='未注册', tracking=True)
|
||||
|
||||
def _get_fixture_model_ids(self, fixture_model_code):
|
||||
fixture_model_ids = []
|
||||
for item in fixture_model_code:
|
||||
fixture_model = self.env['sf.fixture.model'].search([('code', '=', item)])
|
||||
if fixture_model:
|
||||
fixture_model_ids.append(fixture_model.id)
|
||||
return [(6, 0, fixture_model_ids)]
|
||||
|
||||
@api.onchange('type_id')
|
||||
def _onchange_type_id(self):
|
||||
if self.type_id:
|
||||
functional_fixture_type = self.search(
|
||||
[('type', '=', self.type)], limit=1, order='id desc')
|
||||
if not functional_fixture_type:
|
||||
num = "%04d" % 1
|
||||
else:
|
||||
m = int(functional_fixture_type.code[-3:]) + 1
|
||||
num = "%04d" % m
|
||||
self.code = "%s%s-%s" % ('JKM-C-GNJJ-', self.type_id.code, num)
|
||||
|
||||
_sql_constraints = [
|
||||
('code_uniq', 'unique (code)',
|
||||
'编码不能重复')
|
||||
|
||||
]
|
||||
|
||||
@api.depends('transfer_tray_model_ids', 'pneumatic_tray_model_ids', 'magnetic_tray_model_ids',
|
||||
'vice_tray_model_ids', 'type')
|
||||
def _get_name(self):
|
||||
for record in self:
|
||||
if record.type:
|
||||
if not record.transfer_tray_model_ids and not record.pneumatic_tray_model_ids and not record.magnetic_tray_model_ids and not record.vice_tray_model_ids:
|
||||
record.name = ''
|
||||
if record.transfer_tray_model_ids:
|
||||
for i in record.transfer_tray_model_ids:
|
||||
record.name = '%s%s%s' % (
|
||||
i.display_name.split('-')[0], record.type, '功能夹具')
|
||||
if record.pneumatic_tray_model_ids:
|
||||
for i in record.pneumatic_tray_model_ids:
|
||||
record.name = '%s%s%s' % (
|
||||
i.display_name.split('-')[0], record.type, '功能夹具')
|
||||
if record.magnetic_tray_model_ids:
|
||||
for i in record.magnetic_tray_model_ids:
|
||||
record.name = '%s%s%s' % (
|
||||
i.display_name.split('-')[0], record.type, '功能夹具')
|
||||
if record.vice_tray_model_ids:
|
||||
for i in record.vice_tray_model_ids:
|
||||
record.name = '%s%s%s' % (
|
||||
i.display_name.split('-')[0], record.type, '功能夹具')
|
||||
else:
|
||||
record.name = ''
|
||||
|
||||
name = fields.Char(string="名称", compute=_get_name, readonly=True)
|
||||
|
||||
def _json_zero_chuck_model_item_code(self, item):
|
||||
code_arr = []
|
||||
for i in item.zero_chuck_model_ids:
|
||||
code_arr.append(i.code)
|
||||
return code_arr
|
||||
|
||||
def _json_transfer_tray_model_item_code(self, item):
|
||||
code_arr = []
|
||||
for i in item.transfer_tray_model_ids:
|
||||
code_arr.append(i.code)
|
||||
return code_arr
|
||||
|
||||
def _json_vice_tray_item_code(self, item):
|
||||
code_arr = []
|
||||
for i in item.vice_tray_model_ids:
|
||||
code_arr.append(i.code)
|
||||
return code_arr
|
||||
|
||||
def _json_magnetic_tray_model_item_code(self, item):
|
||||
code_arr = []
|
||||
for i in item.magnetic_tray_model_ids:
|
||||
code_arr.append(i.code)
|
||||
return code_arr
|
||||
|
||||
def _json_pneumatic_tray_model_item_code(self, item):
|
||||
code_arr = []
|
||||
for i in item.pneumatic_tray_model_ids:
|
||||
code_arr.append(i.code)
|
||||
return code_arr
|
||||
|
||||
# 注册到cloud的功能夹具中
|
||||
def register_functional_fixture(self):
|
||||
registration_url = 'api/functional_fixture/create'
|
||||
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.registration_url
|
||||
objs_self = self.search([('code', '=', self.code)])
|
||||
functional_fixture_list = []
|
||||
if objs_self:
|
||||
for item in objs_self:
|
||||
val = {
|
||||
'factory_token': token,
|
||||
'name': item.name,
|
||||
'code': item.code,
|
||||
'type_code': self.env['sf.functional.fixture.type'].search(
|
||||
[('id', '=', item.type_id.id)]).code,
|
||||
'zero_chuck_model_codes': self.env['sf.functional.fixture']._json_zero_chuck_model_item_code(
|
||||
item),
|
||||
'transfer_tray_model_codes': self.env['sf.functional.fixture']._json_transfer_tray_model_item_code(
|
||||
item),
|
||||
'pneumatic_tray_model_codes': self.env[
|
||||
'sf.functional.fixture']._json_pneumatic_tray_model_item_code(
|
||||
item),
|
||||
'magnetic_tray_model_codes': self.env['sf.functional.fixture']._json_magnetic_tray_model_item_code(
|
||||
item),
|
||||
'vice_tray_model_codes': self.env['sf.functional.fixture']._json_vice_tray_item_code(
|
||||
item),
|
||||
}
|
||||
functional_fixture_list.append(val)
|
||||
# kw = machine_tool_list
|
||||
kw = json.dumps(functional_fixture_list, ensure_ascii=False)
|
||||
r = requests.post(strurl, json={}, data={'kw': kw, 'token': token}, headers=headers)
|
||||
ret = r.json()
|
||||
self.code = ret['message']
|
||||
|
||||
if r == 200:
|
||||
self.registration_status = "已注册"
|
||||
return "功能夹具注册成功"
|
||||
else:
|
||||
raise ValidationError("没有功能夹具注册信息")
|
||||
|
||||
@@ -25,43 +25,49 @@
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="manufacturer_model_number"/>
|
||||
<field name="tag_ids" widget="many2many_tags" optional="hide"/>
|
||||
<field name="tag_ids" widget="many2many_tags" optional="hide"/>
|
||||
<field name="image_brand"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- <record model="ir.ui.view" id="form_sf_machine_brand">-->
|
||||
<!-- <field name="name">form.sf.machine.brand</field>-->
|
||||
<!-- <field name="model">sf.machine.brand</field>-->
|
||||
<!-- <field name="arch" type="xml">-->
|
||||
<!-- <form string="品牌">-->
|
||||
<!-- <!– <widget name="web_ribbon" title="Archived" bg_color="bg-danger" attrs="{'invisible': [('active', '=', True)]}"/>–>-->
|
||||
<!-- <field name="image_brand" widget='image' class="oe_avatar" options="{'preview_image': 'image_128'}"/>-->
|
||||
<!-- <div class="oe_title">-->
|
||||
<!-- <label for="code" string="编码"/>-->
|
||||
<!-- <h2 class="d-flex">-->
|
||||
<!-- <field name="code" readonly="True"/>-->
|
||||
<!-- </h2>-->
|
||||
<!-- </div>-->
|
||||
<!-- <group>-->
|
||||
<!-- <group>-->
|
||||
<!-- <field name="name" required="True"/>-->
|
||||
<!-- <field name="tag_ids"-->
|
||||
<!-- widget="many2many_tags"-->
|
||||
<!-- options="{'color_field': 'color', 'no_create_edit': True}"-->
|
||||
<!-- required="True"/>-->
|
||||
<!-- </group>-->
|
||||
<!-- </group>-->
|
||||
<!-- </form>-->
|
||||
<!-- </field>-->
|
||||
<!-- </record>-->
|
||||
<record model="ir.ui.view" id="form_sf_machine_brand">
|
||||
<field name="name">form.sf.machine.brand</field>
|
||||
<field name="model">sf.machine.brand</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="品牌" create="0" edit="0" delete="0">
|
||||
<sheet>
|
||||
<!-- <widget name="web_ribbon" title="Archived" bg_color="bg-danger" attrs="{'invisible': [('active', '=', True)]}"/>-->
|
||||
<field name="image_brand" widget='image' class="oe_avatar"
|
||||
options="{'preview_image': 'image_128'}" string="log"/>
|
||||
<!-- <div class="oe_title">-->
|
||||
<!-- <label for="code" string="编码"/>-->
|
||||
<!-- <h2 class="d-flex">-->
|
||||
<!-- <field name="code" readonly="True"/>-->
|
||||
<!-- </h2>-->
|
||||
<!-- </div>-->
|
||||
<group>
|
||||
<group>
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="tag_ids"
|
||||
widget="many2many_tags"
|
||||
options="{'color_field': 'color', 'no_create_edit': True}"
|
||||
/>
|
||||
<field name="manufacturer_model_number"/>
|
||||
<field name="remark"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_sf_machine_brand" model="ir.actions.act_window">
|
||||
<field name="name">品牌</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">sf.machine.brand</field>
|
||||
<field name="view_mode">tree</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
#------------------机床型号------------------
|
||||
@@ -81,7 +87,7 @@
|
||||
<field name="name">tree.sf.machine_tool.type</field>
|
||||
<field name="model">sf.machine_tool.type</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="机床型号" create="0" edit="0" delete="0">
|
||||
<tree string="机床型号">
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="brand_id"/>
|
||||
@@ -96,81 +102,110 @@
|
||||
<field name="model">sf.machine_tool.type</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="机床型号" create="0" edit="0" delete="0">
|
||||
<group string="基本信息">
|
||||
<sheet>
|
||||
<group>
|
||||
<field name="code" force_save="1" readonly="1"/>
|
||||
<field name="name" required="1"/>
|
||||
<field name="machine_tool_category" required="1"/>
|
||||
<field name="brand_id" required="1"
|
||||
domain="[('tag_ids', '=', '机床')]"
|
||||
options="{'no_create': True}"/>
|
||||
<group>
|
||||
<field name="code" force_save="1" readonly="1"/>
|
||||
<field name="name" required="1"/>
|
||||
<field name="brand_id" required="1"
|
||||
domain="[('tag_ids', '=', '机床')]"
|
||||
options="{'no_create': True}"/>
|
||||
<field name="machine_tool_category" required="1"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="machine_tool_picture" widget="image" nolabel="1"/>
|
||||
</group>
|
||||
</group>
|
||||
<group>
|
||||
<field name="machine_tool_picture" widget="image" nolabel="1"/>
|
||||
|
||||
</group>
|
||||
</group>
|
||||
<group string="参数">
|
||||
<group>
|
||||
<field name="control_system_id" required="1" options="{'no_create': True}"/>
|
||||
<field name="workbench_L" required="1"/>
|
||||
<field name="workbench_W" required="1"/>
|
||||
<field name="machine_tool_L" required="1"/>
|
||||
<field name="machine_tool_W" required="1"/>
|
||||
<field name="machine_tool_H" required="1"/>
|
||||
<field name="knife_type" required="1"/>
|
||||
<field name="workpiece_load" required="1"/>
|
||||
<field name="lead_screw" required="1"/>
|
||||
<field name="taper" required="1"/>
|
||||
<field name="torque" required="1"/>
|
||||
<field name="motor_power" required="1"/>
|
||||
|
||||
<field name="number_of_knife_library" required="1" options="{'format': false}"/>
|
||||
<field name="number_of_axles" required="1" widget="radio" options="{'horizontal': true}"/>
|
||||
<label for="x_axis" string="加工行程(mm)"
|
||||
attrs="{'invisible': [('number_of_axles', '=', False)]}"/>
|
||||
<div class="test_model"
|
||||
attrs="{'invisible': [('number_of_axles', '=', False)]}">
|
||||
<label for="x_axis" string="x"/>
|
||||
<field name="x_axis" class="o_address_zip" required="1" options="{'format': false}"/>
|
||||
<span>&nbsp;</span>
|
||||
<label for="y_axis" string="y"/>
|
||||
<field name="y_axis" class="o_address_zip" required="1" options="{'format': false}"/>
|
||||
<span>&nbsp;</span>
|
||||
<label for="z_axis" string="z"/>
|
||||
<field name="z_axis" class="o_address_zip" required="1" options="{'format': false}"/>
|
||||
<br></br>
|
||||
<label for="b_axis" string="b"
|
||||
attrs="{'invisible': [('number_of_axles', '=', '三轴')]}"/>
|
||||
<field name="b_axis" class="o_address_zip" required="1"
|
||||
attrs="{'invisible': [('number_of_axles', '=', '三轴')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>&nbsp;</span>
|
||||
<label for="c_axis" string="c"
|
||||
attrs="{'invisible': [('number_of_axles', 'in', ['三轴','四轴'])]}"/>
|
||||
<field name="c_axis" class="o_address_zip" required="1"
|
||||
attrs="{'invisible': [('number_of_axles', 'in', ['三轴','四轴'])]}"
|
||||
options="{'format': false}"/>
|
||||
</div>
|
||||
</group>
|
||||
<group>
|
||||
<field name="heightened_way" required="1"/>
|
||||
<field name="tool_quality_max" required="1"/>
|
||||
<field name="tool_long_max" required="1"/>
|
||||
<field name="tool_diameter_max" required="1"/>
|
||||
<field name="guide_rail" required="1"/>
|
||||
|
||||
<field name="feed_speed" required="1"/>
|
||||
<field name="tool_speed" required="1"/>
|
||||
<field name="distance" required="1"/>
|
||||
<field name="rotate_speed" string="主轴转速(min)" required="1" options="{'format': false}"/>
|
||||
<field name="precision" required="1" string="X轴定位精度(mm)(mm)"/>
|
||||
|
||||
</group>
|
||||
</group>
|
||||
<group string="其它">
|
||||
<field name="remark"/>
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="基本信息">
|
||||
<group>
|
||||
<group string="基础参数">
|
||||
<field name="control_system_id" required="1" options="{'no_create': True}"/>
|
||||
<label for="workbench_L" string="工作台尺寸(mm)"/>
|
||||
<div class="test_model">
|
||||
<label for="workbench_L" string="长"/>
|
||||
<field name="workbench_L" class="o_address_zip" required="1"
|
||||
options="{'format': false}"/>
|
||||
<span>&nbsp;</span>
|
||||
<label for="workbench_W" string="宽"/>
|
||||
<field name="workbench_W" class="o_address_zip" required="1"
|
||||
options="{'format': false}"/>
|
||||
</div>
|
||||
<label for="machine_tool_L" string="机床尺寸(mm)"/>
|
||||
<div class="test_model">
|
||||
<label for="machine_tool_L" string="长"/>
|
||||
<field name="machine_tool_L" class="o_address_zip" required="1"
|
||||
options="{'format': false}"/>
|
||||
<span>&nbsp;</span>
|
||||
<label for="machine_tool_W" string="宽"/>
|
||||
<field name="machine_tool_W" class="o_address_zip" required="1"
|
||||
options="{'format': false}"/>
|
||||
<label for="machine_tool_H" string="高"/>
|
||||
<field name="machine_tool_H" class="o_address_zip" required="1"
|
||||
options="{'format': false}"/>
|
||||
</div>
|
||||
<field name="feed_speed" required="1"/>
|
||||
<field name="precision" required="1" string="X轴定位精度(mm)"/>
|
||||
<field name="workpiece_load" required="1"/>
|
||||
<field name="number_of_knife_library" required="1" options="{'format': false}"/>
|
||||
<field name="lead_screw" required="1"/>
|
||||
<field name="number_of_axles" required="1" widget="radio"
|
||||
options="{'horizontal': true}"/>
|
||||
<label for="x_axis" string="加工行程(mm)"
|
||||
attrs="{'invisible': [('number_of_axles', '=', False)]}"/>
|
||||
<div class="test_model"
|
||||
attrs="{'invisible': [('number_of_axles', '=', False)]}">
|
||||
<label for="x_axis" string="x"/>
|
||||
<field name="x_axis" class="o_address_zip" required="1"
|
||||
options="{'format': false}"/>
|
||||
<span>&nbsp;</span>
|
||||
<label for="y_axis" string="y"/>
|
||||
<field name="y_axis" class="o_address_zip" required="1"
|
||||
options="{'format': false}"/>
|
||||
<span>&nbsp;</span>
|
||||
<label for="z_axis" string="z"/>
|
||||
<field name="z_axis" class="o_address_zip" required="1"
|
||||
options="{'format': false}"/>
|
||||
<br></br>
|
||||
<label for="b_axis" string="b"
|
||||
attrs="{'invisible': [('number_of_axles', '=', '三轴')]}"/>
|
||||
<field name="b_axis" class="o_address_zip" required="1"
|
||||
attrs="{'invisible': [('number_of_axles', '=', '三轴')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>&nbsp;</span>
|
||||
<label for="c_axis" string="c"
|
||||
attrs="{'invisible': [('number_of_axles', 'in', ['三轴','四轴'])]}"/>
|
||||
<field name="c_axis" class="o_address_zip" required="1"
|
||||
attrs="{'invisible': [('number_of_axles', 'in', ['三轴','四轴'])]}"
|
||||
options="{'format': false}"/>
|
||||
</div>
|
||||
</group>
|
||||
<group string="主轴">
|
||||
<field name="taper" required="1"/>
|
||||
<field name="rotate_speed" string="主轴转速(min)" required="1"
|
||||
options="{'format': false}"/>
|
||||
<field name="heightened_way" required="1"/>
|
||||
<field name="torque" required="1"/>
|
||||
<field name="motor_power" required="1"/>
|
||||
<field name="distance" required="1"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="guide_rail" required="1"/>
|
||||
</group>
|
||||
<group string="刀具">
|
||||
<field name="knife_type" required="1"/>
|
||||
<field name="tool_speed" required="1"/>
|
||||
<field name="tool_long_max" required="1"/>
|
||||
<field name="tool_diameter_max" required="1"/>
|
||||
<field name="tool_quality_max" required="1"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string="其它">
|
||||
<field name="remark"/>
|
||||
</group>
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
@@ -207,7 +242,7 @@
|
||||
<field name="name">tree.sf.machine_tool.category</field>
|
||||
<field name="model">sf.machine_tool.category</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="机床类型">
|
||||
<tree string="机床类型" create="0" edit="0" delete="0">
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="category"/>
|
||||
@@ -216,42 +251,35 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="form_sf_machine_tool_category">
|
||||
<field name="name">form.sf.machine_tool.category</field>
|
||||
<field name="model">sf.machine_tool.category</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="机床类型">
|
||||
<group string="基本信息" name="base_info">
|
||||
<group>
|
||||
<field name="code" force_save="1" readonly="1"/>
|
||||
<field name="name" required="1"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="category" readonly="1"/>
|
||||
</group>
|
||||
</group>
|
||||
<!-- <record model="ir.ui.view" id="form_sf_machine_tool_category">-->
|
||||
<!-- <field name="name">form.sf.machine_tool.category</field>-->
|
||||
<!-- <field name="model">sf.machine_tool.category</field>-->
|
||||
<!-- <field name="arch" type="xml">-->
|
||||
<!-- <form string="机床类型">-->
|
||||
<!-- <group string="基本信息" name="base_info">-->
|
||||
<!-- <group>-->
|
||||
<!-- <field name="code" force_save="1" readonly="1"/>-->
|
||||
<!-- <field name="name" required="1"/>-->
|
||||
<!-- </group>-->
|
||||
<!-- <group>-->
|
||||
<!-- <field name="category" readonly="1"/>-->
|
||||
<!-- </group>-->
|
||||
<!-- </group>-->
|
||||
|
||||
<group string="其它">
|
||||
<field name="remark"/>
|
||||
</group>
|
||||
<!-- <group string="其它">-->
|
||||
<!-- <field name="remark"/>-->
|
||||
<!-- </group>-->
|
||||
|
||||
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<!-- </form>-->
|
||||
<!-- </field>-->
|
||||
<!-- </record>-->
|
||||
|
||||
<record id="action_sf_machine_tool_category" model="ir.actions.act_window">
|
||||
<field name="name">机床类型</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">sf.machine_tool.category</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_smiling_face">
|
||||
[机床类型] 还没有哦!点左上角的[创建]按钮,沙发归你了!
|
||||
</p>
|
||||
<p>
|
||||
</p>
|
||||
</field>
|
||||
<field name="view_mode">tree</field>
|
||||
</record>
|
||||
|
||||
#------------------机床注册------------------
|
||||
@@ -378,13 +406,13 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
#------------------控制系统------------------
|
||||
#------------------数控系统------------------
|
||||
|
||||
<record model="ir.ui.view" id="search_sf_machine_control_system_view">
|
||||
<field name="name">search.sf.machine.control_system</field>
|
||||
<field name="model">sf.machine.control_system</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="控制系统">
|
||||
<search string="数控系统">
|
||||
<field name="name" string="模糊搜索"
|
||||
filter_domain="['|',('name', 'ilike', self),('code', 'ilike', self)]"/>
|
||||
</search>
|
||||
@@ -395,7 +423,7 @@
|
||||
<field name="name">tree.sf.machine.control_system</field>
|
||||
<field name="model">sf.machine.control_system</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="控制系统" create="0" edit="0" delete="0">
|
||||
<tree string="数控系统" create="0" edit="0" delete="0">
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="brand_id"/>
|
||||
@@ -424,7 +452,7 @@
|
||||
<!-- </record>-->
|
||||
|
||||
<record id="action_sf_machine_control_system" model="ir.actions.act_window">
|
||||
<field name="name">控制系统</field>
|
||||
<field name="name">数控系统</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">sf.machine.control_system</field>
|
||||
<field name="view_mode">tree</field>
|
||||
|
||||
@@ -2,24 +2,24 @@
|
||||
<odoo>
|
||||
<data>
|
||||
<!--加工工艺-->
|
||||
<record model="ir.ui.view" id="sf_processing_technology_form">
|
||||
<field name="model">sf.processing.technology</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="加工工艺" create="0" edit="0" delete="0">
|
||||
<group>
|
||||
<group>
|
||||
<field name="process_encode" readonly="1"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="name" required="1"/>
|
||||
</group>
|
||||
</group>
|
||||
<group>
|
||||
<field name="remark"/>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<!-- <record model="ir.ui.view" id="sf_processing_technology_form">-->
|
||||
<!-- <field name="model">sf.processing.technology</field>-->
|
||||
<!-- <field name="arch" type="xml">-->
|
||||
<!-- <form string="加工工艺" create="0" edit="0" delete="0">-->
|
||||
<!-- <group>-->
|
||||
<!-- <group>-->
|
||||
<!-- <field name="process_encode" readonly="1"/>-->
|
||||
<!-- </group>-->
|
||||
<!-- <group>-->
|
||||
<!-- <field name="name" required="1"/>-->
|
||||
<!-- </group>-->
|
||||
<!-- </group>-->
|
||||
<!-- <group>-->
|
||||
<!-- <field name="remark"/>-->
|
||||
<!-- </group>-->
|
||||
<!-- </form>-->
|
||||
<!-- </field>-->
|
||||
<!-- </record>-->
|
||||
<record model="ir.ui.view" id="sf_processing_technology_tree">
|
||||
<field name="model">sf.processing.technology</field>
|
||||
<field name="arch" type="xml">
|
||||
@@ -75,7 +75,7 @@
|
||||
<record model="ir.ui.view" id="sf_production_process_category_tree">
|
||||
<field name="model">sf.production.process.category</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="表面工艺类别" default_order="sequence, id" create="0" edit="0" delete="0">
|
||||
<tree string="表面工艺类别" default_order="sequence, id" create="0" edit="0" delete="0">
|
||||
<field name="sequence" widget="handle" string="序号"/>
|
||||
<field name="code" readonly="1"/>
|
||||
<field name="name"/>
|
||||
@@ -131,7 +131,7 @@
|
||||
<sheet>
|
||||
<group>
|
||||
<group>
|
||||
<field name="code" />
|
||||
<field name="code"/>
|
||||
<field name="name" string="参数名"/>
|
||||
</group>
|
||||
<group>
|
||||
@@ -186,44 +186,50 @@
|
||||
<record model="ir.ui.view" id="sf_materials_model_form">
|
||||
<field name="model">sf.materials.model</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="材料型号" create="0" edit="0" delete="0">
|
||||
<group>
|
||||
<form string="材料型号" create="0" edit="1" delete="0">
|
||||
<sheet>
|
||||
<group>
|
||||
<field name="materials_no" readonly="1"/>
|
||||
<field name="name" required="1"/>
|
||||
<field name="gain_way" required="1"/>
|
||||
<group>
|
||||
<field name="materials_no" readonly="1"/>
|
||||
<field name="gain_way" required="1"/>
|
||||
<field name="density" readonly="1"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="name" readonly="1"/>
|
||||
<field name="need_h" default="false" readonly="1"/>
|
||||
<field name="mf_materia_post" attrs="{'invisible':[('need_h','=',False)]} "
|
||||
readonly="1"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name='materials_id' default="default" invisible="1"/>
|
||||
</group>
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="供应商">
|
||||
<field name='supplier_ids'>
|
||||
<tree editable='bottom'>
|
||||
<field name="sequence" widget="handle" string="序号"/>
|
||||
<field name="partner_id" string="名称"/>
|
||||
</tree>
|
||||
</field>
|
||||
</page>
|
||||
</notebook>
|
||||
<group>
|
||||
<field name="density" required="1"/>
|
||||
<field name="need_h" default="false"/>
|
||||
<field name="mf_materia_post" attrs="{'invisible':[('need_h','=',False)]} "/>
|
||||
<field name="remark" readonly="1"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name='materials_id' default="default" invisible="1"/>
|
||||
</group>
|
||||
</group>
|
||||
<group>
|
||||
<field name='supplier_ids'>
|
||||
<tree editable='bottom'>
|
||||
<field name="sequence" widget="handle" string="序号"/>
|
||||
<field name="partner_id" string="名称"/>
|
||||
</tree>
|
||||
</field>
|
||||
</group>
|
||||
<group>
|
||||
<field name="remark"/>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="sf_materials_model_tree">
|
||||
<field name="model">sf.materials.model</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="材料型号" create="0" edit="0" delete="0">
|
||||
<field name="materials_no"/>
|
||||
<field name="name"/>
|
||||
<field name="need_h"/>
|
||||
<field name="density"/>
|
||||
<tree string="材料型号" create="0" delete="0">
|
||||
<field name="materials_no" readonly="1"/>
|
||||
<field name="name" readonly="1"/>
|
||||
<field name="gain_way"/>
|
||||
<field name="need_h" readonly="1"/>
|
||||
<field name="density" readonly="1"/>
|
||||
<field name='materials_id' invisible="1"/>
|
||||
</tree>
|
||||
</field>
|
||||
@@ -247,28 +253,33 @@
|
||||
<field name="model">sf.production.materials</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="材料" create="0" edit="0" delete="0">
|
||||
<group string="详情">
|
||||
<sheet>
|
||||
<group>
|
||||
<field name="materials_no" readonly="1" default="编码"/>
|
||||
<group>
|
||||
<field name="materials_no" readonly="1" default="编码"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="name" required="1"/>
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="型号">
|
||||
<field name="materials_model_ids" widget="ony2many">
|
||||
<tree string="材料型号">
|
||||
<field name="materials_no"/>
|
||||
<field name="name"/>
|
||||
<field name="need_h"/>
|
||||
<field name="mf_materia_post"/>
|
||||
<field name="density"/>
|
||||
<field name='materials_id' default="default" invisible="1"/>
|
||||
</tree>
|
||||
</field>
|
||||
</page>
|
||||
</notebook>
|
||||
</group>
|
||||
<group>
|
||||
<field name="name" required="1"/>
|
||||
<field name="remark"/>
|
||||
</group>
|
||||
<field name="materials_model_ids" widget="ony2many">
|
||||
<tree string="材料型号">
|
||||
<field name="materials_no"/>
|
||||
<field name="name"/>
|
||||
<field name="need_h"/>
|
||||
<field name="mf_materia_post"/>
|
||||
<field name="density"/>
|
||||
<field name='materials_id' default="default" invisible="1"/>
|
||||
</tree>
|
||||
</field>
|
||||
|
||||
</group>
|
||||
<group>
|
||||
<field name="remark"/>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
@@ -372,14 +383,16 @@
|
||||
<header>
|
||||
<field name='state' widget="radio" options="{'horizontal': True}"/>
|
||||
</header>
|
||||
<group string="基本信息" name="group1">
|
||||
<group>
|
||||
<field name="code" required="1"/>
|
||||
<sheet>
|
||||
<group name="group1">
|
||||
<group>
|
||||
<field name="code" required="1"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="name" required="1"/>
|
||||
</group>
|
||||
</group>
|
||||
<group>
|
||||
<field name="name" required="1"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -177,15 +177,15 @@
|
||||
<field name="arch" type="xml">
|
||||
<form string="夹具型号" create="0" edit="0" delete="0">
|
||||
<sheet>
|
||||
<group string="基本信息">
|
||||
<group>
|
||||
<group>
|
||||
<field name="code" force_save="1"/>
|
||||
<field name="name"/>
|
||||
<field name="brand_id"/>
|
||||
<field name="brand_id" options="{'no_create': True}"/>
|
||||
<field name="manufacturer_model_number"/>
|
||||
<field name="fixture_material_id"/>
|
||||
<field name="fixture_material_id" options="{'no_create': True}"/>
|
||||
<field name="fixture_material_type" invisible="1"/>
|
||||
<field name="multi_mounting_type_id"/>
|
||||
<field name="multi_mounting_type_id" options="{'no_create': True}"/>
|
||||
</group>
|
||||
<group>
|
||||
<!-- <field name="upload_model_file" widget="many2many_binary"/>-->
|
||||
@@ -193,64 +193,68 @@
|
||||
attrs="{'invisible': [('model_file', '=', False)]}"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string="参数"
|
||||
attrs='{"invisible": [("fixture_material_type","not in",("气动托盘","转接板(锁板)托盘","磁吸托盘","虎钳托盘","零点卡盘"))]}'>
|
||||
<group>
|
||||
<label for="length" string="尺寸[mm]"/>
|
||||
<div class="o_address_format">
|
||||
<label for="length" string="长"/>
|
||||
<field name="length" class="o_address_zip"
|
||||
options="{'format': false}"/>
|
||||
<span>&nbsp;</span>
|
||||
<label for="width" string="宽"/>
|
||||
<field name="width" class="o_address_zip"
|
||||
options="{'format': false}"/>
|
||||
<span>&nbsp;</span>
|
||||
<label for="height" string="高"/>
|
||||
<field name="height" class="o_address_zip"
|
||||
options="{'format': false}"/>
|
||||
</div>
|
||||
<field name="weight"></field>
|
||||
<label for="length" string="夹持工件最大尺寸[mm]"
|
||||
attrs='{"invisible": [("fixture_material_type","=",("零点卡盘"))]}'/>
|
||||
<div class="o_address_format"
|
||||
attrs='{"invisible": [("fixture_material_type","=",("零点卡盘"))]}'>
|
||||
<label for="clamp_workpiece_length_max" string="长"/>
|
||||
<field name="clamp_workpiece_length_max" class="o_address_zip"
|
||||
options="{'format': false}"
|
||||
attrs="{'required': [('fixture_material_type', 'in',('气动托盘','转接板(锁板)托盘','磁吸托盘','虎钳托盘'))]}"/>
|
||||
<span>&nbsp;</span>
|
||||
<label for="clamp_workpiece_width_max" string="宽"/>
|
||||
<field name="clamp_workpiece_width_max" class="o_address_zip"
|
||||
options="{'format': false}"
|
||||
attrs="{'required': [('fixture_material_type', 'in',('气动托盘','转接板(锁板)托盘','磁吸托盘','虎钳托盘'))]}"/>
|
||||
<span>&nbsp;</span>
|
||||
<label for="clamp_workpiece_height_max" string="高"/>
|
||||
<field name="clamp_workpiece_height_max" class="o_address_zip"
|
||||
options="{'format': false}"
|
||||
attrs="{'required': [('fixture_material_type', 'in',('气动托盘','转接板(锁板)托盘','磁吸托盘','虎钳托盘'))]}"/>
|
||||
</div>
|
||||
<field name="clamp_workpiece_diameter_max"
|
||||
attrs="{'invisible': [('fixture_material_type','=','零点卡盘')],'required': [('fixture_material_type', 'in',('气动托盘','转接板(锁板)托盘','磁吸托盘','虎钳托盘'))]}"/>
|
||||
<field name="maximum_carrying_weight"></field>
|
||||
<field name="maximum_clamping_force"></field>
|
||||
</group>
|
||||
<group>
|
||||
<field name="materials_model_id"/>
|
||||
<field name="clamping_way"
|
||||
attrs='{"invisible": [("fixture_material_type","not in",("气动托盘","磁吸托盘","虎钳托盘"))]}'/>
|
||||
<field name="port_type"
|
||||
attrs='{"invisible": [("fixture_material_type","not in",("气动托盘","磁吸托盘","虎钳托盘"))]}'/>
|
||||
<field name="through_hole_size"
|
||||
attrs='{"invisible": [("fixture_material_type","!=",("转接板(锁板)托盘"))]}'/>
|
||||
<field name="screw_size"
|
||||
attrs='{"invisible": [("fixture_material_type","!=",("转接板(锁板)托盘"))]}'/>
|
||||
<field name="driving_way"
|
||||
attrs='{"invisible": [("fixture_material_type","not in",("虎钳托盘","零点卡盘"))]}'/>
|
||||
<field name="apply_machine_tool_type_id"
|
||||
attrs='{"invisible": [("fixture_material_type","!=",("零点卡盘"))]}'/>
|
||||
</group>
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="参数"
|
||||
attrs='{"invisible": [("fixture_material_type","not in",("气动托盘","转接板(锁板)托盘","磁吸托盘","虎钳托盘","零点卡盘"))]}'>
|
||||
<group>
|
||||
<group>
|
||||
<label for="length" string="尺寸(mm)"/>
|
||||
<div class="test_model">
|
||||
<label for="length" string="长"/>
|
||||
<field name="length" class="o_address_zip"
|
||||
options="{'format': false}"/>
|
||||
<span>&nbsp;</span>
|
||||
<label for="width" string="宽"/>
|
||||
<field name="width" class="o_address_zip"
|
||||
options="{'format': false}"/>
|
||||
<span>&nbsp;</span>
|
||||
<label for="height" string="高"/>
|
||||
<field name="height" class="o_address_zip"
|
||||
options="{'format': false}"/>
|
||||
</div>
|
||||
<field name="weight"></field>
|
||||
<field name="materials_model_id" options="{'no_create': True}"/>
|
||||
<field name="clamping_way"
|
||||
attrs='{"invisible": [("fixture_material_type","not in",("气动托盘","磁吸托盘","虎钳托盘"))]}'/>
|
||||
<field name="port_type"
|
||||
attrs='{"invisible": [("fixture_material_type","not in",("气动托盘","磁吸托盘","虎钳托盘"))]}'/>
|
||||
<field name="through_hole_size"
|
||||
attrs='{"invisible": [("fixture_material_type","!=",("转接板(锁板)托盘"))]}'/>
|
||||
<field name="screw_size"
|
||||
attrs='{"invisible": [("fixture_material_type","!=",("转接板(锁板)托盘"))]}'/>
|
||||
<field name="driving_way"
|
||||
attrs='{"invisible": [("fixture_material_type","not in",("虎钳托盘","零点卡盘"))]}'/>
|
||||
<field name="apply_machine_tool_type_ids" widget="many2many_tags"
|
||||
attrs='{"invisible": [("fixture_material_type","!=",("零点卡盘"))]}'/>
|
||||
</group>
|
||||
<group>
|
||||
<label for="length" string="夹持工件最大尺寸(mm)"
|
||||
attrs='{"invisible": [("fixture_material_type","=",("零点卡盘"))]}'/>
|
||||
<div class="test_model"
|
||||
attrs='{"invisible": [("fixture_material_type","=",("零点卡盘"))]}'>
|
||||
<label for="clamp_workpiece_length_max" string="长"/>
|
||||
<field name="clamp_workpiece_length_max" class="o_address_zip"
|
||||
options="{'format': false}"
|
||||
attrs="{'required': [('fixture_material_type', 'in',('气动托盘','转接板(锁板)托盘','磁吸托盘','虎钳托盘'))]}"/>
|
||||
<span>&nbsp;</span>
|
||||
<label for="clamp_workpiece_width_max" string="宽"/>
|
||||
<field name="clamp_workpiece_width_max" class="o_address_zip"
|
||||
options="{'format': false}"
|
||||
attrs="{'required': [('fixture_material_type', 'in',('气动托盘','转接板(锁板)托盘','磁吸托盘','虎钳托盘'))]}"/>
|
||||
<span>&nbsp;</span>
|
||||
<label for="clamp_workpiece_height_max" string="高"/>
|
||||
<field name="clamp_workpiece_height_max" class="o_address_zip"
|
||||
options="{'format': false}"
|
||||
attrs="{'required': [('fixture_material_type', 'in',('气动托盘','转接板(锁板)托盘','磁吸托盘','虎钳托盘'))]}"/>
|
||||
</div>
|
||||
<field name="clamp_workpiece_diameter_max" string="夹持工件最大直径(mm)"
|
||||
attrs="{'invisible': [('fixture_material_type','=','零点卡盘')],'required': [('fixture_material_type', 'in',('气动托盘','转接板(锁板)托盘','磁吸托盘','虎钳托盘'))]}"/>
|
||||
<field name="maximum_carrying_weight"></field>
|
||||
<field name="maximum_clamping_force"></field>
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
|
||||
@@ -81,7 +81,7 @@
|
||||
<field name="name">功能夹具</field>
|
||||
<field name="model">sf.functional.fixture</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="功能夹具" create="0" edit="0" delete="0">
|
||||
<tree string="功能夹具">
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="type_id"/>
|
||||
@@ -93,7 +93,12 @@
|
||||
<field name="name">功能夹具</field>
|
||||
<field name="model">sf.functional.fixture</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="功能夹具" create="0" edit="0" delete="0">
|
||||
<form string="功能夹具">
|
||||
<!-- <header>-->
|
||||
<!-- <field name="registration_status" invisible="1"/>-->
|
||||
<!-- <button type="object" class="oe_highlight" name='register_functional_fixture' string="注册"-->
|
||||
<!-- attrs="{'invisible': [('registration_status','=','已注册')]}"/>-->
|
||||
<!-- </header>-->
|
||||
<sheet>
|
||||
<group string="基本信息">
|
||||
<group>
|
||||
@@ -101,15 +106,19 @@
|
||||
<field name="name"/>
|
||||
<field name="type_id"/>
|
||||
<field name="type" invisible="1"/>
|
||||
<field name="zero_chuck_model_ids" widget="many2many_tags"/>
|
||||
<field name="zero_chuck_model_ids" widget="many2many_tags" options="{'no_create': True}"/>
|
||||
<field name="transfer_tray_model_ids" widget="many2many_tags"
|
||||
attrs="{'invisible': [('type', '!=', '转接板(锁板)式')]}"/>
|
||||
options="{'no_create': True}"
|
||||
attrs='{"invisible": [("type","!=","转接板(锁板)式")],"required": [("type", "=", "转接板(锁板)式")]}'/>
|
||||
<field name="pneumatic_tray_model_ids" widget="many2many_tags"
|
||||
attrs="{'invisible': [('type', '!=', '气动式')]}"/>
|
||||
options="{'no_create': True}"
|
||||
attrs='{"invisible": [("type","!=","气动式")],"required": [("type", "=", "气动式")]}'/>
|
||||
<field name="magnetic_tray_model_ids" widget="many2many_tags"
|
||||
attrs="{'invisible': [('type', '!=', '磁吸式')]}"/>
|
||||
options="{'no_create': True}"
|
||||
attrs='{"invisible": [("type","!=","磁吸式")],"required": [("type", "=", "磁吸式")]}'/>
|
||||
<field name="vice_tray_model_ids" widget="many2many_tags"
|
||||
attrs="{'invisible': [('type', '!=', '虎钳式')]}"/>
|
||||
options="{'no_create': True}"
|
||||
attrs='{"invisible": [("type","!=","虎钳式")],"required": [("type", "=", "虎钳式")]}'/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
|
||||
@@ -22,13 +22,13 @@
|
||||
sequence="3"
|
||||
/>
|
||||
|
||||
<menuitem
|
||||
id="menu_sf_machine_tool"
|
||||
parent="menu_sf_machine_tool_first"
|
||||
name="机床"
|
||||
sequence="0"
|
||||
action="action_sf_machine_tool"
|
||||
/>
|
||||
<!-- <menuitem -->
|
||||
<!-- id="menu_sf_machine_tool" -->
|
||||
<!-- parent="menu_sf_machine_tool_first" -->
|
||||
<!-- name="机床" -->
|
||||
<!-- sequence="0" -->
|
||||
<!-- action="action_sf_machine_tool" -->
|
||||
<!-- /> -->
|
||||
|
||||
<menuitem
|
||||
id="menu_sf_machine_tool_category"
|
||||
@@ -139,7 +139,7 @@
|
||||
<menuitem
|
||||
id="menu_sf_machine_control_system"
|
||||
parent="menu_sf_base"
|
||||
name="控制系统"
|
||||
name="数控系统"
|
||||
sequence="1"
|
||||
action="action_sf_machine_control_system"/>
|
||||
|
||||
|
||||
@@ -7,14 +7,14 @@
|
||||
<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>
|
||||
<field name="view_mode">tree</field>
|
||||
</record>
|
||||
<!-- 刀具类型action -->
|
||||
<record id="action_sf_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.cutting.tool.type</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_mode">tree</field>
|
||||
</record>
|
||||
<!-- 刀具型号action -->
|
||||
<record id="action_sf_cutting_tool" model="ir.actions.act_window">
|
||||
@@ -35,7 +35,7 @@
|
||||
<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>
|
||||
<field name="view_mode">tree</field>
|
||||
</record>
|
||||
|
||||
<!-- 刀具 -->
|
||||
|
||||
@@ -1,99 +1,114 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<odoo>
|
||||
<data>
|
||||
<!-- ================================================刀具物料================================================ -->
|
||||
<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"/>
|
||||
<field name="remark"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<!-- ================================================刀具物料================================================ -->
|
||||
<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="刀具物料" create="0" edit="0" delete="0">
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="remark"/>
|
||||
</tree>
|
||||
</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>
|
||||
<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>
|
||||
|
||||
<!-- ================================================功能刀具================================================ -->
|
||||
<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="mrs_cutting_tool_type_id"/>
|
||||
<field name="mrs_cutting_tool_integral_model_ids" optional="hide"/>
|
||||
<field name="mrs_cutting_tool_blade_model_ids" optional="hide"/>
|
||||
<field name="mrs_cutting_tool_cutterbar_model_ids" optional="hide"/>
|
||||
<field name="mrs_cutting_tool_cutterpad_model_ids" optional="hide"/>
|
||||
<field name="mrs_cutting_tool_cutterhandle_model_ids" optional="hide"/>
|
||||
<field name="mrs_cutting_tool_cutterhead_model_ids" optional="hide"/>
|
||||
<field name="image" widget='image'/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<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="mrs_cutting_tool_type_id"
|
||||
options="{'no_create': True, 'no_quick_create': True}"/>
|
||||
<field name="mrs_cutting_tool_model_id"
|
||||
options="{'no_create': True, 'no_quick_create': True}"
|
||||
attrs="{'invisible': True}"/>
|
||||
<field name="mrs_cutting_tool_integral_model_ids"
|
||||
options="{'no_create': True, 'no_quick_create': True}"
|
||||
widget="many2many_tags"/>
|
||||
<field name="mrs_cutting_tool_blade_model_ids"
|
||||
options="{'no_create': True, 'no_quick_create': True}"
|
||||
widget="many2many_tags"/>
|
||||
<field name="mrs_cutting_tool_cutterbar_model_ids"
|
||||
options="{'no_create': True, 'no_quick_create': True}"
|
||||
widget="many2many_tags"/>
|
||||
<field name="mrs_cutting_tool_cutterpad_model_ids"
|
||||
options="{'no_create': True, 'no_quick_create': True}"
|
||||
widget="many2many_tags"/>
|
||||
<field name="mrs_cutting_tool_cutterhandle_model_ids"
|
||||
options="{'no_create': True, 'no_quick_create': True}"
|
||||
widget="many2many_tags"/>
|
||||
<field name="mrs_cutting_tool_cutterhead_model_ids"
|
||||
options="{'no_create': True, 'no_quick_create': True}"
|
||||
widget="many2many_tags"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="image" nolabel="1" widget="image"/>
|
||||
</group>
|
||||
|
||||
<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>
|
||||
<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>
|
||||
|
||||
<!-- ================================================功能刀具================================================ -->
|
||||
<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="mrs_cutting_tool_type_id"/>
|
||||
<field name="mrs_cutting_tool_integral_model_ids" optional="hide"/>
|
||||
<field name="mrs_cutting_tool_blade_model_ids" optional="hide"/>
|
||||
<field name="mrs_cutting_tool_cutterbar_model_ids" optional="hide"/>
|
||||
<field name="mrs_cutting_tool_cutterpad_model_ids" optional="hide"/>
|
||||
<field name="mrs_cutting_tool_cutterhandle_model_ids" optional="hide"/>
|
||||
<field name="mrs_cutting_tool_cutterhead_model_ids" optional="hide"/>
|
||||
<field name="image" widget='image'/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<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="mrs_cutting_tool_type_id" options="{'no_create': True, 'no_quick_create': True}"/>
|
||||
<field name="mrs_cutting_tool_model_id" options="{'no_create': True, 'no_quick_create': True}" attrs="{'invisible': True}"/>
|
||||
<field name="mrs_cutting_tool_integral_model_ids" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags"/>
|
||||
<field name="mrs_cutting_tool_blade_model_ids" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags"/>
|
||||
<field name="mrs_cutting_tool_cutterbar_model_ids" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags"/>
|
||||
<field name="mrs_cutting_tool_cutterpad_model_ids" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags"/>
|
||||
<field name="mrs_cutting_tool_cutterhandle_model_ids" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags"/>
|
||||
<field name="mrs_cutting_tool_cutterhead_model_ids" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="image" nolabel="1" widget="image"/>
|
||||
</group>
|
||||
|
||||
</group>
|
||||
<group string='参数信息'>
|
||||
<group>
|
||||
<field name="diameter"/>
|
||||
@@ -114,284 +129,365 @@
|
||||
<field name="applicable_range"/>
|
||||
</group>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="view_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>
|
||||
<record model="ir.ui.view" id="view_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>
|
||||
|
||||
|
||||
<!-- ================================================功能刀具类型================================================ -->
|
||||
<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>
|
||||
<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 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="功能刀具类型" create="0" delete="0" edit="0">
|
||||
<field name="name"/>
|
||||
<field name="code"/>
|
||||
<field name="remark"/>
|
||||
</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">
|
||||
<field name="name">sf.cutter.function.search</field>
|
||||
<field name="model">sf.functional.cutting.tool.model</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>
|
||||
<!-- 功能刀具类型搜索 -->
|
||||
<record model="ir.ui.view" id="view_cutter_function_search">
|
||||
<field name="name">sf.cutter.function.search</field>
|
||||
<field name="model">sf.functional.cutting.tool.model</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>
|
||||
|
||||
<!-- ================================================刀具型号================================================ -->
|
||||
<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>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="刀具型号">
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="mrs_cutting_tool_material_id"/>
|
||||
<field name="image" widget='image'/>
|
||||
</tree>
|
||||
</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>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="刀具型号">
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="mrs_cutting_tool_material_id"/>
|
||||
<field name="image" widget='image'/>
|
||||
</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>
|
||||
<field name="arch" type="xml">
|
||||
<form string="刀具型号">
|
||||
<sheet>
|
||||
<group col='1'>
|
||||
<group string='基本信息'>
|
||||
<group>
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="mrs_cutting_tool_material_id" options="{'no_create': True, 'no_quick_create': True}"/>
|
||||
<field name="mrs_machine_brand_id" options="{'no_create': True, 'no_quick_create': True}"/>
|
||||
<field name="mrs_materials_model_id" options="{'no_create': True, 'no_quick_create': True}"/>
|
||||
<field name="mrs_cutting_tool_type_id" options="{'no_create': True, 'no_quick_create': True}"/>
|
||||
<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>
|
||||
<field name="arch" type="xml">
|
||||
<form string="刀具型号">
|
||||
<sheet>
|
||||
<group col='1'>
|
||||
<group string='基本信息'>
|
||||
<group>
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="mrs_cutting_tool_material_id"
|
||||
options="{'no_create': True, 'no_quick_create': True}"/>
|
||||
<field name="mrs_machine_brand_id"
|
||||
options="{'no_create': True, 'no_quick_create': True}"/>
|
||||
<field name="mrs_materials_model_id"
|
||||
options="{'no_create': True, 'no_quick_create': True}"/>
|
||||
<field name="mrs_cutting_tool_type_id"
|
||||
options="{'no_create': True, 'no_quick_create': True}"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="image" nolabel="1" widget="image"/>
|
||||
</group>
|
||||
</group>
|
||||
<group>
|
||||
<field name="image" nolabel="1" widget="image"/>
|
||||
<group string='参数信息'>
|
||||
<group>
|
||||
<field name="hide_integral" invisible="1"/>
|
||||
<field name="hide_blade" invisible="1"/>
|
||||
<field name="hide_cutter_bar" invisible="1"/>
|
||||
<field name="hide_cutter_pad" invisible="1"/>
|
||||
<field name="hide_handler" invisible="1"/>
|
||||
<field name="hide_chuck" invisible="1"/>
|
||||
<field name="mrs_cutting_tool_material_name" invisible="1"/>
|
||||
|
||||
<field name="integral_total_length"
|
||||
attrs="{'invisible': [('hide_integral', '=', False)], 'required': [('hide_integral', '!=', False)]}"/>
|
||||
<field name="integral_shank_length"
|
||||
attrs="{'invisible': [('hide_integral', '=', False)], 'required': [('hide_integral', '!=', False)]}"/>
|
||||
<field name="integral_blade_length"
|
||||
attrs="{'invisible': [('hide_integral', '=', False)], 'required': [('hide_integral', '!=', False)]}"/>
|
||||
<field name="integral_diameter"
|
||||
attrs="{'invisible': [('hide_integral', '=', False)], 'required': [('hide_integral', '!=', False)]}"/>
|
||||
<field name="integral_blade_number"
|
||||
attrs="{'invisible': [('hide_integral', '=', False)], 'required': [('hide_integral', '!=', False)]}"/>
|
||||
<field name="integral_accuracy"
|
||||
attrs="{'invisible': [('hide_integral', '=', False)], 'required': [('hide_integral', '!=', False)]}"/>
|
||||
<field name="integral_hardness"
|
||||
attrs="{'invisible': [('hide_integral', '=', False)], 'required': [('hide_integral', '!=', False)]}"/>
|
||||
|
||||
<field name="blade_length"
|
||||
attrs="{'invisible': [('hide_blade', '=', False)], 'required': [('hide_blade', '!=', False)]}"/>
|
||||
<field name="blade_width"
|
||||
attrs="{'invisible': [('hide_blade', '=', False)], 'required': [('hide_blade', '!=', False)]}"/>
|
||||
<field name="blade_height"
|
||||
attrs="{'invisible': [('hide_blade', '=', False)], 'required': [('hide_blade', '!=', False)]}"/>
|
||||
<field name="blade_top_angle"
|
||||
attrs="{'invisible': [('hide_blade', '=', False)], 'required': [('hide_blade', '!=', False)]}"/>
|
||||
<field name="blade_front_angle"
|
||||
attrs="{'invisible': [('hide_blade', '=', False)], 'required': [('hide_blade', '!=', False)]}"/>
|
||||
<field name="blade_rear_angle"
|
||||
attrs="{'invisible': [('hide_blade', '=', False)], 'required': [('hide_blade', '!=', False)]}"/>
|
||||
|
||||
<field name="bar_c_diameter"
|
||||
attrs="{'invisible': [('hide_cutter_bar', '=', False)], 'required': [('hide_cutter_bar', '!=', False)]}"/>
|
||||
<field name="bar_total_length"
|
||||
attrs="{'invisible': [('hide_cutter_bar', '=', False)], 'required': [('hide_cutter_bar', '!=', False)]}"/>
|
||||
<field name="bar_blade_number"
|
||||
attrs="{'invisible': [('hide_cutter_bar', '=', False)], 'required': [('hide_cutter_bar', '!=', False)]}"/>
|
||||
<field name="bar_d_diameter"
|
||||
attrs="{'invisible': [('hide_cutter_bar', '=', False)], 'required': [('hide_cutter_bar', '!=', False)]}"/>
|
||||
<field name="bar_wrench"
|
||||
attrs="{'invisible': [('hide_cutter_bar', '=', False)], 'required': [('hide_cutter_bar', '!=', False)]}"/>
|
||||
|
||||
|
||||
<field name="pad_c_diameter"
|
||||
attrs="{'invisible': [('hide_cutter_pad', '=', False)], 'required': [('hide_cutter_pad', '!=', False)]}"/>
|
||||
<field name="pad_total_length"
|
||||
attrs="{'invisible': [('hide_cutter_pad', '=', False)], 'required': [('hide_cutter_pad', '!=', False)]}"/>
|
||||
<field name="pad_blade_number"
|
||||
attrs="{'invisible': [('hide_cutter_pad', '=', False)], 'required': [('hide_cutter_pad', '!=', False)]}"/>
|
||||
<field name="pad_d_diameter"
|
||||
attrs="{'invisible': [('hide_cutter_pad', '=', False)], 'required': [('hide_cutter_pad', '!=', False)]}"/>
|
||||
<field name="pad_wrench"
|
||||
attrs="{'invisible': [('hide_cutter_pad', '=', False)], 'required': [('hide_cutter_pad', '!=', False)]}"/>
|
||||
|
||||
|
||||
<field name="handle_length"
|
||||
attrs="{'invisible': [('hide_handler', '=', False)], 'required': [('hide_handler', '!=', False)]}"/>
|
||||
<field name="handle_flange_length"
|
||||
attrs="{'invisible': [('hide_handler', '=', False)], 'required': [('hide_handler', '!=', False)]}"/>
|
||||
<field name="handle_flange_diameter"
|
||||
attrs="{'invisible': [('hide_handler', '=', False)], 'required': [('hide_handler', '!=', False)]}"/>
|
||||
<field name="handle_weight"
|
||||
attrs="{'invisible': [('hide_handler', '=', False)], 'required': [('hide_handler', '!=', False)]}"/>
|
||||
<field name="handle_body_accuracy"
|
||||
attrs="{'invisible': [('hide_handler', '=', False)], 'required': [('hide_handler', '!=', False)]}"/>
|
||||
<field name="handle_clamping_diameter_min"
|
||||
attrs="{'invisible': [('hide_handler', '=', False)], 'required': [('hide_handler', '!=', False)]}"/>
|
||||
<field name="handle_clamping_diameter_max"
|
||||
attrs="{'invisible': [('hide_handler', '=', False)], 'required': [('hide_handler', '!=', False)]}"/>
|
||||
|
||||
|
||||
<field name="chuck_accuracy"
|
||||
attrs="{'invisible': [('hide_chuck', '=', False)], 'required': [('hide_chuck', '!=', False)]}"/>
|
||||
<field name="chuck_diameter"
|
||||
attrs="{'invisible': [('hide_chuck', '=', False)], 'required': [('hide_chuck', '!=', False)]}"/>
|
||||
<field name="chuck_inner_diameter"
|
||||
attrs="{'invisible': [('hide_chuck', '=', False)], 'required': [('hide_chuck', '!=', False)]}"/>
|
||||
<field name="chuck_height"
|
||||
attrs="{'invisible': [('hide_chuck', '=', False)], 'required': [('hide_chuck', '!=', False)]}"/>
|
||||
|
||||
|
||||
</group>
|
||||
<group>
|
||||
|
||||
<field name="integral_front_angle"
|
||||
attrs="{'invisible': [('hide_integral', '=', False)], 'required': [('hide_integral', '!=', False)]}"/>
|
||||
<field name="integral_rear_angle"
|
||||
attrs="{'invisible': [('hide_integral', '=', False)], 'required': [('hide_integral', '!=', False)]}"/>
|
||||
<field name="integral_main_included_angle"
|
||||
attrs="{'invisible': [('hide_integral', '=', False)], 'required': [('hide_integral', '!=', False)]}"/>
|
||||
<field name="integral_coating_material"
|
||||
attrs="{'invisible': [('hide_integral', '=', False)], 'required': [('hide_integral', '!=', False)]}"/>
|
||||
<field name="integral_nut"
|
||||
attrs="{'invisible': [('hide_integral', '=', False)], 'required': [('hide_integral', '!=', False)]}"/>
|
||||
<field name="integral_scope"
|
||||
attrs="{'invisible': [('hide_integral', '=', False)], 'required': [('hide_integral', '!=', False)]}"/>
|
||||
|
||||
|
||||
<field name="blade_main_included_angle"
|
||||
attrs="{'invisible': [('hide_blade', '=', False)], 'required': [('hide_blade', '!=', False)]}"/>
|
||||
<field name="blade_r_angle"
|
||||
attrs="{'invisible': [('hide_blade', '=', False)], 'required': [('hide_blade', '!=', False)]}"/>
|
||||
<field name="blade_coating_material"
|
||||
attrs="{'invisible': [('hide_blade', '=', False)], 'required': [('hide_blade', '!=', False)]}"/>
|
||||
<field name="blade_hardness"
|
||||
attrs="{'invisible': [('hide_blade', '=', False)], 'required': [('hide_blade', '!=', False)]}"/>
|
||||
<field name="blade_radius"
|
||||
attrs="{'invisible': [('hide_blade', '=', False)], 'required': [('hide_blade', '!=', False)]}"/>
|
||||
<field name="blade_nut"
|
||||
attrs="{'invisible': [('hide_blade', '=', False)], 'required': [('hide_blade', '!=', False)]}"/>
|
||||
|
||||
|
||||
<field name="bar_screw"
|
||||
attrs="{'invisible': [('hide_cutter_bar', '=', False)], 'required': [('hide_cutter_bar', '!=', False)]}"/>
|
||||
<field name="bar_radius"
|
||||
attrs="{'invisible': [('hide_cutter_bar', '=', False)], 'required': [('hide_cutter_bar', '!=', False)]}"/>
|
||||
<field name="bar_hardness"
|
||||
attrs="{'invisible': [('hide_cutter_bar', '=', False)], 'required': [('hide_cutter_bar', '!=', False)]}"/>
|
||||
<field name="bar_scope"
|
||||
attrs="{'invisible': [('hide_cutter_bar', '=', False)], 'required': [('hide_cutter_bar', '!=', False)]}"/>
|
||||
|
||||
|
||||
<field name="pad_screw"
|
||||
attrs="{'invisible': [('hide_cutter_pad', '=', False)], 'required': [('hide_cutter_pad', '!=', False)]}"/>
|
||||
<field name="pad_radius"
|
||||
attrs="{'invisible': [('hide_cutter_pad', '=', False)], 'required': [('hide_cutter_pad', '!=', False)]}"/>
|
||||
<field name="pad_accuracy"
|
||||
attrs="{'invisible': [('hide_cutter_pad', '=', False)], 'required': [('hide_cutter_pad', '!=', False)]}"/>
|
||||
<field name="pad_hardness"
|
||||
attrs="{'invisible': [('hide_cutter_pad', '=', False)], 'required': [('hide_cutter_pad', '!=', False)]}"/>
|
||||
<field name="pad_scope"
|
||||
attrs="{'invisible': [('hide_cutter_pad', '=', False)], 'required': [('hide_cutter_pad', '!=', False)]}"/>
|
||||
|
||||
|
||||
<field name="handle_nut"
|
||||
attrs="{'invisible': [('hide_handler', '=', False)], 'required': [('hide_handler', '!=', False)]}"/>
|
||||
<field name="handle_clamping_range"
|
||||
attrs="{'invisible': [('hide_handler', '=', False)], 'required': [('hide_handler', '!=', False)]}"/>
|
||||
<field name="handle_detection_accuracy"
|
||||
attrs="{'invisible': [('hide_handler', '=', False)], 'required': [('hide_handler', '!=', False)]}"/>
|
||||
<field name="handle_detection_hardness"
|
||||
attrs="{'invisible': [('hide_handler', '=', False)], 'required': [('hide_handler', '!=', False)]}"/>
|
||||
<field name="handle_standard_speed"
|
||||
attrs="{'invisible': [('hide_handler', '=', False)], 'required': [('hide_handler', '!=', False)]}"/>
|
||||
<field name="handle_jump_accuracy"
|
||||
attrs="{'invisible': [('hide_handler', '=', False)], 'required': [('hide_handler', '!=', False)]}"/>
|
||||
<field name="handle_max_speed"
|
||||
attrs="{'invisible': [('hide_handler', '=', False)], 'required': [('hide_handler', '!=', False)]}"/>
|
||||
|
||||
<field name="chuck_nut"
|
||||
attrs="{'invisible': [('hide_chuck', '=', False)], 'required': [('hide_chuck', '!=', False)]}"/>
|
||||
<field name="chuck_clamping_range"
|
||||
attrs="{'invisible': [('hide_chuck', '=', False)], 'required': [('hide_chuck', '!=', False)]}"/>
|
||||
<field name="chuck_feature"
|
||||
attrs="{'invisible': [('hide_chuck', '=', False)], 'required': [('hide_chuck', '!=', False)]}"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string='其他信息'>
|
||||
<group>
|
||||
<field name="mrs_cutting_tool_model_blade_cutter_bar_ids" widget="many2many_tags"
|
||||
options="{'no_create': True, 'no_quick_create': True}"
|
||||
attrs="{'invisible': [('hide_blade', '=', False)]}"/>
|
||||
<field name="mrs_cutting_tool_model_bar_blade_ids" widget="many2many_tags"
|
||||
options="{'no_create': True, 'no_quick_create': True}"
|
||||
attrs="{'invisible': [('hide_cutter_bar', '=', False)]}"/>
|
||||
<field name="mrs_cutting_tool_model_pad_blade_ids" widget="many2many_tags"
|
||||
options="{'no_create': True, 'no_quick_create': True}"
|
||||
attrs="{'invisible': [('hide_cutter_pad', '=', False)]}"/>
|
||||
<field name="mrs_cutting_tool_model_handle_chuck_model_ids" widget="many2many_tags"
|
||||
options="{'no_create': True, 'no_quick_create': True}"
|
||||
attrs="{'invisible': [('hide_handler', '=', False)]}"/>
|
||||
<field name="mrs_cutting_tool_model_chuck_handle_model_ids" widget="many2many_tags"
|
||||
options="{'no_create': True, 'no_quick_create': True}"
|
||||
attrs="{'invisible': [('hide_chuck', '=', False)]}"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="mrs_cutting_tool_model_blade_cutter_pad_ids" widget="many2many_tags"
|
||||
options="{'no_create': True, 'no_quick_create': True}"
|
||||
attrs="{'invisible': [('hide_blade', '=', False)]}"/>
|
||||
</group>
|
||||
</group>
|
||||
</group>
|
||||
<group string='参数信息'>
|
||||
<group>
|
||||
<field name="hide_integral" invisible="1"/>
|
||||
<field name="hide_blade" invisible="1"/>
|
||||
<field name="hide_cutter_bar" invisible="1"/>
|
||||
<field name="hide_cutter_pad" invisible="1"/>
|
||||
<field name="hide_handler" invisible="1"/>
|
||||
<field name="hide_chuck" invisible="1"/>
|
||||
<field name="mrs_cutting_tool_material_name" invisible="1"/>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<field name="integral_total_length" attrs="{'invisible': [('hide_integral', '=', False)], 'required': [('hide_integral', '!=', False)]}"/>
|
||||
<field name="integral_shank_length" attrs="{'invisible': [('hide_integral', '=', False)], 'required': [('hide_integral', '!=', False)]}"/>
|
||||
<field name="integral_blade_length" attrs="{'invisible': [('hide_integral', '=', False)], 'required': [('hide_integral', '!=', False)]}"/>
|
||||
<field name="integral_diameter" attrs="{'invisible': [('hide_integral', '=', False)], 'required': [('hide_integral', '!=', False)]}"/>
|
||||
<field name="integral_blade_number" attrs="{'invisible': [('hide_integral', '=', False)], 'required': [('hide_integral', '!=', False)]}"/>
|
||||
<field name="integral_accuracy" attrs="{'invisible': [('hide_integral', '=', False)], 'required': [('hide_integral', '!=', False)]}"/>
|
||||
<field name="integral_hardness" attrs="{'invisible': [('hide_integral', '=', False)], 'required': [('hide_integral', '!=', False)]}"/>
|
||||
|
||||
<field name="blade_length" attrs="{'invisible': [('hide_blade', '=', False)], 'required': [('hide_blade', '!=', False)]}"/>
|
||||
<field name="blade_width" attrs="{'invisible': [('hide_blade', '=', False)], 'required': [('hide_blade', '!=', False)]}"/>
|
||||
<field name="blade_height" attrs="{'invisible': [('hide_blade', '=', False)], 'required': [('hide_blade', '!=', False)]}"/>
|
||||
<field name="blade_top_angle" attrs="{'invisible': [('hide_blade', '=', False)], 'required': [('hide_blade', '!=', False)]}"/>
|
||||
<field name="blade_front_angle" attrs="{'invisible': [('hide_blade', '=', False)], 'required': [('hide_blade', '!=', False)]}"/>
|
||||
<field name="blade_rear_angle" attrs="{'invisible': [('hide_blade', '=', False)], 'required': [('hide_blade', '!=', False)]}"/>
|
||||
|
||||
<field name="bar_c_diameter" attrs="{'invisible': [('hide_cutter_bar', '=', False)], 'required': [('hide_cutter_bar', '!=', False)]}"/>
|
||||
<field name="bar_total_length" attrs="{'invisible': [('hide_cutter_bar', '=', False)], 'required': [('hide_cutter_bar', '!=', False)]}"/>
|
||||
<field name="bar_blade_number" attrs="{'invisible': [('hide_cutter_bar', '=', False)], 'required': [('hide_cutter_bar', '!=', False)]}"/>
|
||||
<field name="bar_d_diameter" attrs="{'invisible': [('hide_cutter_bar', '=', False)], 'required': [('hide_cutter_bar', '!=', False)]}"/>
|
||||
<field name="bar_wrench" attrs="{'invisible': [('hide_cutter_bar', '=', False)], 'required': [('hide_cutter_bar', '!=', False)]}"/>
|
||||
<!-- 刀具型号搜索 -->
|
||||
<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>
|
||||
<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)]"/>
|
||||
<searchpanel class="account_root">
|
||||
<field name="mrs_cutting_tool_material_id" icon="fa-filter"/>
|
||||
</searchpanel>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<field name="pad_c_diameter" attrs="{'invisible': [('hide_cutter_pad', '=', False)], 'required': [('hide_cutter_pad', '!=', False)]}"/>
|
||||
<field name="pad_total_length" attrs="{'invisible': [('hide_cutter_pad', '=', False)], 'required': [('hide_cutter_pad', '!=', False)]}"/>
|
||||
<field name="pad_blade_number" attrs="{'invisible': [('hide_cutter_pad', '=', False)], 'required': [('hide_cutter_pad', '!=', False)]}"/>
|
||||
<field name="pad_d_diameter" attrs="{'invisible': [('hide_cutter_pad', '=', False)], 'required': [('hide_cutter_pad', '!=', False)]}"/>
|
||||
<field name="pad_wrench" attrs="{'invisible': [('hide_cutter_pad', '=', False)], 'required': [('hide_cutter_pad', '!=', False)]}"/>
|
||||
<!-- ================================================刀具类型================================================ -->
|
||||
<record id="view_cutting_tool_type_tree" model="ir.ui.view">
|
||||
<field name="name">sf.cutting.tool.type.tree</field>
|
||||
<field name="model">sf.cutting.tool.type</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="刀具类型" create="0" edit="0" delete="0">
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="mrs_cutting_tool_material_id"/>
|
||||
<field name="remark"/>
|
||||
</tree>
|
||||
</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>-->
|
||||
|
||||
<field name="handle_length" attrs="{'invisible': [('hide_handler', '=', False)], 'required': [('hide_handler', '!=', False)]}"/>
|
||||
<field name="handle_flange_length" attrs="{'invisible': [('hide_handler', '=', False)], 'required': [('hide_handler', '!=', False)]}"/>
|
||||
<field name="handle_flange_diameter" attrs="{'invisible': [('hide_handler', '=', False)], 'required': [('hide_handler', '!=', False)]}"/>
|
||||
<field name="handle_weight" attrs="{'invisible': [('hide_handler', '=', False)], 'required': [('hide_handler', '!=', False)]}"/>
|
||||
<field name="handle_body_accuracy" attrs="{'invisible': [('hide_handler', '=', False)], 'required': [('hide_handler', '!=', False)]}"/>
|
||||
<field name="handle_clamping_diameter_min" attrs="{'invisible': [('hide_handler', '=', False)], 'required': [('hide_handler', '!=', False)]}"/>
|
||||
<field name="handle_clamping_diameter_max" attrs="{'invisible': [('hide_handler', '=', False)], 'required': [('hide_handler', '!=', False)]}"/>
|
||||
|
||||
|
||||
<field name="chuck_accuracy" attrs="{'invisible': [('hide_chuck', '=', False)], 'required': [('hide_chuck', '!=', False)]}"/>
|
||||
<field name="chuck_diameter" attrs="{'invisible': [('hide_chuck', '=', False)], 'required': [('hide_chuck', '!=', False)]}"/>
|
||||
<field name="chuck_inner_diameter" attrs="{'invisible': [('hide_chuck', '=', False)], 'required': [('hide_chuck', '!=', False)]}"/>
|
||||
<field name="chuck_height" attrs="{'invisible': [('hide_chuck', '=', False)], 'required': [('hide_chuck', '!=', False)]}"/>
|
||||
|
||||
|
||||
</group>
|
||||
<group>
|
||||
|
||||
<field name="integral_front_angle" attrs="{'invisible': [('hide_integral', '=', False)], 'required': [('hide_integral', '!=', False)]}"/>
|
||||
<field name="integral_rear_angle" attrs="{'invisible': [('hide_integral', '=', False)], 'required': [('hide_integral', '!=', False)]}"/>
|
||||
<field name="integral_main_included_angle" attrs="{'invisible': [('hide_integral', '=', False)], 'required': [('hide_integral', '!=', False)]}"/>
|
||||
<field name="integral_coating_material" attrs="{'invisible': [('hide_integral', '=', False)], 'required': [('hide_integral', '!=', False)]}"/>
|
||||
<field name="integral_nut" attrs="{'invisible': [('hide_integral', '=', False)], 'required': [('hide_integral', '!=', False)]}"/>
|
||||
<field name="integral_scope" attrs="{'invisible': [('hide_integral', '=', False)], 'required': [('hide_integral', '!=', False)]}"/>
|
||||
|
||||
|
||||
<field name="blade_main_included_angle" attrs="{'invisible': [('hide_blade', '=', False)], 'required': [('hide_blade', '!=', False)]}"/>
|
||||
<field name="blade_r_angle" attrs="{'invisible': [('hide_blade', '=', False)], 'required': [('hide_blade', '!=', False)]}"/>
|
||||
<field name="blade_coating_material" attrs="{'invisible': [('hide_blade', '=', False)], 'required': [('hide_blade', '!=', False)]}"/>
|
||||
<field name="blade_hardness" attrs="{'invisible': [('hide_blade', '=', False)], 'required': [('hide_blade', '!=', False)]}"/>
|
||||
<field name="blade_radius" attrs="{'invisible': [('hide_blade', '=', False)], 'required': [('hide_blade', '!=', False)]}"/>
|
||||
<field name="blade_nut" attrs="{'invisible': [('hide_blade', '=', False)], 'required': [('hide_blade', '!=', False)]}"/>
|
||||
|
||||
|
||||
<field name="bar_screw" attrs="{'invisible': [('hide_cutter_bar', '=', False)], 'required': [('hide_cutter_bar', '!=', False)]}"/>
|
||||
<field name="bar_radius" attrs="{'invisible': [('hide_cutter_bar', '=', False)], 'required': [('hide_cutter_bar', '!=', False)]}"/>
|
||||
<field name="bar_hardness" attrs="{'invisible': [('hide_cutter_bar', '=', False)], 'required': [('hide_cutter_bar', '!=', False)]}"/>
|
||||
<field name="bar_scope" attrs="{'invisible': [('hide_cutter_bar', '=', False)], 'required': [('hide_cutter_bar', '!=', False)]}"/>
|
||||
|
||||
|
||||
<field name="pad_screw" attrs="{'invisible': [('hide_cutter_pad', '=', False)], 'required': [('hide_cutter_pad', '!=', False)]}"/>
|
||||
<field name="pad_radius" attrs="{'invisible': [('hide_cutter_pad', '=', False)], 'required': [('hide_cutter_pad', '!=', False)]}"/>
|
||||
<field name="pad_accuracy" attrs="{'invisible': [('hide_cutter_pad', '=', False)], 'required': [('hide_cutter_pad', '!=', False)]}"/>
|
||||
<field name="pad_hardness" attrs="{'invisible': [('hide_cutter_pad', '=', False)], 'required': [('hide_cutter_pad', '!=', False)]}"/>
|
||||
<field name="pad_scope" attrs="{'invisible': [('hide_cutter_pad', '=', False)], 'required': [('hide_cutter_pad', '!=', False)]}"/>
|
||||
|
||||
|
||||
<field name="handle_nut" attrs="{'invisible': [('hide_handler', '=', False)], 'required': [('hide_handler', '!=', False)]}"/>
|
||||
<field name="handle_clamping_range" attrs="{'invisible': [('hide_handler', '=', False)], 'required': [('hide_handler', '!=', False)]}"/>
|
||||
<field name="handle_detection_accuracy" attrs="{'invisible': [('hide_handler', '=', False)], 'required': [('hide_handler', '!=', False)]}"/>
|
||||
<field name="handle_detection_hardness" attrs="{'invisible': [('hide_handler', '=', False)], 'required': [('hide_handler', '!=', False)]}"/>
|
||||
<field name="handle_standard_speed" attrs="{'invisible': [('hide_handler', '=', False)], 'required': [('hide_handler', '!=', False)]}"/>
|
||||
<field name="handle_jump_accuracy" attrs="{'invisible': [('hide_handler', '=', False)], 'required': [('hide_handler', '!=', False)]}"/>
|
||||
<field name="handle_max_speed" attrs="{'invisible': [('hide_handler', '=', False)], 'required': [('hide_handler', '!=', False)]}"/>
|
||||
|
||||
<field name="chuck_nut" attrs="{'invisible': [('hide_chuck', '=', False)], 'required': [('hide_chuck', '!=', False)]}"/>
|
||||
<field name="chuck_clamping_range" attrs="{'invisible': [('hide_chuck', '=', False)], 'required': [('hide_chuck', '!=', False)]}"/>
|
||||
<field name="chuck_feature" attrs="{'invisible': [('hide_chuck', '=', False)], 'required': [('hide_chuck', '!=', False)]}"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string='其他信息'>
|
||||
<group>
|
||||
<field name="mrs_cutting_tool_model_blade_cutter_bar_ids" widget="many2many_tags" options="{'no_create': True, 'no_quick_create': True}" attrs="{'invisible': [('hide_blade', '=', False)]}"/>
|
||||
<field name="mrs_cutting_tool_model_bar_blade_ids" widget="many2many_tags" options="{'no_create': True, 'no_quick_create': True}" attrs="{'invisible': [('hide_cutter_bar', '=', False)]}"/>
|
||||
<field name="mrs_cutting_tool_model_pad_blade_ids" widget="many2many_tags" options="{'no_create': True, 'no_quick_create': True}" attrs="{'invisible': [('hide_cutter_pad', '=', False)]}"/>
|
||||
<field name="mrs_cutting_tool_model_handle_chuck_model_ids" widget="many2many_tags" options="{'no_create': True, 'no_quick_create': True}" attrs="{'invisible': [('hide_handler', '=', False)]}"/>
|
||||
<field name="mrs_cutting_tool_model_chuck_handle_model_ids" widget="many2many_tags" options="{'no_create': True, 'no_quick_create': True}" attrs="{'invisible': [('hide_chuck', '=', False)]}"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="mrs_cutting_tool_model_blade_cutter_pad_ids" widget="many2many_tags" options="{'no_create': True, 'no_quick_create': True}" attrs="{'invisible': [('hide_blade', '=', False)]}"/>
|
||||
</group>
|
||||
</group>
|
||||
</group>
|
||||
</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>
|
||||
<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)]"/>
|
||||
<searchpanel class="account_root">
|
||||
<field name="mrs_cutting_tool_material_id" icon="fa-filter"/>
|
||||
</searchpanel>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<!-- ================================================刀具类型================================================ -->
|
||||
<record id="view_cutting_tool_type_tree" model="ir.ui.view">
|
||||
<field name="name">sf.cutting.tool.type.tree</field>
|
||||
<field name="model">sf.cutting.tool.type</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="刀具类型">
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="mrs_cutting_tool_material_id"/>
|
||||
<field name="remark"/>
|
||||
</tree>
|
||||
</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>
|
||||
<field name="model">sf.cutting.tool.type</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)]"/>
|
||||
<searchpanel class="account_root">
|
||||
<field name="mrs_cutting_tool_material_id" icon="fa-filter"/>
|
||||
</searchpanel>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
<!-- 刀具类型搜索 -->
|
||||
<record id="view_cutting_tool_type_search" model="ir.ui.view">
|
||||
<field name="name">sf.cutting.tool.type.search</field>
|
||||
<field name="model">sf.cutting.tool.type</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)]"/>
|
||||
<searchpanel class="account_root">
|
||||
<field name="mrs_cutting_tool_material_id" icon="fa-filter"/>
|
||||
</searchpanel>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
||||
|
||||
@@ -278,7 +278,7 @@
|
||||
attrs='{"invisible": [("fixture_material_type","!=",("转接板(锁板)托盘"))]}'/>
|
||||
<field name="fixture_driving_way"
|
||||
attrs='{"invisible": [("fixture_material_type","not in",("虎钳托盘","零点卡盘"))]}'/>
|
||||
<field name="fixture_apply_machine_tool_type_id"
|
||||
<field name="fixture_apply_machine_tool_type_ids"
|
||||
attrs='{"invisible": [("fixture_material_type","!=",("零点卡盘"))]}'/>
|
||||
</group>
|
||||
</group>
|
||||
@@ -355,8 +355,16 @@
|
||||
<filter name="finish_product" string="成品" domain="[('categ_id.type','=','成品')]"/>
|
||||
<filter name="embryo" string="坯料" domain="[('categ_id.type','=','坯料')]"/>
|
||||
<filter name="raw_bom" string="原材料" domain="[('categ_id.type','=','原材料')]"/>
|
||||
<!-- <searchpanel>-->
|
||||
<!-- <field name="categ_id" icon="fa-building" enable_counters="1"/>-->
|
||||
<!-- </searchpanel>-->
|
||||
</xpath>
|
||||
<xpath expr="//search" position="inside">
|
||||
<searchpanel>
|
||||
<field name="categ_id" icon="fa-building" enable_counters="1"/>
|
||||
</searchpanel>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
</record>
|
||||
</data>
|
||||
</odoo>
|
||||
@@ -53,15 +53,11 @@ class SfEquipmentSaintenanceStandards(models.Model):
|
||||
class SfSaintenanceStandards(models.Model):
|
||||
_name = 'maintenance.standards'
|
||||
_description = '维保项目'
|
||||
_order = 'sequence, id'
|
||||
|
||||
name = fields.Char('维保项目')
|
||||
maintenance_standards = fields.Char('维保标准')
|
||||
equipment_maintenance_standards_id = fields.Many2one('equipment.maintenance.standards', string='设备维保标准')
|
||||
maintenance_request_id = fields.Many2one('maintenance.request', string='设备维保计划')
|
||||
cycle = fields.Integer('频次/周期')
|
||||
device_unit = fields.Char('设备单元')
|
||||
sequence = fields.Integer('序列号')
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -47,6 +47,7 @@ class SfMaintenanceEquipment(models.Model):
|
||||
overhaul_id = fields.Many2one('equipment.maintenance.standards', string='设备检修标准',
|
||||
domain="[('maintenance_type','=','检修')]")
|
||||
|
||||
|
||||
@api.onchange('eq_maintenance_id', 'overhaul_id')
|
||||
def _compute_equipment_maintenance_standards_ids(self):
|
||||
for record in self:
|
||||
@@ -88,8 +89,9 @@ class SfMaintenanceEquipment(models.Model):
|
||||
control_system_id = fields.Many2one('sf.machine.control_system',
|
||||
string="控制系统")
|
||||
# 多个机床型号对应一个机床
|
||||
type_id = fields.Many2one('sf.machine_tool.type', '型号')
|
||||
brand_id = fields.Many2one('sf.machine.brand', string='品牌')
|
||||
type_id = fields.Many2one('sf.machine_tool.type', '型号')
|
||||
|
||||
state = fields.Selection(
|
||||
[("正常", "正常"), ("故障", "故障"), ("不可用", "不可用")],
|
||||
default='正常', string="机床状态")
|
||||
@@ -414,7 +416,6 @@ class SfMaintenanceEquipment(models.Model):
|
||||
'company_id': self.company_id.id or self.env.company.id,
|
||||
'equipment_maintenance_id': self.eq_maintenance_id.id,
|
||||
'sf_maintenance_type': '保养'
|
||||
|
||||
}
|
||||
|
||||
# 拼接维保请求字符串
|
||||
|
||||
@@ -25,9 +25,7 @@ class SfMaintenanceEquipmentCategory(models.Model):
|
||||
if not record.equipment_maintenance_id:
|
||||
record.equipment_maintenance_id = False
|
||||
|
||||
|
||||
|
||||
maintenance_standards = fields.One2many('maintenance.standards','maintenance_request_id', string='维保标准', related='equipment_maintenance_id.maintenance_standards_ids')
|
||||
maintenance_standards = fields.One2many('maintenance.standards','maintenance_request_id', string='维保标准')
|
||||
|
||||
@api.constrains('equipment_maintenance_id')
|
||||
def _check_equipment_maintenance_id(self):
|
||||
|
||||
@@ -29,19 +29,6 @@
|
||||
<group>
|
||||
<field name="maintenance_equipment_ids" widget="many2many_tags" attrs="{'invisible': [('maintenance_equipment_category_id', '=', False)]}"/>
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="维保项目">
|
||||
<field name="maintenance_standards_ids" widget="ony2many">
|
||||
<tree editable="top" create="true" string="维保项目">
|
||||
<field name="sequence"/>
|
||||
<field name="name"/>
|
||||
<field name="maintenance_standards"/>
|
||||
<field name="cycle"/>
|
||||
<field name="device_unit"/>
|
||||
</tree>
|
||||
</field>
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
|
||||
@@ -20,14 +20,12 @@
|
||||
|
||||
<notebook>
|
||||
<page string="维保标准" attrs="{'invisible': [('equipment_maintenance_id', '=', False)]}">
|
||||
<group>
|
||||
<field name="maintenance_standards" widget="ony2many">
|
||||
<tree create="False" string="维保项目">
|
||||
<tree create="False">
|
||||
<field name="name"/>
|
||||
<field name="maintenance_standards"/>
|
||||
</tree>
|
||||
</field>
|
||||
</group>
|
||||
|
||||
</page>
|
||||
</notebook>
|
||||
|
||||
@@ -17,17 +17,22 @@
|
||||
<field name="model">maintenance.equipment</field>
|
||||
<field name="inherit_id" ref="maintenance.hr_equipment_view_form"/>
|
||||
<field name="arch" type="xml">
|
||||
|
||||
<data>
|
||||
<xpath expr="//sheet" position="before">
|
||||
<!-- <button type="object" class="oe_highlight" name='enroll_machine_tool' string="机床注册"/>-->
|
||||
<field name="state_zc" widget="radio" options="{'horizontal': true}"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='maintenance_team_id']" position="before">
|
||||
<field name="machine_tool_picture" widget="image"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='category_id']" position="after">
|
||||
<field name="code" readonly="1"/>
|
||||
<field name="equipment_type"/>
|
||||
|
||||
<field name="type_id" attrs="{'invisible': [('equipment_type', '!=', '机床')]}" required="1"/>
|
||||
<field name="brand_id" attrs="{'invisible': [('type_id', '=', False)]}"
|
||||
<field name="state" widget="radio" options="{'horizontal': true}"/>
|
||||
<field name="equipment_type" invisible="1"/>
|
||||
<field name="brand_id" attrs="{'invisible': [('equipment_type', '!=', '机床')]}"
|
||||
force_save="1"/>
|
||||
<field name="type_id" attrs="{'invisible': [('equipment_type', '!=', '机床')]}" required="1" domain="[('brand_id', '=', brand_id)]"/>
|
||||
<field name="machine_tool_category" readonly="1" attrs="{'invisible': [('type_id', '=', False)]}"
|
||||
force_save="1"/>
|
||||
</xpath>
|
||||
@@ -36,21 +41,55 @@
|
||||
<group string="参数">
|
||||
<group>
|
||||
<field name="control_system_id" options="{'no_create': True}"/>
|
||||
<field name="workbench_L"/>
|
||||
<field name="workbench_W"/>
|
||||
<field name="machine_tool_L"/>
|
||||
<field name="machine_tool_W"/>
|
||||
<field name="machine_tool_H"/>
|
||||
<field name="knife_type"/>
|
||||
<field name="workpiece_load"/>
|
||||
<field name="lead_screw"/>
|
||||
<field name="taper"/>
|
||||
<field name="torque"/>
|
||||
<field name="motor_power"/>
|
||||
|
||||
<field name="number_of_knife_library" options="{'format': false}"/>
|
||||
<label for="workbench_L" string="工作台[mm]"/>
|
||||
<div class="o_address_format">
|
||||
<label for="workbench_L" string="长"/>
|
||||
<field name="workbench_L" class="o_address_zip"
|
||||
options="{'format': false}"/>
|
||||
<span>&nbsp;</span>
|
||||
<label for="workbench_W" string="宽"/>
|
||||
<field name="workbench_W" class="o_address_zip"
|
||||
options="{'format': false}"/>
|
||||
</div>
|
||||
<!-- <field name="workbench_L"/>-->
|
||||
<!-- <field name="workbench_W"/>-->
|
||||
<label for="machine_tool_L" string="机床[mm]"/>
|
||||
<div class="o_address_format">
|
||||
<label for="machine_tool_L" string="长"/>
|
||||
<field name="machine_tool_L" class="o_address_zip"
|
||||
options="{'format': false}"/>
|
||||
<span>&nbsp;</span>
|
||||
<label for="machine_tool_W" string="宽"/>
|
||||
<field name="machine_tool_W" class="o_address_zip"
|
||||
options="{'format': false}"/>
|
||||
<span>&nbsp;</span>
|
||||
<label for="machine_tool_H" string="高"/>
|
||||
<field name="machine_tool_H" class="o_address_zip"
|
||||
options="{'format': false}"/>
|
||||
</div>
|
||||
<!-- <field name="machine_tool_L"/>-->
|
||||
<!-- <field name="machine_tool_W"/>-->
|
||||
<!-- <field name="machine_tool_H"/>-->
|
||||
<label for="taper" string="主轴"/>
|
||||
<div class="o_address_format">
|
||||
<label for="taper" string="锥度(°)"/>
|
||||
<field name="taper" class="o_address_zip"
|
||||
options="{'format': false}"/>
|
||||
<span>&nbsp;</span>
|
||||
<label for="torque" string="点击扭矩(n/m)"/>
|
||||
<field name="torque" class="o_address_zip"
|
||||
options="{'format': false}"/>
|
||||
<span>&nbsp;</span>
|
||||
<label for="motor_power" string="电机功率(kw)"/>
|
||||
<field name="motor_power" class="o_address_zip"
|
||||
options="{'format': false}"/>
|
||||
<label for="motor_power" string="转速(min)"/>
|
||||
<field name="rotate_speed" class="o_address_zip"
|
||||
options="{'format': false}"/>
|
||||
</div>
|
||||
<field name="number_of_axles" widget="radio"
|
||||
options="{'horizontal': true}"/>
|
||||
<field name="heightened_way"/>
|
||||
<label for="x_axis" string="加工行程(mm)"
|
||||
attrs="{'invisible': [('number_of_axles', '=', False)]}"/>
|
||||
<div class="test_model"
|
||||
@@ -79,23 +118,28 @@
|
||||
attrs="{'invisible': [('number_of_axles', 'in', ['三轴','四轴'])]}"
|
||||
options="{'format': false}"/>
|
||||
</div>
|
||||
<field name="distance"/>
|
||||
<field name="precision" string="X轴定位精度(mm)"/>
|
||||
|
||||
<!-- <field name="taper"/>-->
|
||||
<!-- <field name="torque"/>-->
|
||||
<!-- <field name="motor_power"/>-->
|
||||
</group>
|
||||
<group>
|
||||
<field name="heightened_way"/>
|
||||
<field name="knife_type"/>
|
||||
<field name="number_of_knife_library" options="{'format': false}"/>
|
||||
<field name="tool_quality_max"/>
|
||||
<field name="tool_long_max"/>
|
||||
<field name="tool_diameter_max"/>
|
||||
<field name="tool_speed"/>
|
||||
<field name="guide_rail"/>
|
||||
|
||||
<field name="feed_speed"/>
|
||||
<field name="tool_speed"/>
|
||||
<field name="distance"/>
|
||||
<field name="rotate_speed" string="主轴转速(min)"
|
||||
options="{'format': false}"/>
|
||||
<field name="precision" string="X轴定位精度(mm)(mm)"/>
|
||||
|
||||
<field name="workpiece_load"/>
|
||||
<field name="lead_screw"/>
|
||||
</group>
|
||||
</group>
|
||||
|
||||
</page>
|
||||
<page string="其他" attrs="{'invisible': [('type_id', '=', False)]}">
|
||||
<group string="其他">
|
||||
@@ -115,8 +159,8 @@
|
||||
|
||||
<xpath expr="//div[@class='o_row'][field[@name='maintenance_duration']]" position="after">
|
||||
|
||||
<field name='overhaul_id'/>
|
||||
|
||||
<field name='overhaul_id'/>
|
||||
<field name="overhaul_date" string="下次预防检修"/>
|
||||
<label for="overhaul_period" string="预防检修频次"/>
|
||||
<div class="o_row">
|
||||
@@ -200,15 +244,15 @@
|
||||
|
||||
<menuitem
|
||||
id="menu_equipment_form1"
|
||||
name="设备"
|
||||
name="设备清单"
|
||||
parent="maintenance.menu_m_request"
|
||||
action="hr_equipment_action1"
|
||||
groups="maintenance.group_equipment_manager,base.group_user"
|
||||
sequence="2"/>
|
||||
|
||||
<!-- <record id="maintenance.hr_equipment_action" model="ir.actions.act_window">-->
|
||||
<!-- <field name="active">False</field>-->
|
||||
<!-- </record>-->
|
||||
<!-- <record id="maintenance.hr_equipment_action" model="ir.actions.act_window">-->
|
||||
<!-- <field name="active">False</field>-->
|
||||
<!-- </record>-->
|
||||
|
||||
|
||||
<!-- <menuitem-->
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
'data/stock_data.xml',
|
||||
'security/group_security.xml',
|
||||
'security/ir.model.access.csv',
|
||||
'views/mrp_production_addional_change.xml',
|
||||
'report/tray_report.xml',
|
||||
# 'views/mrp_maintenance_views.xml',
|
||||
'views/mrp_routing_workcenter_view.xml',
|
||||
@@ -42,6 +43,14 @@
|
||||
],
|
||||
'qweb': [
|
||||
],
|
||||
'assets': {
|
||||
'web.assets_backend': [
|
||||
'sf_manufacturing/static/src/js/kanban_change.js',
|
||||
'sf_manufacturing/static/src/scss/kanban_change.scss',
|
||||
'sf_manufacturing/static/src/xml/kanban_change.xml',
|
||||
],
|
||||
|
||||
},
|
||||
'license': 'LGPL-3',
|
||||
'installable': True,
|
||||
'application': False,
|
||||
|
||||
@@ -147,7 +147,8 @@ class ResProductMo(models.Model):
|
||||
fixture_maximum_carrying_weight = fields.Float(string="最大承载重量[kg]", digits=(16, 4))
|
||||
fixture_maximum_clamping_force = fields.Integer(string="最大夹持力[n]", size=8)
|
||||
fixture_driving_way = fields.Char(string="驱动方式")
|
||||
fixture_apply_machine_tool_type_id = fields.Many2one('sf.machine_tool.type', string="适用机床型号")
|
||||
fixture_apply_machine_tool_type_ids = fields.Many2many('sf.machine_tool.type', 'rel_product_machine_tool_type',
|
||||
string="适用机床型号")
|
||||
fixture_through_hole_size = fields.Integer(string="过孔大小[mm]", size=6)
|
||||
fixture_screw_size = fields.Integer(string="螺牙大小[mm]", size=6)
|
||||
|
||||
@@ -205,7 +206,7 @@ class ResProductMo(models.Model):
|
||||
item.fixture_clamp_workpiece_width_max = item.fixture_model_id.clamp_workpiece_width_max
|
||||
item.fixture_clamp_workpiece_height_max = item.fixture_model_id.clamp_workpiece_height_max
|
||||
item.fixture_clamp_workpiece_diameter_max = item.fixture_model_id.clamp_workpiece_diameter_max
|
||||
item.fixture_apply_machine_tool_type_id = item.fixture_model_id.apply_machine_tool_type_id.id
|
||||
item.fixture_apply_machine_tool_type_id = self._get_ids(item.fixture_model_id.apply_machine_tool_type_ids)
|
||||
|
||||
@api.onchange('cutting_tool_model_id')
|
||||
def _onchange_cutting_tool_model_id(self):
|
||||
|
||||
46
sf_manufacturing/views/mrp_production_addional_change.xml
Normal file
46
sf_manufacturing/views/mrp_production_addional_change.xml
Normal file
@@ -0,0 +1,46 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data>
|
||||
<record id="custom_mrp_production_tree_view" model="ir.ui.view">
|
||||
<field name="name">custom.mrp.production.tree</field>
|
||||
<field name="model">mrp.production</field>
|
||||
<field name="inherit_id" ref="mrp.mrp_production_tree_view"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='product_id']" position="replace"/>
|
||||
<xpath expr="//field[@name='product_qty']" position="replace"/>
|
||||
<xpath expr="//field[@name='product_uom_id']" position="replace"/>
|
||||
<xpath expr="//field[@name='reservation_state']" position="replace"/>
|
||||
<xpath expr="//field[@name='date_deadline']" position="replace"/>
|
||||
<xpath expr="//field[@name='name']" position="after">
|
||||
<field name="product_id" readonly="1" optional="show"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='product_id']" position="after">
|
||||
<field name="product_qty" sum="Total Qty" string="数量" readonly="1" optional="show"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='product_qty']" position="after">
|
||||
<field name="product_uom_id" string="计量单位" options="{'no_open':True,'no_create':True}" groups="uom.group_uom" optional="show"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='date_planned_start']" position="after">
|
||||
<field name="date_deadline" widget="remaining_days" attrs="{'invisible': [('state', 'in', ['done', 'cancel'])]}" optional="show"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='production_real_duration']" position="after">
|
||||
<field name="reservation_state" optional="hide" decoration-danger="reservation_state == 'confirmed'" decoration-success="reservation_state == 'assigned'"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='activity_ids']" position="replace">
|
||||
<field name="activity_ids" string="下一个活动" widget="list_activity" optional="hide"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='origin']" position="replace">
|
||||
<field name="origin" optional="hide"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='components_availability']" position="replace">
|
||||
<field name="components_availability" options='{"lazy": true}'
|
||||
attrs="{'invisible': [('state', 'not in', ['confirmed', 'progress'])]}"
|
||||
optional="hide"
|
||||
decoration-success="reservation_state == 'assigned' or components_availability_state == 'available'"
|
||||
decoration-warning="reservation_state != 'assigned' and components_availability_state in ('expected', 'available')"
|
||||
decoration-danger="reservation_state != 'assigned' and components_availability_state == 'late'"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
</data>
|
||||
</odoo>
|
||||
@@ -56,7 +56,7 @@
|
||||
</field>
|
||||
</record>
|
||||
<record id="mrp_workcenter_kanban_action1" model="ir.actions.act_window">
|
||||
<field name="name">工作中心看板</field>
|
||||
<field name="name">生产线驾驶舱</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">mrp.workcenter</field>
|
||||
<field name="view_mode">kanban,form</field>
|
||||
@@ -76,7 +76,7 @@
|
||||
</record>
|
||||
|
||||
<menuitem id="menu_mrp_dashboard"
|
||||
name="工作中心看板"
|
||||
name="生产线驾驶舱"
|
||||
action="mrp_workcenter_kanban_action1"
|
||||
groups="mrp.group_mrp_routings"
|
||||
parent="mrp.menu_mrp_root"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -2,8 +2,12 @@
|
||||
<odoo>
|
||||
<data>
|
||||
<record id="mrp.menu_mrp_manufacturing" model="ir.ui.menu">
|
||||
<field name="name">计划管理</field>
|
||||
<field name="name">Operations1</field>
|
||||
</record>
|
||||
<record id="mrp.menu_mrp_routing_action" model="ir.ui.menu">
|
||||
<field name="name">Process</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="mrp_workorder.mrp_workorder_menu_planning" model="ir.ui.menu">
|
||||
<field name="name">工单计划</field>
|
||||
|
||||
4
sf_quality/__init__.py
Normal file
4
sf_quality/__init__.py
Normal file
@@ -0,0 +1,4 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from . import models
|
||||
34
sf_quality/__manifest__.py
Normal file
34
sf_quality/__manifest__.py
Normal file
@@ -0,0 +1,34 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
{
|
||||
'name': '机企猫智能工厂 质量管理',
|
||||
'version': '1.0',
|
||||
'summary': 'sf_quality',
|
||||
'sequence': 16,
|
||||
'description': """
|
||||
这是一个用于机企猫质量管理的模块
|
||||
====================
|
||||
""",
|
||||
'category': 'sf',
|
||||
'author': 'jikimo',
|
||||
'website': 'https://sf.cs.jikimo.com',
|
||||
# 此处依赖sf_manufacturing是因为我要重写其中的一个字段operation_id的string,故需要sf_manufacturing先安装
|
||||
'depends': ['quality_control', 'sf_manufacturing'],
|
||||
'data': [
|
||||
'views/view.xml'
|
||||
],
|
||||
|
||||
'assets': {
|
||||
|
||||
'web.assets_qweb': [
|
||||
],
|
||||
'web.assets_backend': [
|
||||
],
|
||||
|
||||
},
|
||||
|
||||
'installable': True,
|
||||
'application': True,
|
||||
# 'auto_install': False,
|
||||
'license': 'LGPL-3',
|
||||
}
|
||||
4
sf_quality/models/__init__.py
Normal file
4
sf_quality/models/__init__.py
Normal file
@@ -0,0 +1,4 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from . import custom_quality
|
||||
15
sf_quality/models/custom_quality.py
Normal file
15
sf_quality/models/custom_quality.py
Normal file
@@ -0,0 +1,15 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from odoo import models, fields, api, _
|
||||
|
||||
|
||||
class SfQualityPoint(models.Model):
|
||||
_inherit = 'quality.point'
|
||||
|
||||
product_ids = fields.Many2many(
|
||||
'product.product', string='适用产品',
|
||||
domain="[('type', 'in', ('product', 'consu')), '|', ('company_id', '=', False), ('company_id', '=', company_id)]",
|
||||
help="Quality Point will apply to every selected Products.")
|
||||
# picking_type_ids = fields.Many2many(
|
||||
# 'stock.picking.type', string='执行节点', required=True, check_company=True)
|
||||
|
||||
|
||||
0
sf_quality/security/ir.model.access.csv
Normal file
0
sf_quality/security/ir.model.access.csv
Normal file
|
|
34
sf_quality/views/view.xml
Normal file
34
sf_quality/views/view.xml
Normal file
@@ -0,0 +1,34 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
|
||||
<record id="quality.quality_alert_view_tree" model="ir.ui.view">
|
||||
<field name="name">quality.alert.view.tree</field>
|
||||
<field name="model">quality.alert</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree sample="1">
|
||||
<field name="name" decoration-bf="1"/>
|
||||
<field name="product_tmpl_id" optional="show"/>
|
||||
<field name="product_id" optional="hide"/>
|
||||
<field name="lot_id" optional="hide"/>
|
||||
<field name="team_id" optional="hide"/> <!-- Change show to hide -->
|
||||
<field name="user_id" optional="hide" widget='many2one_avatar_user'/> <!-- Change show to hide -->
|
||||
<field name="tag_ids" optional="hide" widget="many2many_tags"/>
|
||||
<field name="reason_id" optional="hide"/>
|
||||
<field name="priority" optional="hide"/>
|
||||
<field name="date_assign" optional="show"/>
|
||||
<field name="partner_id" optional="hide"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="quality_control.quality_alert_action_check" model="ir.actions.act_window">
|
||||
<field name="name">质量缺陷单</field>
|
||||
<field name="res_model">quality.alert</field>
|
||||
<field name="view_mode">kanban,tree,form,pivot,graph,calendar</field>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_smiling_face">
|
||||
Create a new quality alert
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -10,7 +10,7 @@
|
||||
""",
|
||||
'category': 'sf',
|
||||
'website': 'https://www.sf.jikimo.com',
|
||||
'depends': ['account', 'sf_base', 'mrp'],
|
||||
'depends': ['account', 'sf_base', 'mrp', 'sf_manufacturing'],
|
||||
'data': [
|
||||
#'security/group_security.xml',
|
||||
'security/ir.model.access.csv',
|
||||
|
||||
@@ -123,20 +123,20 @@ class FunctionalToolWarning(models.Model):
|
||||
image = fields.Binary('图片', readonly=True)
|
||||
|
||||
# 功能刀具预警 特有字段
|
||||
install_tool_time = fields.Char("装刀时间", readonly=True)
|
||||
outbound_time = fields.Char('出库时间', readonly=True)
|
||||
on_board_time = fields.Char('上机时间', readonly=True)
|
||||
machine_tool_code = fields.Char('机台号', readonly=True)
|
||||
cutting_tool_code = fields.Char('刀位号', readonly=True)
|
||||
idle_time = fields.Char('闲置时长', readonly=True)
|
||||
alarm_value = fields.Char('报警值', readonly=True)
|
||||
used_value = fields.Char('已使用值', readonly=True)
|
||||
alarm_type = fields.Char('报警类型', readonly=True)
|
||||
alarm_time = fields.Char('报警时间', readonly=True)
|
||||
dispose_user = fields.Char('处理人', readonly=True)
|
||||
dispose_time = fields.Char('处理时间', readonly=True)
|
||||
dispose_func = fields.Char('处理方法/措施', readonly=True)
|
||||
remark = fields.Char('备注', readonly=True)
|
||||
install_tool_time = fields.Char("装刀时间", readonly=False)
|
||||
outbound_time = fields.Char('出库时间', readonly=False)
|
||||
on_board_time = fields.Char('上机时间', readonly=False)
|
||||
machine_tool_code = fields.Char('机台号', readonly=False)
|
||||
cutting_tool_code = fields.Char('刀位号', readonly=False)
|
||||
idle_time = fields.Char('闲置时长', readonly=False)
|
||||
alarm_value = fields.Char('报警值', readonly=False)
|
||||
used_value = fields.Char('已使用值', readonly=False)
|
||||
alarm_type = fields.Char('报警类型', readonly=False)
|
||||
alarm_time = fields.Char('报警时间', readonly=False)
|
||||
dispose_user = fields.Char('处理人', readonly=False)
|
||||
dispose_time = fields.Char('处理时间', readonly=False)
|
||||
dispose_func = fields.Char('处理方法/措施', readonly=False)
|
||||
remark = fields.Char('备注', readonly=False)
|
||||
|
||||
@api.onchange('functional_cutting_tool_id')
|
||||
def onchange_functional_cutting_tool_id(self):
|
||||
@@ -197,16 +197,16 @@ class RealTimeDistributionOfFunctionalTools(models.Model):
|
||||
image = fields.Binary('图片', readonly=True)
|
||||
|
||||
# 功能刀具实时分布
|
||||
tool_stock_num = fields.Char(string='刀具房库存数量', readonly=True)
|
||||
side_shelf_num = fields.Char(string='线边货架货架数量', readonly=True)
|
||||
on_tool_stock_num = fields.Char(string='机内刀库库存数量', readonly=True)
|
||||
tool_stock_total = fields.Char(string='合计', readonly=True)
|
||||
return_reuse_num_re = fields.Char(string='归还再用数量(精)', readonly=True)
|
||||
return_reuse_num_co = fields.Char(string='归还再用数量(粗)', readonly=True)
|
||||
return_processing_num = fields.Char(string='归还需磨削数量', readonly=True)
|
||||
return_total = fields.Char(string='合计', readonly=True)
|
||||
total = fields.Char(string='总计', readonly=True)
|
||||
remark = fields.Char(string='备注/说明', readonly=True)
|
||||
tool_stock_num = fields.Char(string='刀具房库存数量', readonly=False)
|
||||
side_shelf_num = fields.Char(string='线边货架货架数量', readonly=False)
|
||||
on_tool_stock_num = fields.Char(string='机内刀库库存数量', readonly=False)
|
||||
tool_stock_total = fields.Char(string='合计', readonly=False)
|
||||
return_reuse_num_re = fields.Char(string='归还再用数量(精)', readonly=False)
|
||||
return_reuse_num_co = fields.Char(string='归还再用数量(粗)', readonly=False)
|
||||
return_processing_num = fields.Char(string='归还需磨削数量', readonly=False)
|
||||
return_total = fields.Char(string='合计', readonly=False)
|
||||
total = fields.Char(string='总计', readonly=False)
|
||||
remark = fields.Char(string='备注/说明', readonly=False)
|
||||
|
||||
|
||||
class InboundAndOutboundRecordsOfFunctionalTools(models.Model):
|
||||
@@ -263,25 +263,25 @@ class InboundAndOutboundRecordsOfFunctionalTools(models.Model):
|
||||
image = fields.Binary('图片', readonly=True)
|
||||
|
||||
# 功能刀具出入库记录 特有字段
|
||||
thickness = fields.Selection([('1', '粗'), ('2', '中'), ('3', '精')], string='粗/中/精', readonly=True)
|
||||
max_life_span = fields.Char(string='最大寿命值', readonly=True)
|
||||
alarm_value = fields.Char(string='报警值', readonly=True)
|
||||
used_value = fields.Char(string='已使用值', readonly=True)
|
||||
current_state = fields.Char(string='当前状态', readonly=True)
|
||||
current_store_area = fields.Char(string='当前库区', readonly=True)
|
||||
current_store_place = fields.Char(string='当前库位', readonly=True)
|
||||
number = fields.Integer(string='数量', readonly=True)
|
||||
reason_application = fields.Char(string='申请原因', readonly=True)
|
||||
applicant = fields.Char(string='申请人', readonly=True)
|
||||
return_staff = fields.Char(string='归还人', readonly=True)
|
||||
return_time = fields.Date(string='归还入库时间', readonly=True)
|
||||
tool_state = fields.Char(string="刀具状态", readonly=True)
|
||||
tool_install_staff = fields.Char(string='装刀人', readonly=True)
|
||||
tool_install_time = fields.Datetime(string='装刀时间', readonly=True)
|
||||
receive_equipment = fields.Char(string='领用机台', readonly=True)
|
||||
receive_staff = fields.Char(string='领用人', readonly=True)
|
||||
receive_time = fields.Char(string='领用出库时间', readonly=True)
|
||||
remark = fields.Text(string='备注/说明', readonly=True)
|
||||
thickness = fields.Selection([('1', '粗'), ('2', '中'), ('3', '精')], string='粗/中/精', readonly=False)
|
||||
max_life_span = fields.Char(string='最大寿命值', readonly=False)
|
||||
alarm_value = fields.Char(string='报警值', readonly=False)
|
||||
used_value = fields.Char(string='已使用值', readonly=False)
|
||||
current_state = fields.Char(string='当前状态', readonly=False)
|
||||
current_store_area = fields.Char(string='当前库区', readonly=False)
|
||||
current_store_place = fields.Char(string='当前库位', readonly=False)
|
||||
number = fields.Integer(string='数量', readonly=False)
|
||||
reason_application = fields.Char(string='申请原因', readonly=False)
|
||||
applicant = fields.Char(string='申请人', readonly=False)
|
||||
return_staff = fields.Char(string='归还人', readonly=False)
|
||||
return_time = fields.Date(string='归还入库时间', readonly=False)
|
||||
tool_state = fields.Char(string="刀具状态", readonly=False)
|
||||
tool_install_staff = fields.Char(string='装刀人', readonly=False)
|
||||
tool_install_time = fields.Datetime(string='装刀时间', readonly=False)
|
||||
receive_equipment = fields.Char(string='领用机台', readonly=False)
|
||||
receive_staff = fields.Char(string='领用人', readonly=False)
|
||||
receive_time = fields.Char(string='领用出库时间', readonly=False)
|
||||
remark = fields.Text(string='备注/说明', readonly=False)
|
||||
|
||||
|
||||
class MachineTableToolChangingApply(models.Model):
|
||||
@@ -294,37 +294,43 @@ class MachineTableToolChangingApply(models.Model):
|
||||
# string='换刀需求信息',
|
||||
# attrs="{'invisible': 1}")
|
||||
|
||||
name = fields.Char(string='CNC机床', readonly="True")
|
||||
# todo 机床类型和刀位号 为 Many2one
|
||||
machine_table_type = fields.Char(string='机床类型', readonly="True")
|
||||
name = fields.Many2one('sf.machine_tool', string='CNC机床', readonly=False)
|
||||
machine_table_type_id = fields.Many2one('sf.machine_tool.category', string='机床类型', readonly=False)
|
||||
machine_tool_code = fields.Char(string='机台号', attrs="{'invisible': 1}")
|
||||
cutter_spacing_code = fields.Char(string='刀位号', readonly="True")
|
||||
functional_tool_code = fields.Char(string='功能刀具编码', readonly="True")
|
||||
functional_tool_name = fields.Char(string='功能刀具名称', readonly="True")
|
||||
# todo 功能刀具类型为 Many2one
|
||||
functional_tool_type = fields.Char(string='功能刀具类型', readonly="True")
|
||||
diameter = fields.Char(string='直径', readonly="True")
|
||||
coarse_middle_thin = fields.Selection([("1", "粗"), ('2', '中'), ('3', '精')], string='粗/中/精', readonly="True")
|
||||
hilt_name = fields.Char(string='刀柄名称', readonly="True")
|
||||
hilt_code = fields.Char(string='刀柄编号', readonly="True")
|
||||
max_lifetime_value = fields.Char(string='最大寿命值', readonly="True")
|
||||
alarm_value = fields.Char(string='报警值', readonly="True")
|
||||
used_value = fields.Char(string='已使用值', readonly="True")
|
||||
functional_tool_status = fields.Selection([('正常', '正常'), ('异常', '异常')], string='功能刀具状态', default='正常', readonly="True")
|
||||
cutter_spacing_code = fields.Char(string='刀位号', readonly=False)
|
||||
functional_tool_code = fields.Char(string='功能刀具编码', readonly=True, compute='_compute_functional_tool_name_id')
|
||||
functional_tool_name_id = fields.Many2one('sf.functional.cutting.tool', string='功能刀具名称', readonly=False)
|
||||
functional_tool_type_id = fields.Many2one('sf.functional.cutting.tool.model',string='功能刀具类型', readonly=True, compute='_compute_functional_tool_name_id')
|
||||
diameter = fields.Char(string='直径', readonly=False)
|
||||
coarse_middle_thin = fields.Selection([("1", "粗"), ('2', '中'), ('3', '精')], string='粗/中/精', readonly=False)
|
||||
hilt_name = fields.Char(string='刀柄名称', readonly=False)
|
||||
hilt_code = fields.Char(string='刀柄编号', readonly=False)
|
||||
max_lifetime_value = fields.Char(string='最大寿命值', readonly=False)
|
||||
alarm_value = fields.Char(string='报警值', readonly=False)
|
||||
used_value = fields.Char(string='已使用值', readonly=False)
|
||||
functional_tool_status = fields.Selection([('正常', '正常'), ('异常', '异常')], string='功能刀具状态', default='正常', readonly=False)
|
||||
|
||||
replacement_tool_code = fields.Char(string='待换刀具编码', readonly="True")
|
||||
replacement_tool_name = fields.Char(string='待换刀具名称', readonly="True")
|
||||
replacement_tool_type = fields.Char(string='待换刀具类型', readonly="True")
|
||||
replacement_tool_code = fields.Char(string='待换刀具编码', readonly=True)
|
||||
replacement_tool_name_id = fields.Many2one('sf.functional.cutting.tool', string='待换刀具名称', readonly=True)
|
||||
replacement_tool_type_id = fields.Many2one('sf.functional.cutting.tool.model', string='待换刀具类型', readonly=True)
|
||||
replacement_tool_coarse_middle_thin = fields.Selection([("1", "粗"), ('2', '中'), ('3', '精')],
|
||||
string='粗/中/精', readonly="True")
|
||||
new_former = fields.Selection([('0', '新'), ('1', '旧')], string='新/旧', readonly="True")
|
||||
applicant = fields.Char(string='申请人', readonly="True")
|
||||
used_tool_time = fields.Datetime(string='用刀时间', readonly="True")
|
||||
reason_for_applying = fields.Char(string='申请原因', readonly="True")
|
||||
remark = fields.Char(string='备注说明', readonly="True")
|
||||
string='粗/中/精', readonly=True)
|
||||
new_former = fields.Selection([('0', '新'), ('1', '旧')], string='新/旧', readonly=True)
|
||||
applicant = fields.Char(string='申请人', readonly=True)
|
||||
used_tool_time = fields.Datetime(string='用刀时间', readonly=True)
|
||||
reason_for_applying = fields.Char(string='申请原因', readonly=True)
|
||||
remark = fields.Char(string='备注说明', readonly=False)
|
||||
|
||||
status = fields.Selection([('0', '未操作'), ('1', '已换刀申请'), ('2', '已转移')], string='操作状态', default='0')
|
||||
|
||||
@api.depends('functional_tool_name_id')
|
||||
def _compute_functional_tool_name_id(self):
|
||||
for record in self:
|
||||
if record:
|
||||
record.functional_tool_code = record.functional_tool_name_id.code
|
||||
record.functional_tool_type_id = record.functional_tool_name_id.mrs_cutting_tool_type_id.id
|
||||
|
||||
|
||||
@api.onchange('functional_tool_status')
|
||||
def automation_apply_for_tool_change(self):
|
||||
"""
|
||||
@@ -335,10 +341,10 @@ class MachineTableToolChangingApply(models.Model):
|
||||
# todo 自动换刀申请条件需补充完善
|
||||
if(self.functional_tool_status == '异常'):
|
||||
self.env['sf.machine.table.tool.changing.apply'].search([
|
||||
('name', '=', self.name)]).write({
|
||||
('name', '=', self.name.id)]).write({
|
||||
'replacement_tool_code': self.functional_tool_code,
|
||||
'replacement_tool_name': self.functional_tool_name,
|
||||
'replacement_tool_type': self.functional_tool_type,
|
||||
'replacement_tool_name_id': self.functional_tool_name_id.id,
|
||||
'replacement_tool_type_id': self.functional_tool_type_id.id,
|
||||
'replacement_tool_coarse_middle_thin': self.coarse_middle_thin,
|
||||
'new_former': '0',
|
||||
'applicant': '自动申请',
|
||||
@@ -351,8 +357,8 @@ class MachineTableToolChangingApply(models.Model):
|
||||
# 新建组装任务
|
||||
self.env['sf.functional.tool.assembly'].create({
|
||||
'functional_tool_code': self.functional_tool_code,
|
||||
'name': self.functional_tool_name,
|
||||
'functional_tool_type': self.functional_tool_type,
|
||||
'name': self.functional_tool_name_id,
|
||||
'functional_tool_type_id': self.functional_tool_type_id.id,
|
||||
'functional_tool_diameter': self.diameter,
|
||||
'loading_task_source': '1',
|
||||
'applicant': '自动申请',
|
||||
@@ -384,11 +390,16 @@ class MachineTableToolChangingApply(models.Model):
|
||||
换刀申请撤回按键
|
||||
:return:
|
||||
"""
|
||||
# 撤回功能刀具组装创建的任务
|
||||
self.env['sf.functional.tool.assembly'].search(
|
||||
[('functional_tool_code', '=', self.replacement_tool_code),
|
||||
('loading_task_source', '=', '1')]).unlink()
|
||||
|
||||
# 撤回数据更新
|
||||
self.env['sf.machine.table.tool.changing.apply'].search([('name', '=', self.name)]).write({
|
||||
self.env['sf.machine.table.tool.changing.apply'].search([('name', '=', self.name.id)]).write({
|
||||
'replacement_tool_code': None,
|
||||
'replacement_tool_name': None,
|
||||
'replacement_tool_type': None,
|
||||
'replacement_tool_name_id': None,
|
||||
'replacement_tool_type_id': None,
|
||||
'replacement_tool_coarse_middle_thin': None,
|
||||
'new_former': None,
|
||||
'applicant': None,
|
||||
@@ -398,10 +409,6 @@ class MachineTableToolChangingApply(models.Model):
|
||||
'status': '0'
|
||||
})
|
||||
|
||||
# 撤回功能刀具组装创建新任务
|
||||
self.env['sf.functional.tool.assembly'].search(
|
||||
[('functional_tool_code', '=', self.functional_tool_code)]).unlink()
|
||||
|
||||
|
||||
def revocation_2(self):
|
||||
"""
|
||||
@@ -409,7 +416,7 @@ class MachineTableToolChangingApply(models.Model):
|
||||
:return:
|
||||
"""
|
||||
self.env['sf.machine.table.tool.changing.apply'].search(
|
||||
[('name', '=', self.name)]).write({
|
||||
[('name', '=', self.name.id)]).write({
|
||||
'status': '0'
|
||||
})
|
||||
|
||||
@@ -418,66 +425,72 @@ class CAMWorkOrderProgramKnifePlan(models.Model):
|
||||
_name = 'sf.cam.work.order.program.knife.plan'
|
||||
_description = 'CAM工单程序用刀计划'
|
||||
|
||||
name = fields.Char(string='工单任务编号', readonly=True)
|
||||
cam_procedure_code = fields.Char(string='CAM程序编号', readonly=True)
|
||||
cam_cutter_spacing_code = fields.Char(string='CAM刀位号', readonly=True)
|
||||
functional_tool_code = fields.Char(string='功能刀具编码', readonly=True)
|
||||
functional_tool_name = fields.Char(string='功能刀具名称', readonly=True)
|
||||
functional_tool_type = fields.Char(string='功能刀具类型', readonly=True)
|
||||
machine_table_name = fields.Char(string='机床名称', readonly=True)
|
||||
machine_tool_cutter_spacing_code = fields.Char(string='机床刀位号', readonly=True)
|
||||
diameter = fields.Char(string='直径(程式)', readonly=True)
|
||||
tool_loading_length = fields.Char(string='装刀长', readonly=True)
|
||||
clearance_length = fields.Char(string='避空长', readonly=True)
|
||||
tool_included_angle = fields.Char(string='刀尖角(R角)', readonly=True)
|
||||
L_D = fields.Char(string='L/D', readonly=True)
|
||||
coarse_middle_thin = fields.Selection([("1", "粗"), ('2', '中'), ('3', '精')], string='粗/中/精', readonly=True)
|
||||
required_cutting_time = fields.Char(string='需要切割时间', readonly=True)
|
||||
whether_standard_tool = fields.Boolean(string='是否标准刀', readonly=True)
|
||||
need_knife_time = fields.Datetime(string='需要用刀时间', readonly=True)
|
||||
name = fields.Char(string='工单任务编号', readonly=False)
|
||||
cam_procedure_code = fields.Char(string='CAM程序编号', readonly=False)
|
||||
cam_cutter_spacing_code = fields.Char(string='CAM刀位号', readonly=False)
|
||||
functional_tool_code = fields.Char(string='功能刀具编码', readonly=False)
|
||||
functional_tool_name_id = fields.Many2one('sf.functional.cutting.tool', string='功能刀具名称', readonly=False)
|
||||
functional_tool_type_id = fields.Many2one('sf.functional.cutting.tool.model', string='功能刀具类型', readonly=False)
|
||||
machine_table_name_id = fields.Many2one('sf.machine_tool', string='机床名称', readonly=False)
|
||||
machine_tool_cutter_spacing_code = fields.Char(string='机床刀位号', readonly=False)
|
||||
diameter = fields.Char(string='直径(程式)', readonly=False)
|
||||
tool_loading_length = fields.Char(string='装刀长', readonly=False)
|
||||
clearance_length = fields.Char(string='避空长', readonly=False)
|
||||
tool_included_angle = fields.Char(string='刀尖角(R角)', readonly=False)
|
||||
L_D = fields.Char(string='L/D', readonly=False)
|
||||
coarse_middle_thin = fields.Selection([("1", "粗"), ('2', '中'), ('3', '精')], string='粗/中/精', readonly=False)
|
||||
required_cutting_time = fields.Char(string='需要切割时间', readonly=False)
|
||||
whether_standard_tool = fields.Boolean(string='是否标准刀', readonly=False)
|
||||
need_knife_time = fields.Datetime(string='需要用刀时间', readonly=False)
|
||||
plan_execute_status = fields.Selection([('0', '待下发'), ('1', '执行中'), ('2', '已完成')],
|
||||
string='计划执行状态', default='0', readonly=True)
|
||||
string='计划执行状态', default='0', readonly=False)
|
||||
applicant = fields.Char(string='申请人', readonly=True)
|
||||
reason_for_applying = fields.Char(string='申请原因', readonly=True)
|
||||
remark = fields.Char(string='备注说明', readonly=True)
|
||||
reason_for_applying = fields.Char(string='申请原因', readonly=False)
|
||||
remark = fields.Char(string='备注说明', readonly=False)
|
||||
|
||||
def automation_apply_for_tooling(self):
|
||||
def apply_for_tooling(self):
|
||||
"""
|
||||
自动申请装刀
|
||||
申请装刀
|
||||
:return:
|
||||
"""
|
||||
self.env['sf.functional.tool.assembly'].create({
|
||||
'functional_tool_code': self.functional_tool_code,
|
||||
'name': self.functional_tool_name,
|
||||
'functional_tool_type': self.functional_tool_type,
|
||||
'name': self.functional_tool_name_id.id,
|
||||
'functional_tool_type_id': self.functional_tool_type_id.id,
|
||||
'functional_tool_diameter': self.diameter,
|
||||
'functional_tool_length': self.tool_loading_length,
|
||||
'loading_task_source': '0',
|
||||
'coarse_middle_thin': None,
|
||||
'tool_loading_length': None,
|
||||
'applicant': self.applicant,
|
||||
'applicant': self.env.user.name,
|
||||
'reason_for_applying': self.reason_for_applying,
|
||||
'use_tool_time': self.need_knife_time,
|
||||
'machine_tool_name': self.machine_table_name,
|
||||
'machine_tool_name_id': self.machine_table_name_id.id,
|
||||
'machine_tool_code': self.cam_procedure_code,
|
||||
'cutter_spacing_code': self.cam_cutter_spacing_code
|
||||
})
|
||||
|
||||
# 将计划执行状态改为执行中
|
||||
self.env['sf.cam.work.order.program.knife.plan'].search(
|
||||
[('functional_tool_code', '=', self.functional_tool_code)]).write({'plan_execute_status': '1'})
|
||||
[('functional_tool_code', '=', self.functional_tool_code)]).write({'plan_execute_status': '1',
|
||||
'applicant': self.env.user.name})
|
||||
|
||||
|
||||
def revocation(self):
|
||||
"""
|
||||
撤回装刀申请
|
||||
:return:
|
||||
"""
|
||||
|
||||
|
||||
self.env['sf.functional.tool.assembly'].search(
|
||||
[('functional_tool_code', '=', self.functional_tool_code)]).unlink()
|
||||
[('functional_tool_code', '=', self.functional_tool_code),
|
||||
('loading_task_source', '=', '0')]).unlink()
|
||||
|
||||
# 将计划执行状态改为待执行
|
||||
self.env['sf.cam.work.order.program.knife.plan'].search(
|
||||
[('functional_tool_code', '=', self.functional_tool_code)]).write({'plan_execute_status': '0'})
|
||||
[('functional_tool_code', '=', self.functional_tool_code)]).write({'plan_execute_status': '0',
|
||||
'applicant': None})
|
||||
|
||||
|
||||
|
||||
@@ -489,18 +502,57 @@ class FunctionalToolAssembly(models.Model):
|
||||
_order = 'use_tool_time asc'
|
||||
|
||||
functional_tool_code = fields.Char(string='功能刀具编码', readonly=True)
|
||||
name = fields.Char(string='功能刀具名称', readonly=True)
|
||||
functional_tool_type = fields.Char(string='功能刀具类型', readonly=True)
|
||||
name = fields.Many2one('sf.functional.cutting.tool', string='功能刀具名称', readonly=True)
|
||||
functional_tool_type_id = fields.Many2one('sf.functional.cutting.tool.model', string='功能刀具类型', readonly=True)
|
||||
functional_tool_diameter = fields.Char(string='功能刀具直径', readonly=True)
|
||||
functional_tool_length = fields.Char(string='功能刀具伸出长', readonly=True)
|
||||
functional_tool_cutting_type = fields.Char(string='功能刀具切削类型', readonly=True)
|
||||
functional_tool_cutting_type = fields.Char(string='功能刀具切削类型', readonly=False)
|
||||
|
||||
# 整体式刀具型号
|
||||
mrs_cutting_tool_integral_model_ids = fields.Many2many('sf.cutting.tool.model', 'sf_functional_tool_assembly_id',
|
||||
string='整体式刀具型号', readonly=True, domain=
|
||||
[('mrs_cutting_tool_material_name', '=', '整体式刀具')])
|
||||
integral_code = fields.Char('整体式刀具序列号', readonly=True)
|
||||
integral_name = fields.Char('整体式刀具名称', readonly=True)
|
||||
sf_tool_brand_id_1 = fields.Many2one('sf.machine.brand', '整体式刀具品牌', readonly=True)
|
||||
# 刀片型号
|
||||
mrs_cutting_tool_blade_model_ids = fields.Many2many('sf.cutting.tool.model', 'sf_functional_tool_assembly_id',
|
||||
string='刀片型号', readonly=True, domain=
|
||||
[('mrs_cutting_tool_material_name', '=', '刀片')])
|
||||
blade_code = fields.Char('刀片序列号', readonly=True)
|
||||
blade_name = fields.Char('刀片名称', readonly=True)
|
||||
sf_tool_brand_id_2 = fields.Many2one('sf.machine.brand', '刀片品牌', readonly=True)
|
||||
# 刀杆型号
|
||||
mrs_cutting_tool_cutterbar_model_ids = fields.Many2many('sf.cutting.tool.model', 'sf_functional_tool_assembly_id',
|
||||
string='刀杆型号', readonly=True, domain=
|
||||
[('mrs_cutting_tool_material_name', '=', '刀杆')])
|
||||
bar_code = fields.Char('刀杆序列号', readonly=True)
|
||||
bar_name = fields.Char('刀杆名称', readonly=True)
|
||||
sf_tool_brand_id_3 = fields.Many2one('sf.machine.brand', '刀杆品牌', readonly=True)
|
||||
# 刀盘型号
|
||||
mrs_cutting_tool_cutterpad_model_ids = fields.Many2many('sf.cutting.tool.model', 'sf_functional_tool_assembly_id',
|
||||
string='刀盘型号', readonly=True, domain=
|
||||
[('mrs_cutting_tool_material_name', '=', '刀盘')])
|
||||
pad_code = fields.Char('刀盘序列号', readonly=True)
|
||||
pad_name = fields.Char('刀盘名称', readonly=True)
|
||||
sf_tool_brand_id_4 = fields.Many2one('sf.machine.brand', '刀盘品牌', readonly=True)
|
||||
|
||||
# 刀柄型号
|
||||
mrs_cutting_tool_cutterhandle_model_ids = fields.Many2many('sf.cutting.tool.model', 'sf_functional_tool_assembly_id',
|
||||
string='刀柄型号', readonly=True, domain=
|
||||
[('mrs_cutting_tool_material_name', '=', '刀柄')])
|
||||
handle_code = fields.Char('刀柄序列号', readonly=True)
|
||||
handle_name = fields.Char('刀柄名称', readonly=True)
|
||||
sf_tool_brand_id_5 = fields.Many2one('sf.machine.brand', '刀柄品牌', readonly=True)
|
||||
# 夹头型号
|
||||
mrs_cutting_tool_cutterhead_model_ids = fields.Many2many('sf.cutting.tool.model', 'sf_functional_tool_assembly_id',
|
||||
string='夹头型号', readonly=True, domain=
|
||||
[('mrs_cutting_tool_material_name', '=', '夹头')])
|
||||
chuck_code = fields.Char('夹头序列号', readonly=True)
|
||||
chuck_name = fields.Char('夹头名称', readonly=True)
|
||||
sf_tool_brand_id_6 = fields.Many2one('sf.machine.brand', '夹头品牌', readonly=True)
|
||||
|
||||
|
||||
tool_name = fields.Char(string='刀具名称', readonly=True)
|
||||
tool_brand = fields.Char(string='品牌', readonly=True)
|
||||
tool_type = fields.Char(string='型号', readonly=True)
|
||||
knife_handle_name = fields.Char(string='刀柄名称', readonly=True)
|
||||
knife_handle_brand = fields.Char(string='品牌', readonly=True)
|
||||
knife_handle_type = fields.Char(string='型号', readonly=True)
|
||||
coarse_middle_thin = fields.Selection([("1", "粗"), ('2', '中'), ('3', '精')], string='粗/中/精', readonly=True)
|
||||
tool_loading_length = fields.Char(string='装刀长', readonly=True)
|
||||
new_former = fields.Selection([('0', '新'), ('1', '旧')], string='新/旧', readonly=True)
|
||||
@@ -515,8 +567,8 @@ class FunctionalToolAssembly(models.Model):
|
||||
apply_time = fields.Datetime(string='申请时间', default=fields.Datetime.now(), readonly=True)
|
||||
assemble_status = fields.Selection([('0', '待组装'), ('1', '已组装'), ('2', '已出库')],string='组装状态', default='0', readonly=True)
|
||||
use_tool_time = fields.Datetime(string='用刀时间', readonly=True)
|
||||
production_line_name = fields.Char(string='产线名称', readonly=True)
|
||||
machine_tool_name = fields.Char(string='机床名称', readonly=True)
|
||||
production_line_name_id = fields.Many2one('sf.production.line', string='产线名称', readonly=False)
|
||||
machine_tool_name_id = fields.Many2one('sf.machine_tool', string='机床名称', readonly=True)
|
||||
machine_tool_code = fields.Char(string='机台号', readonly=True)
|
||||
cutter_spacing_code = fields.Char(string='刀位号', readonly=True)
|
||||
|
||||
@@ -526,7 +578,7 @@ class FunctionalToolAssembly(models.Model):
|
||||
receive_time = fields.Datetime(string='领用出库时间', readonly=True)
|
||||
remark = fields.Char(string='备注说明', readonly=True)
|
||||
|
||||
check_box_1 = fields.Boolean(string='复选框', default=False, readonly=True)
|
||||
check_box_1 = fields.Boolean(string='复选框', default=False, readonly=False)
|
||||
|
||||
@api.onchange('assemble_status')
|
||||
def check_box(self):
|
||||
@@ -540,15 +592,33 @@ class FunctionalToolAssembly(models.Model):
|
||||
:return:
|
||||
"""
|
||||
self.env['sf.functional.tool.assembly'].search([
|
||||
('machine_tool_name', '=', self.machine_tool_name),
|
||||
('machine_tool_name_id', '=', self.machine_tool_name_id.id),
|
||||
('cutter_spacing_code', '=', self.cutter_spacing_code)
|
||||
]).write({
|
||||
'tool_name': None,
|
||||
'tool_brand': None,
|
||||
'tool_type': None,
|
||||
'knife_handle_name': None,
|
||||
'knife_handle_brand': None,
|
||||
'knife_handle_type': None,
|
||||
'mrs_cutting_tool_integral_model_ids': None,
|
||||
'integral_code': None,
|
||||
'integral_name': None,
|
||||
'sf_tool_brand_id_1': None,
|
||||
'mrs_cutting_tool_blade_model_ids': None,
|
||||
'blade_code': None,
|
||||
'blade_name': None,
|
||||
'sf_tool_brand_id_2': None,
|
||||
'mrs_cutting_tool_cutterbar_model_ids': None,
|
||||
'bar_code': None,
|
||||
'bar_name': None,
|
||||
'sf_tool_brand_id_3': None,
|
||||
'mrs_cutting_tool_cutterpad_model_ids': None,
|
||||
'pad_code': None,
|
||||
'pad_name': None,
|
||||
'sf_tool_brand_id_4': None,
|
||||
'mrs_cutting_tool_cutterhandle_model_ids': None,
|
||||
'handle_code': None,
|
||||
'handle_name': None,
|
||||
'sf_tool_brand_id_5': None,
|
||||
'mrs_cutting_tool_cutterhead_model_ids': None,
|
||||
'chuck_code': None,
|
||||
'chuck_name': None,
|
||||
'sf_tool_brand_id_6': None,
|
||||
'coarse_middle_thin': None,
|
||||
'tool_loading_length': None,
|
||||
'new_former': None,
|
||||
@@ -570,14 +640,13 @@ class FunctionalToolAssembly(models.Model):
|
||||
self.env['sf.delivery.of.cargo.from.storage'].search([]).unlink()
|
||||
|
||||
vals = self.env['sf.functional.tool.assembly'].search([('check_box_1', '=', True),('assemble_status', '=', '1')])
|
||||
|
||||
if vals:
|
||||
for val in vals:
|
||||
self.env['sf.delivery.of.cargo.from.storage'].create({
|
||||
'functional_tool_code': val.functional_tool_code,
|
||||
'name': val.name,
|
||||
'functional_tool_type': val.functional_tool_type,
|
||||
'production_line_name': val.production_line_name,
|
||||
'name': val.name.id,
|
||||
'functional_tool_type_id': val.functional_tool_type_id.id,
|
||||
'production_line_name_id': val.production_line_name_id.id,
|
||||
'machine_tool_code': val.machine_tool_code,
|
||||
'receive_person': val.receive_person,
|
||||
'receive_time': val.receive_time
|
||||
@@ -585,9 +654,9 @@ class FunctionalToolAssembly(models.Model):
|
||||
else:
|
||||
self.env['sf.delivery.of.cargo.from.storage'].create({
|
||||
'functional_tool_code': self.functional_tool_code,
|
||||
'name': self.name,
|
||||
'functional_tool_type': self.functional_tool_type,
|
||||
'production_line_name': self.production_line_name,
|
||||
'name': self.name.id,
|
||||
'functional_tool_type_id': self.functional_tool_type_id.id,
|
||||
'production_line_name_id': self.production_line_name_id.id,
|
||||
'machine_tool_code': self.machine_tool_code,
|
||||
'receive_person': self.receive_person,
|
||||
'receive_time': self.receive_time
|
||||
|
||||
@@ -14,6 +14,9 @@ class SfToolMaterialSearch(models.Model):
|
||||
mrs_cutting_tool_type_id = fields.Many2one(
|
||||
'sf.cutting.tool.type', '刀具类型',
|
||||
domain="[('mrs_cutting_tool_material_id.name', '=', mrs_cutting_tool_material_name)]")
|
||||
# 关联刀具物料名称
|
||||
mrs_cutting_tool_material_name = fields.Char(related='mrs_cutting_tool_material_id.name', string='刀具物料名称',
|
||||
store=True)
|
||||
mrs_machine_brand_id = fields.Many2one('sf.machine.brand', '品牌')
|
||||
# 关联刀具型号
|
||||
# mrs_cutting_tool_model_id = fields.Many2one('sf.cutting.tool.model', '刀具型号')
|
||||
|
||||
@@ -10,7 +10,6 @@ access_sf_machine_table_tool_changing_apply,sf.machine.table.tool.changing.apply
|
||||
|
||||
access_sf_tool_change_requirement_information,sf.tool.change.requirement.information,model_sf_tool_change_requirement_information,base.group_user,1,1,1,1
|
||||
access_sf_tool_transfer_request_information,sf.tool.transfer.request.information,model_sf_tool_transfer_request_information,base.group_user,1,1,1,1
|
||||
access_sf_apply_for_tooling,sf.apply.for.tooling,model_sf_apply_for_tooling,base.group_user,1,1,1,1
|
||||
|
||||
access_sf_functional_tool_assembly,sf.functional.tool.assembly,model_sf_functional_tool_assembly,base.group_user,1,1,1,1
|
||||
access_sf_functional_tool_assembly_order,sf.functional.tool.assembly.order,model_sf_functional_tool_assembly_order,base.group_user,1,1,1,1
|
||||
|
||||
|
@@ -9,14 +9,13 @@
|
||||
<tree string="功能刀具列表">
|
||||
<field name="code" />
|
||||
<field name="name" />
|
||||
<field name="mrs_cutting_tool_type_id"/>
|
||||
<field name="mrs_cutting_tool_type_id" />
|
||||
<field name="mrs_cutting_tool_integral_model_ids" optional="hide"/>
|
||||
<field name="mrs_cutting_tool_blade_model_ids" optional="hide"/>
|
||||
<field name="mrs_cutting_tool_cutterbar_model_ids" optional="hide"/>
|
||||
<field name="mrs_cutting_tool_cutterpad_model_ids" optional="hide"/>
|
||||
<field name="mrs_cutting_tool_cutterhandle_model_ids" optional="hide"/>
|
||||
<field name="mrs_cutting_tool_cutterhead_model_ids" optional="hide"/>
|
||||
<field name="mrs_cutting_tool_type_id" />
|
||||
<field name="image" widget='image'/>
|
||||
</tree>
|
||||
</field>
|
||||
@@ -536,16 +535,44 @@
|
||||
<tree>
|
||||
<field name="name"/>
|
||||
<field name="machine_tool_code" invisible="1"/>
|
||||
<field name="machine_table_type"/>
|
||||
<field name="machine_table_type_id"/>
|
||||
<field name="cutter_spacing_code"/>
|
||||
<field name="functional_tool_name"/>
|
||||
<field name="functional_tool_type"/>
|
||||
<field name="functional_tool_code"/>
|
||||
<field name="functional_tool_name_id"/>
|
||||
<field name="replacement_tool_code"/>
|
||||
<field name="replacement_tool_name"/>
|
||||
<field name="replacement_tool_type"/>
|
||||
<field name="replacement_tool_name_id"/>
|
||||
<field name="applicant"/>
|
||||
<field name="used_tool_time"/>
|
||||
<field name="remark"/>
|
||||
|
||||
<field name="functional_tool_type_id" invisible="True"/>
|
||||
<field name="coarse_middle_thin" invisible="True"/>
|
||||
<field name="status" invisible="True"/>
|
||||
<button string="换刀申请"
|
||||
name="%(sf_tool_management.sf_tool_change_requirement_information_act)d"
|
||||
type="action"
|
||||
context="{ 'default_name':name,
|
||||
'default_machine_tool_code': machine_tool_code,
|
||||
'default_cutter_spacing_code': cutter_spacing_code,
|
||||
'default_replacement_tool_code': functional_tool_code,
|
||||
'default_replacement_tool_name_id': functional_tool_name_id,
|
||||
'default_replacement_tool_type_id': functional_tool_type_id,
|
||||
'default_replacement_tool_coarse_middle_thin': coarse_middle_thin}"
|
||||
attrs="{'invisible': [('status', '!=', '0')]}"
|
||||
class="btn-primary"
|
||||
/>
|
||||
<button string="转移"
|
||||
name="%(sf_tool_management.sf_tool_transfer_request_information_act)d"
|
||||
type="action"
|
||||
context="{ 'default_CNC_machine_table_id':name,
|
||||
'default_machine_tool_code': machine_tool_code,
|
||||
'default_cutter_spacing_code': cutter_spacing_code,
|
||||
'default_functional_tool_code': functional_tool_code,
|
||||
'default_functional_tool_name_id': functional_tool_name_id,
|
||||
'default_functional_tool_type_id': functional_tool_type_id}"
|
||||
class="btn-primary"
|
||||
attrs="{'invisible': [('status', '!=', '0')]}"
|
||||
/>
|
||||
<button string="撤回换刀申请" name="revocation_1" type="object" class="btn-primary" attrs="{'invisible': [('status', '!=', '1')]}"/>
|
||||
<button string="撤回转移" name="revocation_2" type="object" class="btn-primary" attrs="{'invisible': [('status', '!=', '2')]}"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
@@ -563,8 +590,8 @@
|
||||
'default_machine_tool_code': machine_tool_code,
|
||||
'default_cutter_spacing_code': cutter_spacing_code,
|
||||
'default_replacement_tool_code': functional_tool_code,
|
||||
'default_replacement_tool_name': functional_tool_name,
|
||||
'default_replacement_tool_type': functional_tool_type,
|
||||
'default_replacement_tool_name_id': functional_tool_name_id,
|
||||
'default_replacement_tool_type_id': functional_tool_type_id,
|
||||
'default_replacement_tool_coarse_middle_thin': coarse_middle_thin}"
|
||||
attrs="{'invisible': [('status', '!=', '0')]}"
|
||||
class="btn-primary"
|
||||
@@ -572,12 +599,12 @@
|
||||
<button string="转移"
|
||||
name="%(sf_tool_management.sf_tool_transfer_request_information_act)d"
|
||||
type="action"
|
||||
context="{ 'default_CNC_machine_table':name,
|
||||
context="{ 'default_CNC_machine_table_id':name,
|
||||
'default_machine_tool_code': machine_tool_code,
|
||||
'default_cutter_spacing_code': cutter_spacing_code,
|
||||
'default_functional_tool_code': functional_tool_code,
|
||||
'default_functional_tool_name': functional_tool_name,
|
||||
'default_functional_tool_type': functional_tool_type}"
|
||||
'default_functional_tool_name_id': functional_tool_name_id,
|
||||
'default_functional_tool_type_id': functional_tool_type_id}"
|
||||
class="btn-primary"
|
||||
attrs="{'invisible': [('status', '!=', '0')]}"
|
||||
/>
|
||||
@@ -588,14 +615,14 @@
|
||||
<group string="基础信息">
|
||||
<group>
|
||||
<field name="name"/>
|
||||
<field name="machine_table_type"/>
|
||||
<field name="machine_table_type_id"/>
|
||||
<field name="machine_tool_code" invisible="True"/>
|
||||
<field name="cutter_spacing_code"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="functional_tool_name"/>
|
||||
<field name="functional_tool_type"/>
|
||||
<field name="functional_tool_code"/>
|
||||
<field name="functional_tool_name_id"/>
|
||||
<field name="functional_tool_type_id"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string="数据信息">
|
||||
@@ -614,8 +641,8 @@
|
||||
</group>
|
||||
<group string="待换刀具信息">
|
||||
<group>
|
||||
<field name="replacement_tool_name"/>
|
||||
<field name="replacement_tool_type"/>
|
||||
<field name="replacement_tool_name_id"/>
|
||||
<field name="replacement_tool_type_id"/>
|
||||
<field name="replacement_tool_coarse_middle_thin"/>
|
||||
<field name="applicant"/>
|
||||
<field name="status" invisible="True"/>
|
||||
@@ -643,18 +670,16 @@
|
||||
<search>
|
||||
<field name="name"/>
|
||||
<field name="machine_tool_code" invisible="1"/>
|
||||
<field name="machine_table_type"/>
|
||||
<field name="machine_table_type_id"/>
|
||||
<field name="cutter_spacing_code"/>
|
||||
<field name="functional_tool_name"/>
|
||||
<field name="functional_tool_type"/>
|
||||
<field name="functional_tool_code"/>
|
||||
<field name="functional_tool_name_id"/>
|
||||
<field name="replacement_tool_code"/>
|
||||
<field name="replacement_tool_name"/>
|
||||
<field name="replacement_tool_type"/>
|
||||
<field name="replacement_tool_name_id"/>
|
||||
<field name="applicant"/>
|
||||
<field name="used_tool_time"/>
|
||||
<!-- <searchpanel>-->
|
||||
<!-- <field name="machine_table_type" string="机床类型" enable_counters="1"/>-->
|
||||
<!-- </searchpanel>-->
|
||||
<searchpanel>
|
||||
<field name="name" string="CNC机床" enable_counters="1" icon="fa-filter"/>
|
||||
</searchpanel>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
@@ -677,12 +702,15 @@
|
||||
<field name="name"/>
|
||||
<field name="cam_procedure_code"/>
|
||||
<field name="cam_cutter_spacing_code"/>
|
||||
<field name="functional_tool_name"/>
|
||||
<field name="functional_tool_type"/>
|
||||
<field name="machine_table_name"/>
|
||||
<field name="machine_table_name_id"/>
|
||||
<field name="functional_tool_name_id"/>
|
||||
<field name="functional_tool_type_id"/>
|
||||
<field name="machine_tool_cutter_spacing_code"/>
|
||||
<field name="applicant"/>
|
||||
<field name="remark"/>
|
||||
<field name="remark" optional="hide"/>
|
||||
<field name="plan_execute_status" invisible="True"/>
|
||||
<button string="申请装刀" name="apply_for_tooling" type="object" class="btn-primary" attrs="{'invisible': [('plan_execute_status', '!=', '0')]}" confirm="是否确认申请装刀"/>
|
||||
<button string="撤回" name="revocation" type="object" class="btn-primary" attrs="{'invisible': [('plan_execute_status', '!=', '1')]}"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
@@ -693,30 +721,7 @@
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<header>
|
||||
<button string="申请装刀"
|
||||
name="%(sf_tool_management.sf_apply_for_tooling_act)d"
|
||||
type="action"
|
||||
context="{ 'default_name':name,
|
||||
'default_cam_procedure_code': cam_procedure_code,
|
||||
'default_machine_table_name': machine_table_name,
|
||||
'default_cam_cutter_spacing_code': cam_cutter_spacing_code,
|
||||
'default_functional_tool_code': functional_tool_code,
|
||||
'default_functional_tool_name': functional_tool_name,
|
||||
'default_functional_tool_type': functional_tool_type,
|
||||
'default_diameter': diameter,
|
||||
'default_tool_loading_length': tool_loading_length,
|
||||
'default_clearance_length': clearance_length,
|
||||
'default_tool_included_angle': tool_included_angle,
|
||||
'default_L_D': L_D,
|
||||
'default_coarse_middle_thin': coarse_middle_thin,
|
||||
'default_whether_standard_tool': whether_standard_tool,
|
||||
'default_need_knife_time': need_knife_time,
|
||||
'default_applicant': applicant,
|
||||
'default_required_cutting_time': required_cutting_time,
|
||||
'default_reason_for_applying': reason_for_applying}"
|
||||
class="btn-primary"
|
||||
attrs="{'invisible': [('plan_execute_status', '!=', '0')]}"
|
||||
/>
|
||||
<button string="申请装刀" name="apply_for_tooling" type="object" class="btn-primary" attrs="{'invisible': [('plan_execute_status', '!=', '0')]}" confirm="是否确认申请装刀"/>
|
||||
<button string="撤回" name="revocation" type="object" class="btn-primary" attrs="{'invisible': [('plan_execute_status', '!=', '1')]}"/>
|
||||
</header>
|
||||
|
||||
@@ -726,12 +731,12 @@
|
||||
<field name="name"/>
|
||||
<field name="cam_procedure_code"/>
|
||||
<field name="cam_cutter_spacing_code"/>
|
||||
<field name="machine_table_name"/>
|
||||
<field name="machine_table_name_id"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="functional_tool_code"/>
|
||||
<field name="functional_tool_name"/>
|
||||
<field name="functional_tool_type"/>
|
||||
<field name="functional_tool_name_id"/>
|
||||
<field name="functional_tool_type_id"/>
|
||||
<field name="machine_tool_cutter_spacing_code"/>
|
||||
</group>
|
||||
</group>
|
||||
@@ -770,11 +775,14 @@
|
||||
<field name="name"/>
|
||||
<field name="cam_procedure_code"/>
|
||||
<field name="cam_cutter_spacing_code"/>
|
||||
<field name="functional_tool_name"/>
|
||||
<field name="functional_tool_type"/>
|
||||
<field name="machine_table_name"/>
|
||||
<field name="machine_table_name_id"/>
|
||||
<field name="functional_tool_name_id"/>
|
||||
<field name="functional_tool_type_id"/>
|
||||
<field name="machine_tool_cutter_spacing_code"/>
|
||||
<field name="applicant"/>
|
||||
<searchpanel>
|
||||
<field name="machine_table_name_id" string="CNC机床" enable_counters="1" icon="fa-filter"/>
|
||||
</searchpanel>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
@@ -795,14 +803,41 @@
|
||||
<tree>
|
||||
<field name="functional_tool_code"/>
|
||||
<field name="name"/>
|
||||
<field name="functional_tool_type"/>
|
||||
<field name="loading_task_source"/>
|
||||
<field name="functional_tool_type_id"/>
|
||||
<field name="loading_task_source" optional="hide"/>
|
||||
<field name="applicant"/>
|
||||
<field name="assemble_status"/>
|
||||
<field name="assemble_status" optional="hide"/>
|
||||
<field name="use_tool_time" />
|
||||
<field name="receive_person"/>
|
||||
<field name="receive_time"/>
|
||||
<field name="remark"/>
|
||||
<field name="remark" optional="hide"/>
|
||||
|
||||
<field name="machine_tool_name_id" invisible="True"/>
|
||||
<field name="cutter_spacing_code" invisible="True"/>
|
||||
<field name="functional_tool_length" invisible="True"/>
|
||||
<field name="functional_tool_diameter" invisible="True"/>
|
||||
<field name="functional_tool_cutting_type" invisible="True"/>
|
||||
|
||||
<button string="组装"
|
||||
name="%(sf_tool_management.sf_functional_tool_assembly_order_act)d"
|
||||
type="action"
|
||||
context="{
|
||||
'default_machine_tool_name_id': machine_tool_name_id,
|
||||
'default_code': functional_tool_code,
|
||||
'default_cutter_spacing_code': cutter_spacing_code,
|
||||
'default_functional_tool_name_id': name,
|
||||
'default_functional_tool_type_id': functional_tool_type_id,
|
||||
'default_functional_tool_length': functional_tool_length,
|
||||
'default_effective_length': None,
|
||||
'default_functional_tool_diameter': functional_tool_diameter,
|
||||
'default_tool_included_angle': None,
|
||||
'default_functional_tool_cutting_type': functional_tool_cutting_type,
|
||||
'default_required_cutting_time': None,
|
||||
'default_whether_standard_tool': None}"
|
||||
attrs="{'invisible': [('assemble_status', '!=', '0')]}"
|
||||
class="btn-primary"/>
|
||||
<button string="取消组装" name="cancel_functional_tool_assembly" type="object" attrs="{'invisible': [('assemble_status', '!=', '1')]}" class="btn-primary"/>
|
||||
<button string="出库" name="show_popup" type="object" attrs="{'invisible': [('assemble_status', '!=', '1')]}" class="btn-primary"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
@@ -817,10 +852,11 @@
|
||||
name="%(sf_tool_management.sf_functional_tool_assembly_order_act)d"
|
||||
type="action"
|
||||
context="{
|
||||
'default_machine_tool_name': machine_tool_name,
|
||||
'default_machine_tool_name_id': machine_tool_name_id,
|
||||
'default_code': functional_tool_code,
|
||||
'default_cutter_spacing_code': cutter_spacing_code,
|
||||
'default_functional_tool_name': name,
|
||||
'default_functional_tool_type': functional_tool_type,
|
||||
'default_functional_tool_name_id': name,
|
||||
'default_functional_tool_type_id': functional_tool_type_id,
|
||||
'default_functional_tool_length': functional_tool_length,
|
||||
'default_effective_length': None,
|
||||
'default_functional_tool_diameter': functional_tool_diameter,
|
||||
@@ -844,7 +880,7 @@
|
||||
<group>
|
||||
<field name="functional_tool_code"/>
|
||||
<field name="name"/>
|
||||
<field name="functional_tool_type"/>
|
||||
<field name="functional_tool_type_id"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="functional_tool_diameter"/>
|
||||
@@ -852,29 +888,53 @@
|
||||
<field name="functional_tool_cutting_type"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string="组装信息">
|
||||
<group string="组装物料信息">
|
||||
<group>
|
||||
<field name="tool_name"/>
|
||||
<field name="tool_brand" string="刀具品牌"/>
|
||||
<field name="tool_type" string="刀具型号"/>
|
||||
<field name="coarse_middle_thin"/>
|
||||
<field name="integral_code"/>
|
||||
<field name="mrs_cutting_tool_integral_model_ids" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags"/>
|
||||
<field name="blade_code"/>
|
||||
<field name="mrs_cutting_tool_blade_model_ids" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags"/>
|
||||
<field name="bar_code"/>
|
||||
<field name="mrs_cutting_tool_cutterbar_model_ids" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags"/>
|
||||
<field name="pad_code"/>
|
||||
<field name="mrs_cutting_tool_cutterpad_model_ids" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags"/>
|
||||
<field name="handle_code"/>
|
||||
<field name="mrs_cutting_tool_cutterhandle_model_ids" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags"/>
|
||||
<field name="chuck_code"/>
|
||||
<field name="mrs_cutting_tool_cutterhead_model_ids" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="integral_name"/>
|
||||
<field name="sf_tool_brand_id_1"/>
|
||||
<field name="blade_name"/>
|
||||
<field name="sf_tool_brand_id_2"/>
|
||||
<field name="bar_name"/>
|
||||
<field name="sf_tool_brand_id_3"/>
|
||||
<field name="pad_name"/>
|
||||
<field name="sf_tool_brand_id_4"/>
|
||||
<field name="handle_name"/>
|
||||
<field name="sf_tool_brand_id_5"/>
|
||||
<field name="chuck_name"/>
|
||||
<field name="sf_tool_brand_id_6"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string="组装参数信息">
|
||||
<group>
|
||||
<field name="coarse_middle_thin"/>
|
||||
<field name="new_former"/>
|
||||
<field name="tool_loading_length"/>
|
||||
<field name="reference_length"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="knife_handle_name"/>
|
||||
<field name="knife_handle_brand" string="刀柄品牌"/>
|
||||
<field name="knife_handle_type" string="刀柄型号"/>
|
||||
<field name="cut_time"/>
|
||||
<field name="cut_length"/>
|
||||
<field name="cut_number"/>
|
||||
</group>
|
||||
</group>
|
||||
</group>
|
||||
<group string="申请信息">
|
||||
<group>
|
||||
<field name="production_line_name"/>
|
||||
<field name="machine_tool_name"/>
|
||||
<field name="production_line_name_id"/>
|
||||
<field name="machine_tool_name_id"/>
|
||||
<field name="machine_tool_code"/>
|
||||
<field name="cutter_spacing_code"/>
|
||||
<field name="applicant"/>
|
||||
@@ -914,14 +974,17 @@
|
||||
<search>
|
||||
<field name="functional_tool_code"/>
|
||||
<field name="name"/>
|
||||
<field name="functional_tool_type"/>
|
||||
<field name="functional_tool_type_id"/>
|
||||
<field name="loading_task_source"/>
|
||||
<field name="applicant"/>
|
||||
<field name="assemble_status"/>
|
||||
<field name="use_tool_time" />
|
||||
<field name="use_tool_time"/>
|
||||
<field name="receive_person"/>
|
||||
<field name="receive_time"/>
|
||||
<field name="remark"/>
|
||||
<searchpanel>
|
||||
<field name="functional_tool_type_id" enable_counters="1" icon="fa-filter"/>
|
||||
</searchpanel>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
@@ -932,8 +995,5 @@
|
||||
<field name="res_model">sf.functional.tool.assembly</field>
|
||||
<field name="view_mode">tree,form,search</field>
|
||||
</record>
|
||||
|
||||
|
||||
|
||||
</data>
|
||||
</odoo>
|
||||
|
||||
@@ -104,19 +104,151 @@
|
||||
<field name="chuck_feature" optional="hide"/>
|
||||
<field name="image" widget="image" optional="hide"/>
|
||||
|
||||
<field name="number"/>
|
||||
<field name="mrs_materials_model_id"/>
|
||||
<field name="purchase_date"/>
|
||||
<field name="purchase_batch"/>
|
||||
<field name="supplier"/>
|
||||
<field name="warehouse_name"/>
|
||||
<field name="warehouse_area"/>
|
||||
<field name="warehouse_location"/>
|
||||
<field name="three_d_model" widget="many2one"/>
|
||||
<field name="number" optional="hide"/>
|
||||
<field name="mrs_materials_model_id" optional="hide"/>
|
||||
<field name="purchase_date" optional="hide"/>
|
||||
<field name="purchase_batch" optional="hide"/>
|
||||
<field name="supplier" optional="hide"/>
|
||||
<field name="warehouse_name" optional="show"/>
|
||||
<field name="warehouse_area" optional="show"/>
|
||||
<field name="warehouse_location" optional="show"/>
|
||||
<field name="three_d_model" widget="many2one" optional="show"/>
|
||||
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_sf_tool_material_search_form" model="ir.ui.view">
|
||||
<field name="name">sf.tool.material.search.form</field>
|
||||
<field name="model">sf.tool.material.search</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="刀具物料查询">
|
||||
<sheet>
|
||||
<group string='基本信息'>
|
||||
<group>
|
||||
<field name="mrs_cutting_tool_material_name" invisible="1"/>
|
||||
<field name="sequence"/>
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="mrs_cutting_tool_type_id"/>
|
||||
<field name="mrs_machine_brand_id"/>
|
||||
<!-- <field name="mrs_cutting_tool_model_id"/> -->
|
||||
<field name="mrs_materials_model_id"/>
|
||||
<field name="mrs_cutting_tool_material_id"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="image" widget="image"/>
|
||||
<field name="three_d_model" widget="many2one"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string='刀具库存信息'>
|
||||
<group>
|
||||
<field name="number"/>
|
||||
<field name="mrs_materials_model_id"/>
|
||||
<field name="purchase_date"/>
|
||||
<field name="purchase_batch"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="supplier"/>
|
||||
<field name="warehouse_name"/>
|
||||
<field name="warehouse_area"/>
|
||||
<field name="warehouse_location"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string='刀具信息'>
|
||||
<group>
|
||||
<field name="blade_length"/>
|
||||
<field name="blade_width"/>
|
||||
<field name="blade_height"/>
|
||||
<field name="blade_top_angle"/>
|
||||
<field name="blade_front_angle"/>
|
||||
<field name="blade_rear_angle"/>
|
||||
<field name="blade_main_included_angle"/>
|
||||
<field name="blade_r_angle"/>
|
||||
<field name="blade_hardness"/>
|
||||
<field name="blade_accuracy"/>
|
||||
<field name="blade_coating_material_id"/>
|
||||
<field name="blade_radius"/>
|
||||
<field name="blade_nut"/>
|
||||
<field name="mrs_cutting_tool_model_blade_cutter_pad_ids" widget="many2many_tags"/>
|
||||
<field name="mrs_cutting_tool_model_blade_cutter_bar_ids" widget="many2many_tags"/>
|
||||
|
||||
<field name="integral_total_length"/>
|
||||
<field name="integral_shank_length"/>
|
||||
<field name="integral_blade_length"/>
|
||||
<field name="integral_diameter"/>
|
||||
<field name="integral_blade_number"/>
|
||||
<field name="integral_front_angle"/>
|
||||
<field name="integral_rear_angle"/>
|
||||
<field name="integral_main_included_angle"/>
|
||||
<field name="integral_accuracy"/>
|
||||
<field name="integral_hardness"/>
|
||||
<field name="integral_coating_material"/>
|
||||
<field name="integral_nut"/>
|
||||
<field name="integral_scope"/>
|
||||
|
||||
<field name="bar_c_diameter"/>
|
||||
<field name="bar_total_length"/>
|
||||
<field name="bar_blade_number"/>
|
||||
<field name="bar_d_diameter"/>
|
||||
<field name="mrs_cutting_tool_model_bar_blade_ids" widget="many2many_tags"/>
|
||||
<field name="bar_wrench"/>
|
||||
<field name="bar_screw"/>
|
||||
<field name="bar_radius"/>
|
||||
<field name="bar_accuracy"/>
|
||||
<field name="bar_hardness"/>
|
||||
<field name="bar_scope"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="pad_c_diameter"/>
|
||||
<field name="pad_total_length"/>
|
||||
<field name="pad_blade_number"/>
|
||||
<field name="pad_d_diameter"/>
|
||||
<field name="mrs_cutting_tool_model_pad_blade_ids" widget="many2many_tags"/>
|
||||
<field name="pad_wrench"/>
|
||||
<field name="pad_screw"/>
|
||||
<field name="pad_radius"/>
|
||||
<field name="pad_accuracy"/>
|
||||
<field name="pad_hardness"/>
|
||||
<field name="pad_scope"/>
|
||||
|
||||
<field name="handle_length"/>
|
||||
<field name="handle_diameter"/>
|
||||
<field name="handle_flange_length"/>
|
||||
<field name="handle_flange_diameter"/>
|
||||
<field name="handle_clamping_diameter_min"/>
|
||||
<field name="handle_clamping_diameter_max"/>
|
||||
<field name="handle_jump_accuracy"/>
|
||||
<field name="handle_max_speed"/>
|
||||
<field name="handle_weight"/>
|
||||
<field name="handle_body_accuracy"/>
|
||||
<field name="handle_nut"/>
|
||||
<field name="mrs_cutting_tool_model_handle_chuck_model_ids" widget="many2many_tags"/>
|
||||
<field name="handle_clamping_range"/>
|
||||
<field name="handle_detection_accuracy"/>
|
||||
<field name="handle_detection_hardness"/>
|
||||
<field name="handle_standard_speed"/>
|
||||
|
||||
<field name="chuck_accuracy"/>
|
||||
<field name="chuck_clamping_diameter_min"/>
|
||||
<field name="chuck_clamping_diameter_max"/>
|
||||
<field name="chuck_diameter"/>
|
||||
<field name="chuck_inner_diameter"/>
|
||||
<field name="chuck_height"/>
|
||||
<field name="chuck_nut"/>
|
||||
<field name="mrs_cutting_tool_model_chuck_handle_model_ids" widget="many2many_tags"/>
|
||||
<field name="chuck_clamping_range"/>
|
||||
<field name="chuck_feature"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- 刀具物料搜索 -->
|
||||
<record id="search_sf_tool_material_search" model="ir.ui.view">
|
||||
<field name="name">sf.tool.material.search.search</field>
|
||||
|
||||
@@ -7,17 +7,17 @@ class ToolChangeRequirementInformation(models.TransientModel):
|
||||
|
||||
# tool_change_to_apply_id = fields.Many2one('sf.machine.table.tool.changing.apply', string='机床换刀申请')
|
||||
|
||||
name = fields.Char(string='CNC机床', readonly=True)
|
||||
name = fields.Many2one('sf.machine_tool', string='CNC机床', readonly=True)
|
||||
machine_tool_code = fields.Char(string='机台号', readonly=True)
|
||||
cutter_spacing_code = fields.Char(string='刀位号', readonly=True)
|
||||
|
||||
replacement_tool_code = fields.Char(string='待换刀具编码')
|
||||
replacement_tool_name = fields.Char(string='待换刀具名称')
|
||||
replacement_tool_type = fields.Char(string='待换刀具类型')
|
||||
replacement_tool_name_id = fields.Many2one('sf.functional.cutting.tool', string='待换刀具名称')
|
||||
replacement_tool_type_id = fields.Many2one('sf.functional.cutting.tool.model', string='待换刀具类型')
|
||||
replacement_tool_coarse_middle_thin = fields.Selection([("1", "粗"), ('2', '中'), ('3', '精')],
|
||||
string='粗/中/精')
|
||||
new_former = fields.Selection([('0', '新'), ('1', '旧')], string='新/旧')
|
||||
applicant = fields.Char(string='申请人')
|
||||
applicant = fields.Char(string='申请人', default=lambda self: self.env.user.name, readonly=True)
|
||||
used_tool_time = fields.Datetime(string='用刀时间')
|
||||
reason_for_applying = fields.Char(string='申请原因')
|
||||
remark = fields.Char(string='备注说明')
|
||||
@@ -29,12 +29,12 @@ class ToolChangeRequirementInformation(models.TransientModel):
|
||||
"""
|
||||
# 封装数据
|
||||
desc = {
|
||||
'name': self.name,
|
||||
'name': self.name.id,
|
||||
'machine_tool_code': self.machine_tool_code,
|
||||
'cutter_spacing_code': self.cutter_spacing_code,
|
||||
'replacement_tool_code': self.replacement_tool_code,
|
||||
'replacement_tool_name': self.replacement_tool_name,
|
||||
'replacement_tool_type': self.replacement_tool_type,
|
||||
'replacement_tool_name_id': self.replacement_tool_name_id.id,
|
||||
'replacement_tool_type_id': self.replacement_tool_type_id.id,
|
||||
'replacement_tool_coarse_middle_thin': self.replacement_tool_coarse_middle_thin,
|
||||
'new_former': self.new_former,
|
||||
'applicant': self.applicant,
|
||||
@@ -51,13 +51,13 @@ class ToolChangeRequirementInformation(models.TransientModel):
|
||||
# 功能刀具组装创建新任务
|
||||
self.env['sf.machine.table.tool.changing.apply'].new_assembly_task({
|
||||
'functional_tool_code': self.replacement_tool_code,
|
||||
'name': self.replacement_tool_name,
|
||||
'functional_tool_type': self.replacement_tool_type,
|
||||
'name': self.replacement_tool_name_id.id,
|
||||
'functional_tool_type_id': self.replacement_tool_type_id.id,
|
||||
'loading_task_source': '1',
|
||||
'applicant': self.applicant,
|
||||
'reason_for_applying': self.reason_for_applying,
|
||||
'use_tool_time': self.used_tool_time,
|
||||
'machine_tool_name': self.name,
|
||||
'machine_tool_name_id': self.name.id,
|
||||
'machine_tool_code': self.machine_tool_code,
|
||||
'cutter_spacing_code': self.cutter_spacing_code
|
||||
})
|
||||
@@ -70,18 +70,18 @@ class ToolTransferRequestInformation(models.TransientModel):
|
||||
_name = 'sf.tool.transfer.request.information'
|
||||
_description = '刀具转移申请信息'
|
||||
|
||||
CNC_machine_table = fields.Char(string='CNC机床', readonly=True)
|
||||
CNC_machine_table_id = fields.Many2one('sf.machine_tool', string='CNC机床', readonly=True)
|
||||
machine_tool_code = fields.Char(string='机台号', readonly=True)
|
||||
cutter_spacing_code = fields.Char(string='刀位号', readonly=True)
|
||||
functional_tool_code = fields.Char(string='功能刀具编码', readonly=True)
|
||||
functional_tool_name = fields.Char(string='功能刀具名称', readonly=True)
|
||||
functional_tool_name_id = fields.Many2one('sf.functional.cutting.tool', string='功能刀具名称', readonly=True)
|
||||
# todo 功能刀具类型为 Many2one
|
||||
functional_tool_type = fields.Char(string='功能刀具类型', readonly=True)
|
||||
functional_tool_type_id = fields.Many2one('sf.functional.cutting.tool.model', string='功能刀具类型', readonly=True)
|
||||
transfer_target = fields.Selection([('机台', '机台'),
|
||||
('线边刀库', '线边刀库'),
|
||||
('刀具房', '刀具房')], string='转移到:', default='线边刀库')
|
||||
|
||||
new_cnc_machine_table = fields.Char(string='机床名称')
|
||||
new_cnc_machine_table_id = fields.Many2one('sf.machine_tool', string='机床名称')
|
||||
new_machine_tool_code = fields.Char(string='机床号')
|
||||
new_cutter_spacing_code = fields.Char(string='刀位号')
|
||||
|
||||
@@ -97,63 +97,7 @@ class ToolTransferRequestInformation(models.TransientModel):
|
||||
:return:
|
||||
"""
|
||||
self.env['sf.machine.table.tool.changing.apply'].search(
|
||||
[('CNC_machine_table', '=', self.CNC_machine_table)]).write({'status': '2'})
|
||||
|
||||
|
||||
class ApplyForTooling(models.TransientModel):
|
||||
_name = 'sf.apply.for.tooling'
|
||||
_description = '申请装刀'
|
||||
|
||||
ticket_task_code = fields.Char(string='工单任务编号', readonly=True)
|
||||
cam_procedure_code = fields.Char(string='CAM程序编号', readonly=True)
|
||||
machine_table_name = fields.Char(string='机床名称', readonly=True)
|
||||
cam_cutter_spacing_code = fields.Char(string='CAM刀位号', readonly=True)
|
||||
functional_tool_code = fields.Char(string='功能刀具编码', readonly=True)
|
||||
functional_tool_name = fields.Char(string='功能刀具名称', readonly=True)
|
||||
functional_tool_type = fields.Char(string='功能刀具类型', readonly=True)
|
||||
|
||||
diameter = fields.Char(string='直径(程式)', readonly=True)
|
||||
tool_loading_length = fields.Char(string='装刀长', readonly=True)
|
||||
clearance_length = fields.Char(string='避空长', readonly=True)
|
||||
tool_included_angle = fields.Char(string='刀尖角(R角)', readonly=True)
|
||||
L_D = fields.Char(string='L/D', readonly=True)
|
||||
coarse_middle_thin = fields.Selection([("1", "粗"), ('2', '中'), ('3', '精')], string='粗/中/精', readonly=True)
|
||||
|
||||
whether_standard_tool = fields.Boolean(string='是否标准刀', readonly=True)
|
||||
need_knife_time = fields.Datetime(string='需要用刀时间', readonly=True)
|
||||
required_cutting_time = fields.Char(string='需要切割时间', readonly=True)
|
||||
reason_for_applying = fields.Char(string='申请原因', readonly=True)
|
||||
|
||||
applicant = fields.Char(string='申请人', invisible='1')
|
||||
|
||||
def apply_for_tooling(self):
|
||||
"""
|
||||
申请装刀
|
||||
:return:
|
||||
"""
|
||||
self.env['sf.functional.tool.assembly'].create({
|
||||
'functional_tool_code': self.functional_tool_code,
|
||||
'name': self.functional_tool_name,
|
||||
'functional_tool_type': self.functional_tool_type,
|
||||
'functional_tool_diameter': self.diameter,
|
||||
'functional_tool_length': self.tool_loading_length,
|
||||
'loading_task_source': '0',
|
||||
'coarse_middle_thin': None,
|
||||
'tool_loading_length': None,
|
||||
'applicant': self.applicant,
|
||||
'reason_for_applying': self.reason_for_applying,
|
||||
'use_tool_time': self.need_knife_time,
|
||||
'machine_tool_name': self.machine_table_name,
|
||||
'machine_tool_code': self.cam_procedure_code,
|
||||
'cutter_spacing_code': self.cam_cutter_spacing_code
|
||||
})
|
||||
|
||||
# 将计划执行状态改为执行中
|
||||
self.env['sf.cam.work.order.program.knife.plan'].search(
|
||||
[('functional_tool_code', '=', self.functional_tool_code)]).write({'plan_execute_status': '1'})
|
||||
|
||||
# 关闭弹出窗口
|
||||
return {'type': 'ir.actions.act_window_close'}
|
||||
[('name', '=', self.CNC_machine_table_id.id)]).write({'status': '2'})
|
||||
|
||||
|
||||
class FunctionalToolAssemblyOrder(models.TransientModel):
|
||||
@@ -161,10 +105,11 @@ class FunctionalToolAssemblyOrder(models.TransientModel):
|
||||
_description = '功能刀具组装单'
|
||||
|
||||
# 功能刀具申请信息
|
||||
machine_tool_name = fields.Char(string='机床名称', readonly=True)
|
||||
machine_tool_name_id = fields.Many2one('sf.machine_tool', string='机床名称', readonly=True)
|
||||
code = fields.Char(string='功能刀具编码', readonly=True)
|
||||
cutter_spacing_code = fields.Char(string='刀位号', readonly=True)
|
||||
functional_tool_name = fields.Char(string='功能刀具名称', readonly=True)
|
||||
functional_tool_type = fields.Char(string='功能刀具类型', readonly=True)
|
||||
functional_tool_name_id = fields.Many2one('sf.functional.cutting.tool', string='功能刀具名称', readonly=True)
|
||||
functional_tool_type_id = fields.Many2one('sf.functional.cutting.tool.model', string='功能刀具类型', readonly=True)
|
||||
functional_tool_length = fields.Char(string='功能刀具伸出长', readonly=True)
|
||||
effective_length = fields.Char(string='有效长', readonly=True)
|
||||
functional_tool_diameter = fields.Char(string='功能刀具直径', readonly=True)
|
||||
@@ -174,14 +119,50 @@ class FunctionalToolAssemblyOrder(models.TransientModel):
|
||||
whether_standard_tool = fields.Boolean(string='是否标准刀', readonly=True)
|
||||
|
||||
# 功能刀具组装信息
|
||||
tool_name = fields.Char(string='刀具名称')
|
||||
tool_code = fields.Char(string='刀具编码')
|
||||
tool_brand = fields.Char(string='品牌')
|
||||
tool_type = fields.Char(string='型号')
|
||||
knife_handle_name = fields.Char(string='刀柄名称')
|
||||
knife_handle_code = fields.Char(string='刀柄编码')
|
||||
knife_handle_brand = fields.Char(string='品牌')
|
||||
knife_handle_type = fields.Char(string='型号')
|
||||
# 整体式刀具型号
|
||||
mrs_cutting_tool_integral_model_ids = fields.Many2many('sf.cutting.tool.model', 'sf_functional_tool_assembly_order_id',
|
||||
string='整体式刀具型号', readonly=False, domain=
|
||||
[('mrs_cutting_tool_material_name', '=', '整体式刀具')])
|
||||
integral_code = fields.Char('整体式刀具序列号')
|
||||
integral_name = fields.Char('整体式刀具名称')
|
||||
sf_tool_brand_id_1 = fields.Many2one('sf.machine.brand', '整体式刀具品牌')
|
||||
# 刀片型号
|
||||
mrs_cutting_tool_blade_model_ids = fields.Many2many('sf.cutting.tool.model', 'sf_functional_tool_assembly_order_id',
|
||||
string='刀片型号', readonly=False, domain=
|
||||
[('mrs_cutting_tool_material_name', '=', '刀片')])
|
||||
blade_code = fields.Char('刀片序列号')
|
||||
blade_name = fields.Char('刀片名称')
|
||||
sf_tool_brand_id_2 = fields.Many2one('sf.machine.brand', '刀片品牌')
|
||||
# 刀杆型号
|
||||
mrs_cutting_tool_cutterbar_model_ids = fields.Many2many('sf.cutting.tool.model', 'sf_functional_tool_assembly_order_id',
|
||||
string='刀杆型号', readonly=False, domain=
|
||||
[('mrs_cutting_tool_material_name', '=', '刀杆')])
|
||||
bar_code = fields.Char('刀杆序列号')
|
||||
bar_name = fields.Char('刀杆名称')
|
||||
sf_tool_brand_id_3 = fields.Many2one('sf.machine.brand', '刀杆品牌')
|
||||
# 刀盘型号
|
||||
mrs_cutting_tool_cutterpad_model_ids = fields.Many2many('sf.cutting.tool.model', 'sf_functional_tool_assembly_order_id',
|
||||
string='刀盘型号', readonly=False, domain=
|
||||
[('mrs_cutting_tool_material_name', '=', '刀盘')])
|
||||
pad_code = fields.Char('刀盘序列号')
|
||||
pad_name = fields.Char('刀盘名称')
|
||||
sf_tool_brand_id_4 = fields.Many2one('sf.machine.brand', '刀盘品牌')
|
||||
|
||||
# 刀柄型号
|
||||
mrs_cutting_tool_cutterhandle_model_ids = fields.Many2many('sf.cutting.tool.model', 'sf_functional_tool_assembly_order_id',
|
||||
string='刀柄型号', readonly=False, domain=
|
||||
[('mrs_cutting_tool_material_name', '=', '刀柄')])
|
||||
handle_code = fields.Char('刀柄序列号')
|
||||
handle_name = fields.Char('刀柄名称')
|
||||
sf_tool_brand_id_5 = fields.Many2one('sf.machine.brand', '刀柄品牌')
|
||||
# 夹头型号
|
||||
mrs_cutting_tool_cutterhead_model_ids = fields.Many2many('sf.cutting.tool.model', 'sf_functional_tool_assembly_order_id',
|
||||
string='夹头型号', readonly=False, domain=
|
||||
[('mrs_cutting_tool_material_name', '=', '夹头')])
|
||||
chuck_code = fields.Char('夹头序列号')
|
||||
chuck_name = fields.Char('夹头名称')
|
||||
sf_tool_brand_id_6 = fields.Many2one('sf.machine.brand', '夹头品牌')
|
||||
|
||||
coarse_middle_thin = fields.Selection([("1", "粗"), ('2', '中'), ('3', '精')], string='粗/中/精')
|
||||
tool_loading_length = fields.Char(string='装刀长')
|
||||
new_former = fields.Selection([('0', '新'), ('1', '旧')], string='新/旧')
|
||||
@@ -196,15 +177,33 @@ class FunctionalToolAssemblyOrder(models.TransientModel):
|
||||
:return:
|
||||
"""
|
||||
self.env['sf.functional.tool.assembly'].search([
|
||||
('machine_tool_name', '=', self.machine_tool_name),
|
||||
('machine_tool_name_id', '=', self.machine_tool_name_id.id),
|
||||
('cutter_spacing_code', '=', self.cutter_spacing_code)
|
||||
]).write({
|
||||
'tool_name': self.tool_name,
|
||||
'tool_brand': self.tool_brand,
|
||||
'tool_type': self.tool_type,
|
||||
'knife_handle_name': self.knife_handle_name,
|
||||
'knife_handle_brand': self.knife_handle_brand,
|
||||
'knife_handle_type': self.knife_handle_type,
|
||||
'mrs_cutting_tool_integral_model_ids': self.mrs_cutting_tool_integral_model_ids.ids,
|
||||
'integral_code': self.integral_code,
|
||||
'integral_name': self.integral_name,
|
||||
'sf_tool_brand_id_1': self.sf_tool_brand_id_1,
|
||||
'mrs_cutting_tool_blade_model_ids': self.mrs_cutting_tool_blade_model_ids.ids,
|
||||
'blade_code': self.blade_code,
|
||||
'blade_name': self.blade_name,
|
||||
'sf_tool_brand_id_2': self.sf_tool_brand_id_2,
|
||||
'mrs_cutting_tool_cutterbar_model_ids': self.mrs_cutting_tool_cutterbar_model_ids.ids,
|
||||
'bar_code': self.bar_code,
|
||||
'bar_name': self.bar_name,
|
||||
'sf_tool_brand_id_3': self.sf_tool_brand_id_3,
|
||||
'mrs_cutting_tool_cutterpad_model_ids': self.mrs_cutting_tool_cutterpad_model_ids.ids,
|
||||
'pad_code': self.pad_code,
|
||||
'pad_name': self.pad_name,
|
||||
'sf_tool_brand_id_4': self.sf_tool_brand_id_4,
|
||||
'mrs_cutting_tool_cutterhandle_model_ids': self.mrs_cutting_tool_cutterhandle_model_ids.ids,
|
||||
'handle_code': self.handle_code,
|
||||
'handle_name': self.handle_name,
|
||||
'sf_tool_brand_id_5': self.sf_tool_brand_id_5,
|
||||
'mrs_cutting_tool_cutterhead_model_ids': self.mrs_cutting_tool_cutterhead_model_ids.ids,
|
||||
'chuck_code': self.chuck_code,
|
||||
'chuck_name': self.chuck_name,
|
||||
'sf_tool_brand_id_6': self.sf_tool_brand_id_6,
|
||||
'coarse_middle_thin': self.coarse_middle_thin,
|
||||
'tool_loading_length': self.tool_loading_length,
|
||||
'new_former': self.new_former,
|
||||
@@ -217,6 +216,38 @@ class FunctionalToolAssemblyOrder(models.TransientModel):
|
||||
'tool_loading_time': fields.Datetime.now()
|
||||
})
|
||||
|
||||
# 封装功能刀具数据
|
||||
desc = {
|
||||
'code': self.code,
|
||||
'name': self.functional_tool_name_id.name,
|
||||
'mrs_cutting_tool_type_id': self.functional_tool_type_id.id,
|
||||
'mrs_cutting_tool_integral_model_ids': self.mrs_cutting_tool_integral_model_ids.ids,
|
||||
'mrs_cutting_tool_blade_model_ids': self.mrs_cutting_tool_blade_model_ids.ids,
|
||||
'mrs_cutting_tool_cutterbar_model_ids': self.mrs_cutting_tool_cutterbar_model_ids.ids,
|
||||
'mrs_cutting_tool_cutterpad_model_ids': self.mrs_cutting_tool_cutterpad_model_ids.ids,
|
||||
'mrs_cutting_tool_cutterhandle_model_ids': self.mrs_cutting_tool_cutterhandle_model_ids.ids,
|
||||
'mrs_cutting_tool_cutterhead_model_ids': self.mrs_cutting_tool_cutterhead_model_ids.ids,
|
||||
'diameter': self.functional_tool_diameter,
|
||||
'tool_grade': None,
|
||||
'machining_accuracy': None,
|
||||
'tool_length': self.tool_loading_length,
|
||||
'blade_number': None,
|
||||
'integral_blade_length': None,
|
||||
'effective_blade_length': self.effective_length,
|
||||
'max_life': None,
|
||||
'is_standard': self.whether_standard_tool,
|
||||
'applicable_range': None,
|
||||
'image': None,
|
||||
}
|
||||
|
||||
if self.new_former == '0':
|
||||
# 如果是新刀,则创建功能刀具列表、
|
||||
self.env['sf.functional.cutting.tool.entity'].create(desc)
|
||||
# 创建功能刀具预警、实时分布、出入库记录的新记录
|
||||
self.env['sf.functional.tool.warning'].create(desc)
|
||||
self.env['sf.real.time.distribution.of.functional.tools'].create(desc)
|
||||
self.env['sf.inbound.and.outbound.records.of.functional.tools'].create(desc)
|
||||
|
||||
# 关闭弹出窗口
|
||||
return {'type': 'ir.actions.act_window_close'}
|
||||
|
||||
@@ -227,9 +258,9 @@ class DeliveryOfCargoFromStorage(models.TransientModel):
|
||||
|
||||
order = fields.Integer(string='序')
|
||||
functional_tool_code = fields.Char(string='功能刀具编码')
|
||||
name = fields.Char(string='功能刀具名称')
|
||||
functional_tool_type = fields.Char(string='功能刀具类型')
|
||||
production_line_name = fields.Char(string='产线名称')
|
||||
name = fields.Many2one('sf.functional.cutting.tool', string='功能刀具名称')
|
||||
functional_tool_type_id = fields.Many2one('sf.functional.cutting.tool.model', string='功能刀具类型')
|
||||
production_line_name_id = fields.Many2one('sf.production.line', string='产线名称')
|
||||
machine_tool_code = fields.Char(string='机台号')
|
||||
receive_person = fields.Char(string='领用人')
|
||||
receive_time = fields.Datetime(string='领用出库时间')
|
||||
@@ -240,11 +271,14 @@ class DeliveryOfCargoFromStorage(models.TransientModel):
|
||||
:return:
|
||||
"""
|
||||
vals = self.env['sf.delivery.of.cargo.from.storage'].search([])
|
||||
print(vals)
|
||||
if vals:
|
||||
for val in vals:
|
||||
self.env['sf.functional.tool.assembly'].search([
|
||||
('functional_tool_code', '=', val.functional_tool_code),
|
||||
('name', '=', val.name)
|
||||
('machine_tool_code', '=', val.machine_tool_code),
|
||||
('name', '=', val.name.id),
|
||||
('production_line_name_id', '=', val.production_line_name_id.id)
|
||||
]).write({
|
||||
'assemble_status': '2',
|
||||
'receive_person': self.env.user.name,
|
||||
@@ -253,13 +287,13 @@ class DeliveryOfCargoFromStorage(models.TransientModel):
|
||||
|
||||
tool_assembly = self.env['sf.functional.tool.assembly'].search([
|
||||
('functional_tool_code', '=', val.functional_tool_code),
|
||||
('name', '=', val.name)
|
||||
('name', '=', val.name.id)
|
||||
])
|
||||
# 判断装刀任务来源,如果来源于CAM装刀,则修改CAM装刀的计划执行状态
|
||||
if tool_assembly.loading_task_source == '0':
|
||||
self.env['sf.cam.work.order.program.knife.plan'].search([
|
||||
('functional_tool_code', '=', val.functional_tool_code),
|
||||
('functional_tool_name', '=', val.name)
|
||||
('functional_tool_name_id', '=', val.name.id)
|
||||
]).write({
|
||||
'plan_execute_status': '2'
|
||||
})
|
||||
|
||||
@@ -20,25 +20,17 @@
|
||||
</group>
|
||||
<group string="刀具信息">
|
||||
<group>
|
||||
<field name="replacement_tool_name"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="replacement_tool_type"/>
|
||||
</group>
|
||||
</group>
|
||||
<group>
|
||||
<group>
|
||||
<field name="replacement_tool_name_id"/>
|
||||
<field name="replacement_tool_code"/>
|
||||
<field name="replacement_tool_coarse_middle_thin"/>
|
||||
<field name="used_tool_time"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="new_former"/>
|
||||
<field name="applicant"/>
|
||||
</group>
|
||||
</group>
|
||||
<group>
|
||||
<group>
|
||||
<field name="replacement_tool_type_id"/>
|
||||
<field name="used_tool_time"/>
|
||||
<field name="new_former"/>
|
||||
<field name="reason_for_applying"/>
|
||||
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
@@ -69,7 +61,7 @@
|
||||
<sheet>
|
||||
<group string="机床信息">
|
||||
<group>
|
||||
<field name="CNC_machine_table"/>
|
||||
<field name="CNC_machine_table_id"/>
|
||||
<field name="cutter_spacing_code"/>
|
||||
</group>
|
||||
<group>
|
||||
@@ -78,8 +70,8 @@
|
||||
</group>
|
||||
<group string="刀具信息">
|
||||
<group>
|
||||
<field name="functional_tool_name" string="刀具名称"/>
|
||||
<field name="functional_tool_type" string="刀具类型"/>
|
||||
<field name="functional_tool_name_id" string="刀具名称"/>
|
||||
<field name="functional_tool_type_id" string="刀具类型"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="functional_tool_code" string="刀具编码"/>
|
||||
@@ -92,7 +84,7 @@
|
||||
</group>
|
||||
<group>
|
||||
<group>
|
||||
<field name="new_cnc_machine_table" attrs="{'invisible': [('transfer_target', '!=', '机台')]}"/>
|
||||
<field name="new_cnc_machine_table_id" attrs="{'invisible': [('transfer_target', '!=', '机台')]}"/>
|
||||
<field name="new_machine_tool_code" attrs="{'invisible': [('transfer_target', '!=', '机台')]}"/>
|
||||
<field name="new_cutter_spacing_code" attrs="{'invisible': [('transfer_target', '!=', '机台')]}"/>
|
||||
<field name="magazine_tool_warehouse_district" attrs="{'invisible': [('transfer_target', '!=', '线边刀库')]}"/>
|
||||
@@ -120,67 +112,6 @@
|
||||
</record>
|
||||
|
||||
|
||||
<!--================================================申请装刀================================================-->
|
||||
<record id="sf_apply_for_tooling_form" model="ir.ui.view">
|
||||
<field name="name">申请装刀</field>
|
||||
<field name="model">sf.apply.for.tooling</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="申请装刀">
|
||||
<sheet>
|
||||
<group string="基础信息">
|
||||
<group>
|
||||
<field name="ticket_task_code" string="工单编号"/>
|
||||
</group>
|
||||
</group>
|
||||
<group>
|
||||
<group>
|
||||
<field name="machine_table_name" string="CAM指定机床"/>
|
||||
<field name="cam_procedure_code" string="CAM程序编号"/>
|
||||
<field name="cam_cutter_spacing_code" string="CAM指定刀位号"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="functional_tool_name"/>
|
||||
<field name="functional_tool_code"/>
|
||||
<field name="functional_tool_type"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string="数据信息">
|
||||
<group>
|
||||
<field name="diameter" string="直径"/>
|
||||
<field name="tool_included_angle" string="刀尖角"/>
|
||||
<field name="clearance_length"/>
|
||||
<field name="need_knife_time"/>
|
||||
<field name="whether_standard_tool"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="tool_loading_length"/>
|
||||
<field name="L_D"/>
|
||||
<field name="coarse_middle_thin"/>
|
||||
<field name="required_cutting_time" string="需切削时长"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string="其他">
|
||||
<field name="reason_for_applying"/>
|
||||
</group>
|
||||
</sheet>
|
||||
<footer>
|
||||
<button string="确定" name="apply_for_tooling" type="object" class="btn-primary" confirm="是否确认申请装刀"/>
|
||||
<button string="取消" class="btn-secondary" special="cancel"/>
|
||||
</footer>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="sf_apply_for_tooling_act" model="ir.actions.act_window">
|
||||
<field name="name">申请装刀</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">sf.apply.for.tooling</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="view_id" ref="sf_apply_for_tooling_form"/>
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
|
||||
|
||||
<!--================================================功能刀具组装单================================================-->
|
||||
<record id="sf_functional_tool_assembly_order_form" model="ir.ui.view">
|
||||
<field name="name">功能刀具组装单</field>
|
||||
@@ -190,53 +121,113 @@
|
||||
<sheet>
|
||||
<group string="功能刀具申请信息">
|
||||
<group>
|
||||
<field name="machine_tool_name"/>
|
||||
<field name="functional_tool_name"/>
|
||||
<field name="machine_tool_name_id"/>
|
||||
<field name="code"/>
|
||||
<field name="functional_tool_name_id"/>
|
||||
<field name="functional_tool_length"/>
|
||||
<field name="effective_length"/>
|
||||
<field name="functional_tool_cutting_type"/>
|
||||
<field name="required_cutting_time"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="cutter_spacing_code"/>
|
||||
<field name="functional_tool_type"/>
|
||||
<field name="functional_tool_type_id"/>
|
||||
<field name="functional_tool_diameter"/>
|
||||
<field name="tool_included_angle"/>
|
||||
<field name="whether_standard_tool"/>
|
||||
<field name="required_cutting_time"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string="功能刀具组装信息">
|
||||
<!-- <group string="功能刀具组装信息">-->
|
||||
<!-- <group>-->
|
||||
<!-- <group>-->
|
||||
<!-- <field name="mrs_cutting_tool_integral_model_ids" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags"/>-->
|
||||
<!-- <field name="mrs_cutting_tool_blade_model_ids" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags"/>-->
|
||||
<!-- <field name="mrs_cutting_tool_cutterbar_model_ids" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags"/>-->
|
||||
<!-- <field name="mrs_cutting_tool_cutterpad_model_ids" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags"/>-->
|
||||
<!-- <field name="mrs_cutting_tool_cutterhandle_model_ids" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags"/>-->
|
||||
<!-- <field name="mrs_cutting_tool_cutterhead_model_ids" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags"/>-->
|
||||
<!-- <field name="tool_loading_length"/>-->
|
||||
<!-- </group>-->
|
||||
<!-- <group>-->
|
||||
<!-- <field name="integral_code"/>-->
|
||||
<!-- <field name="blade_code"/>-->
|
||||
<!-- <field name="bar_code"/>-->
|
||||
<!-- <field name="pad_code"/>-->
|
||||
<!-- <field name="handle_code"/>-->
|
||||
<!-- <field name="chuck_code"/>-->
|
||||
<!-- <field name="coarse_middle_thin"/>-->
|
||||
<!-- </group>-->
|
||||
<!-- </group>-->
|
||||
<!-- <group>-->
|
||||
<!-- <group>-->
|
||||
<!-- <field name="integral_name"/>-->
|
||||
<!-- <field name="blade_name"/>-->
|
||||
<!-- <field name="bar_name"/>-->
|
||||
<!-- <field name="pad_name"/>-->
|
||||
<!-- <field name="handle_name"/>-->
|
||||
<!-- <field name="chuck_name"/>-->
|
||||
<!-- <field name="new_former"/>-->
|
||||
<!-- </group>-->
|
||||
<!-- <group>-->
|
||||
<!-- <field name="sf_tool_brand_id_1"/>-->
|
||||
<!-- <field name="sf_tool_brand_id_2"/>-->
|
||||
<!-- <field name="sf_tool_brand_id_3"/>-->
|
||||
<!-- <field name="sf_tool_brand_id_4"/>-->
|
||||
<!-- <field name="sf_tool_brand_id_5"/>-->
|
||||
<!-- <field name="sf_tool_brand_id_6"/>-->
|
||||
<!-- <field name="reference_length"/>-->
|
||||
<!-- </group>-->
|
||||
<!-- </group>-->
|
||||
<!-- </group>-->
|
||||
<!-- <group>-->
|
||||
<!-- <group>-->
|
||||
<!-- <field name="cut_time"/>-->
|
||||
<!-- <field name="cut_length"/>-->
|
||||
<!-- <field name="cut_number"/>-->
|
||||
<!-- </group>-->
|
||||
<!-- </group>-->
|
||||
<group string="组装物料信息">
|
||||
<group>
|
||||
<field name="integral_code"/>
|
||||
<field name="mrs_cutting_tool_integral_model_ids" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags"/>
|
||||
<field name="blade_code"/>
|
||||
<field name="mrs_cutting_tool_blade_model_ids" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags"/>
|
||||
<field name="bar_code"/>
|
||||
<field name="mrs_cutting_tool_cutterbar_model_ids" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags"/>
|
||||
<field name="pad_code"/>
|
||||
<field name="mrs_cutting_tool_cutterpad_model_ids" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags"/>
|
||||
<field name="handle_code"/>
|
||||
<field name="mrs_cutting_tool_cutterhandle_model_ids" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags"/>
|
||||
<field name="chuck_code"/>
|
||||
<field name="mrs_cutting_tool_cutterhead_model_ids" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="integral_name"/>
|
||||
<field name="sf_tool_brand_id_1"/>
|
||||
<field name="blade_name"/>
|
||||
<field name="sf_tool_brand_id_2"/>
|
||||
<field name="bar_name"/>
|
||||
<field name="sf_tool_brand_id_3"/>
|
||||
<field name="pad_name"/>
|
||||
<field name="sf_tool_brand_id_4"/>
|
||||
<field name="handle_name"/>
|
||||
<field name="sf_tool_brand_id_5"/>
|
||||
<field name="chuck_name"/>
|
||||
<field name="sf_tool_brand_id_6"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string="组装参数信息">
|
||||
<group>
|
||||
<group>
|
||||
<field name="tool_name"/>
|
||||
<field name="knife_handle_name"/>
|
||||
<field name="tool_loading_length"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="tool_code"/>
|
||||
<field name="knife_handle_code"/>
|
||||
<field name="coarse_middle_thin"/>
|
||||
</group>
|
||||
</group>
|
||||
<group>
|
||||
<group>
|
||||
<field name="tool_brand"/>
|
||||
<field name="knife_handle_brand"/>
|
||||
<field name="new_former"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="tool_type"/>
|
||||
<field name="knife_handle_type"/>
|
||||
<field name="reference_length"/>
|
||||
</group>
|
||||
</group>
|
||||
</group>
|
||||
<group>
|
||||
<group>
|
||||
<field name="cut_time"/>
|
||||
<field name="cut_length"/>
|
||||
<field name="cut_number"/>
|
||||
</group>
|
||||
<field name="coarse_middle_thin"/>
|
||||
<field name="new_former"/>
|
||||
<field name="tool_loading_length"/>
|
||||
<field name="reference_length"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="cut_time"/>
|
||||
<field name="cut_length"/>
|
||||
<field name="cut_number"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
<footer>
|
||||
@@ -267,8 +258,8 @@
|
||||
<field name="order"/>
|
||||
<field name="functional_tool_code"/>
|
||||
<field name="name"/>
|
||||
<field name="functional_tool_type"/>
|
||||
<field name="production_line_name"/>
|
||||
<field name="functional_tool_type_id"/>
|
||||
<field name="production_line_name_id"/>
|
||||
<field name="machine_tool_code"/>
|
||||
<field name="receive_person"/>
|
||||
<field name="receive_time"/>
|
||||
|
||||
Reference in New Issue
Block a user