details:   https://code.openbravo.com/erp/devel/main/rev/5b5750644c85
changeset: 17599:5b5750644c85
user:      Augusto Mauch <augusto.mauch <at> openbravo.com>
date:      Mon Aug 13 14:02:14 2012 +0200
summary:   Fixes issue 21353: Fixed wrong widget filtering

Widgets with mandatory parameters that did not have a default value were being 
filtered out always, when they should only be filtered out when using the Admin 
others functionality.

details:   https://code.openbravo.com/erp/devel/main/rev/b0f893c8c05f
changeset: 17600:b0f893c8c05f
user:      Javier Etxarri <javier.echarri <at> openbravo.com>
date:      Fri Aug 10 13:41:42 2012 +0200
summary:   issue 20926: Generate Average Cost process
should not consider elements in closed periods to be unposted

diffstat:

 
modules/org.openbravo.client.myob/src/org/openbravo/client/myob/MyOpenbravoActionHandler.java
 |   8 +-
 
modules/org.openbravo.client.myob/src/org/openbravo/client/myob/MyOpenbravoComponent.java
     |  28 +++++++--
 src-db/database/model/functions/M_GENERATE_AVERAGE_COSTS.xml                   
               |   4 +-
 3 files changed, 26 insertions(+), 14 deletions(-)

diffs (96 lines):

diff -r 8220b513c218 -r b0f893c8c05f 
modules/org.openbravo.client.myob/src/org/openbravo/client/myob/MyOpenbravoActionHandler.java
--- 
a/modules/org.openbravo.client.myob/src/org/openbravo/client/myob/MyOpenbravoActionHandler.java
     Thu Aug 02 14:54:37 2012 +0200
+++ 
b/modules/org.openbravo.client.myob/src/org/openbravo/client/myob/MyOpenbravoActionHandler.java
     Fri Aug 10 13:41:42 2012 +0200
@@ -105,7 +105,7 @@
           if (isAdminMode && availableAtLevel.equals("ROLE")) {
             roleId = availableAtLevelValue[0];
           }
-          addAvailableWidgetClasses(o, roleId);
+          addAvailableWidgetClasses(o, roleId, isAdminMode);
 
           // Add widget instances
           widgets = new JSONArray();
@@ -116,7 +116,7 @@
           if (isAdminMode && availableAtLevel.equals("ROLE")) {
             roleId = availableAtLevelValue[0];
           }
-          addAvailableWidgetClasses(o, roleId);
+          addAvailableWidgetClasses(o, roleId, isAdminMode);
         } else if (strEventType.equals(GET_COMMUNITY_BRANDING_URL)) {
           o.put("url", Utility.getCommunityBrandingUrl("MyOB"));
         } else {
@@ -178,10 +178,10 @@
 
   }
 
-  private void addAvailableWidgetClasses(JSONObject o, String roleId) {
+  private void addAvailableWidgetClasses(JSONObject o, String roleId, boolean 
isAdminMode) {
     MyOpenbravoComponent component = 
weldUtils.getInstance(MyOpenbravoComponent.class);
     try {
-      List<String> availableClasses = 
component.getAvailableWidgetClasses(roleId);
+      List<String> availableClasses = 
component.getAvailableWidgetClasses(roleId, isAdminMode);
       o.put("availableWidgetClasses", availableClasses);
     } catch (Exception e) {
       log.error("Error retreiving widget classes", e);
diff -r 8220b513c218 -r b0f893c8c05f 
modules/org.openbravo.client.myob/src/org/openbravo/client/myob/MyOpenbravoComponent.java
--- 
a/modules/org.openbravo.client.myob/src/org/openbravo/client/myob/MyOpenbravoComponent.java
 Thu Aug 02 14:54:37 2012 +0200
+++ 
b/modules/org.openbravo.client.myob/src/org/openbravo/client/myob/MyOpenbravoComponent.java
 Fri Aug 10 13:41:42 2012 +0200
@@ -91,6 +91,12 @@
   }
 
   public List<String> getAvailableWidgetClasses(String roleId) throws 
Exception {
+    boolean isAdminMode = false;
+    return getAvailableWidgetClasses(roleId, isAdminMode);
+  }
+
+  public List<String> getAvailableWidgetClasses(String roleId, boolean 
isAdminMode)
+      throws Exception {
     OBContext.setAdminMode();
     try {
       if (widgetClassDefinitions != null) {
@@ -109,16 +115,22 @@
           if (!widgetProvider.validate()) {
             continue;
           }
-          for (Parameter p : 
widgetClass.getOBUIAPPParameterEMObkmoWidgetClassIDList()) {
-            if (p.isMandatory() && p.getDefaultValue() == null) {
-              hasNullMandatory = true;
-              break;
-            }
-          }
-          if (!hasNullMandatory) {
+          // If fetching the widgets of the own workspace, there is no need
+          // to filter out the widgets with null mandatory parameters
+          if (!isAdminMode) {
             definitions.add(widgetProvider.getWidgetClassDefinition());
           } else {
-            hasNullMandatory = false;
+            for (Parameter p : 
widgetClass.getOBUIAPPParameterEMObkmoWidgetClassIDList()) {
+              if (p.isMandatory() && p.getDefaultValue() == null) {
+                hasNullMandatory = true;
+                break;
+              }
+            }
+            if (!hasNullMandatory) {
+              definitions.add(widgetProvider.getWidgetClassDefinition());
+            } else {
+              hasNullMandatory = false;
+            }
           }
 
           try {
diff -r 8220b513c218 -r b0f893c8c05f 
src-db/database/model/functions/M_GENERATE_AVERAGE_COSTS.xml
--- a/src-db/database/model/functions/M_GENERATE_AVERAGE_COSTS.xml      Thu Aug 
02 14:54:37 2012 +0200
+++ b/src-db/database/model/functions/M_GENERATE_AVERAGE_COSTS.xml      Fri Aug 
10 13:41:42 2012 +0200
@@ -150,9 +150,9 @@
       END IF;
     END IF;
 
-      SELECT GREATEST(MAX(enddate),v_MinDateCosting) ENDDATE
+      SELECT GREATEST(MAX(enddate),v_MinDateCosting) as ENDDATE
       INTO v_MinDateCosting 
-      FROM (SELECT enddate + 1 ENDDATE
+      FROM (SELECT enddate + 1 as ENDDATE
             FROM c_periodcontrol cpc JOIN c_period cp ON cpc.c_period_id = 
cp.c_period_id  
             WHERE (periodstatus='C' OR periodstatus='P') AND cp.ad_client_id = 
v_Client
             GROUP BY enddate,cp.c_period_id

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to