Skip to content
Code-Schnipsel Gruppen Projekte
Commit 2444277f erstellt von Henning Leutz's avatar Henning Leutz :martial_arts_uniform:
Dateien durchsuchen
Übergeordneter ab136a5f
No related branches found
No related tags found
Keine zugehörigen Merge Requests gefunden
......@@ -38,8 +38,13 @@ function ($code, $orderHash) {
return false;
}
$Order = QUI\ERP\Order\Handler::getInstance()->getOrderByHash($orderHash);
$coupons = $Order->getDataEntry('quiqqer-coupons');
$Order = QUI\ERP\Order\Handler::getInstance()->getOrderByHash($orderHash);
$coupons = $Order->getDataEntry('quiqqer-coupons');
if (empty($coupons)) {
$coupons = [];
}
$coupons[] = $code;
$coupons = \array_unique($coupons);
......
<?php
/**
* This file contains package_quiqqer_coupons_ajax_frontend_removeCoupons
*/
/**
* Remove all coupons from an order
*
* @param string $orderHash - Order hash
*/
QUI::$Ajax->registerFunction(
'package_quiqqer_coupons_ajax_frontend_removeCoupons',
function ($orderHash) {
$Order = QUI\ERP\Order\Handler::getInstance()->getOrderByHash($orderHash);
$Articles = $Order->getArticles();
foreach ($Articles as $index => $Article) {
$customData = $Article->getCustomData();
if (!isset($customData['package'])) {
continue;
}
if ($customData['package'] !== 'quiqqer/coupon') {
continue;
}
if (!isset($customData['code'])) {
continue;
}
$Order->removeArticle($index);
}
$Order->setData('quiqqer-coupons', []);
$Order->save();
},
['orderHash']
);
......@@ -23,4 +23,8 @@ div + .quiqqer-coupons-field {
.quiqqer-coupons-couponcodeinput input {
line-height: 36px;
margin-right: 1rem;
}
\ No newline at end of file
}
.quiqqer-coupons-remove .fa {
margin-right: 0;
}
......@@ -75,6 +75,35 @@ define('package/quiqqer/coupons/bin/frontend/controls/CouponCodeInput', [
event.stop();
self.$submit();
});
if (this.isInOrder()) {
var OrderProcess = this.getOrderProcess();
new Promise(function (resolve) {
if (!OrderProcess.isLoaded()) {
return OrderProcess.addEvent('onLoad', resolve);
}
resolve();
}).then(function () {
if (OrderProcess.getAttribute('basketEditable') === false) {
// remove coupon codes button
new Element('button', {
'class': 'quiqqer-coupons-remove',
'html' : '<span class="fa fa-close"></span>',
title : QUILocale.get(lg, 'remove.coupons.button'),
events : {
click: function (e) {
e.stop();
self.removeCouponsFromOrder().catch(function (e) {
console.error(e);
});
}
}
}).inject(self.$Elm.getElement('.quiqqer-coupons-couponcodeinput'));
}
});
}
},
/**
......@@ -97,10 +126,6 @@ define('package/quiqqer/coupons/bin/frontend/controls/CouponCodeInput', [
this.Loader.show();
// get order process
var OrderProcessNode = this.getElm().getParent(
'[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) {
......@@ -123,7 +148,7 @@ define('package/quiqqer/coupons/bin/frontend/controls/CouponCodeInput', [
return;
}
var OrderProcess = window.QUI.Controls.getById(OrderProcessNode.get('data-quiid'));
var OrderProcess = this.getOrderProcess();
OrderProcess.Loader.show();
......@@ -152,6 +177,47 @@ define('package/quiqqer/coupons/bin/frontend/controls/CouponCodeInput', [
);
return !!OrderProcessNode;
},
/**
* Return the order process
*
* @return {Object}
*/
getOrderProcess: function () {
var OrderProcessNode = this.getElm().getParent(
'[data-qui="package/quiqqer/order/bin/frontend/controls/OrderProcess"]'
);
return window.QUI.Controls.getById(OrderProcessNode.get('data-quiid'));
},
/**
* Remove all coupons from the order
*
* @return {Promise}
*/
removeCouponsFromOrder: function () {
if (!this.isInOrder()) {
return Promise.resolve();
}
var self = this;
return new Promise(function (resolve) {
var OrderProcess = self.getOrderProcess();
OrderProcess.Loader.show();
OrderProcess.getOrder().then(function (orderHash) {
QUIAjax.get('package_quiqqer_coupons_ajax_frontend_removeCoupons', function () {
resolve();
OrderProcess.reload();
}, {
'package': 'quiqqer/coupon',
orderHash: orderHash
});
});
});
}
});
});
......@@ -390,5 +390,10 @@
<de><![CDATA[Einlösen]]></de>
<en><![CDATA[Redeem]]></en>
</locale>
<locale name="remove.coupons.button">
<de><![CDATA[Alle Coupons entfernen]]></de>
<en><![CDATA[Remove all coupons]]></en>
</locale>
</groups>
</locales>
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