summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGoffin Simon <sig@odoo.com>2016-01-11 17:15:47 +0100
committerGoffin Simon <sig@odoo.com>2016-01-12 16:28:01 +0100
commit4142d6ed8e95ff9ca5b87a7c810c8c4e840b5634 (patch)
tree1c5c394521465fb2f530d7a3278d60085f23f3b0
parentb24d759036f7ebccd93df008fbfc2605efaeb574 (diff)
[FIX] purchase: unlink PO
A PO must be in state cancel to be canceled. Before the fix, it was possible to cancel a draft PO then if a PO linked to a procurement was deleted with being canceled, the procurement stayed in running state. opw:666311
-rw-r--r--addons/purchase/purchase.py2
-rw-r--r--addons/purchase/test/ui/delete_order.yml12
2 files changed, 9 insertions, 5 deletions
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
@@ -14,14 +14,18 @@
except Exception,e:
pass
-
- I delete a draft order.
+ I delete a cancelled order.
-
!python {model: purchase.order}: |
- self.unlink(cr, uid, [ref("purchase_order_5")])
+ from openerp.exceptions import UserError
+ try:
+ self.unlink(cr, uid, [ref("purchase_order_7")])
+ except UserError:
+ pass
-
- I delete a cancelled order.
+ I delete a draft order.
-
!python {model: purchase.order}: |
- self.unlink(cr, uid, [ref("purchase_order_7")])
+ self.unlink(cr, uid, [ref("purchase_order_5")])