details:   https://code.openbravo.com/erp/devel/pi/rev/e4e3a55d6378
changeset: 15461:e4e3a55d6378
user:      Asier Lostalé <asier.lostale <at> openbravo.com>
date:      Mon Feb 13 16:00:40 2012 +0100
summary:   fixed bug 19621: fixed null and not null filters on FK fields

diffstat:

 
modules/org.openbravo.service.json/src/org/openbravo/service/json/AdvancedQueryBuilder.java
 |  19 ++++++---
 1 files changed, 12 insertions(+), 7 deletions(-)

diffs (50 lines):

diff -r 3082e66a5d16 -r e4e3a55d6378 
modules/org.openbravo.service.json/src/org/openbravo/service/json/AdvancedQueryBuilder.java
--- 
a/modules/org.openbravo.service.json/src/org/openbravo/service/json/AdvancedQueryBuilder.java
       Mon Feb 13 12:02:18 2012 +0100
+++ 
b/modules/org.openbravo.service.json/src/org/openbravo/service/json/AdvancedQueryBuilder.java
       Mon Feb 13 16:00:40 2012 +0100
@@ -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) 2009-2011 Openbravo SLU 
+ * All portions are Copyright (C) 2009-2012 Openbravo SLU 
  * All Rights Reserved. 
  * Contributor(s):  ______________________________________.
  ************************************************************************
@@ -291,11 +291,7 @@
     String fieldName = jsonCriteria.getString("fieldName");
     Object value = jsonCriteria.has("value") ? jsonCriteria.get("value") : 
null;
 
-    if (operator.equals(OPERATOR_ISNULL)) {
-      operator = OPERATOR_EQUALS;
-      value = null;
-    } else if (operator.equals(OPERATOR_NOTNULL)) {
-      operator = OPERATOR_NOTEQUAL;
+    if (operator.equals(OPERATOR_ISNULL) || operator.equals(OPERATOR_NOTNULL)) 
{
       value = null;
     }
 
@@ -455,7 +451,12 @@
     // Within the if the leftWherePart is used because it contains the join 
aliases
     if (useFieldName.equals(JsonConstants.IDENTIFIER)
         || useFieldName.endsWith("." + JsonConstants.IDENTIFIER)) {
-      clause = computeLeftWhereClauseForIdentifier(useProperty, useFieldName, 
clause);
+      if (useFieldName.endsWith("." + JsonConstants.IDENTIFIER)
+          && (operator.equals(OPERATOR_ISNULL) || 
operator.equals(OPERATOR_NOTNULL))) {
+        clause = getMainAlias() + "." + useFieldName.replace("." + 
JsonConstants.IDENTIFIER, "");
+      } else {
+        clause = computeLeftWhereClauseForIdentifier(useProperty, 
useFieldName, clause);
+      }
     } else if (!useProperty.isPrimitive()) {
       clause = clause + ".id";
     }
@@ -818,6 +819,10 @@
       return "like";
     } else if (operator.equals(OPERATOR_ENDSWITHFIELD)) {
       return "like";
+    } else if (operator.equals(OPERATOR_ISNULL)) {
+      return "is";
+    } else if (operator.equals(OPERATOR_NOTNULL)) {
+      return "is not";
     }
     // todo throw exception
     return null;

------------------------------------------------------------------------------
Try before you buy = See our experts in action!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-dev2
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to