From 77001f0bfec087fc9ce3be73011fc5c8fb162989 Mon Sep 17 00:00:00 2001
From: Henning Leutz <leutz@pcsg.de>
Date: Mon, 25 May 2020 13:58:11 +0200
Subject: [PATCH] fix: candyman-gmbh/projektplanung#121 - discount usable
 checks

---
 src/QUI/ERP/Coupons/Events.php | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/src/QUI/ERP/Coupons/Events.php b/src/QUI/ERP/Coupons/Events.php
index b7d0689..c61dc0c 100644
--- a/src/QUI/ERP/Coupons/Events.php
+++ b/src/QUI/ERP/Coupons/Events.php
@@ -7,6 +7,7 @@
 use QUI\ERP\Order\Basket\Basket;
 use QUI\ERP\Order\Basket\BasketGuest;
 use QUI\ERP\Coupons\Handler as CouponsHandler;
+use QUI\ERP\Discount\EventHandling as DiscountEvents;
 
 /**
  * Class Events
@@ -109,6 +110,9 @@ public static function onQuiqqerOrderBasketToOrder(
         }
 
         $PriceFactors = $Products->getPriceFactors();
+        $products     = $Products->toArray();
+        $productCount = $Products->count();
+        $subSum       = $products['calculations']['subSum'];
 
         foreach ($coupons as $coupon) {
             /* @var $Coupon CouponCode */
@@ -127,6 +131,14 @@ public static function onQuiqqerOrderBasketToOrder(
             $discounts = $Coupon->getDiscounts();
 
             foreach ($discounts as $Discount) {
+                if (!DiscountEvents::isDiscountUsableWithQuantity($Discount, $productCount)) {
+                    continue;
+                }
+
+                if (!DiscountEvents::isDiscountUsableWithPurchaseValue($Discount, $subSum)) {
+                    continue;
+                }
+
                 $PriceFactor = $Discount->toPriceFactor(null, $Order->getCustomer());
                 $PriceFactor->setTitle(
                     QUI::getLocale()->get('quiqqer/coupons', 'coupon.discount.title', [
-- 
GitLab