diff --git a/models/sale_coupon_program.py b/models/sale_coupon_program.py index 9e2a9cd3c26..7e1ec87cc54 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) diff --git a/models/sale_order.py b/models/sale_order.py index 0c608b65b39..d3789d5413b 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