From bef88bf0d0d6323eec225cba2d73eb0c5dbac433 Mon Sep 17 00:00:00 2001 From: Mira Weller Date: Tue, 1 Oct 2024 18:46:44 +0200 Subject: [PATCH] fix SUBEVENT_MODE_DISTINCT discounts --- src/pretix/base/models/discount.py | 3 +- src/tests/base/test_cross_selling.py | 42 ++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 1 deletion(-) diff --git a/src/pretix/base/models/discount.py b/src/pretix/base/models/discount.py index c8803e91f5..be2b3d0ac4 100644 --- a/src/pretix/base/models/discount.py +++ b/src/pretix/base/models/discount.py @@ -470,6 +470,7 @@ class Discount(LoggedModel): [idx for idx in g if idx in condition_candidates], [idx for idx in g if idx in benefit_candidates], result, - collect_potential_discounts + None, + None ) return result diff --git a/src/tests/base/test_cross_selling.py b/src/tests/base/test_cross_selling.py index eb7ef58bd8..e602f54e4f 100644 --- a/src/tests/base/test_cross_selling.py +++ b/src/tests/base/test_cross_selling.py @@ -587,6 +587,48 @@ def test_2f1r_discount_cross_selling_eventseries_same(eventseries): ) +@scopes_disabled() +@pytest.mark.django_db +def test_50percentoff_discount_cross_selling_eventseries_distinct(eventseries): + setup_items(eventseries, 'Tickets', 'both', 'discounts', + ('Regular Ticket', '42.00'), + ('Reduced Ticket', '23.00'), + ) + make_discount('For every 2 of Regular Ticket in distinct subevents, get 50% discount on them.', eventseries) + + check_cart_behaviour( + eventseries, + cart_contents=''' Price Discounted Subev + Regular Ticket 42.00 42.00 Date1 + Regular Ticket 42.00 42.00 Date1 + Regular Ticket 42.00 42.00 Date1 + ''', + recommendations=''' Price Discounted Price Max Count Prefix + ''' + ) + check_cart_behaviour( + eventseries, + cart_contents=''' Price Discounted Subev + Regular Ticket 42.00 21.00 Date1 + Regular Ticket 42.00 21.00 Date2 + Regular Ticket 42.00 21.00 Date3 + ''', + recommendations=''' Price Discounted Price Max Count Prefix + ''' + ) + check_cart_behaviour( + eventseries, + cart_contents=''' Price Discounted Subev + Regular Ticket 42.00 21.00 Date1 + Regular Ticket 42.00 21.00 Date2 + Regular Ticket 42.00 21.00 Date3 + Reduced Ticket 23.00 23.00 Date1 + ''', + recommendations=''' Price Discounted Price Max Count Prefix + ''' + ) + + @scopes_disabled() @pytest.mark.django_db @pytest.mark.skip("currently unsupported (cannot give discount to specific product on minimum cart value)")