From 0a84221920fb97d14ddc88dfbcf6e529535e9b19 Mon Sep 17 00:00:00 2001 From: Yannick Tivisse Date: Tue, 26 Oct 2021 13:31:25 +0000 Subject: [PATCH] [FIX] sale_coupon: Prevent already encoded-expired coupons to be used closes odoo/odoo#79022 Taskid: 2439224 Signed-off-by: Yannick Tivisse (yti) --- addons/sale_coupon/models/sale_order.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/addons/sale_coupon/models/sale_order.py b/addons/sale_coupon/models/sale_order.py index 4155c4da9eb..64a2dfb7ec9 100644 --- a/addons/sale_coupon/models/sale_order.py +++ b/addons/sale_coupon/models/sale_order.py @@ -393,6 +393,11 @@ class SaleOrder(models.Model): # delete reward line coming from an archived coupon (it will never be updated/removed when recomputing the order) invalid_lines = order.order_line.filtered(lambda line: line.is_reward_line and line.product_id.id not in reward_product_ids) + # Remove coupons that are now expired + expired_coupons = order.applied_coupon_ids.filtered( + lambda coupon: coupon.expiration_date and coupon.expiration_date < fields.Date.today()) + programs_to_remove |= expired_coupons.program_id + if programs_to_remove: product_ids_to_remove = programs_to_remove.discount_line_product_id.ids