刀具物料产品优化需求
This commit is contained in:
@@ -31,9 +31,11 @@
|
|||||||
options="{'no_create': True}"
|
options="{'no_create': True}"
|
||||||
attrs="{'invisible': [('categ_type', '!=', '刀具')],'required': [('categ_type', '=', '刀具')],'readonly': [('id', '!=', False)]}"
|
attrs="{'invisible': [('categ_type', '!=', '刀具')],'required': [('categ_type', '=', '刀具')],'readonly': [('id', '!=', False)]}"
|
||||||
placeholder="请选择"/>
|
placeholder="请选择"/>
|
||||||
|
<field name="brand_id" options="{'no_create': True}" placeholder="请选择"
|
||||||
|
attrs="{'invisible': [('categ_type', '!=', '刀具')],'required': [('categ_type', '=', '刀具')],'readonly': [('id', '!=', False)]}"/>
|
||||||
<field name="cutting_tool_model_id" placeholder="请选择" class="custom_required"
|
<field name="cutting_tool_model_id" placeholder="请选择" class="custom_required"
|
||||||
options="{'no_create': True}"
|
options="{'no_create': True}"
|
||||||
domain="[('cutting_tool_material_id','=',cutting_tool_material_id)]"
|
domain="[('cutting_tool_material_id','=',cutting_tool_material_id),('brand_id', '=', brand_id)]"
|
||||||
context="{'default_cutting_tool_material_id': cutting_tool_material_id}"
|
context="{'default_cutting_tool_material_id': cutting_tool_material_id}"
|
||||||
attrs="{'invisible': [('categ_type', '!=', '刀具')],'required': [('categ_type', '=', '刀具')],'readonly': [('id', '!=', False)]}">
|
attrs="{'invisible': [('categ_type', '!=', '刀具')],'required': [('categ_type', '=', '刀具')],'readonly': [('id', '!=', False)]}">
|
||||||
</field>
|
</field>
|
||||||
@@ -47,10 +49,10 @@
|
|||||||
<field name="fixture_material_id"
|
<field name="fixture_material_id"
|
||||||
attrs="{'invisible': [('categ_type', '!=', '夹具')],'required': [('categ_type', '=', '夹具')]}"
|
attrs="{'invisible': [('categ_type', '!=', '夹具')],'required': [('categ_type', '=', '夹具')]}"
|
||||||
placeholder="请选择" options="{'no_create': True}"/>
|
placeholder="请选择" options="{'no_create': True}"/>
|
||||||
<field name="fixture_model_id" string="型号" placeholder="请选择" options="{'no_create': True}"
|
<field name="fixture_model_id" string="型号名称" placeholder="请选择" options="{'no_create': True}"
|
||||||
attrs="{'invisible': [('categ_type', '!=', '夹具')],'required': [('categ_type', '=', '夹具')]}"
|
attrs="{'invisible': [('categ_type', '!=', '夹具')],'required': [('categ_type', '=', '夹具')]}"
|
||||||
domain="[('fixture_material_id','=',fixture_material_id)]"/>
|
domain="[('fixture_material_id','=',fixture_material_id)]"/>
|
||||||
<field name="specification_fixture_id" string="规格" placeholder="请选择"
|
<field name="specification_fixture_id" string="物料号" placeholder="请选择"
|
||||||
options="{'no_create': True}"
|
options="{'no_create': True}"
|
||||||
attrs="{'invisible': [('categ_type', '!=', '夹具')],'required': [('categ_type', '=', '夹具')]}"
|
attrs="{'invisible': [('categ_type', '!=', '夹具')],'required': [('categ_type', '=', '夹具')]}"
|
||||||
domain="[('fixture_model_id','=',fixture_model_id)]"/>
|
domain="[('fixture_model_id','=',fixture_model_id)]"/>
|
||||||
@@ -95,6 +97,16 @@
|
|||||||
</group>
|
</group>
|
||||||
</page>
|
</page>
|
||||||
</xpath>
|
</xpath>
|
||||||
|
<xpath expr="//field[@name='name']" position="attributes">
|
||||||
|
<attribute name="attrs">{'readonly': ['|',('id','!=',False),('categ_type', '=',
|
||||||
|
'刀具')], 'required': True}
|
||||||
|
</attribute>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr="//field[@name='default_code']" position="attributes">
|
||||||
|
<attribute name="attrs">{'readonly': [('categ_type', '=', '刀具')], 'invisible':
|
||||||
|
[('product_variant_count', '>' , 1)]}
|
||||||
|
</attribute>
|
||||||
|
</xpath>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
@@ -455,7 +467,8 @@
|
|||||||
<tree editable="bottom">
|
<tree editable="bottom">
|
||||||
<!-- <field name="cutting_speed"-->
|
<!-- <field name="cutting_speed"-->
|
||||||
<!-- attrs="{'readonly': [('materials_type_id','!=',False)]}"/>-->
|
<!-- attrs="{'readonly': [('materials_type_id','!=',False)]}"/>-->
|
||||||
<field name="materials_type_id" options="{'no_create': True}" placeholder="请选择"/>
|
<field name="materials_type_id" options="{'no_create': True}"
|
||||||
|
placeholder="请选择"/>
|
||||||
<field name="blade_diameter"/>
|
<field name="blade_diameter"/>
|
||||||
<field name="feed_per_tooth"/>
|
<field name="feed_per_tooth"/>
|
||||||
</tree>
|
</tree>
|
||||||
|
|||||||
@@ -50,8 +50,8 @@ class ResProductMo(models.Model):
|
|||||||
cutting_tool_material_id = fields.Many2one('sf.cutting.tool.material', string='刀具物料')
|
cutting_tool_material_id = fields.Many2one('sf.cutting.tool.material', string='刀具物料')
|
||||||
cutting_tool_type = fields.Char(string="刀具物料类型", related='cutting_tool_material_id.name', store=True)
|
cutting_tool_type = fields.Char(string="刀具物料类型", related='cutting_tool_material_id.name', store=True)
|
||||||
|
|
||||||
cutting_tool_model_id = fields.Many2one('sf.cutting_tool.standard.library', string='型号')
|
cutting_tool_model_id = fields.Many2one('sf.cutting_tool.standard.library', string='型号名称')
|
||||||
specification_id = fields.Many2one('sf.tool.materials.basic.parameters', string='规格')
|
specification_id = fields.Many2one('sf.tool.materials.basic.parameters', string='物料号')
|
||||||
|
|
||||||
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)]")
|
||||||
@@ -104,6 +104,25 @@ class ResProductMo(models.Model):
|
|||||||
compaction_way_id = fields.Many2one('maintenance.equipment.image',
|
compaction_way_id = fields.Many2one('maintenance.equipment.image',
|
||||||
'压紧方式', domain=[('type', '=', '压紧方式')])
|
'压紧方式', domain=[('type', '=', '压紧方式')])
|
||||||
|
|
||||||
|
name = fields.Char('产品名称', compute='_compute_tool_name', store=True, required=False)
|
||||||
|
default_code = fields.Char('内部参考', compute='_onchange_tool_default_code', store=True)
|
||||||
|
|
||||||
|
@api.depends('cutting_tool_model_id', 'specification_id')
|
||||||
|
def _compute_tool_name(self):
|
||||||
|
for item in self:
|
||||||
|
if item.cutting_tool_model_id and item.specification_id:
|
||||||
|
name = '%s%s' % (item.cutting_tool_model_id.name, item.specification_id.name)
|
||||||
|
item.name = name
|
||||||
|
|
||||||
|
@api.depends('categ_id', 'cutting_tool_material_id', 'cutting_tool_model_id')
|
||||||
|
def _onchange_tool_default_code(self):
|
||||||
|
for item in self:
|
||||||
|
if item.categ_id and item.cutting_tool_material_id and item.cutting_tool_model_id:
|
||||||
|
if item.cutting_tool_model_id.code:
|
||||||
|
default_code = '%s-T-DJWL-%s' % (
|
||||||
|
item.cutting_tool_model_id.code.split('-')[0], item.cutting_tool_material_id.code)
|
||||||
|
item.default_code = default_code
|
||||||
|
|
||||||
@api.onchange('cutting_tool_model_id')
|
@api.onchange('cutting_tool_model_id')
|
||||||
def _onchange_cutting_tool_model_id(self):
|
def _onchange_cutting_tool_model_id(self):
|
||||||
for item in self:
|
for item in self:
|
||||||
@@ -721,6 +740,10 @@ class ResProductMo(models.Model):
|
|||||||
logging.info('create-model_file:%s' % len(vals['model_file']))
|
logging.info('create-model_file:%s' % len(vals['model_file']))
|
||||||
self._sanitize_vals(vals)
|
self._sanitize_vals(vals)
|
||||||
templates = super(ResProductMo, self).create(vals_list)
|
templates = super(ResProductMo, self).create(vals_list)
|
||||||
|
# 产品名称唯一性校验
|
||||||
|
for item in templates:
|
||||||
|
if len(self.search([('name', '=', item.name)])) > 1:
|
||||||
|
raise ValidationError('产品名称【%s】已存在' % item.name)
|
||||||
if "create_product_product" not in self._context:
|
if "create_product_product" not in self._context:
|
||||||
templates._create_variant_ids()
|
templates._create_variant_ids()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user