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

fix: conflict solved

Übergeordnete 7bcab736 e6e735f6
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']
);
......@@ -7,6 +7,7 @@ div + .quiqqer-coupons-field {
}
.quiqqer-coupons-couponcodeinput {
background: rgba(0, 0, 0, 0.05);
display: flex;
padding: 5px;
}
......@@ -23,4 +24,12 @@ div + .quiqqer-coupons-field {
.quiqqer-coupons-couponcodeinput input {
line-height: 36px;
margin-right: 1rem;
}
\ No newline at end of file
}
.quiqqer-coupons-remove {
margin-left: 1rem;
}
.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
});
});
});
}
});
});
{
"name": "quiqqer/coupons",
"type": "quiqqer-module",
"description": "Coupons for QUIQQER",
"version": "dev-master",
"license": "GPL-3.0+",
"authors": [
{
"name": "Patrick Müller",
"email": "support@pcsg.de",
"homepage": "http://www.pcsg.de",
"role": "Developer"
"name": "quiqqer\/coupons",
"type": "quiqqer-module",
"description": "Coupons for QUIQQER",
"license": "GPL-3.0+",
"authors": [
{
"name": "Patrick M\u00fcller",
"email": "support@pcsg.de",
"homepage": "http:\/\/www.pcsg.de",
"role": "Developer"
}
],
"support": {
"email": "support@pcsg.de"
},
"require": {
"quiqqer\/quiqqer": "^1.2|*@dev",
"quiqqer\/discount": "^1|*@dev"
},
"autoload": {
"psr-4": {
"QUI\\ERP\\Coupons\\": "src\/QUI\/ERP\/Coupons"
}
}
],
"support": {
"email": "support@pcsg.de"
},
"require": {
"quiqqer/quiqqer": "^1.2|*@dev",
"quiqqer/discount": "^1|*@dev"
},
"autoload": {
"psr-4": {
"QUI\\ERP\\Coupons\\": "src/QUI/ERP/Coupons"
}
}
}
......@@ -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