From dfc779c2ae9d3a45289b14284858f2666d50dad4 Mon Sep 17 00:00:00 2001
From: Henning Leutz <leutz@pcsg.de>
Date: Thu, 15 Sep 2022 15:15:24 +0200
Subject: [PATCH] feat: quiqqer/erp#78 - editable price factors

---
 bin/backend/controls/articles/ArticleList.js | 29 ++++++++++++++++++--
 locale.xml                                   |  9 ++++++
 2 files changed, 36 insertions(+), 2 deletions(-)

diff --git a/bin/backend/controls/articles/ArticleList.js b/bin/backend/controls/articles/ArticleList.js
index 4f408f9..35df938 100644
--- a/bin/backend/controls/articles/ArticleList.js
+++ b/bin/backend/controls/articles/ArticleList.js
@@ -184,6 +184,15 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
             return this.$articles;
         },
 
+        /**
+         * Return the articles count
+         *
+         * @returns {number}
+         */
+        count: function () {
+            return this.$articles.length;
+        },
+
         /**
          * Unserialize the list
          *
@@ -196,7 +205,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);
@@ -511,7 +520,23 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
          * @param priceFactor
          */
         addPriceFactor: function (priceFactor) {
-            this.$priceFactors.push(priceFactor);
+            const prio = priceFactor.index;
+
+            if (prio === this.$priceFactors.length) {
+                this.$priceFactors.push(priceFactor);
+                return;
+            }
+
+            this.$priceFactors.splice(prio, 0, priceFactor);
+        },
+
+        /**
+         * Return the articles count
+         *
+         * @returns {number}
+         */
+        countPriceFactors: function () {
+            return this.$priceFactors.length;
         },
 
         /**
diff --git a/locale.xml b/locale.xml
index adf7548..62beddf 100644
--- a/locale.xml
+++ b/locale.xml
@@ -1355,6 +1355,15 @@ Allowed characters: Letters, numbers and _ ä ö ü ß]]></en>
             <en><![CDATA[Vat]]></en>
         </locale>
 
+        <locale name="add.pricefactor.button">
+            <de><![CDATA[Preisfaktor hinzufügen]]></de>
+            <en><![CDATA[Add pricefactor]]></en>
+        </locale>
+        <locale name="message.pricefactor.empty">
+            <de><![CDATA[Keine Preisfaktoren vorhanden]]></de>
+            <en><![CDATA[No price factors available]]></en>
+        </locale>
+
 
     </groups>
 </locales>
-- 
GitLab