From 46aac44a8fc7599848adad7c0065f498fdde312c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrick=20M=C3=BCller?= <p.mueller@pcsg.de> Date: Wed, 29 Aug 2018 09:56:34 +0200 Subject: [PATCH] temp commit --- ajax/create.php | 9 +++- ajax/getList.php | 20 +++++++-- bin/controls/Manager.Usages.html | 15 +++++++ bin/controls/Manager.js | 70 +++++++++++++++++++++----------- locale.xml | 12 ++++++ 5 files changed, 97 insertions(+), 29 deletions(-) create mode 100644 bin/controls/Manager.Usages.html diff --git a/ajax/create.php b/ajax/create.php index 9e5247f..4ec050c 100644 --- a/ajax/create.php +++ b/ajax/create.php @@ -20,7 +20,7 @@ function ($attributes) { try { $amount = 1; - $inviteCodes = []; + $couponCodes = []; if (!empty($attributes['amount'])) { $amount = (int)$attributes['amount']; @@ -28,7 +28,12 @@ function ($attributes) { } for ($i = 0; $i < $amount; $i++) { - $inviteCodes[] = Handler::createCouponCode($attributes); + $couponCodes[] = Handler::createCouponCode($attributes); + } + + /** @var \QUI\ERP\Coupons\CouponCode $Code */ + foreach ($couponCodes as $Code) { + $Code->redeem(); } } catch (\QUI\ERP\Coupons\CouponCodeException $Exception) { QUI::getMessagesHandler()->addError( diff --git a/ajax/getList.php b/ajax/getList.php index 022b2e8..9f730c8 100644 --- a/ajax/getList.php +++ b/ajax/getList.php @@ -21,11 +21,25 @@ function ($searchParams) { Permission::hasPermission(Handler::PERMISSION_VIEW); $searchParams = Orthos::clearArray(json_decode($searchParams, true)); - $inviteCodes = array(); + $inviteCodes = []; + $Users = QUI::getUsers(); + $L = QUI::getLocale(); try { foreach (Handler::search($searchParams) as $InviteCode) { - $inviteCodes[] = $InviteCode->toArray(); + $inviteCode = $InviteCode->toArray(); + + foreach ($inviteCode['usages'] as $k => $usage) { + // User + $User = $Users->get($usage['userId']); + $inviteCode['usages'][$k]['userName'] = $User->getUsername(); + + // Date + $Date = new DateTime($usage['date']); + $inviteCode['usages'][$k]['date'] = $L->formatDate($Date->getTimestamp()); + } + + $inviteCodes[] = $inviteCode; } } catch (\Exception $Exception) { QUI\System\Log::writeException($Exception); @@ -47,6 +61,6 @@ function ($searchParams) { Handler::search($searchParams, true) ); }, - array('searchParams'), + ['searchParams'], 'Permission::checkAdminUser' ); diff --git a/bin/controls/Manager.Usages.html b/bin/controls/Manager.Usages.html new file mode 100644 index 0000000..2cab532 --- /dev/null +++ b/bin/controls/Manager.Usages.html @@ -0,0 +1,15 @@ +<div class="quiqqer-coupons-manager-usages"> + <table> + <thead> + <tr> + <th> + {{headerDate}} + </th> + <th> + {{headerUser}} + </th> + </tr> + </thead> + <tbody></tbody> + </table> +</div> \ No newline at end of file diff --git a/bin/controls/Manager.js b/bin/controls/Manager.js index 36460b1..0c4dde0 100644 --- a/bin/controls/Manager.js +++ b/bin/controls/Manager.js @@ -24,10 +24,12 @@ define('package/quiqqer/coupons/bin/controls/Manager', [ 'text!package/quiqqer/coupons/bin/controls/Manager.html', 'text!package/quiqqer/coupons/bin/controls/Manager.Create.html', + 'text!package/quiqqer/coupons/bin/controls/Manager.Usages.html', 'css!package/quiqqer/coupons/bin/controls/Manager.css' ], function (QUI, QUIPanel, QUILoader, QUIPopup, QUIConfirm, QUIButton, QUISeparator, - Grid, QUIFormUtils, CouponCodes, QUILocale, Mustache, template, templateCreate) { + Grid, QUIFormUtils, CouponCodes, QUILocale, Mustache, template, templateCreate, + templateUsages) { "use strict"; var lg = 'quiqqer/coupons'; @@ -172,7 +174,8 @@ define('package/quiqqer/coupons/bin/controls/Manager', [ header : QUILocale.get(lg, 'controls.manager.tbl.header.status'), dataIndex: 'status', dataType : 'node', - width : 200 + width : 200, + className: 'clickable' }, { header : QUILocale.get(lg, 'controls.manager.tbl.header.validUntilDate'), dataIndex: 'validUntilDate', @@ -188,10 +191,6 @@ define('package/quiqqer/coupons/bin/controls/Manager', [ dataIndex: 'createDate', dataType : 'string', width : 150 - }, { - dataIndex: 'userId', - dataType : 'number', - hidden : true }], pagination : true, serverSort : true, @@ -216,14 +215,7 @@ define('package/quiqqer/coupons/bin/controls/Manager', [ } var Row = selected[0]; - - if (Row.userId) { - self.Loader.show(); - - self.$openUserPanel(Row.userId).then(function () { - self.Loader.hide(); - }); - } + self.$showUsages(Row); }, onRefresh : this.$listRefresh }); @@ -493,17 +485,47 @@ define('package/quiqqer/coupons/bin/controls/Manager', [ /** * Open user panel * - * @param {Number} userId + * @param {Object} RowData */ - $openUserPanel: function (userId) { - return new Promise(function (resolve, reject) { - require([ - 'controls/users/User', - 'utils/Panels' - ], function (UserPanel, PanelUtils) { - PanelUtils.openPanelInTasks(new UserPanel(userId)).then(resolve, reject); - }.bind(this)); - }); + $showUsages: function (RowData) { + new QUIConfirm({ + maxHeight: 550, + maxWidth : 400, + autoclose: false, + + title: QUILocale.get(lg, 'controls.Manager.usages.title', {code: RowData.code}), + icon : 'fa fa-user', + + cancel_button: false, + ok_button : { + text : false, + textimage: 'icon-ok fa fa-check' + }, + events : { + onOpen: function (Popup) { + var lgPrefix = 'controls.Manager.usages.template.'; + + Popup.setContent(Mustache.render(templateUsages, { + headerUser: QUILocale.get(lg, lgPrefix + 'headerUser'), + headerDate: QUILocale.get(lg, lgPrefix + 'headerDate') + })); + + var Content = Popup.getContent(); + var TableBody = Content.getElement('tbody'); + + console.log(TableBody); + + for (var i = 0, len = RowData.usages.length; i < len; i++) { + var usage = RowData.usages[i]; + + new Element('tr', { + html: '<td>' + usage.date + '</td>' + + '<td>' + usage.userId + ' (' + usage.userName + ')</td>' + }).inject(TableBody); + } + } + } + }).open(); } }); }); diff --git a/locale.xml b/locale.xml index e4b05a3..4c8d008 100644 --- a/locale.xml +++ b/locale.xml @@ -263,5 +263,17 @@ <de><![CDATA[Coupon-Codes, die bereits versendet wurden, nochmals versenden]]></de> <en><![CDATA[Resend Coupon codes that have already been sent]]></en> </locale> + <locale name="controls.Manager.usages.title"> + <de><![CDATA[Verwendungen von Coupon-Code "[code]"]]></de> + <en><![CDATA[Usages of Coupon code "[code]"]]></en> + </locale> + <locale name="controls.Manager.usages.template.headerUser"> + <de><![CDATA[Benutzer]]></de> + <en><![CDATA[User]]></en> + </locale> + <locale name="controls.Manager.usages.template.headerDate"> + <de><![CDATA[Datum]]></de> + <en><![CDATA[Date]]></en> + </locale> </groups> </locales> -- GitLab