diff --git a/addons/sale/sale.py b/addons/sale/sale.py index 70313b03b24..fe5deac13a7 100644 --- a/addons/sale/sale.py +++ b/addons/sale/sale.py @@ -461,6 +461,34 @@ class sale_order(osv.osv): inv_obj.button_compute(cr, uid, [inv_id]) return inv_id + def manual_invoice(self, cr, uid, ids, context=None): + wf_service = netsvc.LocalService("workflow") + inv_ids = set() + inv_ids1 = set() + for id in ids: + for record in self.pool.get('sale.order').browse(cr, uid, id).invoice_ids: + inv_ids.add(record.id) + # inv_ids would have old invoices if any + for id in ids: + wf_service.trg_validate(uid, 'sale.order', id, 'manual_invoice', cr) + for record in self.pool.get('sale.order').browse(cr, uid, id).invoice_ids: + inv_ids1.add(record.id) + inv_ids = list(inv_ids1.difference(inv_ids)) + + result = { + 'name': 'Invoices', + 'view_type': 'form', + 'view_mode': 'form,tree', + 'res_model': 'account.invoice', + 'view_id': False, + 'context': "{'type':'out_refund'}", + 'type': 'ir.actions.act_window', + 'res_id': inv_ids[0], + 'nodestroy' :True + } + + return result + def action_invoice_create(self, cr, uid, ids, grouped=False, states=['confirmed', 'done', 'exception'], date_inv = False, context=None): res = False invoices = {} diff --git a/addons/sale/sale_view.xml b/addons/sale/sale_view.xml index 747414b7e8d..913dfa1f82d 100644 --- a/addons/sale/sale_view.xml +++ b/addons/sale/sale_view.xml @@ -205,7 +205,7 @@