diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py index 247a932329a..526f6fd31c9 100644 --- a/addons/purchase/purchase.py +++ b/addons/purchase/purchase.py @@ -182,7 +182,7 @@ class PurchaseOrder(models.Model): @api.multi def unlink(self): for order in self: - if order.state not in ['draft', 'cancel']: + if not order.state == 'cancel': raise UserError(_('In order to delete a purchase order, you must cancel it first.')) return super(PurchaseOrder, self).unlink() diff --git a/addons/purchase/test/ui/delete_order.yml b/addons/purchase/test/ui/delete_order.yml index 6f9ba54e89d..9cde313ac1c 100644 --- a/addons/purchase/test/ui/delete_order.yml +++ b/addons/purchase/test/ui/delete_order.yml @@ -13,15 +13,19 @@ self.unlink(cr, uid, [ref("purchase_order_1")]) except Exception,e: pass +- + I delete a cancelled order. +- + !python {model: purchase.order}: | + from openerp.exceptions import UserError + try: + self.unlink(cr, uid, [ref("purchase_order_7")]) + except UserError: + pass - I delete a draft order. - !python {model: purchase.order}: | self.unlink(cr, uid, [ref("purchase_order_5")]) -- - I delete a cancelled order. -- - !python {model: purchase.order}: | - self.unlink(cr, uid, [ref("purchase_order_7")])