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

Merge branch 'dev' of dev.quiqqer.com:quiqqer/coupons into dev

Übergeordnete 1412de0c d37b3ae0
No related branches found
No related tags found
Keine zugehörigen Merge Requests gefunden
...@@ -36,13 +36,6 @@ function ($attributes) { ...@@ -36,13 +36,6 @@ function ($attributes) {
for ($i = 0; $i < $amount; $i++) { for ($i = 0; $i < $amount; $i++) {
$couponCodes[] = Handler::createCouponCode($discountIds, $attributes); $couponCodes[] = Handler::createCouponCode($discountIds, $attributes);
} }
// @todo TEST-CODE - REMOVE LATER!
/** @var \QUI\ERP\Coupons\CouponCode $Code */
foreach ($couponCodes as $Code) {
$Code->redeem();
}
//*********************************************
} catch (\QUI\ERP\Coupons\CouponCodeException $Exception) { } catch (\QUI\ERP\Coupons\CouponCodeException $Exception) {
QUI::getMessagesHandler()->addError( QUI::getMessagesHandler()->addError(
QUI::getLocale()->get( QUI::getLocale()->get(
......
...@@ -5,9 +5,12 @@ ...@@ -5,9 +5,12 @@
<th class="quiqqer-coupons-manager-usages-tbl-date"> <th class="quiqqer-coupons-manager-usages-tbl-date">
{{headerDate}} {{headerDate}}
</th> </th>
<th> <th class="quiqqer-coupons-manager-usages-tbl-user">
{{headerUser}} {{headerUser}}
</th> </th>
<th>
{{headerOrderPrefixedId}}
</th>
</tr> </tr>
</thead> </thead>
<tbody></tbody> <tbody></tbody>
......
...@@ -82,5 +82,9 @@ ...@@ -82,5 +82,9 @@
} }
.quiqqer-coupons-manager-usages-tbl-date { .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', [ ...@@ -572,7 +572,7 @@ define('package/quiqqer/coupons/bin/backend/controls/Manager', [
$showUsages: function (RowData) { $showUsages: function (RowData) {
new QUIConfirm({ new QUIConfirm({
maxHeight: 550, maxHeight: 550,
maxWidth : 400, maxWidth : 600,
autoclose: false, autoclose: false,
title: QUILocale.get(lg, 'controls.Manager.usages.title', {code: RowData.code}), title: QUILocale.get(lg, 'controls.Manager.usages.title', {code: RowData.code}),
...@@ -591,8 +591,9 @@ define('package/quiqqer/coupons/bin/backend/controls/Manager', [ ...@@ -591,8 +591,9 @@ define('package/quiqqer/coupons/bin/backend/controls/Manager', [
var lgPrefix = 'controls.Manager.usages.template.'; var lgPrefix = 'controls.Manager.usages.template.';
Popup.setContent(Mustache.render(templateUsages, { Popup.setContent(Mustache.render(templateUsages, {
headerUser: QUILocale.get(lg, lgPrefix + 'headerUser'), headerUser : QUILocale.get(lg, lgPrefix + 'headerUser'),
headerDate: QUILocale.get(lg, lgPrefix + 'headerDate') headerDate : QUILocale.get(lg, lgPrefix + 'headerDate'),
headerOrderPrefixedId: QUILocale.get(lg, lgPrefix + 'headerOrderPrefixedId')
})); }));
var Content = Popup.getContent(); var Content = Popup.getContent();
...@@ -601,10 +602,14 @@ define('package/quiqqer/coupons/bin/backend/controls/Manager', [ ...@@ -601,10 +602,14 @@ define('package/quiqqer/coupons/bin/backend/controls/Manager', [
for (var i = 0, len = RowData.usages.length; i < len; i++) { for (var i = 0, len = RowData.usages.length; i < len; i++) {
var usage = RowData.usages[i]; var usage = RowData.usages[i];
new Element('tr', { var Row = new Element('tr', {
html: '<td>' + usage.date + '</td>' + html: '<td>' + usage.date + '</td>' +
'<td>' + usage.userId + ' (' + usage.userName + ')</td>' '<td>' + usage.userId + ' (' + usage.userName + ')</td>'
}).inject(TableBody); }).inject(TableBody);
new Element('td', {
html: usage.orderPrefixedId ? usage.orderPrefixedId : '-'
}).inject(Row);
} }
} }
} }
......
...@@ -6,4 +6,8 @@ ...@@ -6,4 +6,8 @@
<event on="onQuiqqerOrderBasketToOrder" <event on="onQuiqqerOrderBasketToOrder"
fire="\QUI\ERP\Coupons\Events::onQuiqqerOrderBasketToOrder" fire="\QUI\ERP\Coupons\Events::onQuiqqerOrderBasketToOrder"
/> />
<event on="onQuiqqerOrderSuccessful"
fire="\QUI\ERP\Coupons\Events::onQuiqqerOrderSuccessful"
/>
</events> </events>
\ No newline at end of file
...@@ -332,6 +332,10 @@ ...@@ -332,6 +332,10 @@
<de><![CDATA[Datum]]></de> <de><![CDATA[Datum]]></de>
<en><![CDATA[Date]]></en> <en><![CDATA[Date]]></en>
</locale> </locale>
<locale name="controls.Manager.usages.template.headerOrderPrefixedId">
<de><![CDATA[Bestellung]]></de>
<en><![CDATA[Order]]></en>
</locale>
<locale name="controls.Manager.usages.btn_ok"> <locale name="controls.Manager.usages.btn_ok">
<de><![CDATA[OK]]></de> <de><![CDATA[OK]]></de>
<en><![CDATA[OK]]></en> <en><![CDATA[OK]]></en>
......
...@@ -233,11 +233,12 @@ public function getDiscounts() ...@@ -233,11 +233,12 @@ public function getDiscounts()
* Hint: This may invalidate the code for future use * 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\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 * @return void
* @throws CouponCodeException * @throws CouponCodeException
* @throws QUI\Exception * @throws QUI\Exception
*/ */
public function redeem($User = null) public function redeem($User = null, $Order = null)
{ {
if (is_null($User)) { if (is_null($User)) {
$User = QUI::getUserBySession(); $User = QUI::getUserBySession();
...@@ -245,12 +246,20 @@ public function redeem($User = null) ...@@ -245,12 +246,20 @@ public function redeem($User = null)
$this->checkRedemption($User); $this->checkRedemption($User);
$Now = new \DateTime(); $Now = new \DateTime();
$this->usages[] = [
'userId' => $User->getId(), $usage = [
'date' => $Now->format('Y-m-d H:i:s') '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( QUI::getDataBase()->update(
Handler::getTable(), Handler::getTable(),
[ [
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
use Quiqqer\Engine\Collector; use Quiqqer\Engine\Collector;
use QUI\ERP\Order\Basket\Basket; use QUI\ERP\Order\Basket\Basket;
use QUI\ERP\Order\Basket\BasketGuest; use QUI\ERP\Order\Basket\BasketGuest;
use QUI\ERP\Coupons\Handler as CouponsHandler;
/** /**
* Class Events * Class Events
...@@ -90,4 +91,30 @@ public static function onQuiqqerOrderBasketToOrder( ...@@ -90,4 +91,30 @@ public static function onQuiqqerOrderBasketToOrder(
} catch (QUI\Exception $Exception) { } 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');
if (empty($coupons)) {
return;
}
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