details:   https://code.openbravo.com/erp/devel/pi/rev/e10bc2fc5f83
changeset: 31751:e10bc2fc5f83
user:      Inigo Sanchez <inigo.sanchez <at> openbravo.com>
date:      Tue Mar 28 17:55:09 2017 +0200
summary:   Fixed issue 35536: Deactivated summary function in computed columns.

The summary functions didn't work as expected in computed columns.

As computed columns allow to be defined with any arbitrary sql statement,
the risk of underperformance when included in a summary function is much
bigger.

Because of this, to avoid this problem, it has been resolved by blocking
the use of the summary functions in computed columns.

diffstat:

 
modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-view-field.js.ftl
 |   5 ++-
 
modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewFieldHandler.java
 |  20 ++++++++++
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/grid/ob-view-grid.js
        |   4 +-
 3 files changed, 26 insertions(+), 3 deletions(-)

diffs (108 lines):

diff -r 8e2360637c67 -r e10bc2fc5f83 
modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-view-field.js.ftl
--- 
a/modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-view-field.js.ftl
      Wed Mar 29 09:15:58 2017 +0200
+++ 
b/modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-view-field.js.ftl
      Tue Mar 28 17:55:09 2017 +0200
@@ -12,7 +12,7 @@
  * under the License.
  * The Original Code is Openbravo ERP.
  * The Initial Developer of the Original Code is Openbravo SLU
- * All portions are Copyright (C) 2010-2015 Openbravo SLU
+ * All portions are Copyright (C) 2010-2017 Openbravo SLU
  * All Rights Reserved.
  * Contributor(s):  ______________________________________.
  ************************************************************************
@@ -123,6 +123,9 @@
               summaryFunction: 'sum',
             </#if>
         </#if>
+        <#if field.isComputedColumn>
+              isComputedColumn: true,
+        </#if>
 </@compress>
     </#if>
     <#if field.type = "OBSectionItem" || field.type = "OBNoteSectionItem" || 
field.type = "OBLinkedItemSectionItem"  || field.type = 
"OBAttachmentsSectionItem" || field.type = "OBAuditSectionItem">
diff -r 8e2360637c67 -r e10bc2fc5f83 
modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewFieldHandler.java
--- 
a/modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewFieldHandler.java
      Wed Mar 29 09:15:58 2017 +0200
+++ 
b/modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewFieldHandler.java
      Tue Mar 28 17:55:09 2017 +0200
@@ -631,6 +631,8 @@
     public boolean getHasDefaultValue();
 
     public String getDisplayLogicGrid();
+
+    public boolean getIsComputedColumn();
   }
 
   public class OBViewFieldAudit implements OBViewFieldDefinition {
@@ -905,6 +907,9 @@
       return null;
     }
 
+    public boolean getIsComputedColumn() {
+      return false;
+    }
   }
 
   public class OBClientClassField implements OBViewFieldDefinition {
@@ -1170,6 +1175,10 @@
     public String getId() {
       return null;
     }
+
+    public boolean getIsComputedColumn() {
+      return false;
+    }
   }
 
   public class OBViewField implements OBViewFieldDefinition {
@@ -1185,6 +1194,10 @@
     private int gridSort = 0;
     private String id;
 
+    public boolean getIsComputedColumn() {
+      return property.isComputedColumn();
+    }
+
     public String getClientClass() {
       return field.getClientclass() == null ? "" : field.getClientclass();
     }
@@ -1798,6 +1811,10 @@
     public String getId() {
       return null;
     }
+
+    public boolean getIsComputedColumn() {
+      return false;
+    }
   }
 
   public class OBViewFieldGroup extends DefaultVirtualField {
@@ -2237,6 +2254,9 @@
       return null;
     }
 
+    public boolean getIsComputedColumn() {
+      return false;
+    }
   }
 
   public static class FormFieldComparator implements Comparator<Field> {
diff -r 8e2360637c67 -r e10bc2fc5f83 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/grid/ob-view-grid.js
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/grid/ob-view-grid.js
     Wed Mar 29 09:15:58 2017 +0200
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/grid/ob-view-grid.js
     Tue Mar 28 17:55:09 2017 +0200
@@ -11,7 +11,7 @@
  * under the License.
  * The Original Code is Openbravo ERP.
  * The Initial Developer of the Original Code is Openbravo SLU
- * All portions are Copyright (C) 2010-2016 Openbravo SLU
+ * All portions are Copyright (C) 2010-2017 Openbravo SLU
  * All Rights Reserved.
  * Contributor(s):  ______________________________________.
  ************************************************************************
@@ -701,7 +701,7 @@
       }
     }
 
-    if (field && this.allowSummaryFunctions) {
+    if (field && this.allowSummaryFunctions && !field.isComputedColumn) {
       type = isc.SimpleType.getType(field.type);
       isDate = isc.SimpleType.inheritsFrom(type, 'date');
       isNumber = isc.SimpleType.inheritsFrom(type, 'integer') || 
isc.SimpleType.inheritsFrom(type, 'float');

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Openbravo-commits mailing list
Openbravo-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to