Skip to content
Code-Schnipsel Gruppen Projekte
Commit 62802ab6 erstellt von Henning Leutz's avatar Henning Leutz :martial_arts_uniform:
Dateien durchsuchen

feat: refactor: redeem coupon code

Übergeordneter 5df56223
No related branches found
No related tags found
Keine zugehörigen Merge Requests gefunden
......@@ -16,7 +16,7 @@
'package_quiqqer_coupons_ajax_frontend_redeem',
function ($code, $orderHash) {
try {
$CouponCode = Handler::getCouponCodeByCode($code);
Handler::getCouponCodeByCode($code);
} catch (QUI\ERP\Coupons\CouponCodeException $Exception) {
QUI\System\Log::writeDebugException($Exception);
......@@ -36,8 +36,14 @@ function ($code, $orderHash) {
return false;
}
$Order = QUI\ERP\Order\Handler::getInstance()->getOrderByHash($orderHash);
$Order = QUI\ERP\Order\Handler::getInstance()->getOrderByHash($orderHash);
$coupons = $Order->getDataEntry('quiqqer-coupons');
$coupons[] = $code;
$coupons = array_unique($coupons);
$Order->setData('quiqqer-coupons', $coupons);
$Order->update();
return true;
},
......
......@@ -2,4 +2,8 @@
<events>
<event on="onQuiqqer::order::orderProcessBasketEnd" fire="\QUI\ERP\Coupons\Events::templateOrderProcessBasketEnd"/>
<!--<event on="onQuiqqer::order::basketSmall::end" fire="\QUI\ERP\Payments\PayPal\Events::templateOrderBasketSmallEnd"/>-->
<event on="onQuiqqerOrderBasketToOrder"
fire="\QUI\ERP\Coupons\Events::onQuiqqerOrderBasketToOrder"
/>
</events>
\ No newline at end of file
......@@ -6,8 +6,6 @@
use Quiqqer\Engine\Collector;
use QUI\ERP\Order\Basket\Basket;
use QUI\ERP\Order\Basket\BasketGuest;
use QUI\ERP\Order\Utils\Utils as OrderUtils;
use QUI\ERP\Order\Controls\OrderProcess\Checkout as CheckoutStep;
/**
* Class Events
......@@ -21,9 +19,6 @@ class Events
*
* @param Collector $Collector
* @param BasketGuest $Basket
* @return void
*
* @throws QUI\Exception
*/
public static function templateOrderProcessBasketEnd(Collector $Collector, $Basket)
{
......@@ -36,6 +31,58 @@ public static function templateOrderProcessBasketEnd(Collector $Collector, $Bask
);
}
/**
* event - on price factor init
*
* @param $Basket
* @param QUI\ERP\Order\AbstractOrder $Order
* @param QUI\ERP\Products\Utils\PriceFactors $PriceFactors
*/
public static function onQuiqqerOrderBasketToOrder(
$Basket,
QUI\ERP\Order\AbstractOrder $Order,
QUI\ERP\Products\Utils\PriceFactors $PriceFactors
) {
$coupons = $Order->getDataEntry('quiqqer-coupons');
if (!$coupons) {
return;
}
if (!is_array($coupons)) {
return;
}
foreach ($coupons as $coupon) {
/* @var $Coupon CouponCode */
try {
$Coupon = Handler::getCouponCodeByCode($coupon);
} catch (\Exception $Exception) {
continue;
}
// coupon check
if (!$Coupon->isRedeemable($Order->getCustomer())) {
continue;
}
/* @var $Discount QUI\ERP\Discount\Discount */
$discounts = $Coupon->getDiscounts();
foreach ($discounts as $Discount) {
// @todo discount check
$PriceFactor = $Discount->toPriceFactor();
$PriceFactor->setTitle(
'Gutschein-Code '.$Coupon->getCode()
);
$PriceFactors->addToEnd($PriceFactor);
}
}
}
// /**
// * Template event quiqqer/order: onQuiqqer::order::basketSmall::end
// *
......
0% oder .
You are about to add 0 people to the discussion. Proceed with caution.
Bearbeitung dieser Nachricht zuerst beenden!
Bitte registrieren oder zum Kommentieren