Populate Rollup Value in Parent object connected by Lookup Relationship

Child Object Name: Bank_Branches__c
Field Name:
 

Parent Object Name: Bank__c
Field Name:
 
 Apex Trigger:

trigger RollupAccountValue on Bank_Branches__c (after Insert, after update, after delete)
{
    if(RecursiveTriggerHandler.isFirstTime)
    { 
        Set<Id> ParentId = new Set<Id>();
        List<Bank_Branches__c> LstBranch = new List<Bank_Branches__c>();
        List<Bank__c> LstBank = new List<Bank__c>();
        if(!Trigger.isDelete)
        {          
            for(Bank_Branches__c BC : trigger.new)
            {
               ParentId.add(BC.Bank__c);
            }
        }
         
        if (Trigger.isUpdate || Trigger.isDelete)
        {
            for (Bank_Branches__c BBInfo : Trigger.old)
                ParentId.add(BBInfo.Bank__c);
        }
       
        List<AggregateResult> lstagr = [SELECT Bank__c ,SUM(Number_of_Accounts__c )tot FROM Bank_Branches__c WHERE Bank__c IN: ParentId group by Bank__c];
       
        for(AggregateResult agr :lstagr)
        {     
            id ids = (Id)agr.get('Bank__c');
            Decimal amnt = (Decimal)agr.get('tot');           
            Bank__c Bank = new Bank__c();
            Bank.Id = ids;
            Bank.Total_Accounts__c = amnt;
            LstBank.add(Bank);
        }
        update LstBank;      
       
    }   
}

Comments

Popular Posts