diff --git a/addons/account/invoice.py b/addons/account/invoice.py index f478881ac7c..fc048138256 100644 --- a/addons/account/invoice.py +++ b/addons/account/invoice.py @@ -325,6 +325,19 @@ class account_invoice(osv.osv): 'user_id': lambda s, cr, u, c: u, } + def fields_view_get(self, cr, uid, view_id=None, view_type=False, context=None, toolbar=False, submenu=False): + if context.get('active_model','') in ['res.partner']: + partner = self.pool.get(context['active_model']).read(cr,uid,context['active_ids'],['supplier','customer'])[0] + if not view_type: + view_id = self.pool.get('ir.ui.view').search(cr,uid,[('name','=','account.invoice.tree')])[0] + view_type = 'tree' + if view_type == 'form': + if partner['supplier'] and not partner['customer']: + view_id = self.pool.get('ir.ui.view').search(cr,uid,[('name','=','account.invoice.supplier.form')])[0] + else: + view_id = self.pool.get('ir.ui.view').search(cr,uid,[('name','=','account.invoice.form')])[0] + return super(account_invoice,self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar, submenu=submenu) + def create(self, cr, uid, vals, context={}): try: res = super(account_invoice, self).create(cr, uid, vals, context)