function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
DorababuDorababu 

Trigger for Cross Object Field Update

I have a field Primary Phone Identifier(Picklist:Phone 1/Phone2/Phone3)field  on Account.  HouseholdMember is a child of Account and Group. I wrote a trigger for a member who is primary in household member, his email which is selected in Primary Phone Identifier(say Phone 1), phone 1 value in Account is cascaded to Group level. Now,  if Primary Phone Identifier is changed to Phone 2 this is updated at Household Member but I am unable to cascade it to Group object. Help me in updating it  to Group object.

 

The trigger is as follows.

 

trigger PopulatePhoneEmail on Household_Member__c (after insert,after update) 
{
Set<ID> householdgroupids=new Set<ID>();
Set<ID> Accountids=new Set<ID>();
List<Household_Group__c> hhglist = new List<Household_Group__c>();
list<Household_Group__c> householdgroupuplist=new list<Household_Group__c>();
List<Household_Member__c> memlist = new List<Household_Member__c>();
List<Household_Member__c> memupdatelist = new List<Household_Member__c>();
Integer count;
boolean isListUpdated;

hhglist = [Select id,Status__c,Name FROM Household_Group__c WHERE id in:householdgroupids];

for(Household_Member__c hm:trigger.new)
{
householdgroupids.add(hm.Household_Group__c);
Accountids.add(hm.Member__c);
}
map<id,Household_Group__c> householdgroupmap = new map<id,Household_Group__c>([SELECT Id,Email__c,primary_city__c,Primary_Phone__c from Household_Group__c where id in:householdgroupids]);
map<Id,Account> accids = new map<Id,Account>([Select id,BillingStreet,BillingCity,BillingState,BillingPostalCode,BillingCountry FROM Account WHERE id IN:Accountids]); 
for(Household_Member__c hm:trigger.new)
{
if(hm.Primary__c == true)
{
Household_Group__c hg=new Household_Group__c();
Account acc=new Account();
acc=accids.get(hm.member__c);
hg=householdgroupmap.get(hm.Household_Group__c);
if(hg!=null )
{
hg.Primary_Phone__c = hm.Primary_Phone__c;
hg.Primary_street__c = acc.BillingStreet;
hg.Primary_street__c = acc.BillingStreet;
hg.primary_city__c = acc.BillingCity;
hg.primary_province__c = acc.BillingState;
hg.primary_postal_code__c= acc.BillingPostalCode;
hg.primary_country__c = acc.BillingCountry;
hg.Email__c = hm.Email__c;
householdgroupuplist.add(hg);
}
}
}
if(!householdgroupuplist.isempty())
{
try
{
update householdgroupuplist;
}
catch(Exception e)
{
System.debug(e);
}
}

}