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
Jagadeesh AdaveniJagadeesh Adaveni 

Unable to Delete Records using APEX????

Hi All,

I have written one Apex controller in that i wrote logic for delete and update. Problem here is am unable to delete records.
public class logView3Controller {

   
    public Boolean searched { get; set; }
   
    public List<Weeks__c> weekList = Weeks__c.getAll().values();
    public Map<Integer, Weeks__c> weekMap = new Map<Integer, Weeks__c>();
    public Map<String, Integer> weekMapGetIntWithWeek = new Map<String, Integer>();    
    public Map<String, Subjects_and_Levels__c> subjectLevelMap =  Subjects_and_Levels__c.getAll();
    public List<Subjects_and_Levels__c> subjectLevelList = subjectLevelMap.values();
    public Map<String, Subjects_and_Levels__c> levelMap = new Map<String, Subjects_and_Levels__c>();
       
    public Date StartDate {get;set;}
    public Date EndDate {get;set;}
    public String selectedLocation {get;set;}
    public String selectedDay {get;set;}
    public List<Log_Book__c> logBookEntries {get;set;}
    public List<studentsWithWeeks> studentsWithWeeksList {get;set;} 
    public studentsWithWeeks newSWW {get;set;}
    public String domain {get;set;}
    public List<integer> indexNums {get;set;}
    public List<String> weekTableHeader {get;set;}
    public List<String> subjectTableHeader {get;set;}
    
    public  List<Log_Book__c> relatedLogs{get;set;}
    
    //Jagadeesh
    public String selectedTeacher{get;set;}
    public String selectedDays{get;set;}
    
 
    public Id recordToUpdateId {get;set;} 
    public Id recordToUpdateIdStudent {get;set;} 
    
    
    public log_Book__c logObj {get;set;}
    public Student__c studentObj {get;set;}
    public boolean displayPopup {get; set;}
    public boolean displayPopupStudent {get; set;}
    public String exportToExcelURL {get;set;}
    public log_Book__c newLevel{get;set;}
    public log_Book__c newWeek{get;set;}
    List<Log_Book__c> lbjump{get;set;}
    // 2.  a,b,c,d - a,j,k,l,m - changing the complete series
    // Written by Jagadeesh(New code for skip records) 
    public List<Log_Book__c> jump{get;set;}
    public Log_Book__c jump1{get;set;}
    public List<Log_Book__c> lblist{get;set;}
    
     List<Log_Book__c> updateLogs = new List<Log_Book__c>();
     
     
      public logView3Controller () 
      {    
        domain = ApexPages.currentPage().getHeaders().get('Host'); 
        //exportToExcelURL = '/apex/logView3ExportToExcel?startDate='+startDate+'&endDate='+endDate+'&selectedLocation='+selectedLocation;
        exportToExcelURL = '/apex/logView3ExportToExcel?startDate='+startDate+'&endDate='+endDate+'&selectedLocation='+selectedLocation+'&selectedTeacher='+selectedTeacher;
        weekTableHeader = new List<String>();
        relatedLogs = new List<Log_book__c>();
        searched = false;
        
      
     }
      public String getEnglishColor() {
        return Colr;
      }
   
    public PageReference doUpdateLogObj2()
    {  
      
        String lv =  logObj.Week__c.split('-')[0];
       if(logObj.Subject__c == 'Math' && logObj.Level__c == 'Level 5B' && Integer.valueOf(lv) > 17){
           
          logObj.Week__c.addError('For Math Level 5B week should not exceed 17');
            return null;
        }
        system.debug('hii');
      
        relatedLogs = [SELECT Id, Name, Color_Code__c, Comment_on_LogBook__c, Student__c, Student__r.Id, Student__r.Name, Student__r.Last_Name__c, Subject__c, Level__c, Week__c, Week_Day__c, Class_Scheduled_Date__c, Student__r.Location__r.Name FROM Log_Book__c WHERE Student__r.Id =: logObj.Student__r.Id AND Subject__c =: logObj.Subject__c AND Class_Scheduled_Date__c >=: logObj.Class_Scheduled_Date__c and isSkipped__c=false];
        System.debug(' relatedLogs.Size()'+ relatedLogs.Size());
       
        Log_Book__c lb = new Log_Book__c();
        
        Integer levelOrder = Integer.valueof(subjectLevelMap.get(logObj.Subject__c +':'+logObj.Level__c).Order__c);
        Integer weekOrder;
            System.Debug('levelOrder :' + levelOrder);
            System.Debug('weekList :' + weekList);
            for(Weeks__c week : weekList)
            {
                weekMap.put((Integer)week.Order__c, week);
                weekMapGetIntWithWeek.put(week.Name, (Integer)week.Order__c);
            }
            System.Debug('weekMap :' + weekMap);
            System.Debug('weekMapGetIntWithWeek :'+ weekMapGetIntWithWeek);
            for(Subjects_and_Levels__c level: subjectLevelList)
            {
                levelMap.put(level.subject__c+Integer.valueof(level.Order__c), level);
            }
            System.Debug('levelMap :' + levelMap);
          Integer totalLevels = 0;
          if(logObj.Subject__c == 'English')
            totalLevels = 16;
          else if(logObj.Subject__c == 'Abacus')
            totalLevels = 11;
          else if(logObj.Subject__c == 'Math')
            totalLevels = 14;
          else if(logObj.Subject__c == 'G.K')
            totalLevels = 3;
         
        System.Debug('Total Logs :'+ relatedLogs.Size());
        lb = logObj.clone(false, true, false, false);
        updateLogs.add(lb);
        
        for(Integer i=1; i<relatedLogs.Size(); i++)
        {
                lb = new Log_Book__c();
                
                System.Debug('lblblblblblblb :' + lb);
                
                lb = updateLogs[i-1].clone(false, true, false, false);
                weekOrder = Integer.ValueOf(weekMapGetIntWithWeek.get(lb.Week__c));
                System.Debug('weekOrder : ' + weekOrder);                
                lb.Class_Scheduled_Date__c = lb.Class_Scheduled_Date__c.addDays(7);
                
                System.Debug('weekMapGetIntWithWeek.get(lb.Week__c) :'+ weekMapGetIntWithWeek.get(lb.Week__c));
                System.Debug('weekMapGetIntWithWeek.get(lb.Week__c)+i :'+ Integer.ValueOf(weekMapGetIntWithWeek.get(lb.Week__c))+i);
                if( weekOrder < 26 )
                {
                weekOrder = weekOrder+1;
                lb.Week__c = weekMap.get(weekOrder).Name;
                System.Debug('@@@@@@ lb.Week__c = ' + lb.Week__c);
                }
                else
                {
                  if(lb.week__c == '26-Z')
                  {
                    if(levelOrder < totalLevels)
                    {
                        levelOrder = levelOrder +1;
                        System.Debug('lb.Subject__c+levelOrder : '+ lb.Subject__c+levelOrder);
                        lb.level__c = levelMap.get(lb.Subject__c+levelOrder).Level__c;
                        lb.Week__c = '1-A';
                    
                    }
                  
                  }
                    else
                    if(lb.Subject__c == 'Math' && lb.Level__c == 'Level 5B' && lb.Week__c == '17-Q')
                    {
                        if(levelOrder != null && levelOrder < totalLevels){
                        
                            levelOrder = levelOrder +1;
                        
                         lb.level__c = levelMap.get(lb.Subject__c+levelOrder).Level__c;
                         lb.Week__c = '1-A';
                           
                        
                        
                        }
                    }
                    
                    else
                    {
                    i = relatedLogs.Size();
                    
                    }
                }
           
                 System.Debug('lblblblblblblb :' + lb);
                
                        
                updateLogs.add(lb);
                System.Debug('updateLogs : '+ updateLogs);        
        }
        
         delete relatedLogs;
         update updateLogs;
      
           
         //insertLogs();
              
        System.debug('@@@@@updated logs@@@'+updateLogs.size()+'----------->'+updateLogs[0]);
        
        displayPopup = false;
      
       return null;      
    }
}

Thanks,
A.Jagadeesh
sfdcsushilsfdcsushil
whats the error? 
Jagadeesh AdaveniJagadeesh Adaveni
i am  not getting error
records are not getting deleted but updating
Rahul Kumar 151Rahul Kumar 151
Using one filed to delete the recrod  ..........

relatedLogs = [SELECT Id FROM Log_Book__c WHEREStudent__r.Id =: logObj.Student__r.Id AND Subject__c =: logObj.Subject__c ANDClass_Scheduled_Date__c >=: logObj.Class_Scheduled_Date__c and isSkipped__c=false];


 
Jagadeesh AdaveniJagadeesh Adaveni
Only one field is enough?
Jagadeesh AdaveniJagadeesh Adaveni
Getting following error if i use your query..

System.DmlException: Update failed. First exception on row 0; first error: MISSING_ARGUMENT, Id not specified in an update call: []
Error is in expression '{!doUpdateLogObj2}' in component <apex:commandButton> in page logview3: Class.logView3Controller.doUpdateLogObj2: line 177, column 1
Class.logView3Controller.doUpdateLogObj2: line 177, column 1
Mahesh DMahesh D
Hi Jagadeesh,

Please look into the code "updateLogs" is not really a update call. I think it contains the new cloned records. Please change it to either insert orelse upsert.

Regards,
Mahesh
Jagadeesh AdaveniJagadeesh Adaveni
observe my image in that i have both old and new records are there. i need to delete old records.

User-added image

highlited records should delete.
Jagadeesh AdaveniJagadeesh Adaveni
even i put upsert also but didn't delete
 
Rahul Kumar 151Rahul Kumar 151
yeah Jagadeesh only one Field is Sufficent to Fired Delete Command
its working  
Mahesh DMahesh D
What was the error you are getting after changing the code to upsert.
Rahul Kumar 151Rahul Kumar 151
   relatedLogs = [SELECT Id, Name, Color_Code__c, Comment_on_LogBook__c, Student__c, Student__r.Id, Student__r.Name, Student__r.Last_Name__c, Subject__c, Level__c, Week__c,Week_Day__c, Class_Scheduled_Date__c, Student__r.Location__r.Name FROM Log_Book__c WHEREStudent__r.Id =: logObj.Student__r.Id AND Subject__c =: logObj.Subject__c ANDClass_Scheduled_Date__c >=: logObj.Class_Scheduled_Date__c and isSkipped__c=false];

Check your Query First........................
 
Jagadeesh AdaveniJagadeesh Adaveni

yeah Query is alright Rahul,
Nothing to change query

Jagadeesh AdaveniJagadeesh Adaveni
Hi Mahesh,

Am not getting any error if i use upsert.
old records are not getting deleted 
Mahesh DMahesh D
Add a debug before and after the delete and see what it( "relatedLogs") contains.
Jagadeesh AdaveniJagadeesh Adaveni
Hi Mahesh,

        System.debug('--->related logs are--->'+relatedLogs);
         delete relatedLogs;
         System.debug('--->related logs are after delete--->'+relatedLogs);

those statements are not getting executed.
Mahesh DMahesh D
Hi Jagadeesh,

Then we have to review the whole code by adding the debug msgs appropriately.
If possible send us the debug log so that I can analyse it and give you a better answer.

Regards,
Mahesh
Jagadeesh AdaveniJagadeesh Adaveni
Hi Mahesh,

I hope trigger is stoping the delete statement,
I have after update trigger on that object, if i remove that it is working.

Could you give solution for this.
Mahesh DMahesh D
Hi Jagadeesh,

Then we have to see the update trigger and analyse why it is giving the error.

Regards,
Mahesh
Jagadeesh AdaveniJagadeesh Adaveni
trigger generateLogBooks on Subject_Registered__c (after insert,after update) {
 static List<Log_Book__c> lbc;
    if(trigger.isAfter){
        if(triggerHelperClass.isRunning == true){
            triggerHelperClass.isRunning = false;
               if(trigger.isUpdate){
                Map<id,Subject_Registered__c>  src = trigger.oldMap;
                lbc = [Select id,Level__c,Week__c,isSkipped__c, Name,Subjects_Registered__c from Log_Book__c where Subjects_Registered__c =:src.keyset() AND isSkipped__c=false];
                system.debug('222: '+lbc.size());
                if(lbc.size()==0){                 
                     if(triggerHelperClass.forUpdate==true){
                                              
                     List<Log_Book__c> lb = [Select id,Level__c,Week__c,isSkipped__c, Name,Subjects_Registered__c from Log_Book__c where Subjects_Registered__c =:src.keyset() and isSkipped__c=false];
                     system.debug(' list :'+lb);
                     triggerHelperClass.forUpdate=false;
                     triggerHelperClass.isRunning = false; 
                     delete lb;
                    }
                 }
                 if(lbc.size()>0)
                   triggerHelperClass.isRunning = true;
                   else
                   triggerHelperClass.isRunning = false;             
             }
      
     if(triggerHelperClass.isRunning == false){  
    // public Log_Book__c lb{get;set;} 
    //Get the Weeks custom setting values
    List<Weeks__c> weekList = Weeks__c.getAll().values();
    system.debug('week list :'+weeklist);
    
    //Get the Subject and Levels custom setting values
    Map<String, Subjects_and_Levels__c> subjectLevelMap =  Subjects_and_Levels__c.getAll();
    List<Subjects_and_Levels__c> subjectLevelList = subjectLevelMap.values();
    system.debug('sub and levels :'+subjectLevelList);
    system.debug('sub levels map:'+subjectLevelMap);
    
     Map<String, Subjects_Levels_and_Weeks__c> subjectLevelweekMap =  Subjects_Levels_and_Weeks__c.getAll();
     system.debug('````'+subjectLevelweekMap);
    List<Subjects_Levels_and_Weeks__c> subjectLevelweekList = subjectLevelweekMap.values();
    system.debug('~~~~'+subjectLevelweekList);

    //Declare variables
    List<Log_Book__c> newLogBooks = new List<Log_Book__c>();    
    List<Log_Book__c> newLogBooksToInsert = new List<Log_Book__c>();    
    Map<Integer, Weeks__c> weekMap = new Map<Integer, Weeks__c>();
    system.debug('week map :'+weekMap);
    
    Map<String, Subjects_and_Levels__c> levelMap = new Map<String, Subjects_and_Levels__c>();
    system.debug('level map :'+levelMap);
    
    Map<String, Subjects_Levels_and_Weeks__c> levelweekMap = new Map<String, Subjects_Levels_and_Weeks__c>();
   system.debug('123456789'+levelweekMap);
   
    for(Weeks__c week : weekList)
    {
        weekMap.put((Integer)week.Order__c, week);
    }
    
    //Create map for subject and levels
    for(Subjects_and_Levels__c level: subjectLevelList)
    {
     //   levelMap = new Map<String, Subjects_and_Levels__c>();
        levelMap.put(level.subject__c+Integer.valueof(level.Order__c), level);
    }

    //Outer most for loop - cover all the admissions
    for(Subject_Registered__c sr : Trigger.New)
    {
        system.debug('sub reg :'+sr);
        //Variable declaration
        Integer logBookOrder = 0;
        Integer totalLevels = 0;
        Date d;
        Integer logBookCount = 0;
        
        
        //Get the level order for the subject
        Integer levelOrder = Integer.valueof(subjectLevelMap.get(sr.subject__c +':'+sr.Level__c).Order__c);
        system.debug('@@@@@@@@@@@@@@@@@@'+levelOrder);
        
        //   Integer levelOrder = 10;
        //Assign the date of the select date of the admission to d variable
        d = sr.Select_Date__c;
        
        //Set the maximum level for different subjects
        if(sr.Subject__c == 'English')
            totalLevels = 16;
        else if(sr.Subject__c == 'Abacus')
            totalLevels = 11;
        else if(sr.Subject__c == 'Math')
            totalLevels = 14;
        else if(sr.Subject__c == 'G.K')
            totalLevels = 3;
              
        String[] weekLevels = sr.Week__c.split('-');
        Integer weekLevel = Integer.valueof(weekLevels[0]);
        
        integer noOfWeeks=27;
            if(sr.Subject__c == 'Math' && sr.Level__c == 'Level 5B')
            {
              system.debug('math with level 5B');
              noOfWeeks = 18;
       
            }

        //Second for-loop for level
       Log_Book__c lb;
    
        for(Integer i=levelOrder; i<totalLevels+1; i++)
        {
            //Third for loop for weeks
            if(d < Date.Today().addDays(64) || logBookCount < noOfWeeks-1)
            {
               
             for(Integer j=weekLevel; j<noOfWeeks; j++)
             {    system.debug('with in the loop :'+noOfWeeks);
                if(d < Date.Today().addDays(64)  || logBookCount <= noOfWeeks-1)
                {
                    logBookOrder = logBookOrder+1;
                    lb = new Log_Book__c();
                  
                  // String slwString1=sr.subject__c+':'+sr.Level__c+':'+ sr.Week__c;
                       String slwString=sr.subject__c+':'+levelMap.get(sr.subject__c+levelOrder).Level__c+':'+weekMap.get(weekLevel).name;
                       
                   Subjects_Levels_and_Weeks__c slw=Subjects_Levels_and_Weeks__c.getinstance(slwString);
                   
               
                           
                     if(slw!=null)
                    {                          
                            lb.isExam__c=true;
                            //lb.isNovel__c=true;
                            //lb.Exam__c=slw.Exam__c;
                        
                    //system.debug('""""""'+lb.Exam__c+'subject'+sr.subject__c+'level'+levelMap.get(sr.subject__c+levelOrder).Level__c+'week'+weekMap.get(weekLevel).name);
                    
                    }else
                    {
                    lb.isExam__c=false;
                    //lb.isNovel__c=true;
                    //system.debug('[[[[['+lb.isExam__c+'subject'+sr.subject__c+'level'+levelMap.get(sr.subject__c+levelOrder).Level__c+'week'+weekMap.get(weekLevel).name);
                    }
                   
                    lb.Student__c = sr.Student__c;
                    lb.subject__c = sr.subject__c;
                    lb.Level__c = levelMap.get(sr.subject__c+levelOrder).Level__c;
                    lb.week__c = weekMap.get(weekLevel).name;
                    lb.Order__c = logBookOrder;
                    lb.Subjects_Registered__c = sr.id;
                   // lb.Exam__c = 
                     
                   
                    //For first log the select date is the class date. For other logs the class date will add 7 days more
                    
                    if(sr.Week__c == lb.week__c && sr.level__c == lb.level__c)
                    {
                        lb.Class_Scheduled_Date__c = sr.Select_Date__c;
                    }
                    else
                    {
                        system.debug('in else condition'+d);
                        d = d.addDays(7);
                        lb.Class_Scheduled_Date__c = d;
                    }   
                    
                    
                    //Add the logbook to the list of log books
                    newLogBooks.add(lb);
                                             
                    //Change it to the next week
                    weekLevel++;
                    logBookCount++;
                    
           
                  }
                  
             }  
             
           
                  if(lb.subject__c=='Math' && lb.Level__c=='Level 5A' && lb.Week__c=='26-Z'){
                      noOfWeeks=18;
                     system.debug('Hii');
                  }
                  //jagadish
                                      
            //Change it to the next level
            levelOrder++;
            logBookCount++;
            //Reset the week to 1 for the new level
            weekLevel = 1;
                                    
            }
                            
        }
                       
    }
 //Insert the log books
    if(newLogBooks.size() > 0)
    {
        for(Integer i=0; i<newLogBooks.size(); i++)
        {
            if(newLogBooks[i].Class_Scheduled_Date__c >= Date.Today())
            {
                newLogBooks[i].id=null;
                newLogBooksToInsert.add(newLogBooks[i]);
            }
        }
    }
    if(newLogBooksToInsert.size() > 0)
    {
        for(Integer i=0; i<newLogBooksToInsert.size(); i++)
        {
            
                newLogBooksToInsert[i].id=null;
                
        }
    }
    
  //  if (test.IsRunningTest()==false)
    if(newLogBooksToInsert.size() > 0)
    triggerHelperClass.isRunning=false;
    system.debug('after boolean value :'+triggerHelperClass.isRunning);
        insert newLogBooksToInsert;
 
            }
        }
      
    }
}
This is my trigger.
After adding after update trigger i am unable to delete my old records.
Could you please see the code
 
Mahesh DMahesh D
Please keep the trigger active and comment the last insert statement(224 line).
Test it and see the result. 
Jagadeesh AdaveniJagadeesh Adaveni
in trigger also i need insert statement
Mahesh DMahesh D
Just to Test whether it is causing the error or not.
Jagadeesh AdaveniJagadeesh Adaveni
Yes Mahesh, if i put insert statement in comments it's working fine but i don't want to put in comment.
could you please give any suggestions.
Mahesh DMahesh D
Ok Now we found that the insert is giving a problem right. 

Do we have any triggers on that object, if yes then provide those here and also try inactivating them and naildown which trigger is causing the issue.

Regards,
Mahesh
Jagadeesh AdaveniJagadeesh Adaveni
trigger generateLogBooks on Subject_Registered__c (after insert,after update) {
 static List<Log_Book__c> lbc;
    if(trigger.isAfter){
        if(triggerHelperClass.isRunning == true){
            triggerHelperClass.isRunning = false;
               if(trigger.isUpdate){
                Map<id,Subject_Registered__c>  src = trigger.oldMap;
                lbc = [Select id,Level__c,Week__c,isSkipped__c, Name,Subjects_Registered__c from Log_Book__c where Subjects_Registered__c =:src.keyset() AND isSkipped__c=false];
                system.debug('222: '+lbc.size());
                if(lbc.size()==0){                 
                     if(triggerHelperClass.forUpdate==true){
                                              
                     List<Log_Book__c> lb = [Select id,Level__c,Week__c,isSkipped__c, Name,Subjects_Registered__c from Log_Book__c where Subjects_Registered__c =:src.keyset() and isSkipped__c=false];
                     system.debug(' list :'+lb);
                     triggerHelperClass.forUpdate=false;
                     triggerHelperClass.isRunning = false; 
                     delete lb;
                    }
                 }
                 if(lbc.size()>0)
                   triggerHelperClass.isRunning = true;
                   else
                   triggerHelperClass.isRunning = false;             
             }
      
     if(triggerHelperClass.isRunning == false){  
    // public Log_Book__c lb{get;set;} 
    //Get the Weeks custom setting values
    List<Weeks__c> weekList = Weeks__c.getAll().values();
    system.debug('week list :'+weeklist);
    
    //Get the Subject and Levels custom setting values
    Map<String, Subjects_and_Levels__c> subjectLevelMap =  Subjects_and_Levels__c.getAll();
    List<Subjects_and_Levels__c> subjectLevelList = subjectLevelMap.values();
    system.debug('sub and levels :'+subjectLevelList);
    system.debug('sub levels map:'+subjectLevelMap);
    
     Map<String, Subjects_Levels_and_Weeks__c> subjectLevelweekMap =  Subjects_Levels_and_Weeks__c.getAll();
     system.debug('````'+subjectLevelweekMap);
    List<Subjects_Levels_and_Weeks__c> subjectLevelweekList = subjectLevelweekMap.values();
    system.debug('~~~~'+subjectLevelweekList);

    //Declare variables
    List<Log_Book__c> newLogBooks = new List<Log_Book__c>();    
    List<Log_Book__c> newLogBooksToInsert = new List<Log_Book__c>();    
    Map<Integer, Weeks__c> weekMap = new Map<Integer, Weeks__c>();
    system.debug('week map :'+weekMap);
    
    Map<String, Subjects_and_Levels__c> levelMap = new Map<String, Subjects_and_Levels__c>();
    system.debug('level map :'+levelMap);
    
    Map<String, Subjects_Levels_and_Weeks__c> levelweekMap = new Map<String, Subjects_Levels_and_Weeks__c>();
   system.debug('123456789'+levelweekMap);
   
    for(Weeks__c week : weekList)
    {
        weekMap.put((Integer)week.Order__c, week);
    }
    
    //Create map for subject and levels
    for(Subjects_and_Levels__c level: subjectLevelList)
    {
     //   levelMap = new Map<String, Subjects_and_Levels__c>();
        levelMap.put(level.subject__c+Integer.valueof(level.Order__c), level);
    }

    //Outer most for loop - cover all the admissions
    for(Subject_Registered__c sr : Trigger.New)
    {
        system.debug('sub reg :'+sr);
        //Variable declaration
        Integer logBookOrder = 0;
        Integer totalLevels = 0;
        Date d;
        Integer logBookCount = 0;
        
        
        //Get the level order for the subject
        Integer levelOrder = Integer.valueof(subjectLevelMap.get(sr.subject__c +':'+sr.Level__c).Order__c);
        system.debug('@@@@@@@@@@@@@@@@@@'+levelOrder);
        
        //   Integer levelOrder = 10;
        //Assign the date of the select date of the admission to d variable
        d = sr.Select_Date__c;
        
        //Set the maximum level for different subjects
        if(sr.Subject__c == 'English')
            totalLevels = 16;
        else if(sr.Subject__c == 'Abacus')
            totalLevels = 11;
        else if(sr.Subject__c == 'Math')
            totalLevels = 14;
        else if(sr.Subject__c == 'G.K')
            totalLevels = 3;
              
        String[] weekLevels = sr.Week__c.split('-');
        Integer weekLevel = Integer.valueof(weekLevels[0]);
        
        integer noOfWeeks=27;
            if(sr.Subject__c == 'Math' && sr.Level__c == 'Level 5B')
            {
              system.debug('math with level 5B');
              noOfWeeks = 18;
       
            }

        //Second for-loop for level
       Log_Book__c lb;
    
        for(Integer i=levelOrder; i<totalLevels+1; i++)
        {
            //Third for loop for weeks
            if(d < Date.Today().addDays(64) || logBookCount < noOfWeeks-1)
            {
               
             for(Integer j=weekLevel; j<noOfWeeks; j++)
             {    system.debug('with in the loop :'+noOfWeeks);
                if(d < Date.Today().addDays(64)  || logBookCount <= noOfWeeks-1)
                {
                    logBookOrder = logBookOrder+1;
                    lb = new Log_Book__c();
                  
                  // String slwString1=sr.subject__c+':'+sr.Level__c+':'+ sr.Week__c;
                       String slwString=sr.subject__c+':'+levelMap.get(sr.subject__c+levelOrder).Level__c+':'+weekMap.get(weekLevel).name;
                       
                   Subjects_Levels_and_Weeks__c slw=Subjects_Levels_and_Weeks__c.getinstance(slwString);
                   
               
                           
                     if(slw!=null)
                    {                          
                            lb.isExam__c=true;
                            //lb.isNovel__c=true;
                            //lb.Exam__c=slw.Exam__c;
                        
                    //system.debug('""""""'+lb.Exam__c+'subject'+sr.subject__c+'level'+levelMap.get(sr.subject__c+levelOrder).Level__c+'week'+weekMap.get(weekLevel).name);
                    
                    }else
                    {
                    lb.isExam__c=false;
                    //lb.isNovel__c=true;
                    //system.debug('[[[[['+lb.isExam__c+'subject'+sr.subject__c+'level'+levelMap.get(sr.subject__c+levelOrder).Level__c+'week'+weekMap.get(weekLevel).name);
                    }
                   
                    lb.Student__c = sr.Student__c;
                    lb.subject__c = sr.subject__c;
                    lb.Level__c = levelMap.get(sr.subject__c+levelOrder).Level__c;
                    lb.week__c = weekMap.get(weekLevel).name;
                    lb.Order__c = logBookOrder;
                    lb.Subjects_Registered__c = sr.id;
                   // lb.Exam__c = 
                     
                   
                    //For first log the select date is the class date. For other logs the class date will add 7 days more
                    
                    if(sr.Week__c == lb.week__c && sr.level__c == lb.level__c)
                    {
                        lb.Class_Scheduled_Date__c = sr.Select_Date__c;
                    }
                    else
                    {
                        system.debug('in else condition'+d);
                        d = d.addDays(7);
                        lb.Class_Scheduled_Date__c = d;
                    }   
                    
                    
                    //Add the logbook to the list of log books
                    newLogBooks.add(lb);
                                             
                    //Change it to the next week
                    weekLevel++;
                    logBookCount++;
                    
           
                  }
                  
             }  
             
           
                  if(lb.subject__c=='Math' && lb.Level__c=='Level 5A' && lb.Week__c=='26-Z'){
                      noOfWeeks=18;
                     system.debug('Hii');
                  }
                  //jagadish
                                      
            //Change it to the next level
            levelOrder++;
            logBookCount++;
            //Reset the week to 1 for the new level
            weekLevel = 1;
                                    
            }
                            
        }
                       
    }
 //Insert the log books
    if(newLogBooks.size() > 0)
    {
        for(Integer i=0; i<newLogBooks.size(); i++)
        {
            if(newLogBooks[i].Class_Scheduled_Date__c >= Date.Today())
            {
                newLogBooks[i].id=null;
                newLogBooksToInsert.add(newLogBooks[i]);
            }
        }
    }
    if(newLogBooksToInsert.size() > 0)
    {
        for(Integer i=0; i<newLogBooksToInsert.size(); i++)
        {
            
                newLogBooksToInsert[i].id=null;
                
        }
    }
    
  //  if (test.IsRunningTest()==false)
    if(newLogBooksToInsert.size() > 0)
    triggerHelperClass.isRunning=false;
    system.debug('after boolean value :'+triggerHelperClass.isRunning);
        insert newLogBooksToInsert;
 
            }
        }
      
    }
}
this is the triiger