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;
}
}
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
Post a Comment