From e998a65e72ab3a963597386ddaf8011f22dc771d Mon Sep 17 00:00:00 2001 From: Henning Leutz <leutz@pcsg.de> Date: Tue, 13 Mar 2018 11:35:37 +0100 Subject: [PATCH] refactor: code style; refactor: payment / transaction listing from the invoice hash --- ajax/invoices/addPayment.php | 2 +- ajax/invoices/articleHtml.php | 2 +- ajax/invoices/copy.php | 2 +- ajax/invoices/createCreditNote.php | 2 +- ajax/invoices/get.php | 11 ++-- ajax/invoices/list.php | 2 +- ajax/invoices/payments/format.php | 8 +-- ajax/invoices/reversal.php | 2 +- ajax/invoices/search.php | 2 +- ajax/invoices/temporary/calc.php | 2 +- ajax/invoices/temporary/copy.php | 2 +- ajax/invoices/temporary/delete.php | 2 +- ajax/invoices/temporary/get.php | 2 +- ajax/invoices/temporary/getTimeForPayment.php | 2 +- ajax/invoices/temporary/html.php | 2 +- ajax/invoices/temporary/isNetto.php | 2 +- ajax/invoices/temporary/list.php | 8 +-- ajax/invoices/temporary/lock.php | 3 +- ajax/invoices/temporary/missing.php | 4 +- ajax/invoices/temporary/post.php | 2 +- ajax/invoices/temporary/previewhtml.php | 2 +- ajax/invoices/temporary/product/calc.php | 2 +- .../temporary/product/getProductEdit.php | 8 +-- .../product/hasProductCustomFields.php | 2 +- .../product/parseProductToArticle.php | 4 +- ajax/invoices/temporary/product/summary.php | 6 +-- ajax/invoices/temporary/save.php | 2 +- ajax/invoices/temporary/unlock.php | 3 +- bin/backend/controls/panels/Invoice.css | 1 + bin/backend/controls/panels/Invoice.js | 4 +- .../controls/panels/Journal.Payments.js | 52 ++++++++++--------- bin/backend/controls/panels/Journal.js | 5 +- locale.xml | 4 +- src/QUI/ERP/Accounting/Invoice/Handler.php | 4 +- 34 files changed, 85 insertions(+), 78 deletions(-) diff --git a/ajax/invoices/addPayment.php b/ajax/invoices/addPayment.php index 42c6e69..7afc367 100644 --- a/ajax/invoices/addPayment.php +++ b/ajax/invoices/addPayment.php @@ -24,6 +24,6 @@ function ($invoiceId, $amount, $paymentMethod, $date) { $Invoice->addPayment($amount, $Payment, $date); }, - array('invoiceId', 'amount', 'paymentMethod', 'date'), + ['invoiceId', 'amount', 'paymentMethod', 'date'], 'Permission::checkAdminUser' ); diff --git a/ajax/invoices/articleHtml.php b/ajax/invoices/articleHtml.php index 7e8a5b6..2a36f14 100644 --- a/ajax/invoices/articleHtml.php +++ b/ajax/invoices/articleHtml.php @@ -20,6 +20,6 @@ function ($invoiceId) { return $Articles->toHTMLWithCSS(); }, - array('invoiceId'), + ['invoiceId'], 'Permission::checkAdminUser' ); diff --git a/ajax/invoices/copy.php b/ajax/invoices/copy.php index 47c95e9..8c82d22 100644 --- a/ajax/invoices/copy.php +++ b/ajax/invoices/copy.php @@ -16,6 +16,6 @@ function ($invoiceId) { return $Invoices->getInvoice($invoiceId)->copy()->getId(); }, - array('invoiceId'), + ['invoiceId'], 'Permission::checkAdminUser' ); diff --git a/ajax/invoices/createCreditNote.php b/ajax/invoices/createCreditNote.php index a3d2337..67c7fac 100644 --- a/ajax/invoices/createCreditNote.php +++ b/ajax/invoices/createCreditNote.php @@ -17,6 +17,6 @@ function ($invoiceId) { return $Invoice->createCreditNote()->getId(); }, - array('invoiceId'), + ['invoiceId'], 'Permission::checkAdminUser' ); diff --git a/ajax/invoices/get.php b/ajax/invoices/get.php index 0b2ecaa..7eda030 100644 --- a/ajax/invoices/get.php +++ b/ajax/invoices/get.php @@ -17,9 +17,14 @@ 'package_quiqqer_invoice_ajax_invoices_get', function ($invoiceId) { $Invoices = QUI\ERP\Accounting\Invoice\Handler::getInstance(); - $Invoice = $Invoices->get($invoiceId); - QUI\ERP\Accounting\Calc::calculateInvoicePayments($Invoice); + try { + $Invoice = $Invoices->get($invoiceId); + } catch (QUI\Exception $Exception) { + $Invoice = $Invoices->getInvoiceByHash($invoiceId); + } + + QUI\ERP\Accounting\Calc::calculatePayments($Invoice); $attributes = $Invoice->toArray(); $Currency = $Invoice->getCurrency(); @@ -33,6 +38,6 @@ function ($invoiceId) { return $attributes; }, - array('invoiceId'), + ['invoiceId'], 'Permission::checkAdminUser' ); diff --git a/ajax/invoices/list.php b/ajax/invoices/list.php index e1cdbcc..47fb718 100644 --- a/ajax/invoices/list.php +++ b/ajax/invoices/list.php @@ -30,6 +30,6 @@ function ($params) { return $Search->search(); }, - array('params'), + ['params'], 'Permission::checkAdminUser' ); diff --git a/ajax/invoices/payments/format.php b/ajax/invoices/payments/format.php index d95466b..31d2e7a 100644 --- a/ajax/invoices/payments/format.php +++ b/ajax/invoices/payments/format.php @@ -13,7 +13,7 @@ 'package_quiqqer_invoice_ajax_invoices_payments_format', function ($payments) { $payments = json_decode($payments, true); - $result = array(); + $result = []; $Locale = QUI::getLocale(); $Currency = QUI\ERP\Defaults::getCurrency(); @@ -29,15 +29,15 @@ function ($payments) { } catch (QUI\Exception $Exception) { } - $result[] = array( + $result[] = [ 'date' => $Locale->formatDate($payment['date']), 'amount' => $Currency->format($payment['amount']), 'payment' => $paymentTitle - ); + ]; } return $result; }, - array('payments'), + ['payments'], 'Permission::checkAdminUser' ); diff --git a/ajax/invoices/reversal.php b/ajax/invoices/reversal.php index 7119725..891495a 100644 --- a/ajax/invoices/reversal.php +++ b/ajax/invoices/reversal.php @@ -15,6 +15,6 @@ function ($invoiceId, $reason) { return $Invoice->reversal($reason); }, - array('invoiceId', 'reason'), + ['invoiceId', 'reason'], 'Permission::checkAdminUser' ); diff --git a/ajax/invoices/search.php b/ajax/invoices/search.php index 3d09cae..a76f1d3 100644 --- a/ajax/invoices/search.php +++ b/ajax/invoices/search.php @@ -38,6 +38,6 @@ function ($params, $filter) { return $Search->searchForGrid(); }, - array('params', 'filter'), + ['params', 'filter'], 'Permission::checkAdminUser' ); diff --git a/ajax/invoices/temporary/calc.php b/ajax/invoices/temporary/calc.php index 7675ad4..dda54dc 100644 --- a/ajax/invoices/temporary/calc.php +++ b/ajax/invoices/temporary/calc.php @@ -37,6 +37,6 @@ function ($articles, $user) { return $List->getCalculations(); }, - array('articles', 'user'), + ['articles', 'user'], 'Permission::checkAdminUser' ); diff --git a/ajax/invoices/temporary/copy.php b/ajax/invoices/temporary/copy.php index e5c3962..d151841 100644 --- a/ajax/invoices/temporary/copy.php +++ b/ajax/invoices/temporary/copy.php @@ -18,6 +18,6 @@ function ($invoiceId) { ->copy() ->getId(); }, - array('invoiceId'), + ['invoiceId'], 'Permission::checkAdminUser' ); diff --git a/ajax/invoices/temporary/delete.php b/ajax/invoices/temporary/delete.php index 58b689f..b0c75e2 100644 --- a/ajax/invoices/temporary/delete.php +++ b/ajax/invoices/temporary/delete.php @@ -15,6 +15,6 @@ function ($invoiceId) { $Invoices = QUI\ERP\Accounting\Invoice\Handler::getInstance(); $Invoices->delete($invoiceId); }, - array('invoiceId'), + ['invoiceId'], 'Permission::checkAdminUser' ); diff --git a/ajax/invoices/temporary/get.php b/ajax/invoices/temporary/get.php index 0ae9eae..46d7fed 100644 --- a/ajax/invoices/temporary/get.php +++ b/ajax/invoices/temporary/get.php @@ -19,6 +19,6 @@ function ($invoiceId) { return $Invoice->toArray(); }, - array('invoiceId'), + ['invoiceId'], 'Permission::checkAdminUser' ); diff --git a/ajax/invoices/temporary/getTimeForPayment.php b/ajax/invoices/temporary/getTimeForPayment.php index 7e585e2..4e7efcf 100644 --- a/ajax/invoices/temporary/getTimeForPayment.php +++ b/ajax/invoices/temporary/getTimeForPayment.php @@ -19,6 +19,6 @@ function ($uid) { return $permission; }, - array('uid'), + ['uid'], 'Permission::checkAdminUser' ); diff --git a/ajax/invoices/temporary/html.php b/ajax/invoices/temporary/html.php index bba6fbf..5be2979 100644 --- a/ajax/invoices/temporary/html.php +++ b/ajax/invoices/temporary/html.php @@ -27,6 +27,6 @@ function ($invoiceId, $data) { return $Invoice->getView()->toHTML(); }, - array('invoiceId', 'data'), + ['invoiceId', 'data'], 'Permission::checkAdminUser' ); diff --git a/ajax/invoices/temporary/isNetto.php b/ajax/invoices/temporary/isNetto.php index c230392..bccdbfd 100644 --- a/ajax/invoices/temporary/isNetto.php +++ b/ajax/invoices/temporary/isNetto.php @@ -17,6 +17,6 @@ function ($uid) { return $status === QUI\ERP\Utils\User::IS_NETTO_USER; }, - array('uid'), + ['uid'], 'Permission::checkAdminUser' ); diff --git a/ajax/invoices/temporary/list.php b/ajax/invoices/temporary/list.php index ab6dc52..ba7473c 100644 --- a/ajax/invoices/temporary/list.php +++ b/ajax/invoices/temporary/list.php @@ -28,7 +28,7 @@ function ($params) { $Grid->parseDBParams(json_decode($params, true)) ); - $needleFields = array( + $needleFields = [ 'id', 'order_id', 'customer_id', @@ -52,7 +52,7 @@ function ($params) { 'comments', 'payment_data', 'hash' - ); + ]; $fillFields = function (&$data) use ($needleFields) { foreach ($needleFields as $field) { @@ -65,7 +65,7 @@ function ($params) { foreach ($data as $key => $entry) { $fillFields($data[$key]); - $data[$key]['id'] = Settings::getInstance()->getTemporaryInvoicePrefix() . $data[$key]['id']; + $data[$key]['id'] = Settings::getInstance()->getTemporaryInvoicePrefix().$data[$key]['id']; try { $Currency = Currencies::getCurrency($data[$key]['currency_data']); @@ -113,6 +113,6 @@ function ($params) { return $Grid->parseResult($data, $Invoices->countTemporaryInvoices()); }, - array('params'), + ['params'], 'Permission::checkAdminUser' ); diff --git a/ajax/invoices/temporary/lock.php b/ajax/invoices/temporary/lock.php index 2440f70..da561f5 100644 --- a/ajax/invoices/temporary/lock.php +++ b/ajax/invoices/temporary/lock.php @@ -14,8 +14,7 @@ function ($invoiceId) { $Invoices = QUI\ERP\Accounting\Invoice\Handler::getInstance(); $Invoice = $Invoices->getTemporaryInvoice($invoiceId); - }, - array('invoiceId'), + ['invoiceId'], 'Permission::checkAdminUser' ); diff --git a/ajax/invoices/temporary/missing.php b/ajax/invoices/temporary/missing.php index f1f47fa..08e3558 100644 --- a/ajax/invoices/temporary/missing.php +++ b/ajax/invoices/temporary/missing.php @@ -19,7 +19,7 @@ function ($invoiceId) { $Invoice = $Invoices->getTemporaryInvoice($invoiceId); $missed = $Invoice->getMissingAttributes(); - $result = array(); + $result = []; foreach ($missed as $missing) { $result[$missing] = InvoiceUtils::getMissingAttributeMessage($missing); @@ -27,6 +27,6 @@ function ($invoiceId) { return $result; }, - array('invoiceId'), + ['invoiceId'], 'Permission::checkAdminUser' ); diff --git a/ajax/invoices/temporary/post.php b/ajax/invoices/temporary/post.php index cc71028..1513076 100644 --- a/ajax/invoices/temporary/post.php +++ b/ajax/invoices/temporary/post.php @@ -20,6 +20,6 @@ function ($invoiceId) { return $Invoice->getId(); }, - array('invoiceId'), + ['invoiceId'], 'Permission::checkAdminUser' ); diff --git a/ajax/invoices/temporary/previewhtml.php b/ajax/invoices/temporary/previewhtml.php index 39c6322..ef23ac4 100644 --- a/ajax/invoices/temporary/previewhtml.php +++ b/ajax/invoices/temporary/previewhtml.php @@ -27,6 +27,6 @@ function ($invoiceId, $data) { return $Invoice->getView()->previewHTML(); }, - array('invoiceId', 'data'), + ['invoiceId', 'data'], 'Permission::checkAdminUser' ); diff --git a/ajax/invoices/temporary/product/calc.php b/ajax/invoices/temporary/product/calc.php index 159a5db..2d05142 100644 --- a/ajax/invoices/temporary/product/calc.php +++ b/ajax/invoices/temporary/product/calc.php @@ -31,6 +31,6 @@ function ($params, $user) { return $Article->toArray(); }, - array('params', 'user'), + ['params', 'user'], 'Permission::checkAdminUser' ); diff --git a/ajax/invoices/temporary/product/getProductEdit.php b/ajax/invoices/temporary/product/getProductEdit.php index dd04507..bb0b724 100644 --- a/ajax/invoices/temporary/product/getProductEdit.php +++ b/ajax/invoices/temporary/product/getProductEdit.php @@ -16,15 +16,15 @@ function ($productId, $user) { $Product = Products::getProduct($productId); $user = json_encode($user, true); - $Control = new ProductEdit(array( + $Control = new ProductEdit([ 'Product' => $Product - )); + ]); $css = ''; //QUI\Control\Manager::getCSS(); $html = $Control->create(); - return $css . $html; + return $css.$html; }, - array('productId', 'user'), + ['productId', 'user'], 'Permission::checkAdminUser' ); diff --git a/ajax/invoices/temporary/product/hasProductCustomFields.php b/ajax/invoices/temporary/product/hasProductCustomFields.php index 7c1bd4f..2c6f350 100644 --- a/ajax/invoices/temporary/product/hasProductCustomFields.php +++ b/ajax/invoices/temporary/product/hasProductCustomFields.php @@ -17,6 +17,6 @@ function ($productId) { return count($fields); }, - array('productId'), + ['productId'], 'Permission::checkAdminUser' ); diff --git a/ajax/invoices/temporary/product/parseProductToArticle.php b/ajax/invoices/temporary/product/parseProductToArticle.php index 9719930..5b5e8ce 100644 --- a/ajax/invoices/temporary/product/parseProductToArticle.php +++ b/ajax/invoices/temporary/product/parseProductToArticle.php @@ -67,8 +67,8 @@ function ($productId, $attributes, $user) { QUI\System\Log::write($Exception->getMessage()); } - return array(); + return []; }, - array('productId', 'attributes', 'user'), + ['productId', 'attributes', 'user'], 'Permission::checkAdminUser' ); diff --git a/ajax/invoices/temporary/product/summary.php b/ajax/invoices/temporary/product/summary.php index f84a9b1..78e3de3 100644 --- a/ajax/invoices/temporary/product/summary.php +++ b/ajax/invoices/temporary/product/summary.php @@ -15,7 +15,7 @@ function ($article) { $article = json_decode($article, true); - $Brutto = new QUI\ERP\User(array( + $Brutto = new QUI\ERP\User([ 'id' => 'BRUTTO', 'country' => '', 'username' => '', @@ -23,7 +23,7 @@ function ($article) { 'lastname' => '', 'lang' => QUI::getLocale()->getCurrent(), 'isCompany' => 0 - )); + ]); $Brutto->setAttribute( 'quiqqer.erp.isNettoUser', @@ -38,6 +38,6 @@ function ($article) { return $Article->toArray(); }, - array('article'), + ['article'], 'Permission::checkAdminUser' ); diff --git a/ajax/invoices/temporary/save.php b/ajax/invoices/temporary/save.php index 014362f..e984afe 100644 --- a/ajax/invoices/temporary/save.php +++ b/ajax/invoices/temporary/save.php @@ -31,6 +31,6 @@ function ($invoiceId, $data) { QUI::getLocale()->get('quiqqer/invoice', 'message.invoice.save.successfully') ); }, - array('invoiceId', 'data'), + ['invoiceId', 'data'], 'Permission::checkAdminUser' ); diff --git a/ajax/invoices/temporary/unlock.php b/ajax/invoices/temporary/unlock.php index 3faaad6..9102626 100644 --- a/ajax/invoices/temporary/unlock.php +++ b/ajax/invoices/temporary/unlock.php @@ -14,8 +14,7 @@ function ($invoiceId) { $Invoices = QUI\ERP\Accounting\Invoice\Handler::getInstance(); $Invoice = $Invoices->getTemporaryInvoice($invoiceId); - }, - array('invoiceId'), + ['invoiceId'], 'Permission::checkAdminUser' ); diff --git a/bin/backend/controls/panels/Invoice.css b/bin/backend/controls/panels/Invoice.css index 9447bda..33cb5cf 100644 --- a/bin/backend/controls/panels/Invoice.css +++ b/bin/backend/controls/panels/Invoice.css @@ -5,6 +5,7 @@ .journal-grid-amount { text-align: right !important; padding-right: 5px; + padding-left: 0 !important; } .journal-grid-cancel { diff --git a/bin/backend/controls/panels/Invoice.js b/bin/backend/controls/panels/Invoice.js index 057e788..f68777a 100644 --- a/bin/backend/controls/panels/Invoice.js +++ b/bin/backend/controls/panels/Invoice.js @@ -266,8 +266,8 @@ define('package/quiqqer/invoice/bin/backend/controls/panels/Invoice', [ 'package/quiqqer/invoice/bin/backend/controls/panels/Journal.Payments' ], function (Payments) { new Payments({ - invoiceId: self.getAttribute('data').id, - events : { + hash : self.getAttribute('data').hash, + events: { onLoad: resolve } }).inject(Container); diff --git a/bin/backend/controls/panels/Journal.Payments.js b/bin/backend/controls/panels/Journal.Payments.js index a9b6577..a4e2797 100644 --- a/bin/backend/controls/panels/Journal.Payments.js +++ b/bin/backend/controls/panels/Journal.Payments.js @@ -11,10 +11,11 @@ define('package/quiqqer/invoice/bin/backend/controls/panels/Journal.Payments', [ 'qui/controls/windows/Confirm', 'controls/grid/Grid', 'package/quiqqer/invoice/bin/Invoices', + 'package/quiqqer/payment-transactions/bin/backend/Transactions', 'Locale', 'Ajax' -], function (QUI, QUIControl, QUIConfirm, Grid, Invoices, QUILocale, QUIAjax) { +], function (QUI, QUIControl, QUIConfirm, Grid, Invoices, Transactions, QUILocale, QUIAjax) { "use strict"; var lg = 'quiqqer/invoice'; @@ -30,7 +31,7 @@ define('package/quiqqer/invoice/bin/backend/controls/panels/Journal.Payments', [ ], options: { - invoiceId: false + hash: false }, initialize: function (options) { @@ -58,34 +59,23 @@ define('package/quiqqer/invoice/bin/backend/controls/panels/Journal.Payments', [ /** * Refresh the data and the display + * + * @return {Promise} */ refresh: function () { var self = this; - Invoices.get(this.getAttribute('invoiceId')).then(function (result) { + return Transactions.getTransactionsByHash(this.getAttribute('hash')).then(function (result) { var payments = []; - try { - payments = JSON.decode(result.paid_data); - } catch (e) { - } - - if (!payments) { - payments = []; - } - - var AddButton = self.$Grid.getButtons().filter(function (Button) { - return Button.getAttribute('name') === 'add'; - })[0]; - - if (result.paid_status !== 1) { - AddButton.enable(); - } else { - AddButton.disable(); + for (var i = 0, len = result.length; i < len; i++) { + payments.push({ + date : result[i].date, + amount : result[i].amount, + payment: result[i].payment + }); } - return payments; - }).then(function (payments) { return new Promise(function (resolve) { QUIAjax.get('package_quiqqer_invoice_ajax_invoices_payments_format', function (data) { self.$Grid.setData({ @@ -99,6 +89,18 @@ define('package/quiqqer/invoice/bin/backend/controls/panels/Journal.Payments', [ payments : JSON.encode(payments) }); }); + }).then(function () { + return Invoices.get(self.getAttribute('hash')); + }).then(function (result) { + var AddButton = self.$Grid.getButtons().filter(function (Button) { + return Button.getAttribute('name') === 'add'; + })[0]; + + if (result.paid_status !== 1) { + AddButton.enable(); + } else { + AddButton.disable(); + } }); }, @@ -133,13 +135,13 @@ define('package/quiqqer/invoice/bin/backend/controls/panels/Journal.Payments', [ header : QUILocale.get(lg, 'journal.payments.date'), dataIndex: 'date', dataType : 'date', - width : 100 + width : 160 }, { header : QUILocale.get(lg, 'journal.payments.amount'), dataIndex: 'amount', - dataType : 'number', + dataType : 'string', className: 'journal-grid-amount', - width : 200 + width : 160 }, { header : QUILocale.get(lg, 'journal.payments.paymentMethod'), dataIndex: 'payment', diff --git a/bin/backend/controls/panels/Journal.js b/bin/backend/controls/panels/Journal.js index 73a35d2..66e4f11 100644 --- a/bin/backend/controls/panels/Journal.js +++ b/bin/backend/controls/panels/Journal.js @@ -493,8 +493,9 @@ define('package/quiqqer/invoice/bin/backend/controls/panels/Journal', [ }); this.$Grid.addEvents({ - onRefresh: this.refresh, - onClick : this.$refreshButtonStatus + onRefresh : this.refresh, + onClick : this.$refreshButtonStatus, + onDblClick: this.$onClickOpenInvoice }); diff --git a/locale.xml b/locale.xml index 7e0b101..1478959 100644 --- a/locale.xml +++ b/locale.xml @@ -812,8 +812,8 @@ <en><![CDATA[Amount]]></en> </locale> <locale name="journal.payments.paymentMethod"> - <de><![CDATA[Bezahlmethoden]]></de> - <en><![CDATA[Payment methode]]></en> + <de><![CDATA[Bezahlmethode]]></de> + <en><![CDATA[Payment method]]></en> </locale> <locale name="dialog.print.title"> diff --git a/src/QUI/ERP/Accounting/Invoice/Handler.php b/src/QUI/ERP/Accounting/Invoice/Handler.php index 47a2fe1..60aa029 100644 --- a/src/QUI/ERP/Accounting/Invoice/Handler.php +++ b/src/QUI/ERP/Accounting/Invoice/Handler.php @@ -260,7 +260,7 @@ public function countTemporaryInvoices($queryParams = []) * @param string $id - ID of the Invoice or InvoiceTemporary * @return InvoiceTemporary|Invoice * - * @throws + * @throws QUI\Exception */ public function get($id) { @@ -302,7 +302,7 @@ public function getInvoiceByHash($hash) 'select' => 'id', 'from' => self::invoiceTable(), 'where' => [ - 'id' => $hash + 'hash' => $hash ], 'limit' => 1 ]); -- GitLab