diff --git a/addons/sale/models/sale.py b/addons/sale/models/sale.py index 8d315a3b821..e9f61e877ba 100644 --- a/addons/sale/models/sale.py +++ b/addons/sale/models/sale.py @@ -299,29 +299,16 @@ class SaleOrder(models.Model): @api.multi def action_view_invoice(self): - invoice_ids = self.mapped('invoice_ids') - imd = self.env['ir.model.data'] - action = imd.xmlid_to_object('account.action_invoice_tree1') - list_view_id = imd.xmlid_to_res_id('account.invoice_tree') - form_view_id = imd.xmlid_to_res_id('account.invoice_form') - - result = { - 'name': action.name, - 'help': action.help, - 'type': action.type, - 'views': [[list_view_id, 'tree'], [form_view_id, 'form'], [False, 'graph'], [False, 'kanban'], [False, 'calendar'], [False, 'pivot']], - 'target': action.target, - 'context': action.context, - 'res_model': action.res_model, - } - if len(invoice_ids) > 1: - result['domain'] = "[('id','in',%s)]" % invoice_ids.ids - elif len(invoice_ids) == 1: - result['views'] = [(form_view_id, 'form')] - result['res_id'] = invoice_ids.ids[0] + invoices = self.mapped('invoice_ids') + action = self.env.ref('account.action_invoice_tree1').read()[0] + if len(invoices) > 1: + action['domain'] = [('id', 'in', invoices.ids)] + elif len(invoices) == 1: + action['views'] = [(self.env.ref('account.invoice_form').id, 'form')] + action['res_id'] = invoices.ids[0] else: - result = {'type': 'ir.actions.act_window_close'} - return result + action = {'type': 'ir.actions.act_window_close'} + return action @api.multi def action_invoice_create(self, grouped=False, final=False):