Author: hansbak
Date: Thu Jan 6 02:15:55 2011
New Revision: 1055711
URL:
http://svn.apache.org/viewvc?rev=1055711&view=revLog:
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);