Newer
Older
<?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>'
);
}
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
/**
* 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);
}
}
}
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
// /**
// * 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>'
// );
// }
}