<?php namespace QUI\ERP\Coupons; use QUI; use Quiqqer\Engine\Collector; use QUI\ERP\Order\Basket\Basket; use QUI\ERP\Order\Basket\BasketGuest; /** * Class Events * * Global Event Handler for quiqqer/payment-paypal */ class Events { /** * Template event quiqqer/order: onQuiqqer::order::orderProcessBasketEnd * * @param Collector $Collector * @param BasketGuest $Basket */ public static function templateOrderProcessBasketEnd(Collector $Collector, $Basket) { if (!($Basket instanceof Basket)) { return; } $Collector->append( '<div data-qui="package/quiqqer/coupons/bin/frontend/controls/CouponCodeInput"></div>' ); } /** * 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 // * // * @param Collector $Collector // * @param BasketGuest $Basket // * @return void // * // * @throws QUI\Exception // */ // public static function templateOrderBasketSmallEnd(Collector $Collector, $Basket) // { // $PaymentExpress = Provider::getPayPalExpressPayment(); // // if (!$PaymentExpress || !$PaymentExpress->isActive()) { // return; // } // // if (!($Basket instanceof Basket)) { // return; // } // // // do not display PayPal button if basket has no articles // if (!$Basket->count()) { // return; // } // // $Project = QUI::getProjectManager()->getStandard(); // $CheckoutStep = new CheckoutStep(); // $checkout = 0; // // if ($Basket->hasOrder()) { // $Order = $Basket->getOrder(); // // if ($Order->getPaymentDataEntry(Payment::ATTR_PAYPAL_PAYMENT_ID)) { // $checkout = 1; // } // } // // $Collector->append( // '<div data-qui="package/quiqqer/payment-paypal/bin/controls/ExpressBtnLoader" // data-qui-options-context="smallbasket" // data-qui-options-basketid="' . $Basket->getId() . '" // data-qui-options-checkout="' . $checkout . '" // data-qui-options-displaysize="' . Provider::getWidgetsSetting('btn_express_size_smallbasket') . '" // data-qui-options-displaycolor="' . Provider::getWidgetsSetting('btn_express_color') . '" // data-qui-options-displayshape="' . Provider::getWidgetsSetting('btn_express_shape') . '" // data-qui-options-orderprocessurl="' . OrderUtils::getOrderProcessUrl($Project, $CheckoutStep) . '"> // </div>' // ); // } }