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

Merge branch 'dev'

Übergeordnete 33769bb2 1543c79d
No related branches found
No related tags found
Keine zugehörigen Merge Requests gefunden
...@@ -11,11 +11,16 @@ div + .quiqqer-coupons-field { ...@@ -11,11 +11,16 @@ div + .quiqqer-coupons-field {
padding: 5px; padding: 5px;
} }
.quiqqer-coupons-couponcodeinput button { .quiqqer-coupons-couponcodeinput-input {
border-radius: 0 3px 3px 0; min-width: 220px;
}
.quiqqer-coupons-couponcodeinput-title,
.quiqqer-coupons-couponcodeinput-input {
margin-right: 1rem;
} }
.quiqqer-coupons-couponcodeinput input { .quiqqer-coupons-couponcodeinput input {
border-radius: 3px 0 0 3px;
line-height: 36px; line-height: 36px;
margin-right: 1rem;
} }
\ No newline at end of file
<div class="quiqqer-coupons-couponcodeinput"> <div class="quiqqer-coupons-couponcodeinput">
<label> <label>
<span>{{labelInput}}</span> <span class="quiqqer-coupons-couponcodeinput-title">{{labelInput}}</span>
<input type="text" name="code"/> <input class="quiqqer-coupons-couponcodeinput-input" type="text" name="code"
placeholder="{{labelInputPlaceholder}}"/>
</label> </label>
<button class="quiqqer-coupons-couponcodeinput-btn"> <button class="quiqqer-coupons-couponcodeinput-btn btn btn-success">
<span>{{submitBtnText}}</span> <span>{{submitBtnText}}</span>
</button> </button>
</div> </div>
\ No newline at end of file
...@@ -11,13 +11,14 @@ define('package/quiqqer/coupons/bin/frontend/controls/CouponCodeInput', [ ...@@ -11,13 +11,14 @@ define('package/quiqqer/coupons/bin/frontend/controls/CouponCodeInput', [
'package/quiqqer/coupons/bin/frontend/CouponCodes', 'package/quiqqer/coupons/bin/frontend/CouponCodes',
'Ajax',
'Locale', 'Locale',
'Mustache', 'Mustache',
'text!package/quiqqer/coupons/bin/frontend/controls/CouponCodeInput.html', 'text!package/quiqqer/coupons/bin/frontend/controls/CouponCodeInput.html',
'css!package/quiqqer/coupons/bin/frontend/controls/CouponCodeInput.css' '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"; "use strict";
var lg = 'quiqqer/coupons'; var lg = 'quiqqer/coupons';
...@@ -53,8 +54,9 @@ define('package/quiqqer/coupons/bin/frontend/controls/CouponCodeInput', [ ...@@ -53,8 +54,9 @@ define('package/quiqqer/coupons/bin/frontend/controls/CouponCodeInput', [
this.$Elm.addClass('quiqqer-coupons-field'); this.$Elm.addClass('quiqqer-coupons-field');
this.$Elm.set('html', Mustache.render(template, { this.$Elm.set('html', Mustache.render(template, {
labelInput : QUILocale.get(lg, lgPrefix + 'labelInput'), labelInput : QUILocale.get(lg, lgPrefix + 'labelInput'),
submitBtnText: QUILocale.get(lg, lgPrefix + 'submitBtnText') labelInputPlaceholder: QUILocale.get(lg, lgPrefix + 'labelInputPlaceholder'),
submitBtnText : QUILocale.get(lg, lgPrefix + 'submitBtnText')
})); }));
this.Loader.inject(this.$Elm); this.Loader.inject(this.$Elm);
...@@ -99,6 +101,28 @@ define('package/quiqqer/coupons/bin/frontend/controls/CouponCodeInput', [ ...@@ -99,6 +101,28 @@ define('package/quiqqer/coupons/bin/frontend/controls/CouponCodeInput', [
'[data-qui="package/quiqqer/order/bin/frontend/controls/OrderProcess"]' '[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')); var OrderProcess = window.QUI.Controls.getById(OrderProcessNode.get('data-quiid'));
OrderProcess.Loader.show(); OrderProcess.Loader.show();
...@@ -116,6 +140,18 @@ define('package/quiqqer/coupons/bin/frontend/controls/CouponCodeInput', [ ...@@ -116,6 +140,18 @@ define('package/quiqqer/coupons/bin/frontend/controls/CouponCodeInput', [
OrderProcess.reload(); 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"?> <?xml version="1.0" encoding="UTF-8"?>
<events> <events>
<event on="onQuiqqer::order::orderProcessBasketEnd" fire="\QUI\ERP\Coupons\Events::templateOrderProcessBasketEnd"/> <event on="onQuiqqer::order::orderProcessBasketEnd"
<!--<event on="onQuiqqer::order::basketSmall::end" fire="\QUI\ERP\Payments\PayPal\Events::templateOrderBasketSmallEnd"/>--> fire="\QUI\ERP\Coupons\Events::templateOrderProcessBasketEnd"
/>
<event on="onQuiqqer::order::orderShoppingCardBasketEnd"
fire="\QUI\ERP\Coupons\Events::templateOrderProcessBasketEnd"
/>
<event on="onQuiqqerOrderBasketToOrder" <event on="onQuiqqerOrderBasketToOrder"
fire="\QUI\ERP\Coupons\Events::onQuiqqerOrderBasketToOrder" fire="\QUI\ERP\Coupons\Events::onQuiqqerOrderBasketToOrder"
/> />
<event on="onQuiqqerOrderSuccessful" <event on="onQuiqqerOrderSuccessful"
fire="\QUI\ERP\Coupons\Events::onQuiqqerOrderSuccessful" fire="\QUI\ERP\Coupons\Events::onQuiqqerOrderSuccessful"
/> />
<event on="onOrderProcess"
fire="\QUI\ERP\Coupons\Events::onOrderProcess"
/>
</events> </events>
\ No newline at end of file
...@@ -382,6 +382,10 @@ ...@@ -382,6 +382,10 @@
<de><![CDATA[Gutschein-Code]]></de> <de><![CDATA[Gutschein-Code]]></de>
<en><![CDATA[Coupon code]]></en> <en><![CDATA[Coupon code]]></en>
</locale> </locale>
<locale name="controls.frontend.CouponCodeInput.template.labelInputPlaceholder">
<de><![CDATA[Gutschein-Code eintippen]]></de>
<en><![CDATA[Enter coupon code]]></en>
</locale>
<locale name="controls.frontend.CouponCodeInput.template.submitBtnText"> <locale name="controls.frontend.CouponCodeInput.template.submitBtnText">
<de><![CDATA[Einlösen]]></de> <de><![CDATA[Einlösen]]></de>
<en><![CDATA[Redeem]]></en> <en><![CDATA[Redeem]]></en>
......
...@@ -20,8 +20,9 @@ class Events ...@@ -20,8 +20,9 @@ class Events
* *
* @param Collector $Collector * @param Collector $Collector
* @param BasketGuest $Basket * @param BasketGuest $Basket
* @param $Order
*/ */
public static function templateOrderProcessBasketEnd(Collector $Collector, $Basket) public static function templateOrderProcessBasketEnd(Collector $Collector, $Basket, $Order)
{ {
if (!($Basket instanceof Basket) if (!($Basket instanceof Basket)
&& !($Basket instanceof QUI\ERP\Order\Basket\BasketOrder) && !($Basket instanceof QUI\ERP\Order\Basket\BasketOrder)
...@@ -29,11 +30,62 @@ public static function templateOrderProcessBasketEnd(Collector $Collector, $Bask ...@@ -29,11 +30,62 @@ public static function templateOrderProcessBasketEnd(Collector $Collector, $Bask
return; 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( $Collector->append(
'<div data-qui="package/quiqqer/coupons/bin/frontend/controls/CouponCodeInput"></div>' '<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 * 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