You need to sign in to do that
Don't have an account?
Sales Development
Apex Trigger for a specific rollup summary with criteria
Hi everyone, I would like to add criteria to my rollup summary whose apex you can see just below. I would like to have a criteria which would be :
- Stage = "Renewed" (one custom stage we created)
AND
- End Date = RollupDate (which is a custom field)
Here is the code :
Trigger OpportunityTrigger on Opportunity (after insert, after update, after delete, after undelete) {
List<Opportunity> opportunities = new List<Opportunity>();
if(Trigger.isAfter){
if(Trigger.isInsert || Trigger.isUndelete){
opportunities = Trigger.new;
}else if(Trigger.isUpdate){
for(Opportunity Opportunity : Trigger.new){
if(Opportunity.Amount != Trigger.oldMap.get(Opportunity.id).Amount){
opportunities.add(Opportunity);
}
}
} else if(Trigger.isDelete){
opportunities = trigger.old;
}
}
list<RollUpSummaryUtility.fieldDefinition> fieldDefinitions1 =
new list<RollUpSummaryUtility.fieldDefinition> {
new RollUpSummaryUtility.fieldDefinition('SUM', 'Amount',
'PreviousOpp_MRR__c')
};
RollUpSummaryUtility.ObjectDefination objDef =
new RollUpSummaryUtility.ObjectDefination('Opportunity','AccountId','Account','',null);
new RollUpSummaryUtility().rollUp(fieldDefinitions1, objDef , opportunities);
}
Thank you all !
- Stage = "Renewed" (one custom stage we created)
AND
- End Date = RollupDate (which is a custom field)
Here is the code :
Trigger OpportunityTrigger on Opportunity (after insert, after update, after delete, after undelete) {
List<Opportunity> opportunities = new List<Opportunity>();
if(Trigger.isAfter){
if(Trigger.isInsert || Trigger.isUndelete){
opportunities = Trigger.new;
}else if(Trigger.isUpdate){
for(Opportunity Opportunity : Trigger.new){
if(Opportunity.Amount != Trigger.oldMap.get(Opportunity.id).Amount){
opportunities.add(Opportunity);
}
}
} else if(Trigger.isDelete){
opportunities = trigger.old;
}
}
list<RollUpSummaryUtility.fieldDefinition> fieldDefinitions1 =
new list<RollUpSummaryUtility.fieldDefinition> {
new RollUpSummaryUtility.fieldDefinition('SUM', 'Amount',
'PreviousOpp_MRR__c')
};
RollUpSummaryUtility.ObjectDefination objDef =
new RollUpSummaryUtility.ObjectDefination('Opportunity','AccountId','Account','',null);
new RollUpSummaryUtility().rollUp(fieldDefinitions1, objDef , opportunities);
}
Thank you all !
List<Opportunity> opportunities = new List<Opportunity>();
if(Trigger.isAfter){
if(Trigger.isInsert || Trigger.isUndelete){
opportunities = Trigger.new;
}else if(Trigger.isUpdate){
for(Opportunity Opportunity : Trigger.new){
if(Opportunity.Amount != Trigger.oldMap.get(Opportunity.id).Amount && opportunity.stagename='renenwed' && opportunity.enddate=Rollupdate){
opportunities.add(Opportunity);
}
}
} else if(Trigger.isDelete){
opportunities = trigger.old;
}
}
list<RollUpSummaryUtility.fieldDefinition> fieldDefinitions1 =
new list<RollUpSummaryUtility.fieldDefinition> {
new RollUpSummaryUtility.fieldDefinition('SUM', 'Amount',
'PreviousOpp_MRR__c')
};
RollUpSummaryUtility.ObjectDefination objDef =
new RollUpSummaryUtility.ObjectDefination('Opportunity','AccountId','Account','',null);
new RollUpSummaryUtility().rollUp(fieldDefinitions1, objDef , opportunities);
}
Please mark it as solved if this solves your problem