• sam patil
  • NEWBIE
  • 30 Points
  • Member since 2022

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 5
    Questions
  • 2
    Replies
public static void setEmailDomain(List<Contact> contactNewList) {
        
        Set<Id> accountIds = new Set<Id>();
        
        for(Contact con : contactNewList) {
            if(con.AccountId != null) {
                accountIds.add(con.AccountId);
            }
        }
        
        List<Account> accountList = new List<Account>();
        List<Account> accountToUpdate = new List<Account>();
        
        if(!accountIds.isEmpty()) {
            accountList = [SELECT Id, Email_Domain__c, (SELECT Id, Email FROM Contacts WHERE Email != null) 
                           FROM Account WHERE Id IN : accountIds];
            
            for(Account acc : accountList) {
                String emailDomainString = '';
                
                if(!acc.Contacts.isEmpty()) {
                    for(Contact con : acc.Contacts){
                        if(emailDomainString.contains(con.Email.subStringAfter('@'))) {
                            emailDomainString = emailDomainString + con.Email.subStringAfter('@') + ', ';
                        }
                    }
                    acc.Email_Domain__c = emailDomainString;
                    accountToUpdate.add(acc);
                }
            }
            
            if(!accountToUpdate.isEmpty()) {
                update accountToUpdate;
            }
        }
    }
}
#triggerHandler
public static void SetState(list <Child__c> childnewlst){
        set<id> parentids= new set<id>();
       
        for(Child__c child : childnewlst ){
            parentids.add(child.parent__c);
        }
        list<parent__c> parentlist = new list <parent__c>();
       
        if(!parentids.isEmpty()){
        
           parentlist=[select id,state__c, (select id, state__c from child__r where state__c != null) 
                                    from parent__c where id in : parentids];
        }
        list<parent__c> parenttoupdate = new list <parent__c>();
        
        for(parent__c parent : parentlist){
            string state ='';
            
            if(!parent.child__r.isEmpty()){
                for(child__c child : parent.child__r){
                    if(!state.contains(child.state__c)){
                    state = state + child.state__c + ';';
                    }
                    
                }
                parent.State__c = state;
                parentToUpdate.add(parent);
                
            }
            if(!parentToUpdate.isEmpty()){
                update parentToUpdate;
            }
        }
    }

}
#triggerHandler
public static void SetState(list <Child__c> childnewlst){
        set<id> parentids= new set<id>();
       
        for(Child__c child : childnewlst ){
            parentids.add(child.parent__c);
        }
        list<parent__c> parentlist = new list <parent__c>();
       
        if(!parentids.isEmpty()){
        
           parentlist=[select id,state__c, (select id, state__c from child__r where state__c != null) 
                                    from parent__c where id in : parentids];
        }
        list<parent__c> parenttoupdate = new list <parent__c>();
        
        for(parent__c parent : parentlist){
            string state ='';
            
            if(!parent.child__r.isEmpty()){
                for(child__c child : parent.child__r){
                    if(!state.contains(child.state__c)){
                    state = state + child.state__c + ';';
                    }
                    
                }
                parent.State__c = state;
                parentToUpdate.add(parent);
                
            }
            if(!parentToUpdate.isEmpty()){
                update parentToUpdate;
            }
        }
    }

}