blob: aefde1c290bea6e38c1f34ff2e8b8c8ce6f170dc (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import models, _, api
class CouponProgram(models.Model):
_inherit = "coupon.program"
def _filter_not_ordered_reward_programs(self, order):
"""
Returns the programs when the reward is actually in the order lines
"""
programs = super(CouponProgram, self)._filter_not_ordered_reward_programs(order)
# Do not filter on free delivery programs. As delivery_unset is called everywhere (which is
# rather stupid), the delivery line is unliked to be created again instead of writing on it to
# modify the price_unit. That way, the reward is unlink and is not set back again.
return programs
def _check_promo_code(self, order, coupon_code):
if self.reward_type == 'free_shipping' and not any(line.is_delivery for line in order.order_line):
return {'error': _('The shipping costs are not in the order lines.')}
return super(CouponProgram, self)._check_promo_code(order, coupon_code)
|