+ result = mod_obj.get_object_reference(cr, uid, 'account', 'action_invoice_tree1')
+ id = result and result[1] or False
+ result = act_obj.read(cr, uid, [id], context=context)[0]
+ #compute the number of invoices to display
+ inv_ids = []
+ for po in self.browse(cr, uid, ids, context=context):
+ inv_ids += [invoice.id for invoice in po.invoice_ids]
+ #choose the view_mode accordingly
+ if len(inv_ids)>1:
+ result['domain'] = "[('id','in',["+','.join(map(str, inv_ids))+"])]"
+ else:
+ res = mod_obj.get_object_reference(cr, uid, 'account', 'invoice_form')
+ result['views'] = [(res and res[1] or False, 'form')]
+ result['res_id'] = inv_ids and inv_ids[0] or False
+ return result