diff --git a/bin/backend/controls/articles/Article.html b/bin/backend/controls/articles/Article.html
index 3192172e363392f0267dba519b395f487fe21678..5860f12866c59650ad63f4862649c7a08938c947 100644
--- a/bin/backend/controls/articles/Article.html
+++ b/bin/backend/controls/articles/Article.html
@@ -1,3 +1,8 @@
+{{#showSelectCheckbox}}
+<div class="quiqqer-erp-backend-erpArticle-selectbox cell">
+    <input type="checkbox"/>
+</div>
+{{/showSelectCheckbox}}
 <div class="quiqqer-erp-backend-erpArticle-pos cell"></div>
 <div class="quiqqer-erp-backend-erpArticle-articleNo cell cell-editable"></div>
 <div class="quiqqer-erp-backend-erpArticle-text cell"></div>
diff --git a/bin/backend/controls/articles/Article.js b/bin/backend/controls/articles/Article.js
index f7e11af813fd007617995c61dd7012bc058ed41b..d076abb8de8c9a651b6641ba028e69e6c237a6dd 100644
--- a/bin/backend/controls/articles/Article.js
+++ b/bin/backend/controls/articles/Article.js
@@ -82,7 +82,26 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
             vat         : '',
             'class'     : 'QUI\\ERP\\Accounting\\Article',
             params      : false, // mixed value for API Articles
-            currency    : false
+            currency    : false,
+
+            showSelectCheckbox: false,  // select this article via checkbox instead of click
+
+            // Determine article fields that can be edited
+            editFields: {
+                articleNo          : true,
+                titleAndDescription: true,
+                quantity           : true,
+                quantityUnit       : true,
+                unitPrice          : true,
+                vat                : true,
+                discount           : true
+            },
+
+            User: false,        // special user object (see this.addUser)
+
+            deletable  : true,   // show "delete" button
+            replaceable: true,   // show "replace" button
+            calcByList : true     // calculate article prices by the associated ArticleList
         },
 
         initialize: function (options) {
@@ -93,12 +112,13 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
             this.$calculations = {};
             this.$bruttoCalc   = {};
 
-            this.$Position  = null;
-            this.$Quantity  = null;
-            this.$UnitPrice = null;
-            this.$Price     = null;
-            this.$VAT       = null;
-            this.$Total     = null;
+            this.$SelectCheckbox = null;
+            this.$Position       = null;
+            this.$Quantity       = null;
+            this.$UnitPrice      = null;
+            this.$Price          = null;
+            this.$VAT            = null;
+            this.$Total          = null;
 
             this.$Text        = null;
             this.$Title       = null;
@@ -106,6 +126,8 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
             this.$Editor      = null;
             this.$textIsHtml  = false;
 
+            this.$isSelected = false;
+
             this.$Loader  = null;
             this.$created = false;
 
@@ -126,20 +148,40 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
          * @returns {HTMLDivElement}
          */
         create: function () {
+            var self = this;
+
             this.$Elm = this.parent();
             this.$Elm.addClass('quiqqer-erp-backend-erpArticle');
 
+            var showSelectCheckbox = this.getAttribute('showSelectCheckbox');
+
             this.$Elm.set({
-                html      : Mustache.render(template),
+                html      : Mustache.render(template, {
+                    showSelectCheckbox: showSelectCheckbox
+                }),
                 'tabindex': -1,
                 styles    : {
                     outline: 'none'
-                },
-                events    : {
-                    click: this.select
                 }
             });
 
+            var EditFields = this.getAttribute('editFields');
+
+            if (showSelectCheckbox) {
+                this.$SelectCheckbox = this.$Elm.getElement('.quiqqer-erp-backend-erpArticle-selectbox > input');
+                this.$SelectCheckbox.addEvent('change', function (event) {
+                    if (event.target.checked) {
+                        self.select();
+                    } else {
+                        self.unselect();
+                    }
+                });
+            } else {
+                this.$Elm.set('events', {
+                    click: this.select
+                });
+            }
+
             this.$Position     = this.$Elm.getElement('.quiqqer-erp-backend-erpArticle-pos');
             this.$ArticleNo    = this.$Elm.getElement('.quiqqer-erp-backend-erpArticle-articleNo');
             this.$Text         = this.$Elm.getElement('.quiqqer-erp-backend-erpArticle-text');
@@ -152,37 +194,107 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
             this.$Total        = this.$Elm.getElement('.quiqqer-erp-backend-erpArticle-total');
             this.$Buttons      = this.$Elm.getElement('.quiqqer-erp-backend-erpArticle-buttons');
 
-            this.$ArticleNo.addEvent('click', this.$onEditArticleNo);
-            this.$Quantity.addEvent('click', this.$onEditQuantity);
-            this.$UnitPrice.addEvent('click', this.$onEditUnitPriceQuantity);
-            this.$VAT.addEvent('click', this.$onEditVat);
-            this.$Discount.addEvent('click', this.$onEditDiscount);
-            this.$QuantityUnit.addEvent('click', this.$onEditQuantityUnit);
+            if ('articleNo' in EditFields && EditFields.articleNo) {
+                this.$ArticleNo.addEvent('click', this.$onEditArticleNo);
+            } else {
+                this.$ArticleNo.removeClass('cell-editable');
+            }
+
+            if ('quantity' in EditFields && EditFields.quantity) {
+                this.$Quantity.addEvent('click', this.$onEditQuantity);
+            } else {
+                this.$Quantity.removeClass('cell-editable');
+            }
+
+            if ('unitPrice' in EditFields && EditFields.unitPrice) {
+                this.$UnitPrice.addEvent('click', this.$onEditUnitPriceQuantity);
+            } else {
+                this.$UnitPrice.removeClass('cell-editable');
+            }
+
+            if ('vat' in EditFields && EditFields.vat) {
+                this.$VAT.addEvent('click', this.$onEditVat);
+
+                // Special VAT cell events
+                this.$VAT.addEvent('keydown', function (event) {
+                    if (event.key === 'tab') {
+                        this.$editNext(event);
+                        return;
+                    }
+
+                    if (event.key === 'enter') {
+                        QUIElements.simulateEvent(event.target, 'click');
+                    }
+                }.bind(this));
+
+                this.$VAT.addEvent('blur', function (event) {
+                    if (event.key === 'tab') {
+                        this.$editNext(event);
+                    }
+                }.bind(this));
+            } else {
+                this.$VAT.removeClass('cell-editable');
+            }
+
+            if ('discount' in EditFields && EditFields.discount) {
+                this.$Discount.addEvent('click', this.$onEditDiscount);
+            } else {
+                this.$Discount.removeClass('cell-editable');
+            }
+
+            if ('quantityUnit' in EditFields && EditFields.quantityUnit) {
+                this.$QuantityUnit.addEvent('click', this.$onEditQuantityUnit);
+
+                // Special quantity unit cell events
+                this.$QuantityUnit.addEvent('keydown', function (event) {
+                    if (event.key === 'tab') {
+                        this.$editNext(event);
+                        return;
+                    }
+
+                    if (event.key === 'enter') {
+                        QUIElements.simulateEvent(event.target, 'click');
+                    }
+                }.bind(this));
+
+                this.$QuantityUnit.addEvent('blur', function (event) {
+                    if (event.key === 'tab') {
+                        this.$editNext(event);
+                    }
+                }.bind(this));
+            } else {
+                this.$QuantityUnit.removeClass('cell-editable');
+            }
 
             // brutto stuff
             this.$UnitPriceBrutto = new Element('div', {
                 'class': 'quiqqer-erp-backend-erpArticle-unitPrice-brutto cell cell-editable',
-                events : {
-                    click: this.$onEditBruttoPrice
-                }
             }).inject(this.$UnitPrice, 'after');
 
             this.$PriceBrutto = new Element('div', {
                 'class': 'quiqqer-erp-backend-erpArticle-price-brutto cell'
             }).inject(this.$Price, 'after');
 
+            if ('unitPrice' in EditFields && EditFields.unitPrice) {
+                this.$UnitPriceBrutto.addEvent('click', this.$onEditBruttoPrice);
+            } else {
+                this.$UnitPriceBrutto.removeClass('cell-editable');
+            }
+
             this.$DiscountBrutto = new Element('div', {
                 'class': 'quiqqer-erp-backend-erpArticle-discount-brutto cell cell-editable',
-                events : {
-                    click: this.$onEditBruttoDiscount
-                }
             }).inject(this.$Discount, 'after');
 
+            if ('discount' in EditFields && EditFields.discount) {
+                this.$DiscountBrutto.addEvent('click', this.$onEditBruttoDiscount);
+            } else {
+                this.$DiscountBrutto.removeClass('cell-editable');
+            }
+
             this.$TotalBrutto = new Element('div', {
                 'class': 'quiqqer-erp-backend-erpArticle-total-brutto cell'
             }).inject(this.$Total, 'after');
 
-
             this.$Loader = new Element('div', {
                 html  : '<span class="fa fa-spinner fa-spin"></span>',
                 styles: {
@@ -202,65 +314,32 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
                 this.setPosition(this.getAttribute('position'));
             }
 
-
             this.$Title = new Element('div', {
                 'class': 'quiqqer-erp-backend-erpArticle-text-title cell-editable'
             }).inject(this.$Text);
 
-            this.$Title.addEvent('click', this.$onEditTitle);
-
-            new QUIButton({
-                'class': 'quiqqer-erp-backend-erpArticle-text-btn-editor',
-                title  : QUILocale.get(lg, 'erp.articleList.article.button.editor'),
-                icon   : 'fa fa-edit',
-                events : {
-                    onClick: this.$onEditDescription
-                }
-            }).inject(this.$Text);
-
             this.$Description = new Element('div', {
                 'class': 'quiqqer-erp-backend-erpArticle-text-description cell-editable quiqqer-erp-backend-erpArticle__cell_hidden'
             }).inject(this.$Text);
 
-            this.$Description.addEvent('click', this.$onEditDescription);
-
-            this.$Elm.getElements('.cell-editable').set('tabindex', -1);
-
-            // Special VAT cell events
-            this.$VAT.addEvent('keydown', function (event) {
-                if (event.key === 'tab') {
-                    this.$editNext(event);
-                    return;
-                }
-
-                if (event.key === 'enter') {
-                    QUIElements.simulateEvent(event.target, 'click');
-                }
-            }.bind(this));
-
-            this.$VAT.addEvent('blur', function (event) {
-                if (event.key === 'tab') {
-                    this.$editNext(event);
-                }
-            }.bind(this));
+            if ('titleAndDescription' in EditFields && EditFields.titleAndDescription) {
+                this.$Title.addEvent('click', this.$onEditTitle);
+                this.$Description.addEvent('click', this.$onEditDescription);
 
-            // Special quantity unit cell events
-            this.$QuantityUnit.addEvent('keydown', function (event) {
-                if (event.key === 'tab') {
-                    this.$editNext(event);
-                    return;
-                }
-
-                if (event.key === 'enter') {
-                    QUIElements.simulateEvent(event.target, 'click');
-                }
-            }.bind(this));
+                new QUIButton({
+                    'class': 'quiqqer-erp-backend-erpArticle-text-btn-editor',
+                    title  : QUILocale.get(lg, 'erp.articleList.article.button.editor'),
+                    icon   : 'fa fa-edit',
+                    events : {
+                        onClick: this.$onEditDescription
+                    }
+                }).inject(this.$Text);
+            } else {
+                this.$Title.removeClass('cell-editable');
+                this.$Description.removeClass('cell-editable');
+            }
 
-            this.$QuantityUnit.addEvent('blur', function (event) {
-                if (event.key === 'tab') {
-                    this.$editNext(event);
-                }
-            }.bind(this));
+            this.$Elm.getElements('.cell-editable').set('tabindex', -1);
 
             this.setArticleNo(this.getAttribute('articleNo'));
             this.setVat(this.getAttribute('vat'));
@@ -279,29 +358,39 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
             }
 
             // edit buttons
-            new QUIButton({
-                title : QUILocale.get(lg, 'erp.articleList.article.button.replace'),
-                icon  : 'fa fa-retweet',
-                styles: {
-                    'float': 'none'
-                },
-                events: {
-                    onClick: this.$onReplaceClick
-                }
-            }).inject(this.$Buttons);
+            if (this.getAttribute('replaceable')) {
+                new QUIButton({
+                    title : QUILocale.get(lg, 'erp.articleList.article.button.replace'),
+                    icon  : 'fa fa-retweet',
+                    styles: {
+                        'float': 'none'
+                    },
+                    events: {
+                        onClick: this.$onReplaceClick
+                    }
+                }).inject(this.$Buttons);
+            }
 
-            new QUIButton({
-                title : QUILocale.get(lg, 'erp.articleList.article.button.delete'),
-                icon  : 'fa fa-trash',
-                styles: {
-                    'float': 'none'
-                },
-                events: {
-                    onClick: this.openDeleteDialog
-                }
-            }).inject(this.$Buttons);
+            if (this.getAttribute('deletable')) {
+                new QUIButton({
+                    title : QUILocale.get(lg, 'erp.articleList.article.button.delete'),
+                    icon  : 'fa fa-trash',
+                    styles: {
+                        'float': 'none'
+                    },
+                    events: {
+                        onClick: this.openDeleteDialog
+                    }
+                }).inject(this.$Buttons);
+            }
 
             this.$created = true;
+
+            // User
+            if (this.getAttribute('User')) {
+                this.$user = this.getAttribute('User');
+            }
+
             this.calc();
 
             this.addEvent('onEditKeyDown', function (me, event) {
@@ -434,18 +523,20 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
         $calc: function () {
             var Calc;
 
-            var self = this,
-                attr = self.getAttributes(),
-                pos  = parseInt(attr.position);
+            var self       = this,
+                attr       = self.getAttributes(),
+                pos        = parseInt(attr.position),
+                calcByList = false;
 
-            if (this.getAttribute('List')) {
-                Calc = this.getAttribute('List').$executeCalculation();
+            if (this.getAttribute('calcByList') && this.getAttribute('List')) {
+                Calc       = this.getAttribute('List').$executeCalculation();
+                calcByList = true;
             } else {
                 Calc = new Promise(function (resolve, reject) {
                     QUIAjax.get('package_quiqqer_erp_ajax_products_calc', resolve, {
                         'package': 'quiqqer/erp',
                         onError  : reject,
-                        params   : JSON.encode({
+                        articles : JSON.encode({
                             articles: [attr]
                         }),
                         user     : JSON.encode(self.$user)
@@ -454,14 +545,22 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
             }
 
             return Calc.then(function (result) {
+                var article;
+                var brutto;
                 var articles = result.articles;
-                var article  = articles.filter(function (article) {
-                    return parseInt(article.position) === pos;
-                })[0];
 
-                var brutto = result.brutto.articles.filter(function (article) {
-                    return parseInt(article.position) === pos;
-                })[0];
+                if (!calcByList) {
+                    article = articles[0];
+                    brutto  = result.brutto.articles[0];
+                } else {
+                    article = 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 = article;
                 self.$bruttoCalc   = brutto;
@@ -763,6 +862,13 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
             }
 
             this.$Elm.addClass('quiqqer-erp-backend-erpArticle-select');
+
+            if (this.$SelectCheckbox) {
+                this.$SelectCheckbox.checked = true;
+            }
+
+            this.$isSelected = true;
+
             this.fireEvent('select', [this]);
         },
 
@@ -775,9 +881,23 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
             }
 
             this.$Elm.removeClass('quiqqer-erp-backend-erpArticle-select');
+
+            if (this.$SelectCheckbox) {
+                this.$SelectCheckbox.checked = false;
+            }
+
+            this.$isSelected = false;
+
             this.fireEvent('unSelect', [this]);
         },
 
+        /**
+         * @return {boolean}
+         */
+        isSelected: function () {
+            return this.$isSelected;
+        },
+
         /**
          * Dialogs
          */
diff --git a/bin/backend/controls/articles/ArticleList.js b/bin/backend/controls/articles/ArticleList.js
index 1a3041e029bea453d426b19507d242e5ad84d60e..2d83c975842a752f0c65ffdc9919c8bbde97b708 100644
--- a/bin/backend/controls/articles/ArticleList.js
+++ b/bin/backend/controls/articles/ArticleList.js
@@ -44,7 +44,8 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
             '$calc',
             '$onInject',
             '$executeCalculation',
-            '$refreshNettoBruttoDisplay'
+            '$refreshNettoBruttoDisplay',
+            '$getArticleDataForCalculation'
         ],
 
         options: {
@@ -157,7 +158,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
          * @returns {Object}
          */
         serialize: function () {
-            var articles = this.$articles.map(function (Article) {
+            var articles = this.$getArticles().map(function (Article) {
                 var attr     = Article.getAttributes();
                 attr.control = typeOf(Article);
 
@@ -170,6 +171,15 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
             };
         },
 
+        /**
+         * Get internal article list
+         *
+         * @return {[]}
+         */
+        $getArticles: function () {
+            return this.$articles;
+        },
+
         /**
          * Unserialize the list
          *
@@ -395,9 +405,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
             this.$calculationRunning = true;
 
             return new Promise(function (resolve, reject) {
-                var articles = self.$articles.map(function (Article) {
-                    return Article.getAttributes();
-                });
+                var articles = self.$getArticleDataForCalculation();
 
                 QUIAjax.get('package_quiqqer_erp_ajax_products_calc', function (result) {
                     self.$calculations         = result;
@@ -423,6 +431,17 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
             });
         },
 
+        /**
+         * Get article data used for calculation
+         *
+         * @return {Array}
+         */
+        $getArticleDataForCalculation: function () {
+            return this.$articles.map(function (Article) {
+                return Article.getAttributes();
+            });
+        },
+
         /**
          * Return the current calculations
          *
@@ -598,8 +617,8 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
          */
         $onArticleSetPosition: function (Article) {
             Article.getElm()
-                   .getElement('.quiqqer-erp-backend-erpArticlePlaceholder-pos')
-                   .set('html', Article.getAttribute('position'));
+                .getElement('.quiqqer-erp-backend-erpArticlePlaceholder-pos')
+                .set('html', Article.getAttribute('position'));
         },
 
         /**
diff --git a/bin/backend/controls/articles/ArticleSummary.html b/bin/backend/controls/articles/ArticleSummary.html
index aca37eae5f8a06b33e1013a8ab4be1bfc595f842..a9037e63cc00c264ce10c73e2978895af51355b4 100644
--- a/bin/backend/controls/articles/ArticleSummary.html
+++ b/bin/backend/controls/articles/ArticleSummary.html
@@ -1,3 +1,4 @@
+{{#showPosSummary}}
 <div class="quiqqer-erp-backend-temporaryErp-summary-pos">
     <div class="quiqqer-erp-backend-temporaryErp-summary-pos-title">{{labelPosInfo}}:</div>
 
@@ -10,7 +11,7 @@
         <span class="brutto-value"></span>
     </div>
 </div>
-
+{{/showPosSummary}}
 <div class="quiqqer-erp-backend-temporaryErp-summary-total">
     <div class="quiqqer-erp-backend-temporaryErp-summary-total-title">{{labelSums}}:</div>
 
diff --git a/bin/backend/controls/articles/ArticleSummary.js b/bin/backend/controls/articles/ArticleSummary.js
index db0f0c8fbc2ea36887c4d64d1f6ad3a99bf9cbd3..9955904bb04c97663815b815a59062ef16e593e2 100644
--- a/bin/backend/controls/articles/ArticleSummary.js
+++ b/bin/backend/controls/articles/ArticleSummary.js
@@ -28,7 +28,9 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleSummary', [
         options: {
             List    : null,
             styles  : false,
-            currency: 'EUR'
+            currency: 'EUR',
+
+            showPosSummary: true // show summary for selected article
         },
 
         Binds: [
@@ -54,14 +56,17 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleSummary', [
          * @returns {HTMLDivElement}
          */
         create: function () {
+            var showPosSummary = this.getAttribute('showPosSummary');
+
             this.$Elm = new Element('div', {
                 'class': 'quiqqer-erp-backend-temporaryErp-summary',
                 html   : Mustache.render(template, {
-                    labelPosInfo: QUILocale.get(lg, 'article.summary.tpl.labelPosInfo'),
-                    labelNet    : QUILocale.get(lg, 'article.summary.tpl.labelNet'),
-                    labelGross  : QUILocale.get(lg, 'article.summary.tpl.labelGross'),
-                    labelSums   : QUILocale.get(lg, 'article.summary.tpl.labelSums'),
-                    labelVat    : QUILocale.get(lg, 'article.summary.tpl.labelVat'),
+                    showPosSummary: showPosSummary,
+                    labelPosInfo  : QUILocale.get(lg, 'article.summary.tpl.labelPosInfo'),
+                    labelNet      : QUILocale.get(lg, 'article.summary.tpl.labelNet'),
+                    labelGross    : QUILocale.get(lg, 'article.summary.tpl.labelGross'),
+                    labelSums     : QUILocale.get(lg, 'article.summary.tpl.labelSums'),
+                    labelVat      : QUILocale.get(lg, 'article.summary.tpl.labelVat'),
                 })
             });
 
@@ -79,13 +84,15 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleSummary', [
                 '.quiqqer-erp-backend-temporaryErp-summary-total-vat .vat-value'
             );
 
-            this.$ArticleNettoSum = this.$Elm.getElement(
-                '.quiqqer-erp-backend-temporaryErp-summary-pos .netto-value'
-            );
+            if (showPosSummary) {
+                this.$ArticleNettoSum = this.$Elm.getElement(
+                    '.quiqqer-erp-backend-temporaryErp-summary-pos .netto-value'
+                );
 
-            this.$ArticleBruttoSum = this.$Elm.getElement(
-                '.quiqqer-erp-backend-temporaryErp-summary-pos .brutto-value'
-            );
+                this.$ArticleBruttoSum = this.$Elm.getElement(
+                    '.quiqqer-erp-backend-temporaryErp-summary-pos .brutto-value'
+                );
+            }
 
             if (this.getAttribute('styles')) {
                 this.setStyles(this.getAttribute('styles'));
@@ -205,23 +212,25 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleSummary', [
 
             var calc = calculated.calculations;
 
-            if (!(ArticleInstance instanceof Article)) {
-                ArticleInstance = List.getSelectedArticle();
-            }
+            if (this.getAttribute('showPosSummary')) {
+                if (!(ArticleInstance instanceof Article)) {
+                    ArticleInstance = List.getSelectedArticle();
+                }
 
-            if (ArticleInstance instanceof Article) {
-                var articleCalc = ArticleInstance.getCalculations();
+                if (ArticleInstance instanceof Article) {
+                    var articleCalc = ArticleInstance.getCalculations();
 
-                if (articleCalc && typeof articleCalc.nettoSum !== 'undefined') {
-                    this.$ArticleNettoSum.set('html', this.$Formatter.format(articleCalc.nettoSum));
-                } else {
-                    this.$ArticleNettoSum.set('html', '---');
-                }
+                    if (articleCalc && typeof articleCalc.nettoSum !== 'undefined') {
+                        this.$ArticleNettoSum.set('html', this.$Formatter.format(articleCalc.nettoSum));
+                    } else {
+                        this.$ArticleNettoSum.set('html', '---');
+                    }
 
-                if (articleCalc && typeof articleCalc.sum !== 'undefined') {
-                    this.$ArticleBruttoSum.set('html', this.$Formatter.format(articleCalc.sum));
-                } else {
-                    this.$ArticleBruttoSum.set('html', '---');
+                    if (articleCalc && typeof articleCalc.sum !== 'undefined') {
+                        this.$ArticleBruttoSum.set('html', this.$Formatter.format(articleCalc.sum));
+                    } else {
+                        this.$ArticleBruttoSum.set('html', '---');
+                    }
                 }
             }
 
diff --git a/bin/backend/controls/articles/SelectArticleList.css b/bin/backend/controls/articles/SelectArticleList.css
new file mode 100644
index 0000000000000000000000000000000000000000..f90b5ffd817357ccb096f71e11032287b02b17c8
--- /dev/null
+++ b/bin/backend/controls/articles/SelectArticleList.css
@@ -0,0 +1,8 @@
+.quiqqer-erp-backend-erpItems-selectlist .quiqqer-erp-backend-erpItems-header {
+    padding-left: 40px;
+}
+
+/*.quiqqer-erp-backend-erpItems-selectlist .quiqqer-erp-backend-erpItems-header-description,*/
+/*.quiqqer-erp-backend-erpItems-selectlist .quiqqer-erp-backend-erpArticle-text{*/
+/*    width: calc(100% - 860px) !important;*/
+/*}*/
\ No newline at end of file
diff --git a/bin/backend/controls/articles/SelectArticleList.js b/bin/backend/controls/articles/SelectArticleList.js
new file mode 100644
index 0000000000000000000000000000000000000000..97181eb319d093fa9e0b4947b6cb12ceb03e97f7
--- /dev/null
+++ b/bin/backend/controls/articles/SelectArticleList.js
@@ -0,0 +1,124 @@
+/**
+ * Lists articles that are selectable via checkbox. Only calculates selected articles.
+ *
+ * @module package/quiqqer/erp/bin/backend/controls/articles/SelectArticleList
+ * @author www.pcsg.de (Patrick Müller)
+ *
+ * @event onCalc [self, {Object} calculation]
+ * @event onArticleSelect [self, {Object} Article]
+ * @event onArticleUnSelect [self, {Object} Article]
+ * @event onArticleReplaceClick [self, {Object} Article]
+ */
+define('package/quiqqer/erp/bin/backend/controls/articles/SelectArticleList', [
+
+    'package/quiqqer/erp/bin/backend/controls/articles/ArticleList',
+    'css!package/quiqqer/erp/bin/backend/controls/articles/SelectArticleList.css'
+
+], function (ArticleList) {
+    "use strict";
+
+    var lg = 'quiqqer/erp';
+
+    return new Class({
+
+        Extends: ArticleList,
+        Type   : 'package/quiqqer/erp/bin/backend/controls/articles/SelectArticleList',
+
+        Binds: [
+            '$onArticleSelect',
+            '$onArticleUnSelect',
+            '$onInject',
+            'getSelectedArticles',
+            '$addArticle',
+            '$getArticleDataForCalculation'
+        ],
+
+        initialize: function (options) {
+            this.parent(options);
+
+            this.addEvents({
+                onInject: this.$onInject
+            });
+        },
+
+        /**
+         * Event: onInject
+         */
+        $onInject: function () {
+            //this.parent();
+            this.getElm().addClass('quiqqer-erp-backend-erpItems-selectlist');
+        },
+
+        /**
+         * Get all selected articles
+         *
+         * @return {[]}
+         */
+        getSelectedArticles: function () {
+            var articles = [];
+
+            this.$articles.forEach(function (Article) {
+                if (Article.isSelected()) {
+                    articles.push(Article);
+                }
+            });
+
+            return articles;
+        },
+
+        /**
+         * event : on article delete
+         *
+         * @param {Object} Article
+         */
+        $onArticleSelect: function (Article) {
+            this.$selectedArticle = Article;
+            this.fireEvent('articleSelect', [this, Article]);
+            this.$calc();
+        },
+
+        /**
+         * event : on article delete
+         *
+         * @param Article
+         */
+        $onArticleUnSelect: function (Article) {
+            this.$selectedArticle = null;
+            this.fireEvent('articleUnSelect', [this, Article]);
+            this.$calc();
+        },
+
+        /**
+         * Get article data used for calculation
+         *
+         * @return {Array}
+         */
+        $getArticleDataForCalculation: function () {
+            var returnSelectedOnly = true;
+
+            // Only return selected articles if all articles have been calculated once
+            this.$articles.forEach(function (Article) {
+                if (!Article.getCalculations()) {
+                    returnSelectedOnly = false;
+                }
+            });
+
+            if (!returnSelectedOnly) {
+                return this.parent();
+            }
+
+            return this.getSelectedArticles().map(function (Article) {
+                return Article.getAttributes();
+            });
+        },
+
+        /**
+         * Get internal article list
+         *
+         * @return {[]}
+         */
+        $getArticles: function () {
+            return this.getSelectedArticles();
+        }
+    });
+});
diff --git a/locale.xml b/locale.xml
index de7e7663a9b2942ab104f55e79595921b6c4a812..3cd5675332b7b308eead4423bca664a8d074e7cd 100644
--- a/locale.xml
+++ b/locale.xml
@@ -378,9 +378,9 @@
             <de><![CDATA[Steuernummer]]></de>
             <en><![CDATA[Tax number]]></en>
         </locale>
-        <locale name="menu.erp.company.hrb">
-            <de><![CDATA[HRB]]></de>
-            <en><![CDATA[HRB number]]></en>
+        <locale name="menu.erp.company.register">
+            <de><![CDATA[Register]]></de>
+            <en><![CDATA[Register]]></en>
         </locale>
         <locale name="menu.erp.company.court">
             <de><![CDATA[Amtsgericht]]></de>
diff --git a/package.xml b/package.xml
index 44ea29e36e4d0cf5f1a5d6809a6388a0a710ee27..8c647872e40cb8aaab633945fe71e2b7fb53d252 100644
--- a/package.xml
+++ b/package.xml
@@ -11,6 +11,10 @@
 
         <image src="URL_OPT_DIR/quiqqer/erp/bin/images/Logo.png"/>
 
+        <erp>
+            <type>application</type> <!-- application, module, plugin -->
+        </erp>
+
         <preview>
             <image src="URL_OPT_DIR/quiqqer/erp/bin/preview-1.png"/>
             <image src="URL_OPT_DIR/quiqqer/erp/bin/preview-2.png"/>
@@ -32,7 +36,7 @@
         <provider>
             <erp src="\QUI\ERP\Provider\Erp"/>
             <requirements src="\QUI\ERP\Provider\Requirements"/>
-<!--            <dashboard src="\QUI\ERP\Dashboard\DashboardProvider"/>-->
+            <!--            <dashboard src="\QUI\ERP\Dashboard\DashboardProvider"/>-->
         </provider>
     </package>
 </quiqqer>
diff --git a/settings.xml b/settings.xml
index f7d6bdee548fa0962fe68c4cf7cbb35fa90eada0..cf200baa5934e4e8565f7f2d7cdd3b02bf5be7ae 100644
--- a/settings.xml
+++ b/settings.xml
@@ -65,7 +65,7 @@
                 <conf name="taxNumber">
                     <type>string</type>
                 </conf>
-                <conf name="hrb">
+                <conf name="register">
                     <type>string</type>
                 </conf>
                 <conf name="court">
@@ -264,9 +264,9 @@
                                 <locale group="quiqqer/erp" var="menu.erp.company.taxNumber"/>
                             </text>
                         </input>
-                        <input type="text" conf="company.hrb">
+                        <input type="text" conf="company.register">
                             <text>
-                                <locale group="quiqqer/erp" var="menu.erp.company.hrb"/>
+                                <locale group="quiqqer/erp" var="menu.erp.company.register"/>
                             </text>
                         </input>
                         <input type="text" conf="company.court">
diff --git a/src/QUI/ERP/Accounting/ArticleList.css b/src/QUI/ERP/Accounting/ArticleList.css
index 5623a2fc6778370fa6ac4ec077eefaf1734e06c6..f539278682d3c97d0fbf7b0a62861bbb9b06de2a 100644
--- a/src/QUI/ERP/Accounting/ArticleList.css
+++ b/src/QUI/ERP/Accounting/ArticleList.css
@@ -80,6 +80,7 @@ table.articles-article {
     clear: both;
     display: block;
     font-size: 10px;
+    white-space: nowrap;
 }
 
 .articles-article-price {