From 0f9a9fbae3f0303456e0325832db4e31f4f2a24e Mon Sep 17 00:00:00 2001 From: Josse Colpaert Date: Mon, 15 Sep 2014 19:24:08 +0200 Subject: [PATCH] [IMP] Purchase order wkf optim --- addons/purchase/purchase.py | 8 ++------ addons/purchase/purchase_view.xml | 3 +-- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py index be2803261e7..4688b752578 100644 --- a/addons/purchase/purchase.py +++ b/addons/purchase/purchase.py @@ -679,12 +679,11 @@ class purchase_order(osv.osv): def action_cancel(self, cr, uid, ids, context=None): for purchase in self.browse(cr, uid, ids, context=context): for pick in purchase.picking_ids: - if pick.state not in ('draft', 'cancel'): + if pick.state not in ('draft', 'cancel', 'confirmed'): raise osv.except_osv( _('Unable to cancel the purchase order %s.') % (purchase.name), _('First cancel all receipts related to this purchase order.')) - self.pool.get('stock.picking') \ - .signal_workflow(cr, uid, map(attrgetter('id'), purchase.picking_ids), 'button_cancel') + self.pool.get('stock.picking').action_cancel(cr, uid, map(attrgetter('id'), purchase.picking_ids), context=context) for inv in purchase.invoice_ids: if inv and inv.state not in ('cancel', 'draft'): raise osv.except_osv( @@ -692,9 +691,6 @@ class purchase_order(osv.osv): _('You must first cancel all invoices related to this purchase order.')) self.pool.get('account.invoice') \ .signal_workflow(cr, uid, map(attrgetter('id'), purchase.invoice_ids), 'invoice_cancel') - self.pool['purchase.order.line'].write(cr, uid, [l.id for l in purchase.order_line], - {'state': 'cancel'}) - self.write(cr, uid, ids, {'state': 'cancel'}) self.set_order_line_status(cr, uid, ids, 'cancel', context=context) self.signal_workflow(cr, uid, ids, 'purchase_cancel') return True diff --git a/addons/purchase/purchase_view.xml b/addons/purchase/purchase_view.xml index 239bc990ff2..1ccd8af6011 100644 --- a/addons/purchase/purchase_view.xml +++ b/addons/purchase/purchase_view.xml @@ -202,8 +202,7 @@