从发票行树中访问发票抬头数据 (invoice_id)
Access invoice header data (invoice_id) from invoice line tree
亲爱的!
我需要访问销售发票抬头数据(即字段 invoice_id
)以默认发票行 table 树视图中字段 (analytics_id
) 的另一个值。
我编写了以下代码来确定字段 analytics_id
的默认值,并在继承 account.invoice.line
:
的自定义 class 中实现了它
class my_account_invoice_line(osv.osv):
_inherit = "account.invoice.line"
def _default_analytics_id(self, cr, uid, context=None):
if context is None:
context = {}
invoice_id = context.get('invoice_id', False)
if invoice_id:
inv_obj = self.pool.get('account.invoice').browse(cr, uid, invoice_id, context=context)
plan = inv_obj.plan_id
return plan
return False
_defaults = {
'analytics_id': _default_analytics_id,
}
my_account_invoice_line()
令我惊讶的是,invoice_id
字段在上下文中不可用(context.get('invoice_id', False)
总是 returns False
),尽管发票抬头 已经创建并且 有 一个 ID。我敢肯定,它必须以某种方式可用 - 只是想不出任何方法。
你能告诉我正确的方向吗?
非常感谢任何帮助,谢谢。
各位,
我终于成功了 - 并在此处记录我的结果,希望它可以帮助其他人解决此类问题。
发票 ID(或发票抬头中的任何其他字段)需要通过相应 XML 文件中的 context
属性明确传递。因此,我以继承形式修改了字段 invoice_line
的 context
属性,如下所示:
<record model="ir.ui.view" id="view_custom_account_invoice_form_inherited">
<field name="name">account.invoice.form</field>
<field name="model">account.invoice</field>
<field name="type">form</field>
<field name="inherit_id" ref="account.invoice_form" />
<field name="arch" type="xml">
<xpath expr="//field[@name='invoice_line']" position="attributes">
<attribute name="context">{'type': type, 'custom_field_id': custom_field_id}</attribute>
</xpath>
</field>
</record>
备注:context="{'type': type}"
是OpenERP 7中的标准值(见文件/addons/account/account_invoice_view.xml
)。
完成此操作后,发票抬头数据中 custom_field_id
的值将在发票行中可用,您可以将其用于您的目的:
class my_account_invoice_line(osv.osv):
_inherit = "account.invoice.line"
def _default_analytics_id(self, cr, uid, context=None):
if context is None:
context = {}
custom_id = context.get('custom_field_id', False)
if custom_id:
# ...your code to do something with custom_id goes here...
return True # or whatever suits your needs to be used as default
return False
_defaults = {
'analytics_id': _default_analytics_id,
}
my_account_invoice_line()
此致
亲爱的!
我需要访问销售发票抬头数据(即字段 invoice_id
)以默认发票行 table 树视图中字段 (analytics_id
) 的另一个值。
我编写了以下代码来确定字段 analytics_id
的默认值,并在继承 account.invoice.line
:
class my_account_invoice_line(osv.osv):
_inherit = "account.invoice.line"
def _default_analytics_id(self, cr, uid, context=None):
if context is None:
context = {}
invoice_id = context.get('invoice_id', False)
if invoice_id:
inv_obj = self.pool.get('account.invoice').browse(cr, uid, invoice_id, context=context)
plan = inv_obj.plan_id
return plan
return False
_defaults = {
'analytics_id': _default_analytics_id,
}
my_account_invoice_line()
令我惊讶的是,invoice_id
字段在上下文中不可用(context.get('invoice_id', False)
总是 returns False
),尽管发票抬头 已经创建并且 有 一个 ID。我敢肯定,它必须以某种方式可用 - 只是想不出任何方法。
你能告诉我正确的方向吗?
非常感谢任何帮助,谢谢。
各位,
我终于成功了 - 并在此处记录我的结果,希望它可以帮助其他人解决此类问题。
发票 ID(或发票抬头中的任何其他字段)需要通过相应 XML 文件中的 context
属性明确传递。因此,我以继承形式修改了字段 invoice_line
的 context
属性,如下所示:
<record model="ir.ui.view" id="view_custom_account_invoice_form_inherited">
<field name="name">account.invoice.form</field>
<field name="model">account.invoice</field>
<field name="type">form</field>
<field name="inherit_id" ref="account.invoice_form" />
<field name="arch" type="xml">
<xpath expr="//field[@name='invoice_line']" position="attributes">
<attribute name="context">{'type': type, 'custom_field_id': custom_field_id}</attribute>
</xpath>
</field>
</record>
备注:context="{'type': type}"
是OpenERP 7中的标准值(见文件/addons/account/account_invoice_view.xml
)。
完成此操作后,发票抬头数据中 custom_field_id
的值将在发票行中可用,您可以将其用于您的目的:
class my_account_invoice_line(osv.osv):
_inherit = "account.invoice.line"
def _default_analytics_id(self, cr, uid, context=None):
if context is None:
context = {}
custom_id = context.get('custom_field_id', False)
if custom_id:
# ...your code to do something with custom_id goes here...
return True # or whatever suits your needs to be used as default
return False
_defaults = {
'analytics_id': _default_analytics_id,
}
my_account_invoice_line()
此致