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
bheemudu neelibheemudu neeli 

Please Bulkify my Trigger, working for single record need for mass records.

Hi All,
Please bulkify my trigger it is working for Single record without any issue, could you please do it it for mass records.
 
trigger updateOrder on Master_Course__c (after insert) {
    
    List<Master_Course__c> coursegroup = new List<Master_Course__c>();
    List<Master_Course__c> coursesubgroup = new List<Master_Course__c>();
    List<Master_Course__c> coursename = new List<Master_Course__c>();
    string centrecode = trigger.new[0].Centre_Code__c;
    Map<String,Integer> coursegroupmap = new Map<String,Integer>();
    Integer num = 0;
    boolean coursegroupfound=false;
    boolean coursesubgroupfound=false;
    boolean crsnamefound = false;
    string coursegroupvar;
    
    Master_Course__c mcobj = new Master_Course__c();
   // mcobj=trigger.new[0];
    
    mcobj = [select id, name,Course_Group__c,Course_Sub_Group__c,Centre_Code__c,Course_Group_Order__c,Course_Sub_Group_Order__c,Course_Order__c from Master_Course__c WHERE Id IN: Trigger.newMap.keySet() limit 1];
    coursegroup = [select id, name,Course_Group__c,Course_Sub_Group__c,Centre_Code__c,Course_Group_Order__c,Course_Sub_Group_Order__c,Course_Order__c from Master_Course__c where Centre_Code__c =:centrecode and Id != :mcobj.id order by Course_Group__c ASC]; 
    
    system.debug('mcobj@@'+mcobj);
    for(Master_Course__c mc : coursegroup)
    {
        if(mc.Course_Group__c == mcobj.Course_Group__c)
        {
            system.debug('entered first loop');
            mcobj.Course_Group_Order__c = mc.Course_Group_Order__c;
            coursegroupfound = true;
            break;
        }   
    }
    
    if(coursegroupfound == true)
    {
        system.debug('entered coursegroupfound');
        coursesubgroup=[select id, name,Course_Group__c,Course_Sub_Group__c,Centre_Code__c,Course_Group_Order__c,Course_Sub_Group_Order__c,Course_Order__c from Master_Course__c where Centre_Code__c =:centrecode and Course_Group__c =:mcobj.Course_Group__c and Id != :mcobj.Id order by Course_Sub_Group__c ASC];
        
        for(Master_Course__c mc : coursesubgroup)
        {
            if(mc.Course_Sub_Group__c == mcobj.Course_Sub_Group__c)
            {
                mcobj.Course_Sub_Group_Order__c = mc.Course_Sub_Group_Order__c;
                coursesubgroupfound = true;
                break;
            }   
        }
        update mcobj;
    }
    
    if(coursesubgroupfound == true)
    {
        system.debug('entered coursesubgroupfound');
        coursename =[select id, name,Course_Group__c,Course_Sub_Group__c,Centre_Code__c,Course_Group_Order__c,Course_Sub_Group_Order__c,Course_Order__c from Master_Course__c where Centre_Code__c =:centrecode and Course_Group__c =:mcobj.Course_Group__c and Course_Sub_Group__c =:mcobj.Course_Sub_Group__c and Id != :mcobj.Id order by name ASC];
        for(Master_Course__c mc : coursename)
        {
            if(mc.Name == mcobj.Name)
            {
                mcobj.Course_Order__c = mc.Course_Order__c;
                crsnamefound = true;
                break;
            }   
        }
    update mcobj;
    
    }

    
    //system.debug('@@@@crsgrpmap@@@'+coursegroupmap);
    if(coursegroupfound == false)
    {
        coursegroup = [select id, name,Course_Group__c,Course_Sub_Group__c,Centre_Code__c,Course_Group_Order__c,Course_Sub_Group_Order__c,Course_Order__c from Master_Course__c where Centre_Code__c =:centrecode order by Course_Group__c ASC];
        system.debug('entered line 69');
        for(Master_Course__c mc : coursegroup)
        {
            if(coursegroupmap.isEmpty())
            {
                mc.Course_Group_Order__c=1;
                mc.Course_Sub_Group_Order__c = 1;
                mc.Course_Order__c=1;
                num=mc.Course_Group_Order__c.intValue();
                coursegroupmap.put(mc.Course_Group__c,mc.Course_Group_Order__c.intValue());
            }
            
            else if(!coursegroupmap.isEmpty())
            {
                if(coursegroupmap.containskey(mc.Course_Group__c))
                {
                    mc.Course_Group_Order__c = coursegroupmap.get(mc.Course_Group__c);
                    num=mc.Course_Group_Order__c.intValue();
                    //search for sub group
                }
                else
                {
                    num++;
                    mc.Course_Group_Order__c = num;
                    mc.Course_Sub_Group_Order__c = 1;
                    mc.Course_Order__c=1;
                    coursegroupmap.put(mc.Course_Group__c,mc.Course_Group_Order__c.intValue());
                }
            }
        }
    update coursegroup;
    }
    
    
    if(coursesubgroupfound == false)
    {
        coursesubgroup=[select id, name,Course_Group__c,Course_Sub_Group__c,Centre_Code__c,Course_Group_Order__c,Course_Sub_Group_Order__c,Course_Order__c from Master_Course__c where Centre_Code__c =:centrecode and Course_Group__c =:mcobj.Course_Group__c order by Course_Sub_Group__c ASC];
        Map<String,Integer> coursesubgroupmap = new Map<String,Integer>();
        system.debug('entered line 69');
        for(Master_Course__c mc : coursesubgroup)
        {
            if(coursesubgroupmap.isEmpty())
            {
                mc.Course_Sub_Group_Order__c = 1;
                mc.Course_Order__c=1;
                num=mc.Course_Sub_Group_Order__c.intValue();
                coursesubgroupmap.put(mc.Course_Sub_Group__c,mc.Course_Sub_Group_Order__c.intValue());
            }
            
            else if(!coursesubgroupmap.isEmpty())
            {
                if(coursesubgroupmap.containskey(mc.Course_Sub_Group__c))
                {
                    mc.Course_Sub_Group_Order__c = coursesubgroupmap.get(mc.Course_Sub_Group__c);
                    num=mc.Course_Sub_Group_Order__c.intValue();
                    //search for sub group
                }
                else
                {
                    num++;
                    mc.Course_Sub_Group_Order__c = num;
                    mc.Course_Order__c=1;
                    coursesubgroupmap.put(mc.Course_Sub_Group__c,mc.Course_Sub_Group_Order__c.intValue());
                }
            }
        }
    update coursesubgroup;
    }
    
    
    if(crsnamefound == false)
    {
        coursename=[select id, name,Course_Group__c,Course_Sub_Group__c,Centre_Code__c,Course_Group_Order__c,Course_Sub_Group_Order__c,Course_Order__c from Master_Course__c where Centre_Code__c =:centrecode and Course_Group__c =:mcobj.Course_Group__c and Course_Sub_Group__c =:mcobj.Course_Sub_Group__c order by name ASC];
        Map<String,Integer> coursenamemap = new Map<String,Integer>();
        system.debug('entered line 69');
        for(Master_Course__c mc : coursename)
        {
            if(coursenamemap.isEmpty())
            {
                mc.Course_Order__c=1;
                num=mc.Course_Order__c.intValue();
                coursenamemap.put(mc.name,mc.Course_Order__c.intValue());
            }
            
            else if(!coursenamemap.isEmpty())
            {
                if(coursenamemap.containskey(mc.name))
                {
                    mc.Course_Order__c = coursenamemap.get(mc.name);
                    num=mc.Course_Order__c.intValue();
                    
                }
                else
                {
                    num++;
                    mc.Course_Order__c=num;
                    coursenamemap.put(mc.name,mc.Course_Order__c.intValue());
                }
            }
        }
    update coursename;
    }
    
}