From 8af4a8f6b48316dbc66c84e8c44e03d38f8f25a6 Mon Sep 17 00:00:00 2001 From: Henning Leutz <leutz@pcsg.de> Date: Tue, 22 Jun 2021 12:13:02 +0200 Subject: [PATCH] fix: quiqqer/coupons#10 --- ajax/frontend/redeem.php | 16 ++++++++++++++++ src/QUI/ERP/Coupons/Events.php | 5 ++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/ajax/frontend/redeem.php b/ajax/frontend/redeem.php index e5fa5e4..740b4a2 100644 --- a/ajax/frontend/redeem.php +++ b/ajax/frontend/redeem.php @@ -45,6 +45,7 @@ function ($code, $orderHash) { $calculations = $Order->getArticles()->getCalculations(); $subSum = $calculations['subSum']; + $sum = $calculations['sum']; $discounts = $CouponCode->getDiscounts(); foreach ($discounts as $Discount) { @@ -59,6 +60,21 @@ function ($code, $orderHash) { return false; } + if ($Discount->getAttribute('scope') === QUI\ERP\Discount\Handler::DISCOUNT_SCOPE_GRAND_TOTAL) { + if (!DiscountEvents::isDiscountUsableWithPurchaseValue($Discount, $sum)) { + QUI::getMessagesHandler()->addError( + QUI::getLocale()->get( + 'quiqqer/coupons', + 'exception.CouponCode.discounts_invalid' + ) + ); + + return false; + } + + continue; + } + if (!DiscountEvents::isDiscountUsableWithPurchaseValue($Discount, $subSum)) { QUI::getMessagesHandler()->addError( QUI::getLocale()->get( diff --git a/src/QUI/ERP/Coupons/Events.php b/src/QUI/ERP/Coupons/Events.php index 655b98b..12c599c 100644 --- a/src/QUI/ERP/Coupons/Events.php +++ b/src/QUI/ERP/Coupons/Events.php @@ -252,7 +252,10 @@ public static function onQuiqqerOrderBasketToOrder( continue; } - if (!DiscountEvents::isDiscountUsableWithPurchaseValue($Discount, $subSum)) { + if ($Discount->getAttribute('scope') === QUI\ERP\Discount\Handler::DISCOUNT_SCOPE_GRAND_TOTAL) { + // do nothing for this scope + // since this scope requires all price factors etc, this cannot be calculated here + } elseif (!DiscountEvents::isDiscountUsableWithPurchaseValue($Discount, $subSum)) { continue; } -- GitLab