openerp在BOM中添加自定义字段但总是出错

时间:2015-02-20 23:11:28

标签: openerp-7

我想在mrp.bom表中使用少量自定义字段,以便从图纸尺寸开始计算实际行材料消耗量。 这是我的.py代码

from osv import osv, fields

class mrp_bom(osv.osv):

_inerhit = 'mrp.bom'

#_name = 'mrp.bom'

_columns = {
        'Residuo_barra': fields.float(string='Residuo Barra', required=False),
        'Sfrido': fields.float(string='Sfrido mm', required=False),
        'L_barra': fields.float(string='lunghezza barra mm', required=False),
        'L_pezzo_a_disegno': fields.float(string='L a disegno in mm', required=False),
        'L_pezzo_calcolata': fields.float(string='Lunghezza calcolata', required=False),
}

_defaults = {
    'Residuo_barra': 300.0,
    'Sfrido': 4.0,
    'L_barra': 3000.0,
}

def button_Calcola(self, cr, uid, ids, L_pezzo_a_disegno, Residuo_barra, Sfrido, L_barra, conext=None):
    #calcola il consumo effettivo della barra
    barra_utile = L_barra - Residuo_barra
    numero_pezzi = int(barra_utile / (L_pezzo_a_disegno + Sfrido))
    res = {
        'L_pezzo_calcolata': (L_barra / numero_pezzi)
    }

    return {'value': res}

mrp_bom()

,这是.xml

    

    <record id="mrp_bom_tree_view" model="ir.ui.view">
        <field name="name">mrp.bom.tree</field>
        <field name="model">mrp.bom</field>
        <field name="inherit_id" ref="mrp.mrp_bom_tree_view"/>
        <field name="arch" type="xml">
            <field name="product_id" position="after">
            <field name="L_pezzo_calcolata" />
            </field>
        </field>
    </record>

    <record id="mrp_bom_component_tree_view" model="ir.ui.view">
        <field name="name">mrp.bom.component.tree</field>
        <field name="model">mrp.bom</field>
        <field name="inherit_id" ref="mrp.mrp_bom_component_tree_view"/>
        <field name="arch" type="xml">
            <field name="product_id" position="after">
            <field name="L_pezzo_calcolata" />
            </field>
        </field>
    </record>

    <record id="mrp_bom_form_view" model="ir.ui.view">
        <field name="name">mrp.bom.form</field>
        <field name="model">mrp.bom</field>
        <field name="inherit_id" ref="mrp.mrp_bom_form_view"/>
        <field name="arch" type="xml">
            <xpath expr="//field[@name='bom_lines']/tree" position="inside" >
            <field name="Residuo_barra" />
            <field name="Sfrido" />
            <field name="L_barra" />
            <field name="L_pezzo_a_disegno" />
            <field name="L_pezzo_calcolata" />
            </xpath>
        </field>
    </record>

</data>

在安装过程中我得到:

ValidateError

验证字段arch时发生错误:View Architecture的XML无效!

如果我检查模块结构Setting \ Database structure \ models \ mrp_bom 该字段已添加,但如果我在bom视图中管理视图,则字段不可用!

1 个答案:

答案 0 :(得分:0)

更改继承视图的记录ID,使它们不相同。

例如:

<record id="mrp_bom_tree_view_add_field_L_pezzo_calcolata" model="ir.ui.view">
    <field name="name">mrp_bom_tree_view_add_field_L_pezzo_calcolata</field>
    <field name="model">mrp.bom</field>
    <field name="inherit_id" ref="mrp.mrp_bom_tree_view"/>
    <field name="arch" type="xml">
        <field name="product_id" position="after">
        <field name="L_pezzo_calcolata" />
        </field>
    </field>
</record>