
Change trigger.isInsert to trigger.isUpdate in line 11 trigger UpdateToTalFeeOnOpportunity on Matter__c(after insert,after update,after delete){
Set<Id> oppIds = new Set<Id>();
List<Opportunity> lstOppToBeUpdated = new List<Opportunity>();
if(Trigger.isAfter){
if(Trigger.isInsert || Trigger.isUpdate){
for(Matter__c matter : trigger.new){
if(Trigger.isInsert){
oppIds.add(matter.Deal__c);
}
else if(Trigger.isUpdate){
if(matter.Total_Fees__c != trigger.OldMap.get(matter.Id).Total_Fees__c){
oppIds.add(matter.Deal__c);
}
}
}
}
if(Trigger.isDelete){
for(Matter__c matter : trigger.old){
oppIds.add(matter.Deal__c);
}
}
}
if(!oppIds.isEmpty()){
for(Opportunity opp :[SELECT Id,Engagement_Total_Fees__c,(SELECT Id,Total_Fees__c FROM Engagements__r ) FROM Opportunity WHERE Id IN :oppIds]){
Decimal totalFee = 0;
for(Matter__c matter : opp.Engagements__r ){
if(matter.Total_Fees__c != null){
totalFee = totalFee + matter.Total_Fees__c;
}
}
opp.Engagement_Total_Fees__c = totalFee;
lstOppToBeUpdated.add(opp);
}
if(!lstOppToBeUpdated.isEmpty()){
update lstOppToBeUpdated;
}
}
}
12 answers