# HG changeset patch
# User Ranjith S R <ranjith@qualiantech.com>
# Date 1554185688 -19800
#      Tue Apr 02 11:44:48 2019 +0530
# Node ID c47025b4e87351eb5f37dca0bf0969231e657350
# Parent  2f20c92d7c223007b587e42ec6f07606288adb3b
Related to issue 40453 : Hide Return Line in EDIT Tab when selected lines quantity are different

diff -r 2f20c92d7c22 -r c47025b4e873 web/org.openbravo.retail.posterminal/js/pointofsale/view/editline.js
--- a/web/org.openbravo.retail.posterminal/js/pointofsale/view/editline.js	Tue Apr 02 11:23:16 2019 +0530
+++ b/web/org.openbravo.retail.posterminal/js/pointofsale/view/editline.js	Tue Apr 02 11:44:48 2019 +0530
@@ -672,46 +672,42 @@
         } else {
           this.$.actionButtonsContainer.$.removeDiscountButton.hide();
         }
+      }
+      if (this.$.actionButtonsContainer.$.returnLine) {
         if ((!_.isUndefined(line) && !_.isUndefined(line.get('originalOrderLineId'))) || this.model.get('order').get('orderType') === 1 || (!OB.MobileApp.model.hasPermission('OBPOS_AllowLayawaysNegativeLines', true) && this.model.get('order').get('orderType') === 2)) {
-          if (this.$.actionButtonsContainer.$.returnLine) {
-            if ((!_.isUndefined(line) && !line.get('isEditable')) || this.model.get('order').get('orderType') === 1 || this.model.get('order').get('orderType') === 2) {
-              this.$.actionButtonsContainer.$.returnLine.hide();
-            } else if (OB.MobileApp.model.get('permissions')[this.$.actionButtonsContainer.$.returnLine.permission] && !(this.model.get('order').get('isPaid') === true || this.model.get('order').get('isLayaway') === true || this.model.get('order').get('isQuotation') === true)) {
-              this.$.actionButtonsContainer.$.returnLine.show();
-            }
+          if ((!_.isUndefined(line) && !line.get('isEditable')) || this.model.get('order').get('orderType') === 1 || this.model.get('order').get('orderType') === 2) {
+            this.$.actionButtonsContainer.$.returnLine.hide();
+          } else if (OB.MobileApp.model.get('permissions')[this.$.actionButtonsContainer.$.returnLine.permission] && !(this.model.get('order').get('isPaid') === true || this.model.get('order').get('isLayaway') === true || this.model.get('order').get('isQuotation') === true)) {
+            this.$.actionButtonsContainer.$.returnLine.show();
           }
         }
-        if (this.$.actionButtonsContainer.$.deleteLine) {
-          if (!line.get('isDeletable')) {
-            this.$.actionButtonsContainer.$.deleteLine.hide();
-          } else {
-            this.$.actionButtonsContainer.$.deleteLine.show();
+        if (this.$.actionButtonsContainer.$.returnLine.showing) {
+          if (this.selectedModels.length !== Math.abs(_.reduce(this.selectedModels, function (memo, lineModel) {
+            return memo + Math.sign(lineModel.get('qty'));
+          }, 0))) {
+            this.$.actionButtonsContainer.$.returnLine.hide();
           }
         }
-        if (this.$.actionButtonsContainer.$.showRelatedServices) {
-          if (this.selectedModels && this.selectedModels.length > 0) {
-            var proposedServices, existRelatedServices;
-            existRelatedServices = this.selectedModels.filter(function (line) {
-              return line.get('hasRelatedServices');
-            }).length === this.selectedModels.length;
-            proposedServices = this.selectedModels.filter(function (line) {
-              return !line.get('hasRelatedServices') || line.get('obposServiceProposed');
-            }).length === this.selectedModels.length;
-            if (existRelatedServices) {
-              this.$.actionButtonsContainer.$.showRelatedServices.show();
-              if (proposedServices) {
-                this.$.actionButtonsContainer.$.showRelatedServices.addRemoveClass('iconServices_unreviewed', false);
-                this.$.actionButtonsContainer.$.showRelatedServices.addRemoveClass('iconServices_reviewed', true);
-              } else {
-                this.$.actionButtonsContainer.$.showRelatedServices.addRemoveClass('iconServices_unreviewed', true);
-                this.$.actionButtonsContainer.$.showRelatedServices.addRemoveClass('iconServices_reviewed', false);
-              }
-            } else {
-              this.$.actionButtonsContainer.$.showRelatedServices.hide();
-            }
-          } else if (this.line && this.line.get('hasRelatedServices')) {
+      }
+      if (this.$.actionButtonsContainer.$.deleteLine) {
+        if (!line.get('isDeletable')) {
+          this.$.actionButtonsContainer.$.deleteLine.hide();
+        } else {
+          this.$.actionButtonsContainer.$.deleteLine.show();
+        }
+      }
+      if (this.$.actionButtonsContainer.$.showRelatedServices) {
+        if (this.selectedModels && this.selectedModels.length > 0) {
+          var proposedServices, existRelatedServices;
+          existRelatedServices = this.selectedModels.filter(function (line) {
+            return line.get('hasRelatedServices');
+          }).length === this.selectedModels.length;
+          proposedServices = this.selectedModels.filter(function (line) {
+            return !line.get('hasRelatedServices') || line.get('obposServiceProposed');
+          }).length === this.selectedModels.length;
+          if (existRelatedServices) {
             this.$.actionButtonsContainer.$.showRelatedServices.show();
-            if (this.line.get('obposServiceProposed')) {
+            if (proposedServices) {
               this.$.actionButtonsContainer.$.showRelatedServices.addRemoveClass('iconServices_unreviewed', false);
               this.$.actionButtonsContainer.$.showRelatedServices.addRemoveClass('iconServices_reviewed', true);
             } else {
@@ -721,6 +717,17 @@
           } else {
             this.$.actionButtonsContainer.$.showRelatedServices.hide();
           }
+        } else if (this.line && this.line.get('hasRelatedServices')) {
+          this.$.actionButtonsContainer.$.showRelatedServices.show();
+          if (this.line.get('obposServiceProposed')) {
+            this.$.actionButtonsContainer.$.showRelatedServices.addRemoveClass('iconServices_unreviewed', false);
+            this.$.actionButtonsContainer.$.showRelatedServices.addRemoveClass('iconServices_reviewed', true);
+          } else {
+            this.$.actionButtonsContainer.$.showRelatedServices.addRemoveClass('iconServices_unreviewed', true);
+            this.$.actionButtonsContainer.$.showRelatedServices.addRemoveClass('iconServices_reviewed', false);
+          }
+        } else {
+          this.$.actionButtonsContainer.$.showRelatedServices.hide();
         }
       }
       this.render();
