【问题标题】:add custom field that I already created to Invoice in OpenERP在 OpenERP 中将我已经创建的自定义字段添加到 Invoice
【发布时间】:2014-12-30 04:27:05
【问题描述】:

我使用此代码在 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>

【问题讨论】:

  • 非常感谢亚历克斯!对不起,我的英语很糟糕。
  • 你的意思是说你想在'account.invoice'中添加你在'res.partner'中添加的相同字段?如果是,那么您可以选择发票屏幕中的“fields.related”字段,该字段将与“account.invoice”中的“partner_id”字段相关。搜索如何添加相关字段的示例。
  • 谢谢!我已经解决了像“partner_id.clientes_rnc_ced”这样的字段调用的问题

标签: openerp openerp-8


【解决方案1】:

正如@Hardik 建议的那样,您必须在 account.invoice 模型中使用相关字段。我个人觉得这很奇怪,因为只写&lt;field name="partner_id.clientes_rnc_cedclientes_rnc_ced"&gt; 会更加直观、灵活和强大,但这在 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()

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

<field name="rnc_ced">

【讨论】:

  • 感谢@Andrei,我解决了在 Qweb 视图上写入 t-if="o.partner_id.clientes_rnc_ced" 的问题,并且运行良好。
猜你喜欢
  • 2022-10-14
  • 2023-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多