加载伴侣,父母和所有孩子的发票

时间:2019-02-22 12:46:04

标签: odoo odoo-10

我已选择合作伙伴,并且我有字段invoice_ids。当我单击添加对象时,我只希望加载伴侣,父母的发票以及他所有的child_ids发票。如上所见,我试图添加域,但出现错误

Uncaught Error: AttributeError: object has no attribute 'parent_id'

,我尝试了不带域但使用onchange的情况,但是问题是当我创建记录并选择合作伙伴时,onchnage开始工作,但是还不是partner_id,但是当我选择合作伙伴时,它仍然没有合作伙伴,因为它没有保存..一些帮助。

'invoice_ids': fields.many2many(
            'account.invoice', 'cash_receipt_invoce_rel',
            'cash_receipt_id', 'invoice_id', "Invoices", 
            domain="[('partner_id','in', partner_id.parent_id.child_ids)]",

def onchange_field_id(self, cr, uid, ids, name, context=None):
    cash_rep = self.browse(cr,uid, ids,context=context)
    relation_ids = [x.id for x in cash_rep.partner_id.child_ids]
    return {'domain': {'invoice_ids': [('partner_id', 'in', relation_ids)]}}

1 个答案:

答案 0 :(得分:1)

要获取选定合伙人,该合伙人的父母和该合伙人的孩子的发票,则可以编写以下内容。

'invoice_ids': fields.many2many(
            'account.invoice', 'cash_receipt_invoce_rel',
            'cash_receipt_id', 'invoice_id', "Invoices", 
           domain="['|','|',('partner_id.child_ids','in',[partner_id]),('partner_id','=', partner_id),('partner_id','child_of',partner_id)]",