将我已创建的自定义字段添加到OpenERP中的Invoice

时间:2014-12-30 04:27:06

标签: openerp openerp-8

我使用此代码在res.partner Model中创建了一个新字段,并修改了Partner的表单视图以显示新字段,并且它运行良好。现在,我正在尝试引用“发票视图”中的新字段,并将其添加到“打印发票”中。我不知道怎么做。我试过不同的方法但没有任何作用。请问你能帮帮我吗?我在这个和其他论坛上搜索了很多小时,但没有。我正在使用odoo 8,请帮助我。谢谢!

.py文件

    from openerp.osv import osv, fields

    class res_partner(osv.osv):

        _inherit = 'res.partner'

        _columns = {
               'clientes_rnc_ced': fields.char('RNC o Cédula',size=12),
        }

    res_partner()

XML文件

    <?xml version="1.0" encoding="utf-8"?>
    <openerp>
        <data>
            <record id="clientes_atributos_form" model="ir.ui.view">
                <field name="name">clientes.atributos.form</field>
                <field name="model">res.partner</field>
                <field name="type">form</field>
                <field name="inherit_id" ref="base.view_partner_form"/>
                <field name="arch" type="xml">
                   <field name="ref" position="after">
                        <field name="clientes_rnc_ced" />
                   </field>
                </field>
            </record>
            <record id="clientes_atributos_tree" model="ir.ui.view">
                <field name="name">clientes.atributos.tree</field>
                <field name="model">res.partner</field>
                <field name="type">form</field>
                <field name="inherit_id" ref="base.view_partner_tree"/>
                <field name="arch" type="xml">
                   <field name="display_name" position="before">
                        <field name="clientes_rnc_ced" />
                   </field>
                </field>
            </record>        
        </data>
    </openerp>

1 个答案:

答案 0 :(得分:0)

正如@Hardik建议您必须在account.invoice模型中使用相关字段。我个人认为这很奇怪,因为只编写<field name="partner_id.clientes_rnc_cedclientes_rnc_ced">会更加直观,灵活和强大,但这在OpenERP中不起作用。

相反,您必须在&#39; account.invoice&#39;中声明一个新字段。从相关的“res.partner”中获取价值的模型。模型。在您的模型中的适当位置,扩展&#39; account.invoice&#39;您为&#39; res.partner&#39;

所做的模型
class invoice(osv.osv):
    _inherit = 'account.invoice'
    _columns = {
           'rnc_ced': fields.related('partner_id',
                                     'clientes_rnc_ced',
                                     type='char', size=12,
                                     string='RNC o Cédula'),
    }

invoice()

现在您可以按照您已经知道的方式将其放入发票中。

<field name="rnc_ced">