function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
4i Apps4i Apps 

Rollup Summay field for Lookup relationships

Hi,

I have a lookup relationship between Quote and Order. I have a field on Order called Milestone_Amount__c that has to rollup to a field on Quote called Cumulative_Order_Value__c, after insert, after update, after delete, after undelete.

Requesting assistance to correct the below piece of code:
 
trigger orderMaster on Order (after delete,after update, after undelete) {
 list<Quote> quotelist = new List<Quote>();
set<id> quoteIDs = new set<id>();
if(trigger.isDelete){
    for(Order orderItem : Trigger.old){
        quoteIDs.add(orderItem.QuoteId);
     }
}
else if(trigger.isUnDelete){
     for(Order orderItem : Trigger.new){
     quoteIDs.add(orderItem.QuoteId);
      }
}
else if(trigger.isUpdate){
     for(Order orderItem : trigger.new){
if(trigger.oldmap.get(orderItem.id).Quote!=orderItem.Quote){
quoteIDs.add(orderItem.QuoteId);
quoteIDs.add(trigger.oldmap.get(orderitem.id).quoteId);
}
}
}
AggregateResult[] groupedResults = [SELECT SUM(Milestone_Amount__c) FROM Order where QuoteId IN :quoteIDs];
   for(AggregateResult ar:groupedResults) {
        Id custid = (ID)ar.get('Quote.Id');
        Integer count = (INTEGER)ar.get('expr0');
        Quote cust1 = new Quote(Id=custid);
        cust1.Cumulative_Order_Value__c = count;
        quotelist.add(cust1);
     }
     update quotelist;
}

 
Ankur Saini 9Ankur Saini 9
Hi 4i Apps,

try this
 
trigger totalyear on Candidate__c (after insert, after update, after delete) {

 list<Leader__c> updateListleader = new list<Leader__c>();
 set<string> year = new set<string>();
 
 if (trigger.isInsert && trigger.isAfter){ 
        for(Candidate__c can: trigger.new){
            year.add(can.Leader__c);
           
        }         
    }
    
    if (trigger.isUpdate && trigger.isAfter){ 
        for(Candidate__c can: trigger.new){
            year.add(can.Leader__c);
           
        }         
    }
    
    if (trigger.isDelete && trigger.isAfter){ 
        for(Candidate__c can: trigger.old){
            year.add(can.Leader__c);
           
        }         
    }
    
    for(Leader__c l : [select id,Rollup__c,(select id,Years_of_Experience__c from Candidates__r) from Leader__c where id in: year]){
        decimal amont = 0;
        for(Candidate__c can : l.Candidates__r){
            amont +=can.Years_of_Experience__c!=null?can.Years_of_Experience__c:0;
        }
        l.Rollup__c= amont;
        
        updateListleader.add(l);
    }
     if(updateListleader.size()>0)
        update updateListleader;
 
 }

Thanks
Ankur Saini
http://mirketa.com