diff options
| author | Goffin Simon <sig@odoo.com> | 2016-01-11 17:15:47 +0100 |
|---|---|---|
| committer | Goffin Simon <sig@odoo.com> | 2016-01-12 16:28:01 +0100 |
| commit | 4142d6ed8e95ff9ca5b87a7c810c8c4e840b5634 (patch) | |
| tree | 1c5c394521465fb2f530d7a3278d60085f23f3b0 | |
| parent | b24d759036f7ebccd93df008fbfc2605efaeb574 (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.py | 2 | ||||
| -rw-r--r-- | addons/purchase/test/ui/delete_order.yml | 12 |
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")]) |
