From d381fd5d33d76cb53f1d91dd38c272aa8201416d Mon Sep 17 00:00:00 2001 From: "Quentin (OpenERP)" Date: Fri, 28 Mar 2014 14:43:08 +0100 Subject: [PATCH] [FIX] purchase: cancellation of procurement linked to a purchase order line should only decrease quantity for PO in draft state + typo bzr revid: qdp-launchpad@openerp.com-20140328134308-puycr1vf32l13mpu --- addons/purchase/purchase.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py index 07f7d64a893..a0d21807039 100644 --- a/addons/purchase/purchase.py +++ b/addons/purchase/purchase.py @@ -1133,12 +1133,12 @@ class procurement_order(osv.osv): def propagate_cancel(self, cr, uid, procurement, context=None): if procurement.rule_id.action == 'buy' and procurement.purchase_line_id: purchase_line_obj = self.pool.get('purchase.order.line') - if procurement.purchase_line_id.product_qty <= procurement.product_qty: - purchase_line_obj.action_cancel(cr, uid, [procurement.purchase_line_id.id], context=context) + if procurement.purchase_line_id.product_qty > procurement.product_qty and procurement.purchase_line_id.order_id.state == 'draft': + purchase_line_obj.write(cr, uid, [procurement.purchase_line_id.id], {'product_qty': procurement.purchase_line_id.product_qty - procurement.product_qty}, context=context) else: - purchase_line_obj.write(cr, uid, [procurement.purchase_line_id.id], {'product_qty': procurement.pruchase_line_id.product_qty - procurement.product_qty}, context=context) + purchase_line_obj.action_cancel(cr, uid, [procurement.purchase_line_id.id], context=context) return super(procurement_order, self).propagate_cancel(cr, uid, procurement, context=context) - + def _run(self, cr, uid, procurement, context=None): if procurement.rule_id and procurement.rule_id.action == 'buy': #make a purchase order for the procurement