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
pavanthetechpavanthetech 

I Have trigger working for single record,how to maniupalate this for bulk

 trigger AutoSetoff on Receipt__c (after update,after insert) {

   Set <ID> oid=new Set <ID>();
   Set <ID> rid=new  Set <ID>();
   List<Receipt__c> rec= new List<Receipt__c>();
   For (Receipt__c R: trigger.new)
    {
       rid.add(R.id);
       system.debug('Add receipt id'+rid);
       oid.add(R.Opportunity__c);
       system.debug('Add opp id'+oid);
       }
       rec=[select id,Opportunity__c,Realization_Status__c from Receipt__c where id IN:rid];
       system.debug('Receipt'+rec);
       List<Opportunity> O = [Select Name,TotalReceipt_Realized__c,Total_Payment_Received__c from Opportunity
                         Where id IN: oid];
       system.debug('OPP'+ O);                  
                         
       List<AggregateResult> groupedResults = [SELECT Sum(Amount__c)aver FROM Receipt__c
                                                Where Opportunity__c IN: oid
                                               ];
       system.debug('Groupedresults query'+groupedResults );
       Double TotalReceipt = 0.0 ;
       for(Receipt__c rct:rec)
       {
       if(rct.Realization_Status__c =='Realized')
       {
        if(groupedResults.size() > 0)
        {
            system.debug('Size of grouped results'+groupedResults.size());
            String str = '' + groupedResults[0].get('aver') ;
            system.debug('Checking groupedResults'+str);
            TotalReceipt = Double.ValueOf(str) ;
            System.debug('TotalReceipt ::::: ' + TotalReceipt) ;
        }
          for(Opportunity Op:O)
          {
            Double dif = TotalReceipt - Op.Total_Payment_Received__c;
            system.debug('Difference'+dif);
            List <Payment_Schedule__c> SList = new list <Payment_Schedule__c>([Select Name,TotalInstallment_Amount__c,Display_Order__c,  Amount_Due__c, Payment_Received__c from Payment_Schedule__c
                 where Opportunity__c =: Op.id AND Payment_Schedule__c.Amount_Due__c > 0
                 Order By Display_Order__c]);
       
             For (Payment_Schedule__c S: SList)
               {
                system.debug('###Inside For');
                 
                 If (S.Amount_Due__c > dif)
                   {
                        system.debug('###Inside If 1'+ S.Payment_Received__c);
                  
                        S.Payment_Received__c = S.Payment_Received__c + dif;
                        system.debug('PaymentReceived'+S.Payment_Received__c );
                        dif = 0;
                    }
            If (S.Amount_Due__c < dif)
            {
             
                S.Payment_Received__c = S.Payment_Received__c + S.Amount_Due__c;
                system.debug('PaymentReceived ########'+S.Payment_Received__c );
                dif = dif - S.Amount_Due__c;
                   system.debug('Differenceone'+dif);
            }
        }
        Update SList;
    
}
}
}
      

 }