Skip to content
Code-Schnipsel Gruppen Projekte

Revisionen vergleichen

Änderungen werden so angezeigt, als ob die Quellrevision mit der Zielrevision zusammengeführt würde. Erfahre mehr über den Vergleich von Revisionen.

Quelle

Zielprojekt auswählen
No results found

Ziel

Zielprojekt auswählen
  • quiqqer/erp
1 Ergebnis
Änderungen anzeigen
Commits auf Quelle (5)
...@@ -43,7 +43,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -43,7 +43,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
'text!package/quiqqer/erp/bin/backend/controls/articles/Article.html', 'text!package/quiqqer/erp/bin/backend/controls/articles/Article.html',
'css!package/quiqqer/erp/bin/backend/controls/articles/Article.css' 'css!package/quiqqer/erp/bin/backend/controls/articles/Article.css'
], function( ], function (
QUI, QUI,
QUIControl, QUIControl,
QUIButton, QUIButton,
...@@ -122,21 +122,30 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -122,21 +122,30 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
User: false, // special user object (see this.addUser) User: false, // special user object (see this.addUser)
deletable: true, // show "delete" button deletable: true, // show "delete" button
replaceable: true, // show "replace" button replaceable: true, // show "replace" button
calcByList: true // calculate article prices by the associated ArticleList calcByList: true // calculate article prices by the associated ArticleList
}, },
initialize: function(options) { initialize: function (options) {
this.setAttributes(this.__proto__.options); // set the default values this.setAttributes(this.__proto__.options); // set the default values
this.parent(options); this.parent(options);
this.$user = {}; this.$user = {};
this.$calculate = true; // calculation is running or not
this.$calculations = {}; this.$calculations = {};
this.$bruttoCalc = {}; this.$bruttoCalc = {};
if (typeof options !== 'undefined' && typeof options.calculated !== 'undefined') { if (typeof options !== 'undefined' && typeof options.calculated !== 'undefined') {
this.$calculations = options.calculated; this.$calculations = options.calculated;
if (typeof this.$calculations.bruttoCalculated !== 'undefined') {
this.$bruttoCalc = this.$calculations.bruttoCalculated;
}
}
if (typeof options !== 'undefined' && typeof options.calculate !== 'undefined') {
this.$calculate = options.calculate;
} }
if (typeof this.$calculations.nettoPriceNotRounded !== 'undefined' && this.$calculations.nettoPriceNotRounded) { if (typeof this.$calculations.nettoPriceNotRounded !== 'undefined' && this.$calculations.nettoPriceNotRounded) {
...@@ -178,7 +187,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -178,7 +187,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
* *
* @returns {HTMLDivElement} * @returns {HTMLDivElement}
*/ */
create: function() { create: function () {
const self = this; const self = this;
this.$Elm = this.parent(); this.$Elm = this.parent();
...@@ -226,7 +235,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -226,7 +235,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
if (showSelectCheckbox) { if (showSelectCheckbox) {
this.$SelectCheckbox = this.$Elm.getElement('.quiqqer-erp-backend-erpArticle-selectbox > input'); this.$SelectCheckbox = this.$Elm.getElement('.quiqqer-erp-backend-erpArticle-selectbox > input');
this.$SelectCheckbox.addEvent('change', function(event) { this.$SelectCheckbox.addEvent('change', function (event) {
if (event.target.checked) { if (event.target.checked) {
self.select(); self.select();
} else { } else {
...@@ -275,7 +284,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -275,7 +284,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
this.$VAT.addEvent('click', this.$onEditVat); this.$VAT.addEvent('click', this.$onEditVat);
// Special VAT cell events // Special VAT cell events
this.$VAT.addEvent('keydown', function(event) { this.$VAT.addEvent('keydown', function (event) {
if (event.key === 'tab') { if (event.key === 'tab') {
this.$editNext(event); this.$editNext(event);
return; return;
...@@ -286,7 +295,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -286,7 +295,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
} }
}.bind(this)); }.bind(this));
this.$VAT.addEvent('blur', function(event) { this.$VAT.addEvent('blur', function (event) {
if (event.key === 'tab') { if (event.key === 'tab') {
this.$editNext(event); this.$editNext(event);
} }
...@@ -305,7 +314,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -305,7 +314,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
this.$QuantityUnit.addEvent('click', this.$onEditQuantityUnit); this.$QuantityUnit.addEvent('click', this.$onEditQuantityUnit);
// Special quantity unit cell events // Special quantity unit cell events
this.$QuantityUnit.addEvent('keydown', function(event) { this.$QuantityUnit.addEvent('keydown', function (event) {
if (event.key === 'tab') { if (event.key === 'tab') {
this.$editNext(event); this.$editNext(event);
return; return;
...@@ -316,7 +325,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -316,7 +325,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
} }
}.bind(this)); }.bind(this));
this.$QuantityUnit.addEvent('blur', function(event) { this.$QuantityUnit.addEvent('blur', function (event) {
if (event.key === 'tab') { if (event.key === 'tab') {
this.$editNext(event); this.$editNext(event);
} }
...@@ -411,7 +420,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -411,7 +420,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
this.setQuantityUnit(this.getAttribute('quantityUnit')); this.setQuantityUnit(this.getAttribute('quantityUnit'));
if (!this.getAttribute('quantityUnit')) { if (!this.getAttribute('quantityUnit')) {
this.$loadDefaultQuantityUnit().catch(function(err) { this.$loadDefaultQuantityUnit().catch(function (err) {
console.error(err); console.error(err);
}); });
} }
...@@ -438,7 +447,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -438,7 +447,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
this.calc(); this.calc();
this.addEvent('onEditKeyDown', function(me, event) { this.addEvent('onEditKeyDown', function (me, event) {
if (event.key === 'tab') { if (event.key === 'tab') {
this.$editNext(event); this.$editNext(event);
} }
...@@ -454,7 +463,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -454,7 +463,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
* @fires onRemove [self] * @fires onRemove [self]
* @fires onDrop [self] * @fires onDrop [self]
*/ */
remove: function() { remove: function () {
this.fireEvent('delete', [this]); this.fireEvent('delete', [this]);
this.fireEvent('remove', [this]); this.fireEvent('remove', [this]);
this.fireEvent('drop', [this]); this.fireEvent('drop', [this]);
...@@ -465,7 +474,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -465,7 +474,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
/** /**
* Trigger the replace event * Trigger the replace event
*/ */
$onReplaceClick: function() { $onReplaceClick: function () {
this.fireEvent('replace', [this]); this.fireEvent('replace', [this]);
}, },
...@@ -474,7 +483,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -474,7 +483,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
* *
* @param {Object} user * @param {Object} user
*/ */
setUser: function(user) { setUser: function (user) {
this.$user = user; this.$user = user;
}, },
...@@ -483,7 +492,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -483,7 +492,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
* *
* @return {Promise} * @return {Promise}
*/ */
calc: function() { calc: function () {
if (!this.$created) { if (!this.$created) {
return Promise.resolve(); return Promise.resolve();
} }
...@@ -503,7 +512,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -503,7 +512,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
const price = Formatter.format(product.calculated.nettoSubSum); const price = Formatter.format(product.calculated.nettoSubSum);
const total = Formatter.format(product.calculated.nettoSum); const total = Formatter.format(product.calculated.nettoSum);
const setElement = function(Node, text) { const setElement = function (Node, text) {
const isInEditMode = Node.getElement('input'); const isInEditMode = Node.getElement('input');
if (isInEditMode) { if (isInEditMode) {
...@@ -553,7 +562,10 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -553,7 +562,10 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
} }
this.hideLoader(); this.hideLoader();
this.fireEvent('calc', [this]);
if (!this.$calculate) {
this.fireEvent('calc', [this]);
}
return product; return product;
}); });
...@@ -564,11 +576,29 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -564,11 +576,29 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
* *
* @return {Promise} * @return {Promise}
*/ */
$calc: function() { $calc: function () {
if (!this.$calculate) {
return Promise.resolve({
vat: this.getAttribute('vat'),
unitPrice: this.getAttribute('unitPrice'),
id: this.getAttribute('id'),
articleNo: this.getAttribute('articleNo'),
description: this.getAttribute('description'),
discount: this.getAttribute('discount'),
position: this.getAttribute('position'),
price: this.getAttribute('price'),
quantity: this.getAttribute('quantity'),
quantityUnit: this.getAttribute('quantityUnit'),
title: this.getAttribute('title'),
calculated: this.$calculations
});
}
let Calc; let Calc;
const self = this, const attr = this.getAttributes(),
attr = self.getAttributes(),
pos = parseInt(attr.position); pos = parseInt(attr.position);
let calcByList = false; let calcByList = false;
...@@ -577,41 +607,47 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -577,41 +607,47 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
Calc = this.getAttribute('List').$executeCalculation(); Calc = this.getAttribute('List').$executeCalculation();
calcByList = true; calcByList = true;
} else { } else {
Calc = new Promise(function(resolve, reject) { Calc = new Promise((resolve, reject) => {
QUIAjax.get('package_quiqqer_erp_ajax_products_calc', resolve, { QUIAjax.get('package_quiqqer_erp_ajax_products_calc', resolve, {
'package': 'quiqqer/erp', 'package': 'quiqqer/erp',
onError: reject, onError: reject,
articles: JSON.encode({ articles: JSON.encode({
articles: [attr] articles: [attr]
}), }),
user: JSON.encode(self.$user), user: JSON.encode(this.$user),
currency: self.getAttribute('currency') currency: this.getAttribute('currency')
}); });
}); });
} }
return Calc.then(function(result) { return Calc.then((result) => {
let articleList; let articleList;
let brutto; let brutto;
let articles = result.articles; let articles = [];
if (!calcByList) { if (!result || typeof result.articles === 'undefined') {
articleList = articles[0]; brutto = !this.getAttribute('List').$Switch.getStatus();
brutto = result.brutto.articles[0];
} else { } else {
articleList = articles.filter(function(article) { articles = result.articles;
return parseInt(article.position) === pos;
})[0];
brutto = result.brutto.articles.filter(function(article) { if (!calcByList) {
return parseInt(article.position) === pos; articleList = articles[0];
})[0]; brutto = result.brutto.articles[0];
} else {
articleList = articles.filter(function (article) {
return parseInt(article.position) === pos;
})[0];
brutto = result.brutto.articles.filter(function (article) {
return parseInt(article.position) === pos;
})[0];
}
} }
self.$calculations = articleList; this.$calculations = articleList;
self.$bruttoCalc = brutto; this.$bruttoCalc = brutto;
self.fireEvent('calc', [ this.fireEvent('calc', [
self, this,
result, result,
articleList articleList
]); ]);
...@@ -625,7 +661,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -625,7 +661,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
* *
* @returns {{}|*} * @returns {{}|*}
*/ */
getCalculations: function() { getCalculations: function () {
if (!this.$calculations) { if (!this.$calculations) {
return {}; return {};
} }
...@@ -633,10 +669,27 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -633,10 +669,27 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
return this.$calculations.calculated; return this.$calculations.calculated;
}, },
setCalculations: function (calculations) {
this.$calculations = calculations;
},
disableCalculations: function () {
this.$calculate = false;
this.$calculations.calculate = 0;
},
enableCalculations: function () {
this.$calculate = true;
if (typeof this.$calculations.calculate !== 'undefined') {
delete this.$calculations.calculate;
}
},
/** /**
* @returns {*} * @returns {*}
*/ */
getBruttoCalc: function() { getBruttoCalc: function () {
return this.$bruttoCalc; return this.$bruttoCalc;
}, },
...@@ -645,7 +698,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -645,7 +698,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
* *
* @return {Promise|*} * @return {Promise|*}
*/ */
getCurrencyFormatter: function() { getCurrencyFormatter: function () {
if (this.$Formatter) { if (this.$Formatter) {
return Promise.resolve(this.$Formatter); return Promise.resolve(this.$Formatter);
} }
...@@ -687,7 +740,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -687,7 +740,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
* *
* @param {String} currency * @param {String} currency
*/ */
setCurrency: function(currency) { setCurrency: function (currency) {
if (this.getAttribute('currency') === currency) { if (this.getAttribute('currency') === currency) {
return; return;
} }
...@@ -701,7 +754,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -701,7 +754,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
* *
* @param {String} title * @param {String} title
*/ */
setTitle: function(title) { setTitle: function (title) {
this.setAttribute('title', title); this.setAttribute('title', title);
this.$Title.set('html', title); this.$Title.set('html', title);
...@@ -717,7 +770,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -717,7 +770,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
* *
* @param {String} description * @param {String} description
*/ */
setDescription: function(description) { setDescription: function (description) {
this.setAttribute('description', description); this.setAttribute('description', description);
this.$Description.set('html', description); this.$Description.set('html', description);
...@@ -739,7 +792,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -739,7 +792,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
* *
* @param {String} articleNo * @param {String} articleNo
*/ */
setArticleNo: function(articleNo) { setArticleNo: function (articleNo) {
this.setAttribute('articleNo', articleNo); this.setAttribute('articleNo', articleNo);
this.$ArticleNo.set('html', articleNo); this.$ArticleNo.set('html', articleNo);
...@@ -755,7 +808,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -755,7 +808,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
* *
* @param {Number} pos * @param {Number} pos
*/ */
setPosition: function(pos) { setPosition: function (pos) {
this.setAttribute('position', parseInt(pos)); this.setAttribute('position', parseInt(pos));
if (this.$Position) { if (this.$Position) {
...@@ -771,7 +824,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -771,7 +824,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
* @param {Number} quantity * @param {Number} quantity
* @return {Promise} * @return {Promise}
*/ */
setQuantity: function(quantity) { setQuantity: function (quantity) {
this.setAttribute('quantity', parseFloat(quantity)); this.setAttribute('quantity', parseFloat(quantity));
if (this.$Quantity) { if (this.$Quantity) {
...@@ -788,7 +841,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -788,7 +841,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
* *
* @param {Object} quantityUnit - {id:'piece', title:''} * @param {Object} quantityUnit - {id:'piece', title:''}
*/ */
setQuantityUnit: function(quantityUnit) { setQuantityUnit: function (quantityUnit) {
if (typeof quantityUnit.id === 'undefined') { if (typeof quantityUnit.id === 'undefined') {
return; return;
} }
...@@ -811,7 +864,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -811,7 +864,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
* @param {Number} price * @param {Number} price
* @return {Promise} * @return {Promise}
*/ */
setUnitPrice: function(price) { setUnitPrice: function (price) {
this.setAttribute('unitPrice', parseFloat(price)); this.setAttribute('unitPrice', parseFloat(price));
if (this.$UnitPrice) { if (this.$UnitPrice) {
...@@ -829,7 +882,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -829,7 +882,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
* @param {Number|String} vat * @param {Number|String} vat
* @return {Promise} * @return {Promise}
*/ */
setVat: function(vat) { setVat: function (vat) {
if (vat === '-' || vat === '') { if (vat === '-' || vat === '') {
this.setAttribute('vat', ''); this.setAttribute('vat', '');
this.$VAT.set('html', '-'); this.$VAT.set('html', '-');
...@@ -862,7 +915,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -862,7 +915,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
* *
* @param {String|Number} discount - 100 = 100€, 100€ = 100€ or 10% = calculation * @param {String|Number} discount - 100 = 100€, 100€ = 100€ or 10% = calculation
*/ */
setDiscount: function(discount) { setDiscount: function (discount) {
const self = this; const self = this;
let value = '', let value = '',
type = ''; type = '';
...@@ -887,7 +940,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -887,7 +940,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
} }
} }
return Prom.then(function(discountResult) { return Prom.then(function (discountResult) {
if (discountResult && type === '%') { if (discountResult && type === '%') {
discountResult = (discountResult).toString().replace(/\%/g, '') + type; discountResult = (discountResult).toString().replace(/\%/g, '') + type;
value = discountResult; value = discountResult;
...@@ -909,21 +962,21 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -909,21 +962,21 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
/** /**
* Show the loader * Show the loader
*/ */
showLoader: function() { showLoader: function () {
this.$Loader.setStyle('display', null); this.$Loader.setStyle('display', null);
}, },
/** /**
* Hide the loader * Hide the loader
*/ */
hideLoader: function() { hideLoader: function () {
this.$Loader.setStyle('display', 'none'); this.$Loader.setStyle('display', 'none');
}, },
/** /**
* select the article * select the article
*/ */
select: function() { select: function () {
if (!this.$Elm) { if (!this.$Elm) {
return; return;
} }
...@@ -946,7 +999,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -946,7 +999,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
/** /**
* unselect the article * unselect the article
*/ */
unselect: function() { unselect: function () {
if (!this.$Elm) { if (!this.$Elm) {
return; return;
} }
...@@ -965,7 +1018,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -965,7 +1018,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
/** /**
* @return {boolean} * @return {boolean}
*/ */
isSelected: function() { isSelected: function () {
return this.$isSelected; return this.$isSelected;
}, },
...@@ -976,7 +1029,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -976,7 +1029,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
/** /**
* Opens the delete dialog * Opens the delete dialog
*/ */
openDeleteDialog: function() { openDeleteDialog: function () {
new QUIConfirm({ new QUIConfirm({
icon: 'fa fa-trash', icon: 'fa fa-trash',
texticon: 'fa fa-trash', texticon: 'fa fa-trash',
...@@ -998,11 +1051,11 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -998,11 +1051,11 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
/** /**
* event : on title edit * event : on title edit
*/ */
$onEditTitle: function() { $onEditTitle: function () {
this.$createEditField( this.$createEditField(
this.$Title, this.$Title,
this.getAttribute('title') this.getAttribute('title')
).then(function(value) { ).then(function (value) {
this.setTitle(value); this.setTitle(value);
}.bind(this)); }.bind(this));
}, },
...@@ -1010,7 +1063,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -1010,7 +1063,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
/** /**
* event : on description edit * event : on description edit
*/ */
$onEditDescription: function() { $onEditDescription: function () {
if (this.$Editor) { if (this.$Editor) {
return; return;
} }
...@@ -1026,7 +1079,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -1026,7 +1079,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
maxHeight: 600, maxHeight: 600,
maxWidth: 800, maxWidth: 800,
events: { events: {
onOpen: function(Win) { onOpen: function (Win) {
Win.Loader.show(); Win.Loader.show();
const Content = Win.getContent(); const Content = Win.getContent();
...@@ -1050,7 +1103,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -1050,7 +1103,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
Title.set('placeholder', QUILocale.get('quiqqer/system', 'title')); Title.set('placeholder', QUILocale.get('quiqqer/system', 'title'));
Title.focus(); Title.focus();
Editors.getEditor(null).then(function(Editor) { Editors.getEditor(null).then(function (Editor) {
self.$Editor = Editor; self.$Editor = Editor;
// minimal toolbar // minimal toolbar
...@@ -1107,7 +1160,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -1107,7 +1160,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
] ]
}); });
self.$Editor.addEvent('onLoaded', function() { self.$Editor.addEvent('onLoaded', function () {
self.$Editor.switchToWYSIWYG(); self.$Editor.switchToWYSIWYG();
self.$Editor.showToolbar(); self.$Editor.showToolbar();
self.$Editor.setContent(self.getAttribute('description')); self.$Editor.setContent(self.getAttribute('description'));
...@@ -1119,14 +1172,14 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -1119,14 +1172,14 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
self.$Editor.setHeight(340); self.$Editor.setHeight(340);
}); });
Title.addEvent('keyup', function(event) { Title.addEvent('keyup', function (event) {
if (event.key === 'enter') { if (event.key === 'enter') {
Win.submit(); Win.submit();
} }
}); });
}, },
onSubmit: function(Win) { onSubmit: function (Win) {
const description = self.$Editor.getContent(); const description = self.$Editor.getContent();
Win.Loader.show(); Win.Loader.show();
...@@ -1145,7 +1198,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -1145,7 +1198,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
}); });
}, },
onClose: function() { onClose: function () {
self.$Editor.destroy(); self.$Editor.destroy();
self.$Editor = null; self.$Editor = null;
} }
...@@ -1156,11 +1209,11 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -1156,11 +1209,11 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
/** /**
* event: on Article-Number edit * event: on Article-Number edit
*/ */
$onEditArticleNo: function() { $onEditArticleNo: function () {
this.$createEditField( this.$createEditField(
this.$ArticleNo, this.$ArticleNo,
this.getAttribute('articleNo') this.getAttribute('articleNo')
).then(function(value) { ).then(function (value) {
this.setArticleNo(value); this.setArticleNo(value);
}.bind(this)); }.bind(this));
}, },
...@@ -1168,12 +1221,12 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -1168,12 +1221,12 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
/** /**
* event : on quantity edit * event : on quantity edit
*/ */
$onEditQuantity: function() { $onEditQuantity: function () {
this.$createEditField( this.$createEditField(
this.$Quantity, this.$Quantity,
this.getAttribute('quantity'), this.getAttribute('quantity'),
'number' 'number'
).then(function(value) { ).then(function (value) {
this.setQuantity(value); this.setQuantity(value);
}.bind(this)); }.bind(this));
}, },
...@@ -1181,15 +1234,15 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -1181,15 +1234,15 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
/** /**
* Edit quantity unit * Edit quantity unit
*/ */
$onEditQuantityUnit: function() { $onEditQuantityUnit: function () {
const self = this; const self = this;
require([ require([
'package/quiqqer/erp/bin/backend/controls/articles/product/QuantityUnitWindow' 'package/quiqqer/erp/bin/backend/controls/articles/product/QuantityUnitWindow'
], function(QuantityUnitWindow) { ], function (QuantityUnitWindow) {
new QuantityUnitWindow({ new QuantityUnitWindow({
events: { events: {
onSubmit: function(Win, value, title) { onSubmit: function (Win, value, title) {
self.setQuantityUnit({ self.setQuantityUnit({
id: value, id: value,
title: title title: title
...@@ -1209,14 +1262,14 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -1209,14 +1262,14 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
/** /**
* event : on quantity edit * event : on quantity edit
*/ */
$onEditUnitPriceQuantity: function() { $onEditUnitPriceQuantity: function () {
const self = this; const self = this;
this.$createEditField( this.$createEditField(
this.$UnitPrice, this.$UnitPrice,
this.getAttribute('unitPrice'), this.getAttribute('unitPrice'),
'number' 'number'
).then(function(value) { ).then(function (value) {
self.setUnitPrice(value); self.setUnitPrice(value);
}); });
}, },
...@@ -1224,16 +1277,16 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -1224,16 +1277,16 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
/** /**
* event : on brutto price edit * event : on brutto price edit
*/ */
$onEditBruttoPrice: function() { $onEditBruttoPrice: function () {
const self = this; const self = this;
this.$createEditField( this.$createEditField(
this.$UnitPriceBrutto, this.$UnitPriceBrutto,
this.$UnitPriceBrutto.get('data-value'), this.$UnitPriceBrutto.get('data-value'),
'number' 'number'
).then(function(value) { ).then(function (value) {
return self.getNettoPrice(value, false); return self.getNettoPrice(value, false);
}).then(function(value) { }).then(function (value) {
self.setUnitPrice(value); self.setUnitPrice(value);
}); });
}, },
...@@ -1241,15 +1294,15 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -1241,15 +1294,15 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
/** /**
* event: on edit VAT * event: on edit VAT
*/ */
$onEditVat: function() { $onEditVat: function () {
const self = this; const self = this;
require([ require([
'package/quiqqer/tax/bin/controls/taxList/AvailableTaxListWindow' 'package/quiqqer/tax/bin/controls/taxList/AvailableTaxListWindow'
], function(AvailableTaxListWindow) { ], function (AvailableTaxListWindow) {
new AvailableTaxListWindow({ new AvailableTaxListWindow({
events: { events: {
onSubmit: function(Win, value) { onSubmit: function (Win, value) {
self.setVat(value); self.setVat(value);
QUIElements.simulateEvent( QUIElements.simulateEvent(
...@@ -1265,7 +1318,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -1265,7 +1318,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
/** /**
* event: on edit discount * event: on edit discount
*/ */
$onEditDiscount: function() { $onEditDiscount: function () {
let discount = this.getAttribute('discount'); let discount = this.getAttribute('discount');
if (discount === '-' || discount === false || !discount) { if (discount === '-' || discount === false || !discount) {
...@@ -1279,7 +1332,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -1279,7 +1332,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
this.$createEditField( this.$createEditField(
this.$Discount, this.$Discount,
discount discount
).then(function(value) { ).then(function (value) {
this.setDiscount(value); this.setDiscount(value);
}.bind(this)); }.bind(this));
}, },
...@@ -1287,7 +1340,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -1287,7 +1340,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
/** /**
* event: on brutto edit discount * event: on brutto edit discount
*/ */
$onEditBruttoDiscount: function() { $onEditBruttoDiscount: function () {
const self = this; const self = this;
let discount = this.$DiscountBrutto.get('data-value'); let discount = this.$DiscountBrutto.get('data-value');
...@@ -1299,7 +1352,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -1299,7 +1352,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
} }
} }
this.$createEditField(this.$DiscountBrutto, discount).then(function(value) { this.$createEditField(this.$DiscountBrutto, discount).then(function (value) {
if (value.match('%')) { if (value.match('%')) {
return self.setDiscount(value); return self.setDiscount(value);
} }
...@@ -1308,7 +1361,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -1308,7 +1361,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
return self.setDiscount(0); return self.setDiscount(0);
} }
return self.getNettoPrice(value).then(function(nettoValue) { return self.getNettoPrice(value).then(function (nettoValue) {
self.setDiscount(nettoValue); self.setDiscount(nettoValue);
}); });
}); });
...@@ -1317,7 +1370,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -1317,7 +1370,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
/** /**
* Edit custom fields * Edit custom fields
*/ */
$onCustomFieldClick: function() { $onCustomFieldClick: function () {
this.fireEvent('editCustomFields', [this]); this.fireEvent('editCustomFields', [this]);
}, },
...@@ -1330,12 +1383,12 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -1330,12 +1383,12 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
* @param {Object} [inputAttributes] - input attributes * @param {Object} [inputAttributes] - input attributes
* @returns {Promise} * @returns {Promise}
*/ */
$createEditField: function(Container, value, type, inputAttributes) { $createEditField: function (Container, value, type, inputAttributes) {
const self = this; const self = this;
type = type || 'text'; type = type || 'text';
return new Promise(function(resolve) { return new Promise(function (resolve) {
const Edit = new Element('input', { const Edit = new Element('input', {
type: type, type: type,
value: value, value: value,
...@@ -1371,17 +1424,17 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -1371,17 +1424,17 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
Edit.focus(); Edit.focus();
Edit.select(); Edit.select();
const onFinish = function() { const onFinish = function () {
Edit.destroy(); Edit.destroy();
resolve(Edit.value); resolve(Edit.value);
}; };
Edit.addEvents({ Edit.addEvents({
click: function(event) { click: function (event) {
event.stop(); event.stop();
}, },
keydown: function(event) { keydown: function (event) {
self.fireEvent('editKeyDown', [ self.fireEvent('editKeyDown', [
self, self,
event event
...@@ -1407,7 +1460,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -1407,7 +1460,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
* *
* @param event * @param event
*/ */
$editNext: function(event) { $editNext: function (event) {
let Cell = event.target; let Cell = event.target;
if (!Cell.hasClass('cell')) { if (!Cell.hasClass('cell')) {
...@@ -1483,11 +1536,11 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -1483,11 +1536,11 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
* *
* @return {Promise} * @return {Promise}
*/ */
$loadDefaultQuantityUnit: function() { $loadDefaultQuantityUnit: function () {
const self = this; const self = this;
return new Promise(function(resolve) { return new Promise(function (resolve) {
QUIAjax.get('package_quiqqer_erp_ajax_products_getQuantityUnitList', function(unitList) { QUIAjax.get('package_quiqqer_erp_ajax_products_getQuantityUnitList', function (unitList) {
let i, title, entry; let i, title, entry;
let current = QUILocale.getCurrent(); let current = QUILocale.getCurrent();
...@@ -1529,10 +1582,10 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -1529,10 +1582,10 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
* @param formatted * @param formatted
* @return {Promise} * @return {Promise}
*/ */
getNettoPrice: function(value, formatted) { getNettoPrice: function (value, formatted) {
const self = this; const self = this;
return new Promise(function(resolve) { return new Promise(function (resolve) {
QUIAjax.get('package_quiqqer_erp_ajax_calcNettoPrice', resolve, { QUIAjax.get('package_quiqqer_erp_ajax_calcNettoPrice', resolve, {
'package': 'quiqqer/erp', 'package': 'quiqqer/erp',
price: value, price: value,
...@@ -1549,10 +1602,10 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -1549,10 +1602,10 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
* @param formatted * @param formatted
* @return {Promise} * @return {Promise}
*/ */
getBruttoPrice: function(value, formatted) { getBruttoPrice: function (value, formatted) {
const self = this; const self = this;
return new Promise(function(resolve) { return new Promise(function (resolve) {
QUIAjax.get('package_quiqqer_erp_ajax_calcBruttoPrice', resolve, { QUIAjax.get('package_quiqqer_erp_ajax_calcBruttoPrice', resolve, {
'package': 'quiqqer/erp', 'package': 'quiqqer/erp',
price: value, price: value,
...@@ -1568,7 +1621,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [ ...@@ -1568,7 +1621,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
* @param {String} description * @param {String} description
* @return {Promise} * @return {Promise}
*/ */
$sanitizeArticleDescription: function(description) { $sanitizeArticleDescription: function (description) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
QUIAjax.get('package_quiqqer_erp_ajax_utils_sanitizeArticleDescription', resolve, { QUIAjax.get('package_quiqqer_erp_ajax_utils_sanitizeArticleDescription', resolve, {
'package': 'quiqqer/erp', 'package': 'quiqqer/erp',
......
...@@ -27,8 +27,8 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -27,8 +27,8 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
'text!package/quiqqer/erp/bin/backend/controls/articles/ArticleList.sortablePlaceholder.html', 'text!package/quiqqer/erp/bin/backend/controls/articles/ArticleList.sortablePlaceholder.html',
'css!package/quiqqer/erp/bin/backend/controls/articles/ArticleList.css' 'css!package/quiqqer/erp/bin/backend/controls/articles/ArticleList.css'
], function(QUI, QUIControl, QUISwitch, QUILoader, Mustache, ], function (QUI, QUIControl, QUISwitch, QUILoader, Mustache,
QUIAjax, QUILocale, AddProductWindow, Article, Sortables, template, templateSortablePlaceholder QUIAjax, QUILocale, AddProductWindow, Article, Sortables, template, templateSortablePlaceholder
) { ) {
'use strict'; 'use strict';
...@@ -58,7 +58,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -58,7 +58,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
nettoinput: true nettoinput: true
}, },
initialize: function(options) { initialize: function (options) {
this.parent(options); this.parent(options);
this.$articles = []; this.$articles = [];
...@@ -68,6 +68,8 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -68,6 +68,8 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
this.$calculationTimer = null; this.$calculationTimer = null;
this.$isIncalculationFrame = false; this.$isIncalculationFrame = false;
this.$calculate = true; // calculation is running or not
this.$calculations = { this.$calculations = {
currencyData: {}, currencyData: {},
isEuVat: 0, isEuVat: 0,
...@@ -95,7 +97,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -95,7 +97,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
* *
* @returns {HTMLDivElement} * @returns {HTMLDivElement}
*/ */
create: function() { create: function () {
const self = this; const self = this;
this.$Elm = this.parent(); this.$Elm = this.parent();
...@@ -131,7 +133,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -131,7 +133,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
switchTextOff: 'brutto', switchTextOff: 'brutto',
switchTextOffIcon: false, switchTextOffIcon: false,
events: { events: {
onChange: function() { onChange: function () {
self.$Loader.show(); self.$Loader.show();
self.setAttribute('nettoinput', !!self.$Switch.getStatus()); self.setAttribute('nettoinput', !!self.$Switch.getStatus());
self.$refreshNettoBruttoDisplay(); self.$refreshNettoBruttoDisplay();
...@@ -144,7 +146,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -144,7 +146,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
this.$Elm.getElement('.quiqqer-erp-backend-erpItems-container-switch-btn') this.$Elm.getElement('.quiqqer-erp-backend-erpItems-container-switch-btn')
); );
SwitchDesc.addEvent('click', function() { SwitchDesc.addEvent('click', function () {
self.$Switch.toggle(); self.$Switch.toggle();
}); });
...@@ -156,8 +158,8 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -156,8 +158,8 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
/** /**
* event: on inject * event: on inject
*/ */
$onInject: function() { $onInject: function () {
(function() { (function () {
if (this.$articles.length) { if (this.$articles.length) {
this.$articles[0].select(); this.$articles[0].select();
} }
...@@ -169,8 +171,8 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -169,8 +171,8 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
* *
* @returns {Object} * @returns {Object}
*/ */
serialize: function() { serialize: function () {
const articles = this.$getArticles().map(function(ArticleInstance) { const articles = this.$getArticles().map(function (ArticleInstance) {
const attr = ArticleInstance.getAttributes(); const attr = ArticleInstance.getAttributes();
attr.control = typeOf(ArticleInstance); attr.control = typeOf(ArticleInstance);
...@@ -183,21 +185,31 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -183,21 +185,31 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
}; };
}, },
getArticles: function () {
return this.$getArticles();
},
/** /**
* Get internal article list * Get internal article list
* *
* @return {[]} * @return {[]}
*/ */
$getArticles: function() { $getArticles: function () {
return this.$articles; return this.$articles;
}, },
clear: function () {
this.$articles = [];
this.$priceFactors = [];
this.$Container.innerHTML = '';
},
/** /**
* Return the articles count * Return the articles count
* *
* @returns {number} * @returns {number}
*/ */
count: function() { count: function () {
return this.$articles.length; return this.$articles.length;
}, },
...@@ -210,7 +222,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -210,7 +222,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
* @param {Object|String} list * @param {Object|String} list
* @return {Promise} * @return {Promise}
*/ */
unserialize: function(list) { unserialize: function (list) {
const self = this; const self = this;
let data = {}; let data = {};
...@@ -251,7 +263,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -251,7 +263,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
this.$Container.set('html', ''); this.$Container.set('html', '');
} }
const controls = data.articles.map(function(ArticleInstance) { const controls = data.articles.map(function (ArticleInstance) {
if (typeof ArticleInstance.control !== 'undefined' && ArticleInstance.control !== '') { if (typeof ArticleInstance.control !== 'undefined' && ArticleInstance.control !== '') {
return ArticleInstance.control; return ArticleInstance.control;
} }
...@@ -259,7 +271,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -259,7 +271,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
return 'package/quiqqer/erp/bin/backend/controls/articles/Article'; return 'package/quiqqer/erp/bin/backend/controls/articles/Article';
}).unique(); }).unique();
require(controls, function() { // dont use () => { require(controls, function () { // dont use () => {
let i, len, article, index; let i, len, article, index;
for (i = 0, len = data.articles.length; i < len; i++) { for (i = 0, len = data.articles.length; i < len; i++) {
...@@ -294,10 +306,10 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -294,10 +306,10 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
* *
* @param {Object} user * @param {Object} user
*/ */
setUser: function(user) { setUser: function (user) {
this.$user = user; this.$user = user;
this.$articles.each(function(ArticleInstance) { this.$articles.each(function (ArticleInstance) {
ArticleInstance.setUser(this.$user); ArticleInstance.setUser(this.$user);
}.bind(this)); }.bind(this));
}, },
...@@ -307,7 +319,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -307,7 +319,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
* *
* @return {Object|*|{}} * @return {Object|*|{}}
*/ */
getUser: function() { getUser: function () {
return this.$user; return this.$user;
}, },
...@@ -317,7 +329,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -317,7 +329,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
* *
* @param {Object} Child * @param {Object} Child
*/ */
addArticle: function(Child) { addArticle: function (Child) {
if (typeof Child !== 'object') { if (typeof Child !== 'object') {
return; return;
} }
...@@ -330,6 +342,13 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -330,6 +342,13 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
Child.setCurrency(this.getAttribute('currency')); Child.setCurrency(this.getAttribute('currency'));
} }
if (!this.$calculate) {
console.log('add -> disableCalculation');
if (typeof Child.disableCalculation === 'function') Child.disableCalculation();
} else {
console.log('add -> enableCalculation');
if (typeof Child.enableCalculation === 'function') Child.enableCalculation();
}
this.$articles.push(Child); this.$articles.push(Child);
...@@ -359,7 +378,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -359,7 +378,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
* @param {Object} NewArticle * @param {Object} NewArticle
* @param {Number} position * @param {Number} position
*/ */
replaceArticle: function(NewArticle, position) { replaceArticle: function (NewArticle, position) {
if (typeof NewArticle !== 'object') { if (typeof NewArticle !== 'object') {
return; return;
} }
...@@ -368,7 +387,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -368,7 +387,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
return; return;
} }
const Wanted = this.$articles.find(function(ArticleInstance) { const Wanted = this.$articles.find(function (ArticleInstance) {
return ArticleInstance.getAttribute('position') === position; return ArticleInstance.getAttribute('position') === position;
}); });
...@@ -389,7 +408,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -389,7 +408,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
/** /**
* Insert a new empty product * Insert a new empty product
*/ */
insertNewProduct: function() { insertNewProduct: function () {
this.addArticle(new Article()); this.addArticle(new Article());
}, },
...@@ -398,8 +417,8 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -398,8 +417,8 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
* *
* @return {Array} * @return {Array}
*/ */
save: function() { save: function () {
return this.$articles.map(function(ArticleInstance) { return this.$articles.map(function (ArticleInstance) {
return Object.merge(ArticleInstance.getAttributes(), { return Object.merge(ArticleInstance.getAttributes(), {
control: ArticleInstance.getType() control: ArticleInstance.getType()
}); });
...@@ -409,7 +428,11 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -409,7 +428,11 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
/** /**
* Calculate the list * Calculate the list
*/ */
$calc: function() { $calc: function () {
if (!this.$calculate) {
return Promise.resolve();
}
return new Promise((resolve) => { return new Promise((resolve) => {
if (this.$calculationTimer) { if (this.$calculationTimer) {
clearTimeout(this.$calculationTimer); clearTimeout(this.$calculationTimer);
...@@ -418,7 +441,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -418,7 +441,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
const self = this; const self = this;
this.$calculationTimer = (function() { this.$calculationTimer = (function () {
self.$executeCalculation().then(resolve); self.$executeCalculation().then(resolve);
}).delay(500); }).delay(500);
}); });
...@@ -433,7 +456,11 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -433,7 +456,11 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
* *
* @returns {Promise} * @returns {Promise}
*/ */
$executeCalculation: function() { $executeCalculation: function () {
if (!this.$calculate) {
return Promise.resolve();
}
const self = this; const self = this;
if (this.$isIncalculationFrame) { if (this.$isIncalculationFrame) {
...@@ -486,7 +513,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -486,7 +513,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
user: JSON.encode(this.$user), user: JSON.encode(this.$user),
currency: this.getAttribute('currency'), currency: this.getAttribute('currency'),
nettoInput: this.getAttribute('nettoinput') ? 1 : 0, nettoInput: this.getAttribute('nettoinput') ? 1 : 0,
onError: function(err) { onError: function (err) {
console.error(err); console.error(err);
reject(); reject();
} }
...@@ -499,27 +526,64 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -499,27 +526,64 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
* *
* @return {Array} * @return {Array}
*/ */
$getArticleDataForCalculation: function() { $getArticleDataForCalculation: function () {
return this.$articles.map(function(ArticleInstance) { return this.$articles.map(function (ArticleInstance) {
return ArticleInstance.getAttributes(); return ArticleInstance.getAttributes();
}); });
}, },
/**
* @deprecated use getCalculations()
*/
getCalculation: function () {
return this.getCalculations();
},
/** /**
* Return the current calculations * Return the current calculations
* *
* @returns {{currencyData: {}, isEuVat: number, isNetto: boolean, nettoSubSum: number, nettoSum: number, subSum: number, sum: number, vatArray: Array, vatText: Array}|*} * @returns {{currencyData: {}, isEuVat: number, isNetto: boolean, nettoSubSum: number, nettoSum: number, subSum: number, sum: number, vatArray: Array, vatText: Array}|*}
*/ */
getCalculation: function() { getCalculations: function () {
return this.$calculations; return this.$calculations;
}, },
setCalculations: function (calculations) {
this.$calculations = calculations;
this.fireEvent('calc', [
this,
this.$calculations
]);
},
disableCalculations: function () {
this.$calculate = false;
this.$calculations.calculate = 0;
this.$articles.forEach((Article) => {
Article.disableCalculations();
});
},
enableCalculations: function () {
this.$calculate = true;
if (typeof this.$calculations.calculate !== 'undefined') {
delete this.$calculations.calculate;
}
this.$articles.forEach((Article) => {
Article.disableCalculations();
});
},
/** /**
* Return the first / main vat of the list * Return the first / main vat of the list
* *
* @returns {number} * @returns {number}
*/ */
getVat: function() { getVat: function () {
const calculations = this.getCalculation(); const calculations = this.getCalculation();
const articles = calculations.articles; const articles = calculations.articles;
const calc = calculations.calculations; const calc = calculations.calculations;
...@@ -543,7 +607,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -543,7 +607,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
* *
* @return {[]} * @return {[]}
*/ */
getPriceFactors: function() { getPriceFactors: function () {
return this.$priceFactors; return this.$priceFactors;
}, },
...@@ -552,7 +616,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -552,7 +616,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
* *
* @param no * @param no
*/ */
removePriceFactor: function(no) { removePriceFactor: function (no) {
let newList = []; let newList = [];
for (let i = 0, len = this.$priceFactors.length; i < len; i++) { for (let i = 0, len = this.$priceFactors.length; i < len; i++) {
...@@ -585,7 +649,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -585,7 +649,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
* } * }
* @param priceFactor * @param priceFactor
*/ */
addPriceFactor: function(priceFactor) { addPriceFactor: function (priceFactor) {
const prio = priceFactor.index; const prio = priceFactor.index;
if (prio === this.$priceFactors.length) { if (prio === this.$priceFactors.length) {
...@@ -619,7 +683,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -619,7 +683,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
* @param index * @param index
* @param priceFactor * @param priceFactor
*/ */
editPriceFactor: function(index, priceFactor) { editPriceFactor: function (index, priceFactor) {
for (let k in priceFactor) { for (let k in priceFactor) {
if (priceFactor.hasOwnProperty(k)) { if (priceFactor.hasOwnProperty(k)) {
this.$priceFactors[index][k] = priceFactor[k]; this.$priceFactors[index][k] = priceFactor[k];
...@@ -632,7 +696,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -632,7 +696,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
* *
* @returns {number} * @returns {number}
*/ */
countPriceFactors: function() { countPriceFactors: function () {
return this.$priceFactors.length; return this.$priceFactors.length;
}, },
...@@ -643,7 +707,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -643,7 +707,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
/** /**
* Toggles the sorting * Toggles the sorting
*/ */
toggleSorting: function() { toggleSorting: function () {
if (this.$sorting) { if (this.$sorting) {
this.disableSorting(); this.disableSorting();
return; return;
...@@ -656,13 +720,13 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -656,13 +720,13 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
* Enables the sorting * Enables the sorting
* Articles can be sorted by drag and drop * Articles can be sorted by drag and drop
*/ */
enableSorting: function() { enableSorting: function () {
const self = this; const self = this;
const Elm = this.getElm(), const Elm = this.getElm(),
elements = Elm.getElements('.article'); elements = Elm.getElements('.article');
elements.each(function(Node) { elements.each(function (Node) {
const ArticleInstance = QUI.Controls.getById(Node.get('data-quiid')); const ArticleInstance = QUI.Controls.getById(Node.get('data-quiid'));
const attributes = ArticleInstance.getAttributes(); const attributes = ArticleInstance.getAttributes();
...@@ -683,7 +747,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -683,7 +747,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
transition: 'elastic:out' transition: 'elastic:out'
}, },
clone: function(event) { clone: function (event) {
let Target = event.target; let Target = event.target;
if (!Target.hasClass('article')) { if (!Target.hasClass('article')) {
...@@ -705,7 +769,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -705,7 +769,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
}); });
}, },
onStart: function(element) { onStart: function (element) {
element.addClass('quiqqer-erp-sortableClone'); element.addClass('quiqqer-erp-sortableClone');
self.$Container.setStyles({ self.$Container.setStyles({
...@@ -715,7 +779,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -715,7 +779,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
}); });
}, },
onComplete: function(element) { onComplete: function (element) {
element.removeClass('quiqqer-erp-sortableClone'); element.removeClass('quiqqer-erp-sortableClone');
self.$Container.setStyles({ self.$Container.setStyles({
...@@ -735,7 +799,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -735,7 +799,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
* Disables the sorting * Disables the sorting
* Articles can not be sorted * Articles can not be sorted
*/ */
disableSorting: function() { disableSorting: function () {
this.$sorting = false; this.$sorting = false;
const self = this, const self = this,
...@@ -744,7 +808,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -744,7 +808,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
Elm.getElements('.quiqqer-erp-sortableClone-placeholder').destroy(); Elm.getElements('.quiqqer-erp-sortableClone-placeholder').destroy();
elements.each(function(Node) { elements.each(function (Node) {
const ArticleInstance = QUI.Controls.getById(Node.get('data-quiid')); const ArticleInstance = QUI.Controls.getById(Node.get('data-quiid'));
ArticleInstance.removeEvents({ ArticleInstance.removeEvents({
...@@ -755,7 +819,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -755,7 +819,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
this.$Sortables.detach(); this.$Sortables.detach();
this.$Sortables = null; this.$Sortables = null;
this.$articles.sort(function(A, B) { this.$articles.sort(function (A, B) {
return A.getAttribute('position') - B.getAttribute('position'); return A.getAttribute('position') - B.getAttribute('position');
}); });
}, },
...@@ -765,7 +829,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -765,7 +829,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
* *
* @return {boolean} * @return {boolean}
*/ */
isSortingEnabled: function() { isSortingEnabled: function () {
return this.$sorting; return this.$sorting;
}, },
...@@ -774,7 +838,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -774,7 +838,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
* *
* @param Article * @param Article
*/ */
$onArticleSetPosition: function(ArticleInstance) { $onArticleSetPosition: function (ArticleInstance) {
ArticleInstance.getElm().getElement('.quiqqer-erp-backend-erpArticlePlaceholder-pos').set( ArticleInstance.getElm().getElement('.quiqqer-erp-backend-erpArticlePlaceholder-pos').set(
'html', 'html',
ArticleInstance.getAttribute('position') ArticleInstance.getAttribute('position')
...@@ -784,7 +848,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -784,7 +848,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
/** /**
* Recalculate the Position of all Articles * Recalculate the Position of all Articles
*/ */
$recalculatePositions: function() { $recalculatePositions: function () {
let i, len, ArticleInstance; let i, len, ArticleInstance;
const Elm = this.getElm(), const Elm = this.getElm(),
...@@ -805,7 +869,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -805,7 +869,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
* *
* @param {Object} ArticleInstance * @param {Object} ArticleInstance
*/ */
$onArticleDelete: function(ArticleInstance) { $onArticleDelete: function (ArticleInstance) {
if (this.$selectedArticle) { if (this.$selectedArticle) {
this.$selectedArticle.unselect(); this.$selectedArticle.unselect();
} }
...@@ -830,7 +894,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -830,7 +894,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
this.$articles = articles; this.$articles = articles;
this.$executeCalculation().then(function() { this.$executeCalculation().then(function () {
if (self.$articles.length) { if (self.$articles.length) {
self.$articles[0].select(); self.$articles[0].select();
} }
...@@ -842,7 +906,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -842,7 +906,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
* *
* @param {Object} Article * @param {Object} Article
*/ */
$onArticleSelect: function(ArticleInstance) { $onArticleSelect: function (ArticleInstance) {
if (this.$selectedArticle && if (this.$selectedArticle &&
this.$selectedArticle !== ArticleInstance) { this.$selectedArticle !== ArticleInstance) {
this.$selectedArticle.unselect(); this.$selectedArticle.unselect();
...@@ -860,7 +924,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -860,7 +924,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
* *
* @param Article * @param Article
*/ */
$onArticleUnSelect: function(ArticleInstance) { $onArticleUnSelect: function (ArticleInstance) {
if (this.$selectedArticle === ArticleInstance) { if (this.$selectedArticle === ArticleInstance) {
this.$selectedArticle = null; this.$selectedArticle = null;
this.fireEvent('articleUnSelect', [ this.fireEvent('articleUnSelect', [
...@@ -875,7 +939,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -875,7 +939,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
* *
* @param Article * @param Article
*/ */
$onArticleReplace: function(ArticleInstance) { $onArticleReplace: function (ArticleInstance) {
this.fireEvent('articleReplaceClick', [ this.fireEvent('articleReplaceClick', [
this, this,
ArticleInstance ArticleInstance
...@@ -887,7 +951,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -887,7 +951,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
* *
* @param {Object} EditArticle - package/quiqqer/erp/bin/backend/controls/articles/Article * @param {Object} EditArticle - package/quiqqer/erp/bin/backend/controls/articles/Article
*/ */
$onArticleEditCustomFields: function(EditArticle) { $onArticleEditCustomFields: function (EditArticle) {
const ArticleCustomFields = EditArticle.getAttribute('customFields'); const ArticleCustomFields = EditArticle.getAttribute('customFields');
const FieldValues = {}; const FieldValues = {};
...@@ -934,14 +998,14 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -934,14 +998,14 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
* *
* @returns {null|Object} * @returns {null|Object}
*/ */
getSelectedArticle: function() { getSelectedArticle: function () {
return this.$selectedArticle; return this.$selectedArticle;
}, },
/** /**
* refresh the brutto / netto switch display * refresh the brutto / netto switch display
*/ */
$refreshNettoBruttoDisplay: function() { $refreshNettoBruttoDisplay: function () {
const SwitchDesc = this.$Elm.getElement('.quiqqer-erp-backend-erpItems-container-switch-desc'); const SwitchDesc = this.$Elm.getElement('.quiqqer-erp-backend-erpItems-container-switch-desc');
const Container = this.$Elm.getElement('.quiqqer-erp-backend-erpItems-container-switch'); const Container = this.$Elm.getElement('.quiqqer-erp-backend-erpItems-container-switch');
...@@ -982,12 +1046,12 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [ ...@@ -982,12 +1046,12 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
require([ require([
URL_OPT_DIR + 'quiqqer/core/bin/QUI/lib/tippy/tippy.min.js', URL_OPT_DIR + 'quiqqer/core/bin/QUI/lib/tippy/tippy.min.js',
'css!' + URL_OPT_DIR + 'quiqqer/core/bin/QUI/lib/tippy/tippy.css' 'css!' + URL_OPT_DIR + 'quiqqer/core/bin/QUI/lib/tippy/tippy.css'
], function(tippy) { ], function (tippy) {
tippy(Warning, { tippy(Warning, {
animateFill: false, animateFill: false,
animation: 'shift-away', animation: 'shift-away',
allowHTML: true, allowHTML: true,
content: function() { content: function () {
return warning.replace(/ +(?= )/g, '').replace('\n', '').trim(); return warning.replace(/ +(?= )/g, '').replace('\n', '').trim();
} }
}); });
......
...@@ -25,11 +25,11 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleSummary', [ ...@@ -25,11 +25,11 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleSummary', [
return new Class({ return new Class({
Extends: QUIControl, Extends: QUIControl,
Type : 'package/quiqqer/erp/bin/backend/controls/articles/ArticleSummary', Type: 'package/quiqqer/erp/bin/backend/controls/articles/ArticleSummary',
options: { options: {
List : null, List: null,
styles : false, styles: false,
currency: 'EUR', currency: 'EUR',
showPosSummary: true // show summary for selected article showPosSummary: true // show summary for selected article
...@@ -57,7 +57,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleSummary', [ ...@@ -57,7 +57,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleSummary', [
}, },
/** /**
* Create the domnode element * Create the dom-node element
* *
* @returns {HTMLDivElement} * @returns {HTMLDivElement}
*/ */
...@@ -66,16 +66,16 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleSummary', [ ...@@ -66,16 +66,16 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleSummary', [
this.$Elm = new Element('div', { this.$Elm = new Element('div', {
'data-qui': 'package/quiqqer/erp/bin/backend/controls/articles/ArticleSummary', 'data-qui': 'package/quiqqer/erp/bin/backend/controls/articles/ArticleSummary',
'class' : 'quiqqer-erp-backend-temporaryErp-summary', 'class': 'quiqqer-erp-backend-temporaryErp-summary',
html : Mustache.render(template, { html: Mustache.render(template, {
showPosSummary: showPosSummary, showPosSummary: showPosSummary,
labelPosInfo : QUILocale.get(lg, 'article.summary.tpl.labelPosInfo'), labelPosInfo: QUILocale.get(lg, 'article.summary.tpl.labelPosInfo'),
labelNet : QUILocale.get(lg, 'article.summary.tpl.labelNet'), labelNet: QUILocale.get(lg, 'article.summary.tpl.labelNet'),
labelGross : QUILocale.get(lg, 'article.summary.tpl.labelGross'), labelGross: QUILocale.get(lg, 'article.summary.tpl.labelGross'),
labelSums : QUILocale.get(lg, 'article.summary.tpl.labelSums'), labelSums: QUILocale.get(lg, 'article.summary.tpl.labelSums'),
labelVat : QUILocale.get(lg, 'article.summary.tpl.labelVat'), labelVat: QUILocale.get(lg, 'article.summary.tpl.labelVat'),
}), }),
events : { events: {
mouseenter: this.showPriceFactors, mouseenter: this.showPriceFactors,
mouseleave: this.hidePriceFactors mouseleave: this.hidePriceFactors
} }
...@@ -137,8 +137,8 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleSummary', [ ...@@ -137,8 +137,8 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleSummary', [
Currency.getCurrency(currency).then((currency) => { Currency.getCurrency(currency).then((currency) => {
this.$Formatter = QUILocale.getNumberFormatter({ this.$Formatter = QUILocale.getNumberFormatter({
style : 'currency', style: 'currency',
currency : currency.code, currency: currency.code,
minimumFractionDigits: currency.precision, minimumFractionDigits: currency.precision,
maximumFractionDigits: currency.precision maximumFractionDigits: currency.precision
}); });
...@@ -208,7 +208,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleSummary', [ ...@@ -208,7 +208,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleSummary', [
Content.set('html', Mustache.render(template, { Content.set('html', Mustache.render(template, {
priceFactors: priceFactors, priceFactors: priceFactors,
vatArray : Object.values(calculations.vatArray) vatArray: Object.values(calculations.vatArray)
})); }));
const Total = Content.getElement('.quiqqer-erp-backend-temporaryErp-summaryWin-total'); const Total = Content.getElement('.quiqqer-erp-backend-temporaryErp-summaryWin-total');
...@@ -241,7 +241,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleSummary', [ ...@@ -241,7 +241,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleSummary', [
* @param ArticleInstance * @param ArticleInstance
*/ */
$refreshArticleSelect: function (List, ArticleInstance) { $refreshArticleSelect: function (List, ArticleInstance) {
let calculated = List.getCalculation(); let calculated = List.getCalculations();
if (typeof calculated.calculations === 'undefined') { if (typeof calculated.calculations === 'undefined') {
return; return;
...@@ -314,7 +314,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleSummary', [ ...@@ -314,7 +314,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleSummary', [
showPriceFactors: function () { showPriceFactors: function () {
const ArticleList = this.getAttribute('List'); const ArticleList = this.getAttribute('List');
let priceFactors = ArticleList.getPriceFactors(); let priceFactors = ArticleList.getPriceFactors();
let calculated = ArticleList.getCalculation(); let calculated = ArticleList.getCalculations();
if (typeof calculated.calculations === 'undefined') { if (typeof calculated.calculations === 'undefined') {
calculated.calculations = {}; calculated.calculations = {};
...@@ -326,19 +326,21 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleSummary', [ ...@@ -326,19 +326,21 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleSummary', [
} }
this.getCurrencyFormatter().then(() => { this.getCurrencyFormatter().then(() => {
console.log(calculated.calculations.vatArray);
const vat = Object.entries(calculated.calculations.vatArray).map((val) => { const vat = Object.entries(calculated.calculations.vatArray).map((val) => {
return { return {
text: val[1].text, text: val[1].text,
sum : this.$Formatter.format(val[1].sum) sum: this.$Formatter.format(val[1].sum)
}; };
}); });
this.$PriceFactors.set('html', Mustache.render(templatePriceFactor, { this.$PriceFactors.set('html', Mustache.render(templatePriceFactor, {
valueSubSum : calculated.calculations.display_subSum, valueSubSum: calculated.calculations.display_subSum,
valueSum : calculated.calculations.display_sum, valueSum: calculated.calculations.display_sum,
vat : vat, vat: vat,
textSubSum : QUILocale.get(lg, 'article.list.articles.subtotal'), textSubSum: QUILocale.get(lg, 'article.list.articles.subtotal'),
textSum : QUILocale.get(lg, 'article.list.articles.sumtotal'), textSum: QUILocale.get(lg, 'article.list.articles.sumtotal'),
priceFactors: priceFactors priceFactors: priceFactors
})); }));
...@@ -347,7 +349,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleSummary', [ ...@@ -347,7 +349,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleSummary', [
this.$PriceFactors.setStyle('bottom', 70); this.$PriceFactors.setStyle('bottom', 70);
this.$PFFX.animate({ this.$PFFX.animate({
bottom : 80, bottom: 80,
opacity: 1 opacity: 1
}, { }, {
duration: 300 duration: 300
...@@ -357,7 +359,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleSummary', [ ...@@ -357,7 +359,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleSummary', [
hidePriceFactors: function () { hidePriceFactors: function () {
this.$PFFX.animate({ this.$PFFX.animate({
bottom : 70, bottom: 70,
opacity: 0 opacity: 0
}, { }, {
duration: 300, duration: 300,
......
...@@ -177,32 +177,36 @@ public static function getBruttoNettoUserStatus(UserInterface $User): int ...@@ -177,32 +177,36 @@ public static function getBruttoNettoUserStatus(UserInterface $User): int
// no address found // no address found
} }
// @todo es gibt neue einstellungen b2b, b2c b2bANDb2c ... von diesen einstellungen ausgehen
// @todo tax ist nicht optimal dafür
$isNetto = $Config->getValue('shop', 'isNetto'); $isNetto = $Config->getValue('shop', 'isNetto');
if ($isNetto) { if ($isNetto) {
self::$userBruttoNettoStatus[$uid] = self::IS_NETTO_USER; self::$userBruttoNettoStatus[$uid] = self::IS_NETTO_USER;
return self::$userBruttoNettoStatus[$uid]; return self::$userBruttoNettoStatus[$uid];
} }
try { try {
$Tax = QUI\ERP\Tax\Utils::getTaxByUser($User); $Tax = QUI\ERP\Tax\Utils::getTaxByUser($User);
if ($Tax->getValue() == 0) { if ($Tax->getValue() == 0) {
self::$userBruttoNettoStatus[$uid] = self::IS_NETTO_USER; self::$userBruttoNettoStatus[$uid] = self::IS_NETTO_USER;
return self::$userBruttoNettoStatus[$uid]; return self::$userBruttoNettoStatus[$uid];
} }
} catch (QUI\Exception) { } catch (QUI\Exception) {
self::$userBruttoNettoStatus[$uid] = self::IS_NETTO_USER; }
return self::$userBruttoNettoStatus[$uid]; try {
$Package = QUI::getPackage('quiqqer/erp');
$Config = $Package->getConfig();
if ($Config->getValue('general', 'businessType') === 'B2B&B2C') {
self::$userBruttoNettoStatus[$uid] = self::IS_NETTO_USER;
return self::$userBruttoNettoStatus[$uid];
}
} catch (QUI\Exception) {
} }
self::$userBruttoNettoStatus[$uid] = self::IS_BRUTTO_USER; self::$userBruttoNettoStatus[$uid] = self::IS_BRUTTO_USER;
return self::$userBruttoNettoStatus[$uid]; return self::$userBruttoNettoStatus[$uid];
......