diff --git a/addons/coupon/models/coupon_program.py b/addons/coupon/models/coupon_program.py index 8e0cb3b1f1a..04657feb3d3 100644 --- a/addons/coupon/models/coupon_program.py +++ b/addons/coupon/models/coupon_program.py @@ -87,15 +87,8 @@ class CouponProgram(models.Model): def create(self, vals): program = super(CouponProgram, self).create(vals) if not vals.get('discount_line_product_id', False): - discount_line_product_id = self.env['product.product'].create({ - 'name': program.reward_id.display_name, - 'type': 'service', - 'taxes_id': False, - 'supplier_taxes_id': False, - 'sale_ok': False, - 'purchase_ok': False, - 'lst_price': 0, #Do not set a high value to avoid issue with coupon code - }) + values = program._get_discount_product_values() + discount_line_product_id = self.env['product.product'].create(values) program.write({'discount_line_product_id': discount_line_product_id.id}) return program @@ -162,3 +155,14 @@ class CouponProgram(models.Model): def _compute_total_order_count(self): for program in self: program.total_order_count = 0 + + def _get_discount_product_values(self): + return { + 'name': self.reward_id.display_name, + 'type': 'service', + 'taxes_id': False, + 'supplier_taxes_id': False, + 'sale_ok': False, + 'purchase_ok': False, + 'lst_price': 0, #Do not set a high value to avoid issue with coupon code + } diff --git a/addons/sale_coupon/models/coupon_program.py b/addons/sale_coupon/models/coupon_program.py index 083dd085cfc..e9f6e2d861d 100644 --- a/addons/sale_coupon/models/coupon_program.py +++ b/addons/sale_coupon/models/coupon_program.py @@ -169,6 +169,11 @@ class CouponProgram(models.Model): programs += programs_curr_order._filter_not_ordered_reward_programs(order) return programs + def _get_discount_product_values(self): + res = super()._get_discount_product_values() + res['invoice_policy'] = 'order' + return res + def _is_global_discount_program(self): self.ensure_one() return self.promo_applicability == 'on_current_order' and \