From 130df743da8c9921a91832bad57ec0592bd4ad80 Mon Sep 17 00:00:00 2001 From: Henning Leutz <leutz@pcsg.de> Date: Wed, 3 Mar 2021 11:08:36 +0100 Subject: [PATCH] fix: quiqqer/discount#9 --- src/QUI/ERP/Coupons/Events.php | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/QUI/ERP/Coupons/Events.php b/src/QUI/ERP/Coupons/Events.php index 0763a7a..655b98b 100644 --- a/src/QUI/ERP/Coupons/Events.php +++ b/src/QUI/ERP/Coupons/Events.php @@ -263,20 +263,27 @@ public static function onQuiqqerOrderBasketToOrder( ]) ); - if ($Discount->getAttribute('scope') === QUI\ERP\Discount\Handler::DISCOUNT_SCOPE_EVERY_PRODUCT || - $Discount->getAttribute('scope') === QUI\ERP\Discount\Handler::DISCOUNT_SCOPE_UNIQUE - ) { + $isUnique = $Discount->getAttribute('scope') === QUI\ERP\Discount\Handler::DISCOUNT_SCOPE_UNIQUE; + $everyProduct = $Discount->getAttribute('scope') === QUI\ERP\Discount\Handler::DISCOUNT_SCOPE_EVERY_PRODUCT; + + if ($everyProduct || $isUnique) { // add to the product - $products = $Products->getProducts(); + $products = $Products->getProducts(); + $alreadyAdded = false; foreach ($products as $Product) { if ($Discount->canUsedWith($Product) === false) { continue; } + if ($isUnique && $alreadyAdded) { + continue; + } + if ($Product instanceof QUI\ERP\Products\Product\UniqueProduct) { $Product->getPriceFactors()->add($PriceFactor); - $added = true; + $added = true; + $alreadyAdded = true; } } -- GitLab