新增规格改变事件

This commit is contained in:
jinling.yang
2023-10-25 17:37:17 +08:00
parent 65dd8372dd
commit 9fffcd4f04
4 changed files with 214 additions and 134 deletions

View File

@@ -295,7 +295,6 @@ class CuttingSpeed(models.Model):
_description = '切削速度Vc' _description = '切削速度Vc'
product_template_id = fields.Many2one('product.template') product_template_id = fields.Many2one('product.template')
specification_id = fields.Many2one('sf.cutting_tool.specification.wizard', string='刀具规格')
standard_library_id = fields.Many2one('sf.cutting_tool.standard.library', string='标准库') standard_library_id = fields.Many2one('sf.cutting_tool.standard.library', string='标准库')
execution_standard_id = fields.Many2one('sf.international.standards', string='执行标准', store=True) execution_standard_id = fields.Many2one('sf.international.standards', string='执行标准', store=True)
material_code = fields.Char('材料代号') material_code = fields.Char('材料代号')
@@ -342,7 +341,6 @@ class FeedPerTooth(models.Model):
product_template_id = fields.Many2one('product.template') product_template_id = fields.Many2one('product.template')
standard_library_id = fields.Many2one('sf.cutting_tool.standard.library', string='标准库') standard_library_id = fields.Many2one('sf.cutting_tool.standard.library', string='标准库')
specification_id = fields.Many2one('sf.cutting_tool.specification.wizard', string='刀具规格')
cutting_speed = fields.Char('径向切宽 ae(mm)') cutting_speed = fields.Char('径向切宽 ae(mm)')
machining_method = fields.Selection([('直铣', '直铣'), ('坡铣', '坡铣')], string='加工方式') machining_method = fields.Selection([('直铣', '直铣'), ('坡铣', '坡铣')], string='加工方式')
materials_type_id = fields.Many2one('sf.materials.model', string='材料型号') materials_type_id = fields.Many2one('sf.materials.model', string='材料型号')

View File

@@ -179,4 +179,7 @@ td.o_required_modifier {
.button_width{ .button_width{
display: flex; display: flex;
} }
.o_field_widget.o_field_many2one {
flex-direction: row !important;
}

View File

@@ -1,19 +1,19 @@
<?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>
<odoo> <odoo>
<data> <data>
<record model="ir.ui.view" id="view_product_template_only_form_inherit_sf"> <!-- <record model="ir.ui.view" id="view_product_template_only_form_inherit_sf">-->
<field name="name">product.template.only.form.inherit.sf</field> <!-- <field name="name">product.template.only.form.inherit.sf</field>-->
<field name="model">product.template</field> <!-- <field name="model">product.template</field>-->
<field name="inherit_id" ref="product.product_template_only_form_view"/> <!-- <field name="inherit_id" ref="product.product_template_only_form_view"/>-->
<field name="arch" type="xml"> <!-- <field name="arch" type="xml">-->
<field name="barcode" position="replace"> <!-- <field name="barcode" position="replace">-->
<field name='barcode' invisible="1"/> <!-- <field name='barcode' invisible="1"/>-->
</field> <!-- </field>-->
<field name="default_code" position="replace"> <!-- <field name="default_code" position="replace">-->
<field name='default_code' invisible="1"/> <!-- <field name='default_code' invisible="1"/>-->
</field> <!-- </field>-->
</field> <!-- </field>-->
</record> <!-- </record>-->
<record model="ir.ui.view" id="view_product_template_form_inherit_sf"> <record model="ir.ui.view" id="view_product_template_form_inherit_sf">
<field name="name">product.template.form.inherit.sf</field> <field name="name">product.template.form.inherit.sf</field>
@@ -59,10 +59,10 @@
domain="[('standard_library_id','=',cutting_tool_model_id)]"/> domain="[('standard_library_id','=',cutting_tool_model_id)]"/>
<field name="fixture_material_id" attrs="{'invisible': [('categ_type', '!=', '夹具')]}" <field name="fixture_material_id" attrs="{'invisible': [('categ_type', '!=', '夹具')]}"
placeholder="请选择"/> placeholder="请选择"/>
<field name="fixture_model_id" string="型号" placeholder="请选择" <!-- <field name="fixture_model_id" string="型号" placeholder="请选择"-->
context="{'default_fixture_material_id': fixture_material_id,'default_multi_mounting_type_id': fixture_multi_mounting_type_id}" <!-- context="{'default_fixture_material_id': fixture_material_id,'default_multi_mounting_type_id': fixture_multi_mounting_type_id}"-->
attrs="{'invisible': [('categ_type', '!=', '夹具')]}" <!-- attrs="{'invisible': [('categ_type', '!=', '夹具')]}"-->
domain="[('fixture_material_id','=',fixture_material_id)]"/> <!-- domain="[('fixture_material_id','=',fixture_material_id)]"/>-->
</field> </field>
<xpath expr="//label[@for='volume']" position="before"> <xpath expr="//label[@for='volume']" position="before">
@@ -104,47 +104,83 @@
</group> </group>
</page> </page>
</xpath> </xpath>
<xpath expr="//page[@name='general_information']" position="after"> <!-- <xpath expr="//page[@name='general_information']" position="after">-->
<!-- <page string="刀具物料参数" attrs="{'invisible': [('categ_type', '!=', '刀具')]}">-->
<!-- </page>-->
<!-- </xpath>-->
</field>
</record>
<record model="ir.ui.view" id="view_product_template_only_form_inherit_sf">
<field name="name">product.template.only.form.inherit.sf</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="product.product_template_only_form_view"/>
<field name="arch" type="xml">
<field name="barcode" position="replace">
<field name='barcode' invisible="1"/>
</field>
<field name="default_code" position="replace">
<field name='default_code' invisible="1"/>
</field>
<xpath expr="//page[@name='variants']" position="before">
<page string="刀具物料参数" attrs="{'invisible': [('categ_type', '!=', '刀具')]}"> <page string="刀具物料参数" attrs="{'invisible': [('categ_type', '!=', '刀具')]}">
<group> <group>
<group attrs="{'invisible': [('categ_type', '!=', '刀具')]}" col="1"> <group attrs="{'invisible': [('categ_type', '!=', '刀具')]}" col="1">
<field name="cutting_tool_type_id" options="{'no_create': True}" placeholder="请选择"/> <field name="cutting_tool_type_id" options="{'no_create': True}" placeholder="请选择"/>
<field name="brand_id" options="{'no_create': True}" placeholder="请选择"/> <field name="brand_id" options="{'no_create': True}" placeholder="请选择"/>
<field name="materials_type_id" options="{'no_create': True}" <field name="tool_hardness" string="硬度(hrc)"/>
attrs="{'invisible': [('cutting_tool_type', 'in', ('整体式刀具','夹头','刀柄'))]}" <label for="cutting_tool_run_out_accuracy_min" string="端跳精度"
placeholder="请选择"/> attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/>
<div class="o_address_format"
attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}">
<label for="cutting_tool_run_out_accuracy_min" string="最小"/>
<field name="cutting_tool_run_out_accuracy_min" class="o_address_zip"
options="{'format': false}"
attrs="{'invisible': [('cutting_tool_type','!=','整体式刀具')]}"/>
<span>(mm)&amp;nbsp;</span>
<label for="cutting_tool_run_out_accuracy_max" string="最大"/>
<field name="cutting_tool_run_out_accuracy_max" class="o_address_zip"
options="{'format': false}"
attrs="{'invisible': [('cutting_tool_type','!=','整体式刀具')]}"/>
<span>(mm)&amp;nbsp;</span>
</div>
<field name="cutting_tool_total_length" <field name="cutting_tool_total_length"
attrs="{'invisible': [('cutting_tool_type', 'not in', ('整体式刀具','刀柄','夹头'))]}"/> attrs="{'invisible': [('cutting_tool_type', 'not in', ('整体式刀具','刀柄','夹头'))]}"/>
<field name="cutting_tool_flange_length" <field name="cutting_tool_flange_length"
attrs="{'invisible': [('cutting_tool_type', '!=', '刀柄')]}"/> attrs="{'invisible': [('cutting_tool_type', '!=', '刀柄')]}"/>
<field name="materials_type_id" options="{'no_create': True}" string="刀具材质" <!-- <field name="materials_type_id" options="{'no_create': True}" string="刀具材质"-->
attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}" <!-- attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"-->
placeholder="请选择"/> <!-- placeholder="请选择"/>-->
<field name="tool_hardness" string="刀具硬度(hrc)" <!-- <field name="tool_hardness" string="刀具硬度(hrc)"-->
attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/> <!-- attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/>-->
<field name="materials_type_id" options="{'no_create': True}" string="夹头材质" <!-- <field name="materials_type_id" options="{'no_create': True}" string="夹头材质"-->
attrs="{'invisible': [('cutting_tool_type', '!=', '夹头')]}" <!-- attrs="{'invisible': [('cutting_tool_type', '!=', '夹头')]}"-->
placeholder="请选择"/> <!-- placeholder="请选择"/>-->
<field name="tool_hardness" string="夹头硬度(hrc)" <!-- <field name="tool_hardness" string="夹头硬度(hrc)"-->
attrs="{'invisible': [('cutting_tool_type', '!=', '夹头')]}"/> <!-- attrs="{'invisible': [('cutting_tool_type', '!=', '夹头')]}"/>-->
<field name="materials_type_id" options="{'no_create': True}" string="刀柄材质" <!-- <field name="materials_type_id" options="{'no_create': True}" string="刀柄材质"-->
attrs="{'invisible': [('cutting_tool_type', '!=', '刀柄')]}" <!-- attrs="{'invisible': [('cutting_tool_type', '!=', '刀柄')]}"-->
placeholder="请选择"/> <!-- placeholder="请选择"/>-->
<field name="tool_hardness" string="刀柄硬度(hrc)" <!-- <field name="tool_hardness" string="刀柄硬度(hrc)"-->
attrs="{'invisible': [('cutting_tool_type', '!=', '刀柄')]}"/> <!-- attrs="{'invisible': [('cutting_tool_type', '!=', '刀柄')]}"/>-->
<field name="cutting_tool_blade_length"
attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/>
<field name="cutting_tool_blade_diameter" string="刃部直径(mm)" class="diameter" <field name="cutting_tool_blade_diameter" string="刃部直径(mm)" class="diameter"
attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/> attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/>
<field name="cutting_tool_blade_type" <field name="cutting_tool_blade_length"
attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/>
<field name="cutting_tool_blade_helix_angle"
attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/> attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/>
<field name="cutting_tool_blade_number" placeholder="请选择" <field name="cutting_tool_blade_number" placeholder="请选择"
attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/> attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/>
<field name="cutting_tool_shank_length"
attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/>
<field name="cutting_tool_neck_length" string="颈部长度(mm)"
attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/>
<field name="cutting_tool_neck_diameter" string="颈部直径(mm)" class="diameter"
attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/>
<field name="cutting_tool_shank_diameter" string="柄部直径(mm)" class="diameter"
attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/>
<!--刀片--> <!--刀片-->
@@ -210,37 +246,31 @@
attrs="{'invisible': [('cutting_tool_type', '!=', '刀柄')]}"/> attrs="{'invisible': [('cutting_tool_type', '!=', '刀柄')]}"/>
</group> </group>
<group attrs="{'invisible': [('categ_type', '!=', '刀具')]}"> <group attrs="{'invisible': [('categ_type', '!=', '刀具')]}">
<field name="materials_type_id" options="{'no_create': True}" placeholder="请选择"
string="材质"/>
<field name="coating_material"/>
<field name="cutting_tool_blade_type"
attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/>
<field name="cutting_tool_coarse_medium_fine" string="粗/中/精" placeholder="请选择"
attrs="{'required': [('cutting_tool_type','=','整体式刀具')],'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/>
<!--整体式刀具--> <!--整体式刀具-->
<field name="cutting_tool_shank_length" <field name="cutting_tool_blade_tip_working_size" string="刀尖直径(mm)" class="diameter"
attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/>
<field name="cutting_tool_shank_diameter" string="柄部直径(mm)" class="diameter"
attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/>
<field name="cutting_tool_neck_length" string="颈部长度(mm)"
attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/>
<field name="cutting_tool_neck_diameter" string="颈部直径(mm)" class="diameter"
attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/> attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/>
<field name="cutting_tool_blade_tip_diameter" string="刀尖直径(mm)" class="diameter" <field name="cutting_tool_blade_tip_diameter" string="刀尖直径(mm)" class="diameter"
attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/> attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/>
<field name="cutting_tool_blade_tip_taper" string="刀尖锥度(°)" <field name="cutting_tool_blade_tip_taper" string="刀尖锥度(°)"
attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/> attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/>
<field name="cutting_tool_blade_helix_angle"
<label for="cutting_tool_run_out_accuracy_min" string="端跳精度"
attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/> attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/>
<div class="o_address_format" <field name="cutting_tool_pitch"
attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"> attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/>
<label for="cutting_tool_run_out_accuracy_min" string="最小"/> <field name="cutting_tool_blade_width"
<field name="cutting_tool_run_out_accuracy_min" class="o_address_zip" attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/>
options="{'format': false}" <field name="cutting_tool_blade_depth"
attrs="{'invisible': [('cutting_tool_type','!=','整体式刀具')]}"/> attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/>
<span>(mm)&amp;nbsp;</span> <field name="cutting_tool_cut_depth"
<label for="cutting_tool_run_out_accuracy_max" string="最大"/> attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/>
<field name="cutting_tool_run_out_accuracy_max" class="o_address_zip"
options="{'format': false}"
attrs="{'invisible': [('cutting_tool_type','!=','整体式刀具')]}"/>
<span>(mm)&amp;nbsp;</span>
</div>
<field name="cutting_tool_coarse_medium_fine" string="粗/中/精" placeholder="请选择"
attrs="{'required': [('cutting_tool_type','=','整体式刀具')],'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/>
<field name="tool_weight" <field name="tool_weight"
attrs='{"invisible": [("cutting_tool_type","not in",("夹头","刀柄"))]}'/> attrs='{"invisible": [("cutting_tool_type","not in",("夹头","刀柄"))]}'/>
@@ -274,8 +304,8 @@
attrs="{'invisible': [('cutting_tool_type', 'not in', ('刀片'))]}"/> attrs="{'invisible': [('cutting_tool_type', 'not in', ('刀片'))]}"/>
<field name="cutting_tool_main_included_angle" <field name="cutting_tool_main_included_angle"
attrs="{'invisible': [('cutting_tool_type', 'not in', ('刀片'))]}"/> attrs="{'invisible': [('cutting_tool_type', 'not in', ('刀片'))]}"/>
<field name="coating_material" <!-- <field name="coating_material"-->
attrs="{'invisible': [('cutting_tool_type', 'not in', ('整体式刀具','刀片','刀柄'))]}"/> <!-- attrs="{'invisible': [('cutting_tool_type', 'not in', ('整体式刀具','刀片','刀柄'))]}"/>-->
<field name="cutting_tool_accuracy_level" <field name="cutting_tool_accuracy_level"
attrs="{'invisible': [('cutting_tool_type', 'in', ('刀柄', '整体式刀具','夹头'))]}"/> attrs="{'invisible': [('cutting_tool_type', 'in', ('刀柄', '整体式刀具','夹头'))]}"/>
<field name="cutting_tool_working_hardness" <field name="cutting_tool_working_hardness"
@@ -332,71 +362,76 @@
attrs="{'invisible': [('cutting_tool_type', '!=', '刀柄')]}"/> attrs="{'invisible': [('cutting_tool_type', '!=', '刀柄')]}"/>
<field name="apply_lock_wrench_model" <field name="apply_lock_wrench_model"
attrs="{'invisible': [('cutting_tool_type', '!=', '刀柄')]}"/> attrs="{'invisible': [('cutting_tool_type', '!=', '刀柄')]}"/>
</group> </group>
</group> </group>
<group col="1" attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"> <group string="适配刀片形状"
<group string="适合加工方式"> attrs="{'invisible': [('cutting_tool_type', 'in', ('刀柄','夹头','整体式刀具',False))]}">
<field name="suitable_machining_method_ids" string="" <field name="fit_blade_shape_ids" string="" widget="custom_many2many_checkboxes"/>
widget="custom_many2many_checkboxes"/>
</group>
<group>
<group string="刀尖特征">
<field name="blade_tip_characteristics_ids" string=""
widget="custom_many2many_checkboxes"/>
</group>
<group string="柄部类型">
<field name="handle_type_ids" string="" widget="custom_many2many_checkboxes"/>
</group>
</group>
<group>
<group string="走刀方向">
<field name="cutting_direction_ids" string="" widget="custom_many2many_checkboxes"/>
</group>
<group string="适合冷却液">
<field name="suitable_coolant_ids" string="" widget="custom_many2many_checkboxes"/>
</group>
</group>
<notebook>
<page string="切削速度Vc">
<field name="cutting_speed_ids" string="" widget="one2many">
<tree editable="bottom">
<!-- <field name="order"/>-->
<field name="execution_standard_id"/>
<field name="material_code"/>
<field name="material_id"/>
<field name="material_grade"/>
<field name="tensile_strength"/>
<field name="hardness"/>
<field name="cutting_speed_n1"/>
<field name="cutting_speed_n2"/>
<field name="cutting_speed_n3"/>
<field name="cutting_speed_n4"/>
<field name="cutting_speed_n5"/>
<field name="rough_machining"/>
<field name="precision_machining"/>
<field name="application"/>
</tree>
</field>
</page>
<page string="每齿走刀量fz">
<field name="feed_per_tooth_ids" string="" widget="one2many">
<tree editable="bottom">
<field name="cutting_speed"
attrs="{'readonly': [('materials_type_id','!=',False)]}"/>
<field name="machining_method" placeholder="请选择"
attrs="{'readonly': [('cutting_speed','!=',False)]}"/>
<field name="materials_type_id" placeholder="请选择"
attrs="{'readonly': [('cutting_speed','!=',False)]}"/>
<field name="blade_diameter"/>
<field name="feed_per_tooth"/>
</tree>
</field>
</page>
</notebook>
</group> </group>
<group string="适合加工方式"
attrs="{'invisible': [('cutting_tool_type', 'not in', ('整体式刀具','刀杆','刀盘','刀片'))]}">
<field name="suitable_machining_method_ids" string=""
widget="custom_many2many_checkboxes"/>
</group>
<group string="刀尖特征"
attrs="{'invisible': [('cutting_tool_type', 'not in', ('整体式刀具','刀杆','刀盘','刀片'))]}">
<field name="blade_tip_characteristics_ids" string=""
widget="custom_many2many_checkboxes"/>
</group>
<group attrs="{'invisible': [('cutting_tool_type', 'not in', ('整体式刀具','刀杆','刀盘','刀片'))]}">
<group string="柄部类型" attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}">
<field name="handle_type_ids" string="" widget="custom_many2many_checkboxes"/>
</group>
<group string="压紧方式"
attrs="{'invisible': [('cutting_tool_type', 'not in', ('刀杆','刀盘'))]}">
<field name="compaction_way_ids" string="" widget="custom_many2many_checkboxes"/>
</group>
</group>
<group attrs="{'invisible': [('cutting_tool_type', 'not in', ('整体式刀具','刀杆','刀盘','刀片'))]}">
<group string="走刀方向">
<field name="cutting_direction_ids" string="" widget="custom_many2many_checkboxes"/>
</group>
<group string="适合冷却液">
<field name="suitable_coolant_ids" string="" widget="custom_many2many_checkboxes"/>
</group>
</group>
<notebook>
<page string="切削速度Vc">
<field name="cutting_speed_ids" string="" widget="one2many">
<tree editable="bottom">
<!-- <field name="order"/>-->
<field name="execution_standard_id"/>
<field name="material_code"/>
<field name="material_id"/>
<field name="material_grade"/>
<field name="tensile_strength"/>
<field name="hardness"/>
<field name="cutting_speed_n1"/>
<field name="cutting_speed_n2"/>
<field name="cutting_speed_n3"/>
<field name="cutting_speed_n4"/>
<field name="cutting_speed_n5"/>
<field name="rough_machining"/>
<field name="precision_machining"/>
<field name="application"/>
</tree>
</field>
</page>
<page string="每齿走刀量fz">
<field name="feed_per_tooth_ids" string="" widget="one2many">
<tree editable="bottom">
<field name="cutting_speed"
attrs="{'readonly': [('materials_type_id','!=',False)]}"/>
<field name="machining_method" placeholder="请选择"
attrs="{'readonly': [('cutting_speed','!=',False)]}"/>
<field name="materials_type_id" placeholder="请选择"
attrs="{'readonly': [('cutting_speed','!=',False)]}"/>
<field name="blade_diameter"/>
<field name="feed_per_tooth"/>
</tree>
</field>
</page>
</notebook>
</page> </page>
<page string="夹具物料参数" attrs="{'invisible': [('categ_type', '!=', '夹具')]}"> <page string="夹具物料参数" attrs="{'invisible': [('categ_type', '!=', '夹具')]}">
<group attrs='{"invisible": [("fixture_material_type","not in",("气动夹具","转接板(锁板)夹具","磁吸夹具","虎钳夹具","零点卡盘","零点托盘"))]}'> <group attrs='{"invisible": [("fixture_material_type","not in",("气动夹具","转接板(锁板)夹具","磁吸夹具","虎钳夹具","零点卡盘","零点托盘"))]}'>

View File

@@ -68,7 +68,6 @@ class ResProductMo(models.Model):
cutting_tool_type_id = fields.Many2one('sf.cutting.tool.type', string='类型', cutting_tool_type_id = fields.Many2one('sf.cutting.tool.type', string='类型',
domain="[('cutting_tool_material_id.name', '=', cutting_tool_type)]") domain="[('cutting_tool_material_id.name', '=', cutting_tool_type)]")
brand_id = fields.Many2one('sf.machine.brand', '品牌') brand_id = fields.Many2one('sf.machine.brand', '品牌')
tool_length = fields.Float('长度(mm)') tool_length = fields.Float('长度(mm)')
@@ -93,9 +92,16 @@ class ResProductMo(models.Model):
cutting_tool_blade_tip_taper = fields.Integer('刀尖锥度(°)') cutting_tool_blade_tip_taper = fields.Integer('刀尖锥度(°)')
cutting_tool_blade_helix_angle = fields.Integer('刃部螺旋角(°)') cutting_tool_blade_helix_angle = fields.Integer('刃部螺旋角(°)')
cutting_tool_blade_type = fields.Char('刃部类型') cutting_tool_blade_type = fields.Char('刃部类型')
cutting_tool_pitch = fields.Char('牙距(mm)', size=20)
cutting_tool_blade_width = fields.Char('刃部宽度(mm)', size=20)
cutting_tool_blade_depth = fields.Char('刃部深度(mm)', size=20)
cutting_tool_cut_depth = fields.Char('切削深度(mm)', size=20)
cutting_tool_coarse_medium_fine = fields.Selection([('', ''), ('', ''), ('', '')], '粗/中/精') cutting_tool_coarse_medium_fine = fields.Selection([('', ''), ('', ''), ('', '')], '粗/中/精')
cutting_tool_run_out_accuracy_max = fields.Float('端跳精度max', digits=(6, 1)) cutting_tool_run_out_accuracy_max = fields.Float('端跳精度max', digits=(6, 1))
cutting_tool_run_out_accuracy_min = fields.Float('端跳精度min', digits=(6, 1)) cutting_tool_run_out_accuracy_min = fields.Float('端跳精度min', digits=(6, 1))
cutting_tool_blade_tip_working_size = fields.Char('刀尖处理尺寸(R半径mm/倒角)', size=20)
fit_blade_shape_ids = fields.Many2many('maintenance.equipment.image', 'rel_fit_blade_shape_product_template',
'适配刀片形状', domain=[('type', '=', '刀片形状')])
suitable_machining_method_ids = fields.Many2many('maintenance.equipment.image', suitable_machining_method_ids = fields.Many2many('maintenance.equipment.image',
'rel_machining_product_template', '适合加工方式', 'rel_machining_product_template', '适合加工方式',
domain=[('type', '=', '加工能力')]) domain=[('type', '=', '加工能力')])
@@ -108,6 +114,46 @@ class ResProductMo(models.Model):
'走刀方向', domain=[('type', '=', '走刀方向')]) '走刀方向', domain=[('type', '=', '走刀方向')])
suitable_coolant_ids = fields.Many2many('maintenance.equipment.image', 'rel_coolant_product_template', suitable_coolant_ids = fields.Many2many('maintenance.equipment.image', 'rel_coolant_product_template',
'适合冷却液', domain=[('type', '=', '冷却液')]) '适合冷却液', domain=[('type', '=', '冷却液')])
compaction_way_ids = fields.Many2many('maintenance.equipment.image', 'rel_compaction_product_template',
'压紧方式', domain=[('type', '=', '压紧方式')])
@api.onchange('specification_id')
def _onchange_specification(self):
if self.specification_id:
self.cutting_tool_type_id = self.cutting_tool_model_id.cutting_tool_type_id.id
self.brand_id = self.cutting_tool_model_id.brand_id.id
self.tool_hardness = self.cutting_tool_model_id.tool_hardness
self.cutting_tool_run_out_accuracy_max = self.cutting_tool_model_id.integral_run_out_accuracy_max
self.cutting_tool_run_out_accuracy_min = self.cutting_tool_model_id.integral_run_out_accuracy_min
self.materials_type_id = self.cutting_tool_model_id.material_model_id.id
self.cutting_tool_blade_type = self.cutting_tool_model_id.blade_type
self.cutting_tool_coarse_medium_fine = self.cutting_tool_model_id.integral_coarse_medium_fine
self.coating_material = self.cutting_tool_model_id.coating_material
self.suitable_machining_method_ids = [(6, 0,
[])] if not self.cutting_tool_model_id.suitable_machining_method_ids else [
(6, 0, self.cutting_tool_model_id.suitable_machining_method_ids.ids)]
self.blade_tip_characteristics_ids = [(6, 0,
[])] if not self.cutting_tool_model_id.blade_tip_characteristics_ids else [
(6, 0, self.cutting_tool_model_id.blade_tip_characteristics_ids.ids)]
self.handle_type_ids = [(6, 0,
[])] if not self.cutting_tool_model_id.handle_type_ids else [
(6, 0, self.cutting_tool_model_id.handle_type_ids.ids)]
self.cutting_direction_ids = [(6, 0,
[])] if not self.cutting_tool_model_id.cutting_direction_ids else [
(6, 0, self.cutting_tool_model_id.cutting_direction_ids.ids)]
self.suitable_coolant_ids = [(6, 0,
[])] if not self.cutting_tool_model_id.suitable_coolant_ids else [
(6, 0, self.cutting_tool_model_id.suitable_coolant_ids.ids)]
self.compaction_way_ids = [(6, 0,
[])] if not self.cutting_tool_model_id.compaction_way_ids else [
(6, 0, self.cutting_tool_model_id.compaction_way_ids.ids)]
self.cutting_speed_ids = self.cutting_tool_model_id.cutting_speed_ids
self.feed_per_tooth_ids = [(0, 0, {'product_template_id': product_template.id}) for product_template in
self.cutting_tool_model_id.feed_per_tooth_ids.filtered(
lambda r: r.blade_diameter == self.specification_id.blade_diameter)]
# @api.constrains('suitable_machining_method_ids') # @api.constrains('suitable_machining_method_ids')
# def _check_suitable_machining_method_ids(self): # def _check_suitable_machining_method_ids(self):
@@ -427,8 +473,6 @@ class ResProductMo(models.Model):
# def _onchange_cutting_tool_material_id(self): # def _onchange_cutting_tool_material_id(self):
# if self.cutting_tool_material_id: # if self.cutting_tool_material_id:
@api.onchange('fixture_material_id') @api.onchange('fixture_material_id')
def _onchange_fixture_material_id(self): def _onchange_fixture_material_id(self):
for item in self: for item in self: