public class UpdateMemberShipHistoryDetailsHelper { public static void updateLookUpFields(List<Membership_History__c> newList) { if(newList != NULL && newList.size() > 0) {
Map<String,ID> accountsMap = new Map<String,ID>(); Map<String,ID> contactsMap = new Map<String,ID>(); Map<String,ID> branchesMap = new Map<String,ID>(); Map<String, Id> memberShipIdMap = new Map<String, Id>();
Set<String> memberShipSet = new Set<String>(); Set<String> historyTypeSet = new Set<String>(); Set<String> memberNumberSet = new Set<String>(); Set<String> activityBranchSet = new Set<String>();
for(Membership_Type__c mt : [select id,Type_Code__c from Membership_Type__c WHERE Type_Code__c != NULL AND (Type_Code__c IN :memberShipSet OR Type_Code__c IN :historyTypeSet)]){
for(Branch__c b:[SELECT ID,Branch_Number__c FROM Branch__c WHERE Branch_Number__c!=NULL AND Branch_Number__c IN:activityBranchSet]) { branchesMap.put(b.Branch_Number__c, b.ID); }
public class UpdateMemberShipHistoryDetailsHelper { public static void updateLookUpFields(List<Membership_History__c> newList) { if(newList != NULL && newList.size() > 0) {
Map<String,ID> accountsMap = new Map<String,ID>(); Map<String,ID> contactsMap = new Map<String,ID>(); Map<String,ID> branchesMap = new Map<String,ID>(); Map<String, Id> memberShipIdMap = new Map<String, Id>();
Set<String> memberShipSet = new Set<String>(); Set<String> historyTypeSet = new Set<String>(); Set<String> memberNumberSet = new Set<String>(); Set<String> activityBranchSet = new Set<String>();
for(Membership_Type__c mt : [select id,Type_Code__c from Membership_Type__c WHERE Type_Code__c != NULL AND (Type_Code__c IN :memberShipSet OR Type_Code__c IN :historyTypeSet)]){
for(Branch__c b:[SELECT ID,Branch_Number__c FROM Branch__c WHERE Branch_Number__c!=NULL AND Branch_Number__c IN:activityBranchSet]) { branchesMap.put(b.Branch_Number__c, b.ID); }
Messaging.SingleEmailMessage message = new Messaging.SingleEmailMessage(); message.toAddresses = new String[] { 'test@gmail.com'}; message.subject = 'Duplicate Lead Record Found for'; message.plainTextBody = 'Duplicate Lead to be found for ';
if (results[0].success) { System.debug('The email was sent successfully.'); } else { System.debug('The email failed to send: ' + results[0].errors[0].message); }
} } }
NOTE : I didnt understand that Contact URL logic. Could you please give detail about it?
Please find corrected code below.,
public class UpdateMemberShipHistoryDetailsHelper
{
public static void updateLookUpFields(List<Membership_History__c> newList)
{
if(newList != NULL && newList.size() > 0) {
Map<String,ID> accountsMap = new Map<String,ID>();
Map<String,ID> contactsMap = new Map<String,ID>();
Map<String,ID> branchesMap = new Map<String,ID>();
Map<String, Id> memberShipIdMap = new Map<String, Id>();
Set<String> memberShipSet = new Set<String>();
Set<String> historyTypeSet = new Set<String>();
Set<String> memberNumberSet = new Set<String>();
Set<String> activityBranchSet = new Set<String>();
for(Membership_History__c m:newList)
{
if(m.History_Type__c != NULL)
historyTypeSet.add(m.History_Type__c);
if(m.Membership__c != NULL)
memberShipSet.add(m.Membership__c);
if(m.Member_Number__c !=NULL)
memberNumberSet.add(m.Member_Number__c);
if(m.Activity_Branch__c !=NULL)
activityBranchSet.add(m.Activity_Branch__c);
}
System.debug('<--historyTypeSet-->'+historyTypeSet);
System.debug('<--memberShipSet-->'+memberShipSet);
System.debug('<--memberNumberSet-->'+memberNumberSet);
System.debug('<--activityBranchSet-->'+activityBranchSet);
if(memberNumberSet.size() > 0 || activityBranchSet.size() > 0 || historyTypeSet.size() > 0 || memberShipSet.size() > 0) {
for(Membership_Type__c mt : [select id,Type_Code__c from Membership_Type__c WHERE Type_Code__c != NULL AND (Type_Code__c IN :memberShipSet OR Type_Code__c IN :historyTypeSet)]){
memberShipIdMap.put(m.Type_Code__c, m.ID);
}
System.debug('<--memberShipIdMap-->'+memberShipIdMap);
if(memberNumberSet.size() > 0) {
for(Account a:[SELECT ID,Member_Number__c FROM Account WHERE Member_Number__c != NULL AND Member_Number__c IN:memberNumberSet])
{
accountsMap.put(a.Member_Number__c, a.ID);
}
for(Contact c:[Select ID,Member_Number__c from Contact where Member_Number__c != NULL AND Member_Number__c IN:memberNumberSet])
{
contactsMap.put(c.Member_Number__c, c.ID);
}
System.debug('<--accountsMap-->'+accountsMap);
System.debug('<--contactsMap-->'+contactsMap);
}
if(activityBranchSet.size() > 0) {
for(Branch__c b:[SELECT ID,Branch_Number__c FROM Branch__c WHERE Branch_Number__c!=NULL AND Branch_Number__c IN:activityBranchSet])
{
branchesMap.put(b.Branch_Number__c, b.ID);
}
System.debug('<--branchesMap-->'+branchesMap);
}
if(accountsMap.size() > 0 || contactsMap.size() > 0 || branchesMap.size() > 0 || memberShipIdMap.size() > 0) {
for(Membership_History__c m:newList)
{
m.Account__c=m.Member_Number__c != NULL && accountsMap.containsKey(m.Member_Number__c) ? accountsMap.get(m.Member_Number__c) : NULL;
m.Member__c=m.Member_Number__c != NULL && contactsMap.containsKey(m.Member_Number__c) ? contactsMap.get(m.Member_Number__c) : NULL;
m.Branch__c=m.Activity_Branch__c != NULL && branchesMap.containsKey(m.Activity_Branch__c) ? branchesMap.get(m.Activity_Branch__c) : NULL;
m.Membership_Type__c=m.History_Type__c != NULL && memberShipIdMap.containsKey(m.History_Type__c) ? memberShipIdMap.get(m.History_Type__c) : NULL;
}
}
}
}
}
}
Thanks,
Narayanan Natarajan
All Answers
Hi Jain,
Can you please give clear knowledge about it?
Thanks,
Narayanan Natarajan
Please find corrected code below.,
public class UpdateMemberShipHistoryDetailsHelper
{
public static void updateLookUpFields(List<Membership_History__c> newList)
{
if(newList != NULL && newList.size() > 0) {
Map<String,ID> accountsMap = new Map<String,ID>();
Map<String,ID> contactsMap = new Map<String,ID>();
Map<String,ID> branchesMap = new Map<String,ID>();
Map<String, Id> memberShipIdMap = new Map<String, Id>();
Set<String> memberShipSet = new Set<String>();
Set<String> historyTypeSet = new Set<String>();
Set<String> memberNumberSet = new Set<String>();
Set<String> activityBranchSet = new Set<String>();
for(Membership_History__c m:newList)
{
if(m.History_Type__c != NULL)
historyTypeSet.add(m.History_Type__c);
if(m.Membership__c != NULL)
memberShipSet.add(m.Membership__c);
if(m.Member_Number__c !=NULL)
memberNumberSet.add(m.Member_Number__c);
if(m.Activity_Branch__c !=NULL)
activityBranchSet.add(m.Activity_Branch__c);
}
System.debug('<--historyTypeSet-->'+historyTypeSet);
System.debug('<--memberShipSet-->'+memberShipSet);
System.debug('<--memberNumberSet-->'+memberNumberSet);
System.debug('<--activityBranchSet-->'+activityBranchSet);
if(memberNumberSet.size() > 0 || activityBranchSet.size() > 0 || historyTypeSet.size() > 0 || memberShipSet.size() > 0) {
for(Membership_Type__c mt : [select id,Type_Code__c from Membership_Type__c WHERE Type_Code__c != NULL AND (Type_Code__c IN :memberShipSet OR Type_Code__c IN :historyTypeSet)]){
memberShipIdMap.put(m.Type_Code__c, m.ID);
}
System.debug('<--memberShipIdMap-->'+memberShipIdMap);
if(memberNumberSet.size() > 0) {
for(Account a:[SELECT ID,Member_Number__c FROM Account WHERE Member_Number__c != NULL AND Member_Number__c IN:memberNumberSet])
{
accountsMap.put(a.Member_Number__c, a.ID);
}
for(Contact c:[Select ID,Member_Number__c from Contact where Member_Number__c != NULL AND Member_Number__c IN:memberNumberSet])
{
contactsMap.put(c.Member_Number__c, c.ID);
}
System.debug('<--accountsMap-->'+accountsMap);
System.debug('<--contactsMap-->'+contactsMap);
}
if(activityBranchSet.size() > 0) {
for(Branch__c b:[SELECT ID,Branch_Number__c FROM Branch__c WHERE Branch_Number__c!=NULL AND Branch_Number__c IN:activityBranchSet])
{
branchesMap.put(b.Branch_Number__c, b.ID);
}
System.debug('<--branchesMap-->'+branchesMap);
}
if(accountsMap.size() > 0 || contactsMap.size() > 0 || branchesMap.size() > 0 || memberShipIdMap.size() > 0) {
for(Membership_History__c m:newList)
{
m.Account__c=m.Member_Number__c != NULL && accountsMap.containsKey(m.Member_Number__c) ? accountsMap.get(m.Member_Number__c) : NULL;
m.Member__c=m.Member_Number__c != NULL && contactsMap.containsKey(m.Member_Number__c) ? contactsMap.get(m.Member_Number__c) : NULL;
m.Branch__c=m.Activity_Branch__c != NULL && branchesMap.containsKey(m.Activity_Branch__c) ? branchesMap.get(m.Activity_Branch__c) : NULL;
m.Membership_Type__c=m.History_Type__c != NULL && memberShipIdMap.containsKey(m.History_Type__c) ? memberShipIdMap.get(m.History_Type__c) : NULL;
}
}
}
}
}
}
Thanks,
Narayanan Natarajan
Hi Jain,
Please give like if its a best answer.
Thanks,
Narayanan Natarajan
Hi Jain,
Please find code below for that trigger.
trigger LeadTrigger on Lead(before insert, before update) {
Set<String> emailSet = new Set<String>();
for(Lead lead1 : trigger.new) {
if(lead1.Email != NULL && (Trigger.isInsert || (trigger.isUpdate && trigger.oldMap.containsKey(lead1.Id) && trigger.oldMap.get(lead1.Id).Email)))
emailSet.add(lead1);
}
System.debug('<--emailSet-->'+emailSet);
if(emailSet.size() > 0) {
List<Lead> leadList = new List<Lead>();
for(Lead lead1 : [SELECT Id, Email FROM Lead WHERE Email IN :emailList]) {
emailSet.remove(String.valueOf(lead1.Email)); lead1.ContactedDate__c = Date.today();
leadList.add(lead1);
}
System.debug('<--emailSet-->'+emailSet);
System.debug('<--leadList-->'+leadList);
if(emailSet.size() > 0 && leadList.size() > 0) {
Messaging.SingleEmailMessage message = new Messaging.SingleEmailMessage();
message.toAddresses = new String[] { 'test@gmail.com'};
message.subject = 'Duplicate Lead Record Found for';
message.plainTextBody = 'Duplicate Lead to be found for ';
for(String str : emailSet) {
message.subject += str + ',';
}
message.subject.remove(',');
System.debug('<--emailSet-->'+message);
Messaging.SendEmailResult[] results = Messaging.sendEmail(new List<Messaging.SingleEmailMessage> {message});
if (results[0].success) {
System.debug('The email was sent successfully.');
} else {
System.debug('The email failed to send: ' + results[0].errors[0].message);
}
}
}
}
NOTE : I didnt understand that Contact URL logic. Could you please give detail about it?
Thanks,
Narayanan Natarajan