From 75f39e07b29eeadea06109e22c92809d513daeb9 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Mon, 12 Mar 2018 15:57:48 +0100 Subject: [PATCH 1/3] [FIX] sale_coupon: can duplicate sale order lines Fix the commit a42c27f99e0061b7c4f6597e4 which inverts the initial filter. The change remove all sale order lines for the simple order create in the backend. opw-1819977 --- models/sale_order.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/models/sale_order.py b/models/sale_order.py index 12876e46c4c..d4b8f895989 100644 --- a/models/sale_order.py +++ b/models/sale_order.py @@ -37,9 +37,8 @@ class SaleOrder(models.Model): order._update_existing_reward_lines() def copy(self, default=None): - order = super(SaleOrder, self).copy(dict(default or {}, order_line=False)) - for line in self._get_reward_lines(): - line.copy({'order_id': order.id}) + order = super(SaleOrder, self).copy(default) + order._get_reward_lines().unlink() order.with_context(sale_coupon_no_loop=False)._create_new_no_code_promo_reward_lines() return order From ce054681f0484891ee71561cc025cf7395a7f143 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Mon, 12 Mar 2018 14:49:51 +0100 Subject: [PATCH 2/3] [FIX] sale_coupon: change unit When the reward product is changed, the corresponding UOM should be adapted. opw-1823149 --- models/sale_coupon_program.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/models/sale_coupon_program.py b/models/sale_coupon_program.py index 6c487f7f281..1e702ef1a8c 100644 --- a/models/sale_coupon_program.py +++ b/models/sale_coupon_program.py @@ -73,6 +73,11 @@ class SaleCouponProgram(models.Model): if self.promo_code_usage == 'no_code_needed': self.promo_code = False + @api.onchange('reward_product_id') + def _onchange_reward_product_id(self): + if self.reward_product_id: + self.reward_product_uom_id = self.reward_product_id.uom_id + @api.model def create(self, vals): program = super(SaleCouponProgram, self).create(vals) From 61d049ab4c1d425d0d7df25d96ee0f0e7a0bbd99 Mon Sep 17 00:00:00 2001 From: Romain Derie Date: Fri, 9 Mar 2018 17:39:58 +0100 Subject: [PATCH 3/3] [FIX] sale_coupon: recompute coupon before confirmation Instead of after If "Lock Confirmed Orders" option is checked, a sale order with a coupon can not be confirmed as the lines are recomputed after the change of state Backport of https://github.com/odoo/enterprise/commit/073ca5866a3a7006a03b99c4681e60da7a6e6efd Closes #1967 --- models/sale_order.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/models/sale_order.py b/models/sale_order.py index d4b8f895989..d3789d5413b 100644 --- a/models/sale_order.py +++ b/models/sale_order.py @@ -43,10 +43,9 @@ class SaleOrder(models.Model): return order def action_confirm(self): - res = super(SaleOrder, self).action_confirm() self.recompute_coupon_lines() self.generated_coupon_ids.write({'state': 'new'}) - return res + return super(SaleOrder, self).action_confirm() def action_cancel(self): res = super(SaleOrder, self).action_cancel()