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

fix: show add coupon in shoppingCard site type

Übergeordneter ca979655
No related branches found
No related tags found
Keine zugehörigen Merge Requests gefunden
......@@ -11,13 +11,14 @@ define('package/quiqqer/coupons/bin/frontend/controls/CouponCodeInput', [
'package/quiqqer/coupons/bin/frontend/CouponCodes',
'Ajax',
'Locale',
'Mustache',
'text!package/quiqqer/coupons/bin/frontend/controls/CouponCodeInput.html',
'css!package/quiqqer/coupons/bin/frontend/controls/CouponCodeInput.css'
], function (QUIControl, QUILoader, CouponCodes, QUILocale, Mustache, template) {
], function (QUIControl, QUILoader, CouponCodes, QUIAjax, QUILocale, Mustache, template) {
"use strict";
var lg = 'quiqqer/coupons';
......@@ -100,6 +101,28 @@ define('package/quiqqer/coupons/bin/frontend/controls/CouponCodeInput', [
'[data-qui="package/quiqqer/order/bin/frontend/controls/OrderProcess"]'
);
if (!this.isInOrder()) {
QUIAjax.get('package_quiqqer_order_ajax_frontend_basket_getLastOrder', function (order) {
CouponCodes.addCouponCodeToBasket(code, order.hash).then(function (redeemed) {
if (!redeemed) {
self.$running = false;
self.Loader.hide();
return;
}
QUIAjax.get('package_quiqqer_order_ajax_frontend_basket_getOrderProcessUrl', function (url) {
window.location = url + '?coupon=' + code;
}, {
'package': 'quiqqer/order'
});
});
}, {
'package': 'quiqqer/order'
});
return;
}
var OrderProcess = window.QUI.Controls.getById(OrderProcessNode.get('data-quiid'));
OrderProcess.Loader.show();
......@@ -117,6 +140,18 @@ define('package/quiqqer/coupons/bin/frontend/controls/CouponCodeInput', [
OrderProcess.reload();
});
},
/**
* Is the coupon in the order process?
* @return {boolean}
*/
isInOrder: function () {
var OrderProcessNode = this.getElm().getParent(
'[data-qui="package/quiqqer/order/bin/frontend/controls/OrderProcess"]'
);
return !!OrderProcessNode;
}
});
});
<?xml version="1.0" encoding="UTF-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="onQuiqqer::order::orderProcessBasketEnd"
fire="\QUI\ERP\Coupons\Events::templateOrderProcessBasketEnd"
/>
<event on="onQuiqqer::order::orderShoppingCardBasketEnd"
fire="\QUI\ERP\Coupons\Events::templateOrderProcessBasketEnd"
/>
<event on="onQuiqqerOrderBasketToOrder"
fire="\QUI\ERP\Coupons\Events::onQuiqqerOrderBasketToOrder"
/>
<event on="onQuiqqerOrderSuccessful"
fire="\QUI\ERP\Coupons\Events::onQuiqqerOrderSuccessful"
/>
<event on="onOrderProcess"
fire="\QUI\ERP\Coupons\Events::onOrderProcess"
/>
</events>
\ No newline at end of file
......@@ -20,8 +20,9 @@ class Events
*
* @param Collector $Collector
* @param BasketGuest $Basket
* @param $Order
*/
public static function templateOrderProcessBasketEnd(Collector $Collector, $Basket)
public static function templateOrderProcessBasketEnd(Collector $Collector, $Basket, $Order)
{
if (!($Basket instanceof Basket)
&& !($Basket instanceof QUI\ERP\Order\Basket\BasketOrder)
......@@ -29,11 +30,62 @@ public static function templateOrderProcessBasketEnd(Collector $Collector, $Bask
return;
}
if (isset($Order) && isset($_GET['coupon'])) {
try {
$code = Handler::sanitizeCode($_GET['coupon']);
$CouponCode = Handler::getCouponCodeByCode($code);
$CouponCode->checkRedemption(QUI::getUserBySession());
$CouponCode->addToOrder($Order);
} catch (\Exception $Exception) {
}
}
$Collector->append(
'<div data-qui="package/quiqqer/coupons/bin/frontend/controls/CouponCodeInput"></div>'
);
}
/**
* @param QUI\ERP\Order\OrderProcess $OrderProcess
* @throws QUI\ERP\Order\Exception
* @throws QUI\Exception
*/
public static function onOrderProcess(QUI\ERP\Order\OrderProcess $OrderProcess)
{
$CurrentStep = $OrderProcess->getCurrentStep();
$currentStep = $CurrentStep->getType();
if ($currentStep !== QUI\ERP\Order\Controls\OrderProcess\Basket::class) {
return;
}
if (!isset($_GET['coupon'])) {
return;
}
try {
$Order = $OrderProcess->getOrder();
$code = Handler::sanitizeCode($_GET['coupon']);
$CouponCode = Handler::getCouponCodeByCode($code);
$CouponCode->checkRedemption(QUI::getUserBySession());
$coupons = $Order->getDataEntry('quiqqer-coupons');
$coupons[] = $code;
$coupons = \array_unique($coupons);
$Order->setData('quiqqer-coupons', $coupons);
$Order->update();
$CouponCode->addToOrder($Order);
} catch (\Exception $Exception) {
}
}
/**
* event - on price factor init
*
......
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