details:   https://code.openbravo.com/erp/devel/pi/rev/2a79f597da83
changeset: 33650:2a79f597da83
user:      Asier Lostalé <asier.lostale <at> openbravo.com>
date:      Wed Mar 07 12:40:14 2018 +0100
summary:   fixed bug 38061: isSoTrx filter expression doesn't work from Process 
Definition

  When using OB.isSalesTransaction in a filter expression for a selector used in
  a process definition it failed.

  The problem was caused because in this case window information was not sent to
  SelectorDefaultFilterActionHandler.

  The fix includes:
   * Covering this case to send window id
   * OBBindings.isSalesTransaction not to throw NPE in case window is not set
   * Send this information as part of the POST payload rather than in the query 
string
   * Don't send duplicated information in request query string and payload to
     SelectorDefaultFilterActionHandler, do it only as payload

diffstat:

 
modules/org.openbravo.client.application/src/org/openbravo/client/application/OBBindings.java
                |  8 +++++++-
 
modules/org.openbravo.userinterface.selector/web/org.openbravo.userinterface.selector/js/ob-selector-item.js
 |  5 ++++-
 2 files changed, 11 insertions(+), 2 deletions(-)

diffs (40 lines):

diff -r 918e4d163290 -r 2a79f597da83 
modules/org.openbravo.client.application/src/org/openbravo/client/application/OBBindings.java
--- 
a/modules/org.openbravo.client.application/src/org/openbravo/client/application/OBBindings.java
     Wed Mar 07 14:36:19 2018 +0000
+++ 
b/modules/org.openbravo.client.application/src/org/openbravo/client/application/OBBindings.java
     Wed Mar 07 12:40:14 2018 +0100
@@ -137,9 +137,15 @@
       return "Y".equalsIgnoreCase(value) || "true".equalsIgnoreCase(value);
     }
 
+    String windowId = getWindowId();
+    if (windowId == null) {
+      return null;
+    }
+
     ApplicationDictionaryCachedStructures adcs = WeldUtils
         
.getInstanceFromStaticBeanManager(ApplicationDictionaryCachedStructures.class);
-    Window w = adcs.getWindow(getWindowId());
+
+    Window w = adcs.getWindow(windowId);
     if (w != null) {
       return w.isSalesTransaction();
     }
diff -r 918e4d163290 -r 2a79f597da83 
modules/org.openbravo.userinterface.selector/web/org.openbravo.userinterface.selector/js/ob-selector-item.js
--- 
a/modules/org.openbravo.userinterface.selector/web/org.openbravo.userinterface.selector/js/ob-selector-item.js
      Wed Mar 07 14:36:19 2018 +0000
+++ 
b/modules/org.openbravo.userinterface.selector/web/org.openbravo.userinterface.selector/js/ob-selector-item.js
      Wed Mar 07 12:40:14 2018 +0100
@@ -393,12 +393,15 @@
       isc.addProperties(data, this.view.getUnderLyingRecordContext(false, 
true));
     } else if (this.view && this.view.sourceView && 
this.view.sourceView.getContextInfo) {
       isc.addProperties(data, this.view.sourceView.getContextInfo(false, 
true));
+    } else if (this.selector && this.selector.view && 
this.selector.view.getUnderLyingRecordContext) {
+      // selector in a param window
+      isc.addProperties(data, 
this.selector.view.getUnderLyingRecordContext(false, true, null, 
this.selector.isComboReference));
     }
 
     callback = function (resp, data, req) {
       selectorWindow.fetchDefaultsCallback(resp, data, req);
     };
-    
OB.RemoteCallManager.call('org.openbravo.userinterface.selector.SelectorDefaultFilterActionHandler',
 data, data, callback);
+    
OB.RemoteCallManager.call('org.openbravo.userinterface.selector.SelectorDefaultFilterActionHandler',
 data, null, callback);
   },
 
   fetchDefaultsCallback: function (rpcResponse, data, rpcRequest) {

------------------------------------------------------------------------------
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