Thursday, 1 March 2018

Trigger to calculate the minimum date of Child records and populate on Parent record

Here Child -> Buyers__c

         Parent -> oneplus__c

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
trigger FirstBuyer on Buyers__c (after Insert, after update, after Delete, after Undelete) {

   set<id>OnePlusIds = new set<Id>();
   
   if(trigger.isInsert || trigger.isUndelete || trigger.isUpdate){
           for(Buyers__c buy : Trigger.new){
               OnePlusIds.add(buy.oneplus__c);
           }
       }    

   if(trigger.isDelete || trigger.isUpdate){   
       for(Buyers__c buy : Trigger.old){
           OnePlusIds.add(buy.oneplus__c);
       } 
   }   
   
   List<OnePlus__c>Parent_List = [Select Id, name, First_Buying_Date__c,  (Select Id, Name,
                                  Buying_date__c From Buyers__r ORDER BY Buying_date__c ASC 
                                  LIMIT 1) From oneplus__c WHERE ID IN: OnePlusIds];
   
   List<OnePlus__c>Update_Parent_List = New List<OnePlus__c>();
   
   for(Oneplus__c oneplus : Parent_List){                         
       oneplus.First_Buying_Date__c =  oneplus.Buyers__r[0].Buying_date__c; 
       Update_Parent_List.add(oneplus);                                                
   }
   
   Update Update_Parent_List;
}

No comments:

Post a Comment