Skip to content
Code-Schnipsel Gruppen Projekte
Bestätigt Commit 4b59f561 erstellt von Henning Leutz's avatar Henning Leutz :martial_arts_uniform:
Dateien durchsuchen

feat: #78 - editable price factors

Übergeordneter b8a9e118
Keine zugehörigen Branchen gefunden
Keine zugehörigen Tags gefunden
Keine zugehörigen Merge Requests gefunden
......@@ -196,7 +196,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
unserialize: function (list) {
const self = this;
let data = {};
if (typeOf(list) === 'string') {
try {
data = JSON.stringify(list);
......@@ -489,6 +489,31 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
this.$priceFactors = newList;
},
/**
* add a price factor
*
* {
* calculation : 2,
* calculation_basis: 2,
* description : Form.elements.title.value,
* identifier : "",
* index : priority,
* nettoSum : data.nettoSum,
* nettoSumFormatted: data.nettoSumFormatted,
* sum : data.sum,
* sumFormatted : data.sumFormatted,
* title : Form.elements.title.value,
* value : data.sum,
* valueText : data.sumFormatted,
* vat : Form.elements.vat.value,
* visible : 1
* }
* @param priceFactor
*/
addPriceFactor: function (priceFactor) {
this.$priceFactors.push(priceFactor);
},
/**
* Sorting
*/
......
<table class="data-table data-table-flexbox quiqqer-invoice-backend-temporaryInvoice-summaryWin-priceFactors">
<thead>
<tr>
<th>
<button name="add-pricefactor" disabled class="qui-button" style="float: right">
<span class="fa fa plus"></span>
<span>Preisfaktor hinzufügen</span>
</button>
</th>
</tr>
</thead>
<tbody>
{{#priceFactors}}
<tr data-index="{{index}}">
......
......@@ -60,8 +60,9 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleSummary', [
const showPosSummary = this.getAttribute('showPosSummary');
this.$Elm = new Element('div', {
'class': 'quiqqer-erp-backend-temporaryErp-summary',
html : Mustache.render(template, {
'data-qui': 'package/quiqqer/erp/bin/backend/controls/articles/ArticleSummary',
'class' : 'quiqqer-erp-backend-temporaryErp-summary',
html : Mustache.render(template, {
showPosSummary: showPosSummary,
labelPosInfo : QUILocale.get(lg, 'article.summary.tpl.labelPosInfo'),
labelNet : QUILocale.get(lg, 'article.summary.tpl.labelNet'),
......@@ -147,6 +148,8 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleSummary', [
List.addEvent('onArticleSelect', this.$refreshArticleSelect);
},
// region summary
/**
* Open the summary with price factors
*/
......@@ -155,23 +158,11 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleSummary', [
return;
}
const self = this;
require(['qui/controls/windows/Popup'], function (Popup) {
new Popup({
title : QUILocale.get('quiqqer/erp', 'article.summary.window.title'),
buttons : false,
maxHeight: 600,
maxWidth : 600,
events : {
onCreate: function (Win) {
Win.Loader.show();
self.$refreshSummaryContent(Win).then(function () {
Win.Loader.hide();
});
}
}
require([
'package/quiqqer/erp/bin/backend/controls/articles/windows/PriceFactors'
], (PriceFactorWindow) => {
new PriceFactorWindow({
ArticleList: this.getAttribute('List')
}).open();
});
},
......@@ -226,6 +217,8 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleSummary', [
});
},
//endregion
/**
* event: onArticleSelect
*
......
......@@ -3,32 +3,30 @@ document.addEvent('domready', function () {
require([
'qui/QUI',
'package/quiqqer/erp/bin/backend/controls/Panel'
], function (QUI, Panel) {
var loadExecute = 0;
'package/quiqqer/erp/bin/backend/controls/Panel',
'package/quiqqer/erp/bin/backend/controls/articles/windows/PriceFactors',
'qui/controls/buttons/Separator',
'Locale'
], function (QUI, Panel, PriceFactorsWindow, Separator, QUILocale) {
let loadExecute = 0;
var load = function () {
const load = function () {
loadExecute++;
if (loadExecute === 10) {
return;
}
var ColumnElm = document.getElement('.qui-column');
const ColumnElm = document.getElement('.qui-column');
if (!ColumnElm) {
load.delay(100);
return;
}
// require([
// 'package/quiqqer/customer/bin/backend/controls/CreateCustomerWindow'
// ], function (Win) {
// new Win().open();
// });
var Column = QUI.Controls.getById(ColumnElm.get('data-quiid'));
const Column = QUI.Controls.getById(ColumnElm.get('data-quiid'));
var panels = Column.getChildren(),
let panels = Column.getChildren(),
length = Object.getLength(panels);
if (length === 0) {
......@@ -36,7 +34,7 @@ document.addEvent('domready', function () {
return;
}
for (var i in panels) {
for (let i in panels) {
if (!panels.hasOwnProperty(i)) {
continue;
}
......@@ -50,5 +48,49 @@ document.addEvent('domready', function () {
};
QUI.addEvent('quiqqerLoaded', load);
// extend panels
QUI.addEvent('quiqqerOrderActionButtonCreate', function (Panel, Actions) {
Actions.appendChild(new Separator());
Actions.appendChild({
name : 'priceFactors',
text : QUILocale.get('quiqqer/erp', 'panel.btn.priceFactors'),
icon : 'fa fa-outdent',
disabled: true,
events : {
onClick: function () {
const quiId = Panel.getElm().getElement(
'[data-qui="package/quiqqer/erp/bin/backend/controls/articles/ArticleList"]'
).get('data-quiid');
new PriceFactorsWindow({
ArticleList: QUI.Controls.getById(quiId)
}).open();
}
}
});
Actions.appendChild(new Separator());
QUI.fireEvent('quiqqerOrderActionButtonPriceFactors', [
Panel,
Actions
]);
// factors
const PriceFactors = Actions.getChildren().filter(function (Item) {
return Item.getAttribute('name') === 'priceFactors';
})[0];
Panel.addEvent('categoryEnter', function (Panel, Btn) {
if (Btn.getAttribute('name') === 'articles') {
PriceFactors.enable();
} else {
PriceFactors.disable();
}
});
});
});
});
......@@ -1291,6 +1291,15 @@ Allowed characters: Letters, numbers and _ ä ö ü ß]]></en>
<en><![CDATA[Product attributes]]></en>
</locale>
<locale name="panel.btn.priceFactors">
<de><![CDATA[Preisfaktoren bearbeiten]]></de>
<en><![CDATA[Edit pricefactors]]></en>
</locale>
<locale name="pricefactors.summary.window.title">
<de><![CDATA[Preisfaktoren bearbeiten]]></de>
<en><![CDATA[Edit pricefactors]]></en>
</locale>
<locale name="controls.QuantityUnitWindow.title">
<de><![CDATA[Mengeneinheit]]></de>
<en><![CDATA[Quantity unit]]></en>
......@@ -1307,5 +1316,45 @@ Allowed characters: Letters, numbers and _ ä ö ü ß]]></en>
You have selected a variant parent. Please choose a variant.
]]></en>
</locale>
<locale name="calculationBasis">
<de><![CDATA[Berechnungs-Grundlage]]></de>
<en><![CDATA[Calculation basis]]></en>
</locale>
<locale name="calculationBasis.netto">
<de><![CDATA[Netto]]></de>
<en><![CDATA[Netto]]></en>
</locale>
<locale name="calculationBasis.calculationBasisCalcPrice">
<de><![CDATA[Kalkulierter Preis]]></de>
<en><![CDATA[Calculated price]]></en>
</locale>
<locale name="calculationBasis.calculationBasisCalcBrutto">
<de><![CDATA[
Kalkulierter Brutto Preis (Geht von dem Nettopreis aus, welcher alle Preisfaktoren beinhaltet, wie z.B. Auswahllisten)
]]></de>
<en><![CDATA[
Calculated brutto price (Expects from the netto price which includes all price factors, like attribute lists)
]]></en>
</locale>
<locale name="title.price">
<de><![CDATA[Preis]]></de>
<en><![CDATA[Price]]></en>
</locale>
<locale name="title.title">
<de><![CDATA[Titel]]></de>
<en><![CDATA[Title]]></en>
</locale>
<locale name="title.priority">
<de><![CDATA[Priorität]]></de>
<en><![CDATA[Priority]]></en>
</locale>
<locale name="title.vat">
<de><![CDATA[MwSt.]]></de>
<en><![CDATA[Vat]]></en>
</locale>
</groups>
</locales>
......@@ -14,7 +14,6 @@
use QUI\ERP\Accounting\Invoice\InvoiceTemporary;
use QUI\ERP\Money\Price;
use QUI\Interfaces\Users\User as UserInterface;
use QUI\ERP\Currency\Handler as CurrencyHandler;
use function array_map;
use function array_sum;
......@@ -72,7 +71,7 @@ class Calc
/**
* Basis brutto
* include all price factors (from netto calculated price)
* warning: its not brutto VAT
* warning: it's not brutto VAT
*
* geht vnn der netto basis aus, welche alle price faktoren schon beinhaltet
* alle felder sind in diesem price schon enthalten
......
0% Lade oder .
You are about to add 0 people to the discussion. Proceed with caution.
Bearbeitung dieser Nachricht zuerst beenden!
Bitte registrieren oder zum Kommentieren