Skip to content
Code-Schnipsel Gruppen Projekte
Commit a717b586 erstellt von Patrick Müller's avatar Patrick Müller
Dateien durchsuchen

feat: save order prefixed id in coupon usage

Übergeordneter 932781d0
No related branches found
No related tags found
Keine zugehörigen Merge Requests gefunden
......@@ -5,9 +5,12 @@
<th class="quiqqer-coupons-manager-usages-tbl-date">
{{headerDate}}
</th>
<th>
<th class="quiqqer-coupons-manager-usages-tbl-user">
{{headerUser}}
</th>
<th>
{{headerOrderPrefixedId}}
</th>
</tr>
</thead>
<tbody></tbody>
......
......@@ -82,5 +82,9 @@
}
.quiqqer-coupons-manager-usages-tbl-date {
width: 150px;
width: 100px;
}
.quiqqer-coupons-manager-usages-tbl-user {
width: 200px;
}
\ No newline at end of file
......@@ -572,7 +572,7 @@ define('package/quiqqer/coupons/bin/backend/controls/Manager', [
$showUsages: function (RowData) {
new QUIConfirm({
maxHeight: 550,
maxWidth : 400,
maxWidth : 600,
autoclose: false,
title: QUILocale.get(lg, 'controls.Manager.usages.title', {code: RowData.code}),
......@@ -591,8 +591,9 @@ define('package/quiqqer/coupons/bin/backend/controls/Manager', [
var lgPrefix = 'controls.Manager.usages.template.';
Popup.setContent(Mustache.render(templateUsages, {
headerUser: QUILocale.get(lg, lgPrefix + 'headerUser'),
headerDate: QUILocale.get(lg, lgPrefix + 'headerDate')
headerUser : QUILocale.get(lg, lgPrefix + 'headerUser'),
headerDate : QUILocale.get(lg, lgPrefix + 'headerDate'),
headerOrderPrefixedId: QUILocale.get(lg, lgPrefix + 'headerOrderPrefixedId')
}));
var Content = Popup.getContent();
......@@ -601,10 +602,14 @@ define('package/quiqqer/coupons/bin/backend/controls/Manager', [
for (var i = 0, len = RowData.usages.length; i < len; i++) {
var usage = RowData.usages[i];
new Element('tr', {
var Row = new Element('tr', {
html: '<td>' + usage.date + '</td>' +
'<td>' + usage.userId + ' (' + usage.userName + ')</td>'
}).inject(TableBody);
new Element('td', {
html: usage.orderPrefixedId ? usage.orderPrefixedId : '-'
}).inject(Row);
}
}
}
......
......@@ -6,4 +6,8 @@
<event on="onQuiqqerOrderBasketToOrder"
fire="\QUI\ERP\Coupons\Events::onQuiqqerOrderBasketToOrder"
/>
<event on="onQuiqqerOrderSuccessful"
fire="\QUI\ERP\Coupons\Events::onQuiqqerOrderSuccessful"
/>
</events>
\ No newline at end of file
......@@ -332,6 +332,10 @@
<de><![CDATA[Datum]]></de>
<en><![CDATA[Date]]></en>
</locale>
<locale name="controls.Manager.usages.template.headerOrderPrefixedId">
<de><![CDATA[Bestellung]]></de>
<en><![CDATA[Order]]></en>
</locale>
<locale name="controls.Manager.usages.btn_ok">
<de><![CDATA[OK]]></de>
<en><![CDATA[OK]]></en>
......
......@@ -233,11 +233,12 @@ public function getDiscounts()
* Hint: This may invalidate the code for future use
*
* @param QUI\Users\User $User - The user that redeems the CouponCode [if omitted use Session User]
* @param QUI\ERP\Order\Order $Order (optional) - Link redemption to a specific Order
* @return void
* @throws CouponCodeException
* @throws QUI\Exception
*/
public function redeem($User = null)
public function redeem($User = null, $Order = null)
{
if (is_null($User)) {
$User = QUI::getUserBySession();
......@@ -245,12 +246,20 @@ public function redeem($User = null)
$this->checkRedemption($User);
$Now = new \DateTime();
$this->usages[] = [
'userId' => $User->getId(),
'date' => $Now->format('Y-m-d H:i:s')
$Now = new \DateTime();
$usage = [
'userId' => $User->getId(),
'date' => $Now->format('Y-m-d H:i:s'),
'orderPrefixedId' => false
];
if (!is_null($Order) && $Order instanceof QUI\ERP\Order\Order) {
$usage['orderPrefixedId'] = $Order->getPrefixedId();
}
$this->usages[] = $usage;
QUI::getDataBase()->update(
Handler::getTable(),
[
......
......@@ -6,6 +6,7 @@
use Quiqqer\Engine\Collector;
use QUI\ERP\Order\Basket\Basket;
use QUI\ERP\Order\Basket\BasketGuest;
use QUI\ERP\Coupons\Handler as CouponsHandler;
/**
* Class Events
......@@ -93,4 +94,26 @@ public static function onQuiqqerOrderBasketToOrder(
} catch (QUI\Exception $Exception) {
}
}
/**
* quiqqer/order: onQuiqqerOrderSuccessful
*
* Redeem coupons used in (completed) orders
*
* @param QUI\ERP\Order\Order|QUI\ERP\Order\OrderInProcess $Order
* @return void
*/
public static function onQuiqqerOrderSuccessful($Order)
{
$coupons = $Order->getDataEntry('quiqqer-coupons');
foreach ($coupons as $couponCode) {
try {
$CouponCode = CouponsHandler::getCouponCodeByCode($couponCode);
$CouponCode->redeem($Order->getCustomer(), $Order);
} catch (\Exception $Exception) {
QUI\System\Log::writeException($Exception);
}
}
}
}
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