svn commit: r1055711 - /ofbiz/trunk/applications/marketing/src/org/ofbiz/marketing/marketing/MarketingServices.java

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r1055711 - /ofbiz/trunk/applications/marketing/src/org/ofbiz/marketing/marketing/MarketingServices.java

hansbak-2
Author: hansbak
Date: Thu Jan  6 02:15:55 2011
New Revision: 1055711

URL: http://svn.apache.org/viewvc?rev=1055711&view=rev
Log:
when subscribing to a mailing list, the emailaddress is checked if already extsts and will be using that party.

Modified:
    ofbiz/trunk/applications/marketing/src/org/ofbiz/marketing/marketing/MarketingServices.java

Modified: ofbiz/trunk/applications/marketing/src/org/ofbiz/marketing/marketing/MarketingServices.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/marketing/src/org/ofbiz/marketing/marketing/MarketingServices.java?rev=1055711&r1=1055710&r2=1055711&view=diff
==============================================================================
--- ofbiz/trunk/applications/marketing/src/org/ofbiz/marketing/marketing/MarketingServices.java (original)
+++ ofbiz/trunk/applications/marketing/src/org/ofbiz/marketing/marketing/MarketingServices.java Thu Jan  6 02:15:55 2011
@@ -19,6 +19,7 @@
 package org.ofbiz.marketing.marketing;
 
 import java.sql.Timestamp;
+import java.util.List;
 import java.util.Locale;
 import java.util.Map;
 
@@ -30,6 +31,9 @@ import org.ofbiz.base.util.UtilValidate;
 import org.ofbiz.entity.Delegator;
 import org.ofbiz.entity.GenericEntityException;
 import org.ofbiz.entity.GenericValue;
+import org.ofbiz.entity.condition.EntityCondition;
+import org.ofbiz.entity.condition.EntityOperator;
+import org.ofbiz.entity.util.EntityUtil;
 import org.ofbiz.service.DispatchContext;
 import org.ofbiz.service.GenericServiceException;
 import org.ofbiz.service.LocalDispatcher;
@@ -75,7 +79,19 @@ public class MarketingServices {
 
             // associate the email with anonymous user TODO: do we need a custom contact mech purpose type, say MARKETING_EMAIL?
             if (partyId == null) {
-                partyId = "_NA_";
+                // Check existing email
+                List conds = UtilMisc.toList(EntityCondition.makeCondition("infoString", EntityOperator.EQUALS, email));
+                conds.add(EntityCondition.makeCondition("contactMechTypeId", EntityOperator.EQUALS, "EMAIL_ADDRESS"));
+                conds.add(EntityCondition.makeCondition("contactMechPurposeTypeId", EntityOperator.EQUALS, "PRIMARY_EMAIL"));
+                conds.add(EntityUtil.getFilterByDateExpr("purposeFromDate", "purposeThruDate"));
+                conds.add(EntityUtil.getFilterByDateExpr());
+                List<GenericValue> contacts = delegator.findList("PartyContactDetailByPurpose", EntityCondition.makeCondition(conds), null, UtilMisc.toList("-fromDate"), null, false);
+                if (UtilValidate.isNotEmpty(contacts)) {
+                    GenericValue contact = EntityUtil.getFirst(contacts);
+                    partyId = contact.getString("partyId");
+                } else {
+                    partyId = "_NA_";
+                }
             }
             input = UtilMisc.toMap("userLogin", userLogin, "emailAddress", email, "partyId", partyId, "fromDate", fromDate, "contactMechPurposeTypeId", "OTHER_EMAIL");
             Map<String, Object> serviceResults = dispatcher.runSync("createPartyEmailAddress", input);