diff --git a/bin/backend/controls/panels/Invoice.js b/bin/backend/controls/panels/Invoice.js index e35add58cd8607722bb10ab0117659d63eca4776..18d8909623366dce646fa4a2581ddb912910b386 100644 --- a/bin/backend/controls/panels/Invoice.js +++ b/bin/backend/controls/panels/Invoice.js @@ -16,11 +16,13 @@ define('package/quiqqer/invoice/bin/backend/controls/panels/Invoice', [ 'qui/controls/elements/Sandbox', 'utils/Lock', 'Locale', + 'Ajax', 'Mustache', 'css!package/quiqqer/invoice/bin/backend/controls/panels/Invoice.css' -], function (QUI, QUIPanel, QUIButton, QUIConfirm, Invoices, Comments, CustomerFileSelect, Sandbox, Locker, QUILocale, Mustache) { +], function (QUI, QUIPanel, QUIButton, QUIConfirm, Invoices, Comments, + CustomerFileSelect, Sandbox, Locker, QUILocale, QUIAjax, Mustache) { "use strict"; var lg = 'quiqqer/invoice'; @@ -46,7 +48,8 @@ define('package/quiqqer/invoice/bin/backend/controls/panels/Invoice', [ '$onInject', '$onDestroy', '$showLockMessage', - 'openInvoiceFiles' + 'openInvoiceFiles', + '$openXmlCategory' ], options: { @@ -260,6 +263,30 @@ define('package/quiqqer/invoice/bin/backend/controls/panels/Invoice', [ }); this.getContent().addClass('quiqqer-invoice-invoice'); + + + // invoice.xml panel api + QUIAjax.get('package_quiqqer_invoice_ajax_invoices_panel_getCategories', (categories) => { + let cat, title; + + for (let category in categories) { + cat = categories[category]; + title = cat.title; + + this.addCategory({ + icon : cat.icon, + name : cat.name, + title : QUILocale.get(title[0], title[1]), + text : QUILocale.get(title[0], title[1]), + events: { + onClick: this.$openXmlCategory + } + }); + + } + }, { + 'package': 'quiqqer/invoice' + }); }, /** @@ -531,31 +558,31 @@ define('package/quiqqer/invoice/bin/backend/controls/panels/Invoice', [ data = {}; } - data.textInvoiceStatus = QUILocale.get(lg, 'invoice.settings.processingStatus.title'); + data.textInvoiceStatus = QUILocale.get(lg, 'invoice.settings.processingStatus.title'); data.textInvoiceRecipient = QUILocale.get(lg, 'cutomerData'); - data.textCustomer = QUILocale.get(lg, 'customer'); - data.textCompany = QUILocale.get(lg, 'company'); - data.textStreet = QUILocale.get(lg, 'street'); - data.textZip = QUILocale.get(lg, 'zip'); - data.textCity = QUILocale.get(lg, 'city'); + data.textCustomer = QUILocale.get(lg, 'customer'); + data.textCompany = QUILocale.get(lg, 'company'); + data.textStreet = QUILocale.get(lg, 'street'); + data.textZip = QUILocale.get(lg, 'zip'); + data.textCity = QUILocale.get(lg, 'city'); data.textInvoiceDelivery = QUILocale.get(lg, 'deliveryAddress'); data.textDeliveryCompany = QUILocale.get(lg, 'company'); - data.textDeliveryStreet = QUILocale.get(lg, 'street'); - data.textDeliveryZip = QUILocale.get(lg, 'zip'); - data.textDeliveryCity = QUILocale.get(lg, 'city'); + data.textDeliveryStreet = QUILocale.get(lg, 'street'); + data.textDeliveryZip = QUILocale.get(lg, 'zip'); + data.textDeliveryCity = QUILocale.get(lg, 'city'); data.textDeliveryCountry = QUILocale.get(lg, 'country'); - data.textInvoiceData = QUILocale.get(lg, 'erp.panel.invoice.data.title'); - data.textInvoiceDate = QUILocale.get(lg, 'erp.panel.invoice.data.date'); - data.textProjectName = QUILocale.get(lg, 'erp.panel.invoice.data.projectName'); - data.textOrderedBy = QUILocale.get(lg, 'erp.panel.invoice.data.orderedBy'); - data.textEditor = QUILocale.get(lg, 'erp.panel.invoice.data.editor'); + data.textInvoiceData = QUILocale.get(lg, 'erp.panel.invoice.data.title'); + data.textInvoiceDate = QUILocale.get(lg, 'erp.panel.invoice.data.date'); + data.textProjectName = QUILocale.get(lg, 'erp.panel.invoice.data.projectName'); + data.textOrderedBy = QUILocale.get(lg, 'erp.panel.invoice.data.orderedBy'); + data.textEditor = QUILocale.get(lg, 'erp.panel.invoice.data.editor'); data.textContactPerson = QUILocale.get(lg, 'erp.panel.invoice.data.contactPerson'); - data.textInvoicePayment = QUILocale.get(lg, 'erp.panel.invoice.data.payment'); + data.textInvoicePayment = QUILocale.get(lg, 'erp.panel.invoice.data.payment'); data.textInvoicePaymentMethod = QUILocale.get(lg, 'erp.panel.invoice.data.paymentMethod'); - data.textTermOfPayment = QUILocale.get(lg, 'erp.panel.invoice.data.termOfPayment'); + data.textTermOfPayment = QUILocale.get(lg, 'erp.panel.invoice.data.termOfPayment'); data.textInvoiceText = QUILocale.get(lg, 'erp.panel.invoice.data.invoiceText'); @@ -567,17 +594,18 @@ define('package/quiqqer/invoice/bin/backend/controls/panels/Invoice', [ html: Mustache.render(template, data) }); - var Form = Container.getElement('form'); + var Form = Container.getElement('form'); var address = {}; try { address = JSON.decode(data.invoice_address); - Form.elements.customer.value = address.salutation + ' ' + address.firstname + ' ' + address.lastname; - Form.elements.company.value = address.company; + Form.elements.customer.value = + address.salutation + ' ' + address.firstname + ' ' + address.lastname; + Form.elements.company.value = address.company; Form.elements.street_no.value = address.street_no; - Form.elements.zip.value = address.zip; - Form.elements.city.value = address.city; + Form.elements.zip.value = address.zip; + Form.elements.city.value = address.city; } catch (e) { console.error(e); } @@ -615,10 +643,10 @@ define('package/quiqqer/invoice/bin/backend/controls/panels/Invoice', [ deliveryAddress.firstname + ' ' + deliveryAddress.lastname; - Form.elements['delivery-company'].value = deliveryAddress.company; + Form.elements['delivery-company'].value = deliveryAddress.company; Form.elements['delivery-street_no'].value = deliveryAddress.street_no; - Form.elements['delivery-zip'].value = deliveryAddress.zip; - Form.elements['delivery-city'].value = deliveryAddress.city; + Form.elements['delivery-zip'].value = deliveryAddress.zip; + Form.elements['delivery-city'].value = deliveryAddress.city; } catch (e) { console.error(e); } @@ -799,7 +827,7 @@ define('package/quiqqer/invoice/bin/backend/controls/panels/Invoice', [ this.getCategory('invoiceFiles').setActive(); const InvoiceAttributes = this.getAttribute('data'); - let InvoiceData = InvoiceAttributes.data; + let InvoiceData = InvoiceAttributes.data; if (InvoiceData) { InvoiceData = JSON.decode(InvoiceData); @@ -1132,6 +1160,29 @@ define('package/quiqqer/invoice/bin/backend/controls/panels/Invoice', [ }); }); }); + }, + + //region category stuff + + $openXmlCategory: function (Category) { + this.Loader.show(); + + QUIAjax.get('package_quiqqer_invoice_ajax_invoices_panel_getCategory', (html) => { + this.$closeCategory().then((Container) => { + Container.set('html', html); + + return QUI.parse(Container); + }).then(() => { + return this.$openCategory(); + }).then(() => { + this.Loader.hide(); + }); + }, { + 'package': 'quiqqer/invoice', + category : Category.getAttribute('name') + }); } + + //endregion }); }); diff --git a/bin/backend/controls/panels/TemporaryInvoice.js b/bin/backend/controls/panels/TemporaryInvoice.js index 4fac674a817c29e5d07f8876d9bdfa41d72ca4b3..db841c05c1ea49ddfc86a9b3c90ede8c39e081f0 100644 --- a/bin/backend/controls/panels/TemporaryInvoice.js +++ b/bin/backend/controls/panels/TemporaryInvoice.js @@ -23,6 +23,7 @@ define('package/quiqqer/invoice/bin/backend/controls/panels/TemporaryInvoice', [ 'package/quiqqer/customer/bin/backend/controls/customer/userFiles/Select', 'utils/Lock', 'Locale', + 'Ajax', 'Mustache', 'Users', 'Editors', @@ -35,7 +36,7 @@ define('package/quiqqer/invoice/bin/backend/controls/panels/TemporaryInvoice', [ ], function (QUI, QUIPanel, QUIButton, QUIButtonMultiple, QUISeparator, QUIConfirm, QUIFormUtils, AddressSelect, Invoices, Dialogs, Comments, TextArticle, - Payments, AddressWindow, CustomerFileSelect, Locker, QUILocale, Mustache, Users, Editors, + Payments, AddressWindow, CustomerFileSelect, Locker, QUILocale, QUIAjax, Mustache, Users, Editors, templateData, templatePost, templateMissing) { "use strict"; @@ -66,7 +67,8 @@ define('package/quiqqer/invoice/bin/backend/controls/panels/TemporaryInvoice', [ 'toggleSort', '$showLockMessage', 'print', - 'openInvoiceFiles' + 'openInvoiceFiles', + '$openXmlCategory' ], options: { @@ -88,16 +90,16 @@ define('package/quiqqer/invoice/bin/backend/controls/panels/TemporaryInvoice', [ this.parent(options); - this.$AdditionalText = null; - this.$ArticleList = null; + this.$AdditionalText = null; + this.$ArticleList = null; this.$ArticleListSummary = null; - this.$AddProduct = null; - this.$ArticleSort = null; - this.$AddressDelivery = null; + this.$AddProduct = null; + this.$ArticleSort = null; + this.$AddressDelivery = null; - this.$AddSeparator = null; + this.$AddSeparator = null; this.$SortSeparator = null; - this.$locked = false; + this.$locked = false; this.$serializedList = {}; @@ -157,7 +159,7 @@ define('package/quiqqer/invoice/bin/backend/controls/panels/TemporaryInvoice', [ * Refresh the invoice data */ doRefresh: function () { - const self = this; + const self = this; let invoiceId = this.getAttribute('invoiceId'); return Invoices.getTemporaryInvoice(invoiceId).then(function (data) { @@ -413,15 +415,15 @@ define('package/quiqqer/invoice/bin/backend/controls/panels/TemporaryInvoice', [ '[data-qui="package/quiqqer/invoice/bin/backend/controls/panels/TemporaryInvoice.UserData"]' ).get('data-quiid'); - let editorIdQUIId = Content.getElement('[name="editorId"]').get('data-quiid'); + let editorIdQUIId = Content.getElement('[name="editorId"]').get('data-quiid'); let orderedByIdQUIId = Content.getElement('[name="orderedBy"]').get('data-quiid'); - let currencyIdQUIId = Content.getElement('[name="currency"]').get('data-quiid'); - let CurrencyRate = Content.getElement('[name="currencyRate"]'); + let currencyIdQUIId = Content.getElement('[name="currency"]').get('data-quiid'); + let CurrencyRate = Content.getElement('[name="currencyRate"]'); - let Data = QUI.Controls.getById(quiId); - let EditorId = QUI.Controls.getById(editorIdQUIId); + let Data = QUI.Controls.getById(quiId); + let EditorId = QUI.Controls.getById(editorIdQUIId); let OrderedBy = QUI.Controls.getById(orderedByIdQUIId); - let Currency = QUI.Controls.getById(currencyIdQUIId); + let Currency = QUI.Controls.getById(currencyIdQUIId); if (parseInt(config.currency.differentAccountingCurrencies) === 0) { Content.getElements('table.invoice-currency').setStyle('display', 'none'); @@ -483,7 +485,7 @@ define('package/quiqqer/invoice/bin/backend/controls/panels/TemporaryInvoice', [ Invoices.isNetto(userId) ]).then(function (result) { let paymentTime = result[0]; - let isNetto = result[1]; + let isNetto = result[1]; Content.getElement('[name="time_for_payment"]').value = paymentTime; @@ -563,7 +565,7 @@ define('package/quiqqer/invoice/bin/backend/controls/panels/TemporaryInvoice', [ address = {}; } - address.userId = self.getAttribute('customer_id'); + address.userId = self.getAttribute('customer_id'); address.addressId = self.getAttribute('invoice_address_id'); return Data.setValue(address); @@ -840,7 +842,7 @@ define('package/quiqqer/invoice/bin/backend/controls/panels/TemporaryInvoice', [ * @returns {Promise} */ openVerification: function () { - const self = this; + const self = this; let ParentContainer = null, FrameContainer = null; @@ -1074,7 +1076,7 @@ define('package/quiqqer/invoice/bin/backend/controls/panels/TemporaryInvoice', [ if (productDescriptionSource && typeof article.fields !== 'undefined' && typeof article.fields[productDescriptionSource] !== 'undefined') { - let field = article.fields[productDescriptionSource]; + let field = article.fields[productDescriptionSource]; let current = QUILocale.getCurrent(); if (field && typeof field[current] !== 'undefined') { @@ -1113,38 +1115,40 @@ define('package/quiqqer/invoice/bin/backend/controls/panels/TemporaryInvoice', [ // minimal toolbar self.$AdditionalText.setAttribute('buttons', { lines: [ - [[ - { - type : "button", - button: "Bold" - }, - { - type : "button", - button: "Italic" - }, - { - type : "button", - button: "Underline" - }, - { - type: "separator" - }, - { - type : "button", - button: "RemoveFormat" - }, - { - type: "separator" - }, - { - type : "button", - button: "NumberedList" - }, - { - type : "button", - button: "BulletedList" - } - ]] + [ + [ + { + type : "button", + button: "Bold" + }, + { + type : "button", + button: "Italic" + }, + { + type : "button", + button: "Underline" + }, + { + type: "separator" + }, + { + type : "button", + button: "RemoveFormat" + }, + { + type: "separator" + }, + { + type : "button", + button: "NumberedList" + }, + { + type : "button", + button: "BulletedList" + } + ] + ] ] }); @@ -1297,7 +1301,7 @@ define('package/quiqqer/invoice/bin/backend/controls/panels/TemporaryInvoice', [ } let formData = QUIFormUtils.getFormData(Form); - let data = this.getAttribute('data') || {}; + let data = this.getAttribute('data') || {}; // timefields if ("date" in formData) { @@ -1379,7 +1383,7 @@ define('package/quiqqer/invoice/bin/backend/controls/panels/TemporaryInvoice', [ } }); - this.$AddSeparator = new QUISeparator(); + this.$AddSeparator = new QUISeparator(); this.$SortSeparator = new QUISeparator(); // buttons @@ -1502,6 +1506,33 @@ define('package/quiqqer/invoice/bin/backend/controls/panels/TemporaryInvoice', [ onClick: this.openVerification } }); + + + // invoice.xml panel api + QUIAjax.get('package_quiqqer_invoice_ajax_invoices_panel_getCategories', (categories) => { + let cat, title; + + if (typeOf(categories) === 'array' && !categories.length) { + return; + } + + for (let category in categories) { + cat = categories[category]; + title = cat.title; + + this.addCategory({ + icon : cat.icon, + name : cat.name, + title : QUILocale.get(title[0], title[1]), + text : QUILocale.get(title[0], title[1]), + events: { + onClick: this.$openXmlCategory + } + }); + } + }, { + 'package': 'quiqqer/invoice' + }); }, /** @@ -1517,7 +1548,7 @@ define('package/quiqqer/invoice/bin/backend/controls/panels/TemporaryInvoice', [ document.addEvent('keyup', this.$onKeyUp); - const self = this; + const self = this; let invoiceId = this.getAttribute('invoiceId'); Locker.isLocked( @@ -1619,7 +1650,7 @@ define('package/quiqqer/invoice/bin/backend/controls/panels/TemporaryInvoice', [ * show the lock message window */ $showLockMessage: function () { - const self = this; + const self = this; let btnText = QUILocale.get('quiqqer/quiqqer', 'submit'); if (window.USER.isSU) { @@ -1913,6 +1944,29 @@ define('package/quiqqer/invoice/bin/backend/controls/panels/TemporaryInvoice', [ Dialogs.openPrintDialog(self.getAttribute('hash'), entityType).then(resolve); }); }); + }, + + //region category stuff + + $openXmlCategory: function (Category) { + this.Loader.show(); + + QUIAjax.get('package_quiqqer_invoice_ajax_invoices_panel_getCategory', (html) => { + this.$closeCategory().then((Container) => { + Container.set('html', html); + + return QUI.parse(Container); + }).then(() => { + return this.$openCategory(); + }).then(() => { + this.Loader.hide(); + }); + }, { + 'package': 'quiqqer/invoice', + category : Category.getAttribute('name') + }); } + + //endregion }); }); diff --git a/bin/backend/controls/panels/TemporaryInvoices.js b/bin/backend/controls/panels/TemporaryInvoices.js index 063e39b55e11f91dffd3fdaa2e26d6d917c30232..1a586fbd731b0631f3baad04d9504ed877e4d1fb 100644 --- a/bin/backend/controls/panels/TemporaryInvoices.js +++ b/bin/backend/controls/panels/TemporaryInvoices.js @@ -43,7 +43,8 @@ define('package/quiqqer/invoice/bin/backend/controls/panels/TemporaryInvoices', '$clickCopyInvoice', '$clickPDF', '$onInvoicesChange', - '$onClickInvoiceDetails' + '$onClickInvoiceDetails', + '$openXmlCategory' ], initialize: function (options) { @@ -54,7 +55,7 @@ define('package/quiqqer/invoice/bin/backend/controls/panels/TemporaryInvoices', this.parent(options); - this.$Grid = null; + this.$Grid = null; this.$Currency = null; this.addEvents({ @@ -112,7 +113,7 @@ define('package/quiqqer/invoice/bin/backend/controls/panels/TemporaryInvoices', } entry.display_type = Icon; - entry.opener = ' '; + entry.opener = ' '; return entry; }); @@ -323,169 +324,202 @@ define('package/quiqqer/invoice/bin/backend/controls/panels/TemporaryInvoices', xls : true }, - buttons : [Actions, this.$Currency, { - name : 'create', - text : QUILocale.get(lg, 'temporary.btn.createInvoice'), - textimage: 'fa fa-plus', - events : { - onClick: function (Btn) { - Btn.setAttribute('textimage', 'fa fa-spinner fa-spin'); - - self.$clickCreateInvoice(Btn).then(function () { - Btn.setAttribute('textimage', 'fa fa-plus'); - }); + buttons : [ + Actions, + this.$Currency, + { + name : 'create', + text : QUILocale.get(lg, 'temporary.btn.createInvoice'), + textimage: 'fa fa-plus', + events : { + onClick: function (Btn) { + Btn.setAttribute('textimage', 'fa fa-spinner fa-spin'); + + self.$clickCreateInvoice(Btn).then(function () { + Btn.setAttribute('textimage', 'fa fa-plus'); + }); + } } } - }], - columnModel: [{ - header : ' ', - dataIndex: 'opener', - dataType : 'int', - width : 30 - }, { - header : QUILocale.get(lg, 'journal.grid.type'), - dataIndex: 'display_type', - dataType : 'node', - width : 30 - }, { - header : QUILocale.get(lg, 'journal.grid.invoiceNo'), - dataIndex: 'id', - dataType : 'integer', - width : 100 - }, { - header : QUILocale.get('quiqqer/quiqqer', 'name'), - dataIndex: 'customer_name', - dataType : 'string', - width : 200, - className: 'clickable' - }, { - header : QUILocale.get(lg, 'journal.grid.customerNo'), - dataIndex: 'customer_id_display', - dataType : 'string', - width : 90, - className: 'clickable' - }, { - header : QUILocale.get(lg, 'journal.grid.status'), - dataIndex: 'paid_status_display', - dataType : 'html', - width : 120, - className: 'grid-align-center' - }, { - header : QUILocale.get('quiqqer/quiqqer', 'date'), - dataIndex: 'date', - dataType : 'date', - width : 90 - }, { - header : QUILocale.get('quiqqer/quiqqer', 'project'), - dataIndex: 'project_name', - dataType : 'string', - width : 160 - }, { - header : QUILocale.get(lg, 'journal.grid.sum'), - dataIndex: 'display_sum', - dataType : 'string', - width : 100, - className: 'payment-status-amountCell' - }, { - header : QUILocale.get(lg, 'journal.grid.netto'), - dataIndex: 'display_nettosum', - dataType : 'string', - width : 100, - className: 'payment-status-amountCell' - }, { - header : QUILocale.get(lg, 'journal.grid.vat'), - dataIndex: 'display_vatsum', - dataType : 'string', - width : 100, - className: 'payment-status-amountCell' - }, { - header : QUILocale.get(lg, 'journal.grid.paymentMethod'), - dataIndex: 'payment_title', - dataType : 'string', - width : 180 - }, { - header : QUILocale.get(lg, 'temporary.grid.timeForPayment'), - dataIndex: 'time_for_payment', - dataType : 'string', - width : 120 - }, { - header : QUILocale.get(lg, 'journal.grid.paymentDate'), - dataIndex: 'paid_date', - dataType : 'date', - width : 120 - }, { - header : QUILocale.get(lg, 'journal.grid.paid'), - dataIndex: 'display_paid', - dataType : 'string', - width : 100, - className: 'payment-status-amountCell' - }, { - header : QUILocale.get(lg, 'journal.grid.open'), - dataIndex: 'display_missing', - dataType : 'string', - width : 100, - className: 'payment-status-amountCell' - }, { - header : QUILocale.get(lg, 'journal.grid.brutto'), - dataIndex: 'isbrutto', - dataType : 'integer', - width : 50 - }, { - header : QUILocale.get(lg, 'journal.grid.taxId'), - dataIndex: 'taxId', - dataType : 'string', - width : 105 - }, { - header : QUILocale.get('quiqqer/quiqqer', 'c_date'), - dataIndex: 'c_date', - dataType : 'date', - width : 140 - }, { - header : QUILocale.get('quiqqer/quiqqer', 'c_user'), - dataIndex: 'c_username', - dataType : 'integer', - width : 180 - }, { - header : QUILocale.get(lg, 'journal.grid.orderNo'), - dataIndex: 'order_id', - dataType : 'integer', - width : 80 - }, { - header : QUILocale.get(lg, 'journal.grid.comments'), - dataIndex: 'comments', - dataType : 'string', - width : 100 - }, { - header : QUILocale.get(lg, 'journal.grid.paymentData'), - dataIndex: 'payment_data', - dataType : 'string', - width : 100 - }, { - header : QUILocale.get(lg, 'journal.grid.processing'), - dataIndex: 'processing_status_display', - dataType : 'html', - width : 150 - }, { - header : QUILocale.get(lg, 'journal.grid.hash'), - dataIndex: 'hash', - dataType : 'string', - width : 280, - className: 'monospace' - }, { - header : QUILocale.get(lg, 'journal.grid.globalProcessId'), - dataIndex: 'global_process_id', - dataType : 'string', - width : 280, - className: 'monospace' - }, { - dataIndex: 'paidstatus', - dataType : 'string', - hidden : true - }, { - dataIndex: 'c_user', - dataType : 'integer', - hidden : true - }] + ], + columnModel: [ + { + header : ' ', + dataIndex: 'opener', + dataType : 'int', + width : 30 + }, + { + header : QUILocale.get(lg, 'journal.grid.type'), + dataIndex: 'display_type', + dataType : 'node', + width : 30 + }, + { + header : QUILocale.get(lg, 'journal.grid.invoiceNo'), + dataIndex: 'id', + dataType : 'integer', + width : 100 + }, + { + header : QUILocale.get('quiqqer/quiqqer', 'name'), + dataIndex: 'customer_name', + dataType : 'string', + width : 200, + className: 'clickable' + }, + { + header : QUILocale.get(lg, 'journal.grid.customerNo'), + dataIndex: 'customer_id_display', + dataType : 'string', + width : 90, + className: 'clickable' + }, + { + header : QUILocale.get(lg, 'journal.grid.status'), + dataIndex: 'paid_status_display', + dataType : 'html', + width : 120, + className: 'grid-align-center' + }, + { + header : QUILocale.get('quiqqer/quiqqer', 'date'), + dataIndex: 'date', + dataType : 'date', + width : 90 + }, + { + header : QUILocale.get('quiqqer/quiqqer', 'project'), + dataIndex: 'project_name', + dataType : 'string', + width : 160 + }, + { + header : QUILocale.get(lg, 'journal.grid.sum'), + dataIndex: 'display_sum', + dataType : 'string', + width : 100, + className: 'payment-status-amountCell' + }, + { + header : QUILocale.get(lg, 'journal.grid.netto'), + dataIndex: 'display_nettosum', + dataType : 'string', + width : 100, + className: 'payment-status-amountCell' + }, + { + header : QUILocale.get(lg, 'journal.grid.vat'), + dataIndex: 'display_vatsum', + dataType : 'string', + width : 100, + className: 'payment-status-amountCell' + }, + { + header : QUILocale.get(lg, 'journal.grid.paymentMethod'), + dataIndex: 'payment_title', + dataType : 'string', + width : 180 + }, + { + header : QUILocale.get(lg, 'temporary.grid.timeForPayment'), + dataIndex: 'time_for_payment', + dataType : 'string', + width : 120 + }, + { + header : QUILocale.get(lg, 'journal.grid.paymentDate'), + dataIndex: 'paid_date', + dataType : 'date', + width : 120 + }, + { + header : QUILocale.get(lg, 'journal.grid.paid'), + dataIndex: 'display_paid', + dataType : 'string', + width : 100, + className: 'payment-status-amountCell' + }, + { + header : QUILocale.get(lg, 'journal.grid.open'), + dataIndex: 'display_missing', + dataType : 'string', + width : 100, + className: 'payment-status-amountCell' + }, + { + header : QUILocale.get(lg, 'journal.grid.brutto'), + dataIndex: 'isbrutto', + dataType : 'integer', + width : 50 + }, + { + header : QUILocale.get(lg, 'journal.grid.taxId'), + dataIndex: 'taxId', + dataType : 'string', + width : 105 + }, + { + header : QUILocale.get('quiqqer/quiqqer', 'c_date'), + dataIndex: 'c_date', + dataType : 'date', + width : 140 + }, + { + header : QUILocale.get('quiqqer/quiqqer', 'c_user'), + dataIndex: 'c_username', + dataType : 'integer', + width : 180 + }, + { + header : QUILocale.get(lg, 'journal.grid.orderNo'), + dataIndex: 'order_id', + dataType : 'integer', + width : 80 + }, + { + header : QUILocale.get(lg, 'journal.grid.comments'), + dataIndex: 'comments', + dataType : 'string', + width : 100 + }, + { + header : QUILocale.get(lg, 'journal.grid.paymentData'), + dataIndex: 'payment_data', + dataType : 'string', + width : 100 + }, + { + header : QUILocale.get(lg, 'journal.grid.processing'), + dataIndex: 'processing_status_display', + dataType : 'html', + width : 150 + }, + { + header : QUILocale.get(lg, 'journal.grid.hash'), + dataIndex: 'hash', + dataType : 'string', + width : 280, + className: 'monospace' + }, + { + header : QUILocale.get(lg, 'journal.grid.globalProcessId'), + dataIndex: 'global_process_id', + dataType : 'string', + width : 280, + className: 'monospace' + }, + { + dataIndex: 'paidstatus', + dataType : 'string', + hidden : true + }, + { + dataIndex: 'c_user', + dataType : 'integer', + hidden : true + } + ] }); this.$Grid.addEvents({ @@ -1033,6 +1067,29 @@ define('package/quiqqer/invoice/bin/backend/controls/panels/TemporaryInvoices', html : result }).inject(ParentNode); }); + }, + + //region category stuff + + $openXmlCategory: function (Category) { + this.Loader.show(); + + QUIAjax.get('package_quiqqer_order_ajax_backend_panel_getCategory', (html) => { + this.$closeCategory().then((Container) => { + Container.set('html', html); + + return QUI.parse(Container); + }).then(() => { + return this.$openCategory(); + }).then(() => { + this.Loader.hide(); + }); + }, { + 'package': 'quiqqer/order', + category : Category.getAttribute('name') + }); } + + //endregion }); });