0

我使用此代码在 res.partner 模型中创建了一个新字段,并修改了 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>
4

1 回答 1

0

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

相反,您必须在“account.invoice”模型中声明一个新字段,该字段从相关的“res.partner”模型中获取值。在模型的适当位置扩展“account.invoice”模型,就像为“res.partner”所做的那样

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()

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

<field name="rnc_ced">
于 2014-12-31T08:26:40.647 回答