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) diff --git a/models/sale_order.py b/models/sale_order.py index 12876e46c4c..d3789d5413b 100644 --- a/models/sale_order.py +++ b/models/sale_order.py @@ -37,17 +37,15 @@ 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 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()