From 6617defe53ca7b0d481afb91ce6c1d341609ac0b Mon Sep 17 00:00:00 2001 From: "Thomas Lefebvre (thle)" Date: Thu, 20 Oct 2022 08:12:24 +0000 Subject: [PATCH] [FIX] sale_loyalty: check coupon partner Steps to reproduce: - create a "gift card" with a specific customer; - use gift card code with any customer (Sales and/or eCommerce app). Issue: The coupon is validated. Cause: There is no partner verification when applying a coupon. opw-3027251 closes odoo/odoo#103673 X-original-commit: 092d652b1f38b804657b6e1d383a157615cf9487 Signed-off-by: Grazioso Andrea (agr) Signed-off-by: Lefebvre Thomas (thle) --- addons/sale_loyalty/i18n/sale_loyalty.pot | 6 ++++++ addons/sale_loyalty/models/sale_order.py | 2 ++ 2 files changed, 8 insertions(+) diff --git a/addons/sale_loyalty/i18n/sale_loyalty.pot b/addons/sale_loyalty/i18n/sale_loyalty.pot index 04ac3088d51..a3a0b52ac30 100644 --- a/addons/sale_loyalty/i18n/sale_loyalty.pot +++ b/addons/sale_loyalty/i18n/sale_loyalty.pot @@ -182,6 +182,12 @@ msgstr "" msgid "ID" msgstr "" +#. module: sale_loyalty +#: code:addons/sale_loyalty/models/sale_order.py:0 +#, python-format +msgid "Invalid partner." +msgstr "" + #. module: sale_loyalty #: code:addons/sale_loyalty/models/sale_order.py:0 #, python-format diff --git a/addons/sale_loyalty/models/sale_order.py b/addons/sale_loyalty/models/sale_order.py index b2b6d2fe679..0a08a4e6a3f 100644 --- a/addons/sale_loyalty/models/sale_order.py +++ b/addons/sale_loyalty/models/sale_order.py @@ -947,6 +947,8 @@ class SaleOrder(models.Model): not coupon.program_id.reward_ids or\ not coupon.program_id.filtered_domain(self._get_program_domain()): return {'error': _('This code is invalid (%s).', code), 'not_found': True} + elif coupon.partner_id and coupon.partner_id != self.partner_id: + return {'error': _('Invalid partner.')} elif coupon.expiration_date and coupon.expiration_date < fields.Date.today(): return {'error': _('This coupon is expired.')} elif coupon.points < min(coupon.program_id.reward_ids.mapped('required_points')):