Author: jleroux
Date: Thu Sep 14 13:50:55 2006
New Revision: 443465

URL: http://svn.apache.org/viewvc?view=rev&rev=443465
Log:
Used EQUALS in place of LIKE in getPartiesByEmail.
Added a new method matchPartiesByEmail wich as the same behaviour has had 
getPartiesByEmail before.

After some thoughts I wondered if nobody was not already using 
getPartiesByEmail with its ancient behaviour. 
In that perspective I respectively changed the name of :

getPartiesByEmail (using EQUALS) to getPartiesByExactEmail
And reversed matchPartiesByEmail to getPartiesByEmail (ancient behaviour)

What do you think ?

Modified:
    
incubator/ofbiz/trunk/applications/party/src/org/ofbiz/party/party/PartyServices.java

Modified: 
incubator/ofbiz/trunk/applications/party/src/org/ofbiz/party/party/PartyServices.java
URL: 
http://svn.apache.org/viewvc/incubator/ofbiz/trunk/applications/party/src/org/ofbiz/party/party/PartyServices.java?view=diff&rev=443465&r1=443464&r2=443465
==============================================================================
--- 
incubator/ofbiz/trunk/applications/party/src/org/ofbiz/party/party/PartyServices.java
 (original)
+++ 
incubator/ofbiz/trunk/applications/party/src/org/ofbiz/party/party/PartyServices.java
 Thu Sep 14 13:50:55 2006
@@ -647,6 +647,47 @@
      * @param context Map containing the input parameters.
      * @return Map with the result of the service, the output parameters.
      */
+    public static Map getPartyFromExactEmail(DispatchContext dctx, Map 
context) {
+        Map result = new HashMap();
+        GenericDelegator delegator = dctx.getDelegator();
+        Collection parties = new LinkedList();
+        String email = (String) context.get("email");
+        Locale locale = (Locale) context.get("locale");
+        String errMsg = null;
+
+        if (email.length() == 0){
+            errMsg = 
UtilProperties.getMessage(resource,"partyservices.required_parameter_email_cannot_be_empty",
 locale);
+            return ServiceUtil.returnError(errMsg);
+        }
+
+        try {
+            List exprs = new LinkedList();
+
+            exprs.add(new EntityExpr(new EntityFunction.UPPER(new 
EntityFieldValue("infoString")), EntityOperator.EQUALS, new 
EntityFunction.UPPER(email.toUpperCase())));
+            List c = 
EntityUtil.filterByDate(delegator.findByAnd("PartyAndContactMech", exprs, 
UtilMisc.toList("infoString")), true);
+
+            if (Debug.verboseOn()) Debug.logVerbose("List: " + c, module);
+            if (Debug.infoOn()) Debug.logInfo("PartyFromEmail number found: " 
+ c.size(), module);
+            if (c != null) {
+                Iterator i = c.iterator();
+
+                while (i.hasNext()) {
+                    GenericValue pacm = (GenericValue) i.next();
+                    GenericValue party = delegator.makeValue("Party", 
UtilMisc.toMap("partyId", pacm.get("partyId"), "partyTypeId", 
pacm.get("partyTypeId")));
+
+                    parties.add(UtilMisc.toMap("party", party));
+                }
+            }
+        } catch (GenericEntityException e) {
+            Map messageMap = UtilMisc.toMap("errMessage", e.getMessage());
+            errMsg = 
UtilProperties.getMessage(resource,"partyservices.cannot_get_party_entities_read",
 messageMap, locale);
+            return ServiceUtil.returnError(errMsg);
+        }
+        if (parties.size() > 0)
+            result.put("parties", parties);
+        return result;
+    }
+
     public static Map getPartyFromEmail(DispatchContext dctx, Map context) {
         Map result = new HashMap();
         GenericDelegator delegator = dctx.getDelegator();
@@ -663,7 +704,7 @@
         try {
             List exprs = new LinkedList();
 
-            exprs.add(new EntityExpr(new EntityFunction.UPPER(new 
EntityFieldValue("infoString")), EntityOperator.LIKE, new 
EntityFunction.UPPER(email.toUpperCase())));
+            exprs.add(new EntityExpr(new EntityFunction.UPPER(new 
EntityFieldValue("infoString")), EntityOperator.LIKE, new 
EntityFunction.UPPER(("%" + email.toUpperCase()) + "%")));
             List c = 
EntityUtil.filterByDate(delegator.findByAnd("PartyAndContactMech", exprs, 
UtilMisc.toList("infoString")), true);
 
             if (Debug.verboseOn()) Debug.logVerbose("List: " + c, module);


Reply via email to