diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py index 63131ec104d..cbeb2325124 100644 --- a/addons/purchase/purchase.py +++ b/addons/purchase/purchase.py @@ -653,6 +653,14 @@ class purchase_order(osv.osv): return False self.write(cr, uid, ids, {'state':'draft','shipped':0}) self.set_order_line_status(cr, uid, ids, 'draft', context=context) + for po in self.browse(cr, SUPERUSER_ID, ids, context=context): + for picking in po.picking_ids: + picking.move_lines.write({'purchase_line_id': False}) + for invoice in po.invoice_ids: + po.write({'invoice_ids': [(3, invoice.id, _)]}) + for po_line in po.order_line: + for invoice_line in po_line.invoice_lines: + po_line.write({'invoice_lines': [(3, invoice_line.id, _)]}) for p_id in ids: # Deleting the existing instance of workflow for PO self.delete_workflow(cr, uid, [p_id]) # TODO is it necessary to interleave the calls?