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
nikkeynikkey 

Visualforce Error System.NullPointerException: Attempt to de-reference a null object

Can any one help me out with this Error as :
Visualforce Error System.NullPointerException: Attempt to de-reference a null object
    Class.QuoteContentController.<init>: line 435, column 1
The line of Error is :
Qrtr2QtyGrndTtl = 0 + Qty02 + Qty12 + Qty22;
CODE :
public with sharing class QuoteContentController {

      public Map<String,Decimal> PartMap{get;set;}
       
       public Map<string,Decimal> Quarter1{get;set;}
       
       public Map<string,Decimal> Quarter2{get;set;}
       
       public Map<string,Decimal> Quarter3{get;set;}
       
       public Map<string,Decimal> Quarter4{get;set;}
       
       public Map<string,Decimal> Amount1{get;set;}
       
       public Map<string,Decimal> Amount2{get;set;}
       
       public Map<string,Decimal> Amount3{get;set;}
        
       public Map<string,Decimal> Amount4{get;set;}
       
       public Competitor__c com{get;set;}

       public gmod__Opportunity_Forecast__c opflist{get;set;}

       public Id qId {get;set;}

       Public string all{get;set;}

//Declare a wrapper class  

       public class Wrapperclass{

 //custom wrapper datatype  

       Public string Name{get;set;}  
       Public string AccountType{get;set;}  
       Public date todaysDate{get;set;}  
       Public date Expected_Order_Date{get;set;}
       Public string Probability{get;set;}  
       Public string Internal_Comment{get;set;}  
       Public string External_Comment{get;set;}  

       Public string Segment{get;set;}  
       Public string Application{get;set;}  
       Public string Persona{get;set;}  
       Public string Geogrpahy{get;set;}  

       Public string PartNumbers{get;set;}  
       Public Decimal  Price{get;set;}  
       Public Decimal End_Customer_Price{get;set;}  
       Public Decimal Quantity {get;set;}  
       Public Decimal Total{get;set;}  

       Public string RFQ_justification{get;set;}  
       Public string Main_Customer_of_Account{get;set;}  
       Public string Bridgelux_competition_at_account{get;set;}
       Public string Geographic_regions_serviced{get;set;}  
       Public string Annual_lighting_revenue{get;set;}  
       Public string Annual_LED_revenue_or_percent{get;set;}  
       Public string Annual_purchases_of_LED_light_sources{get;set;}
       Public string Percent_of_LED_purchases_that_are_COB{get;set;}  
       Public string Other_information{get;set;}  

       Public string Product_Series{get;set;}  
       Public string Volume{get;set;} 
       Public string Date_Price_is_Valid{get;set;} 

       Public string gmod_Opportunity{get;set;}
       Public string gmod_Product{get;set;}
       Public Decimal gmod_Quantity{get;set;}
       Public Decimal gmod_Price{get;set;}
       Public Decimal gmod_Quarter{get;set;}
       Public Decimal gmod_Month{get;set;}
       Public Decimal gmod_Amount{get;set;}
       Public Decimal Actual_Price{get;set;}
       Public Decimal  gmod_Year{get;set;}
       Public Date gmod_date{get;set;}
       Public string gmod_Month_Text{get;set;}
       Public Date  Forecast_Date{get;set;}

      Public wrapperClass(){} 

  }

       Public QuoteContentController(){}

       Public QuoteContentController(ApexPages.StandardController controller) {

       qId=Apexpages.currentPage().getparameters().get('Id');

     
    }

       
       Public Integer Qrtr1QtyGrndTtl{get;set;}

       Public Integer Qrtr2QtyGrndTtl{get;set;}
       
       Public Integer Qrtr3QtyGrndTtl{get;set;}

       Public Integer Qrtr4QtyGrndTtl{get;set;}
       
     //  Public Integer QtyGrndTtl{get;set;}
       
       Public decimal Qrtr1AmtGrndTtl{get;set;}

       Public decimal Qrtr2AmtGrndTtl{get;set;}
       
       Public decimal Qrtr3AmtGrndTtl{get;set;}

       Public decimal Qrtr4AmtGrndTtl{get;set;}
       
     //  Public decimal AmtGrndTtl{get;set;}
       
       
        
      Public list<integer> QtyGrndTtl{get;set;}
     
      Public list<decimal> AmtGrndTtl{get;set;}

     
       Public List<wrapperClass> disp_list {get;set;}{

       
     
    integer Qrtr1QtyGrndTtl =  0;
    integer Qrtr2QtyGrndTtl =  0;
    integer Qrtr3QtyGrndTtl =  0;
    integer Qrtr4QtyGrndTtl =  0;
   // list<integer>QtyGrndTtl = new list<integer>();
     QtyGrndTtl = new list<integer>();

    decimal Qrtr1AmtGrndTtl =  0;
    decimal Qrtr2AmtGrndTtl =  0;
    decimal Qrtr3AmtGrndTtl =  0;
    decimal Qrtr4AmtGrndTtl =  0;
   // list<decimal>AmtGrndTtl = new list<decimal>();  
     AmtGrndTtl = new list<decimal>();
      //define constructor to instantiate the wrapper data type 

       disp_list=new list<wrapperclass>();

     //Query all the list 

     list<Quote> q =[select id ,Name ,QuoteNumber,Effective_Date__c ,Comments__c ,Quote.Opportunity.id, 
                    Quote.Opportunity.Probability ,Quote.Opportunity.AccSegment__c ,Quote.Opportunity.AccApplication__c,Quote.Opportunity.Persona__c,Quote.Opportunity.Region__c
                    from Quote where id=:apexpages.currentpage().getparameters().get('id')];

    

     Opportunity opp =[select id , Name, (select id, Quantity, product2id from OpportunityLineItems), probability, AccSegment__c from Opportunity where opportunity.Id =:q[0].opportunity.id];

    list<gmod__Opportunity_Forecast__c>  opflist = [Select id ,Name ,gmod__opportunity__r.id,gmod__Quantity__c,gmod__Price__c , gmod__Month__c,    gmod__date__c,  gmod__Quarter__c ,gmod__Amount__c ,Actual_Price__c ,gmod__Year__c ,gmod__Month_Text__c ,Forecast_Date__c,gmod__Product__r.Name ,gmod__opportunity__r.name from gmod__Opportunity_Forecast__c WHERE gmod__Product__c!=null and gmod__opportunity__r.id =:opp.id Order BY gmod__Year__c, gmod__Month__c asc]; 


       //Iterate through each list to extract the values and add it to the custom wrapper data type  
       
       
        PartMap = new Map<String,Decimal>();
        
      //  PartMapQuantity = new Map<String,Decimal>();
        
        Quarter1 = new Map<String,Decimal>();
        
        Quarter2 = new Map<String,Decimal>();
        
        Quarter3 = new Map<String,Decimal>();
        
        Quarter4 = new Map<String,Decimal>();
        
        Amount1 = new Map<String,Decimal>();
        
        Amount2= new Map<String,Decimal>();
        
        Amount3 = new Map<String,Decimal>();
        
        Amount4 = new Map<String,Decimal>();
        
        for(gmod__Opportunity_Forecast__c oppforecast : opflist)
        {
           
             if(oppforecast .gmod__Month_Text__c=='Jan' || oppforecast .gmod__Month_Text__c=='Feb'|| oppforecast.gmod__Month_Text__c=='Mar'  )
                  
                   {
                       if(Quarter1.containskey(oppforecast.gmod__Product__r.Name ))
                             {
                                  Quarter1.put(oppforecast.gmod__Product__r.Name,Quarter1.get(oppforecast.gmod__Product__r.Name) + oppforecast.gmod__Quantity__c);             
                                  Amount1.put(oppforecast.gmod__Product__r.Name,Amount1.get(oppforecast.gmod__Product__r.Name) + oppforecast.gmod__Amount__c);
                                  //PartMap.put(oppforecast.gmod__Product__c,PartMap.get(oppforecast.gmod__Product__c) + oppforecast.gmod__Quantity__c);
                                 // PartMap.put(oppforecast.gmod__Product__c,PartMap.get(oppforecast.gmod__Product__c) + oppforecast.gmod__Amount__c);  
                              }
                        else
                              {
       
                                 Quarter1.put(oppforecast.gmod__Product__r.Name, oppforecast.gmod__Quantity__c);
                                 Amount1.put(oppforecast.gmod__Product__r.Name,oppforecast.gmod__Amount__c);
                                // PartMap.put(oppforecast.gmod__Product__c, oppforecast.gmod__Quantity__c);
                                // PartMap.put(oppforecast.gmod__Product__c,oppforecast.gmod__Amount__c);
                                 
                                 wrapperclass w = new wrapperclass();
                                  
                                 w.gmod_Opportunity = oppforecast.gmod__Opportunity__r.Name;

                                 w.gmod_Product = oppforecast.gmod__Product__r.Name;

                                 w.gmod_Quantity =oppforecast.gmod__Quantity__c;

                                 w.gmod_Price=oppforecast.gmod__Price__c;

                                 w.Name =oppforecast.Name;

                                 w.gmod_Quarter=oppforecast.gmod__Quarter__c;

                                 w.gmod_Month=oppforecast.gmod__Month__c;

                                 w.gmod_Amount=oppforecast.gmod__Amount__c;

                                 w.Actual_Price=oppforecast.Actual_Price__c;

                                 w.gmod_Year=oppforecast.gmod__Year__c;

                                 w.gmod_date=oppforecast.gmod__date__c;

                                 w.gmod_Month_Text=oppforecast.gmod__Month_Text__c;

                                 w.Forecast_Date=oppforecast.Forecast_Date__c;
                 
                                 disp_list.add(w);
                            } 
                         }
                            
                 if(oppforecast.gmod__Month_Text__c=='Apr' ||oppforecast.gmod__Month_Text__c=='May'|| oppforecast.gmod__Month_Text__c=='June')
                                 
                          {
                      
                               if(Quarter2.containskey(oppforecast.gmod__Product__r.Name))
                                       {
                                           Quarter2.put(oppforecast.gmod__Product__r.Name,Quarter2.get(oppforecast.gmod__Product__r.Name) + oppforecast.gmod__Quantity__c);             
                                           Amount2.put(oppforecast.gmod__Product__r.Name,Amount2.get(oppforecast.gmod__Product__r.Name) + oppforecast.gmod__Amount__c);
                                        }
                              else
                                         {
       
                                            Quarter2.put(oppforecast.gmod__Product__r.Name, oppforecast.gmod__Quantity__c);
                                            Amount2.put(oppforecast.gmod__Product__r.Name,oppforecast.gmod__Amount__c);
                                          
                                      
                 
                                        }
                           }
                 if(oppforecast.gmod__Month_Text__c=='Jul' || oppforecast.gmod__Month_Text__c=='Aug'|| oppforecast.gmod__Month_Text__c=='Sept')
                  
                        {
                        
                              if(Quarter3.containskey(oppforecast.gmod__Product__r.Name))
                                      {
                                          Quarter3.put(oppforecast.gmod__Product__r.Name,Quarter3.get(oppforecast.gmod__Product__r.Name) + oppforecast.gmod__Quantity__c);             
                                          Amount3.put(oppforecast.gmod__Product__r.Name,Amount3.get(oppforecast.gmod__Product__r.Name) + oppforecast.gmod__Amount__c);
                                       }
                             else
                                       {
       
                                          Quarter3.put(oppforecast.gmod__Product__r.Name, oppforecast.gmod__Quantity__c);
                                          Amount3.put(oppforecast.gmod__Product__r.Name,oppforecast.gmod__Amount__c);
                                         
                 
                                    }
                            }
             if(oppforecast.gmod__Month_Text__c=='Oct' || oppforecast.gmod__Month_Text__c=='Nov'|| oppforecast.gmod__Month_Text__c=='Dec')
                      {
                          if(Quarter4.containskey(oppforecast.gmod__Product__r.Name))
                             {
                                      Quarter4.put(oppforecast.gmod__Product__r.Name,Quarter4.get(oppforecast.gmod__Product__r.Name) + oppforecast.gmod__Quantity__c);             
                                      Amount4.put(oppforecast.gmod__Product__r.Name,Amount4.get(oppforecast.gmod__Product__r.Name) + oppforecast.gmod__Amount__c);
                             }
                     else
                             {
       
                                      Quarter4.put(oppforecast.gmod__Product__r.Name, oppforecast.gmod__Quantity__c);
                                      Amount4.put(oppforecast.gmod__Product__r.Name,oppforecast.gmod__Amount__c);
                                     
                            }
 
                   }
              
        
        for (Quote qt :q){
             System.debug('Quote Size ++ '+q.size());
             System.debug('opp forcast ++ ' +opflist.size());
             
            // For(Year Yr: opflist.gmod__Year__c){ 
// could simply replace this with for(j=0, j<3, j++)
           
// but am showing what it represents and have assumed gmod__Year__c 
// is a year and not text. Adjust code accordingly.

    integer j = 0;
    
    for(j=0; j<3; j++){

    // replace oppforecast.gmod__Product__r.Name[i] with the product name string
    Integer Qty01 = Integer.valueOf(Quarter1.get(oppforecast.gmod__Product__r.Name));
    Integer Qty02 = Integer.valueOf(Quarter2.get(oppforecast.gmod__Product__r.Name));
    Integer Qty03 = Integer.valueOf(Quarter3.get(oppforecast.gmod__Product__r.Name));
    Integer Qty04 = Integer.valueOf(Quarter4.get(oppforecast.gmod__Product__r.Name));
    Integer Qty11 = Integer.valueOf(Quarter1.get(oppforecast.gmod__Product__r.Name));
    Integer Qty12 = Integer.valueOf(Quarter2.get(oppforecast.gmod__Product__r.Name));
    Integer Qty13 = Integer.valueOf(Quarter3.get(oppforecast.gmod__Product__r.Name));
    Integer Qty14 = Integer.valueOf(Quarter4.get(oppforecast.gmod__Product__r.Name));
    Integer Qty21 = Integer.valueOf(Quarter1.get(oppforecast.gmod__Product__r.Name));
    Integer Qty22 = Integer.valueOf(Quarter2.get(oppforecast.gmod__Product__r.Name));
    Integer Qty23 = Integer.valueOf(Quarter3.get(oppforecast.gmod__Product__r.Name));
    Integer Qty24 = Integer.valueOf(Quarter4.get(oppforecast.gmod__Product__r.Name));
    
    System.debug('qty@@@@@@@@@@@@@123 ++ ' + QtyGrndTtl);

    Qrtr1QtyGrndTtl = 0 + Qty01 + Qty11 + Qty21; //reset to zero each yr.
    Qrtr2QtyGrndTtl = 0 + Qty02 + Qty12 + Qty22;
    Qrtr3QtyGrndTtl = 0 + Qty03 + Qty13 + Qty23;
    Qrtr4QtyGrndTtl = 0 + Qty04 + Qty14 + Qty24;
    QtyGrndTtl[j] = Qrtr1QtyGrndTtl + Qrtr2QtyGrndTtl + Qrtr3QtyGrndTtl + Qrtr4QtyGrndTtl;
    
     System.debug('qty@@@@@@@@@@@@@ ++ ' + QtyGrndTtl);
            
         

    // replace oppforecast.gmod__Product__r.Name[i] with the product name string
    decimal amt01 = Amount1.get(oppforecast.gmod__Product__r.Name);
    decimal amt02 = Amount2.get(oppforecast.gmod__Product__r.Name);
    decimal amt03 = Amount3.get(oppforecast.gmod__Product__r.Name);
    decimal amt04 = Amount4.get(oppforecast.gmod__Product__r.Name);
    decimal amt11 = Amount1.get(oppforecast.gmod__Product__r.Name);
    decimal amt12 = Amount2.get(oppforecast.gmod__Product__r.Name);
    decimal amt13 = Amount3.get(oppforecast.gmod__Product__r.Name);
    decimal amt14 = Amount4.get(oppforecast.gmod__Product__r.Name);
    decimal amt21 = Amount1.get(oppforecast.gmod__Product__r.Name);
    decimal amt22 = Amount2.get(oppforecast.gmod__Product__r.Name);
    decimal amt23 = Amount3.get(oppforecast.gmod__Product__r.Name);
    decimal amt24 = Amount4.get(oppforecast.gmod__Product__r.Name);

    Qrtr1AmtGrndTtl = 0 + amt01 + amt11 + amt21; //reset to zero each yr.
    Qrtr2AmtGrndTtl = 0 + amt02 + amt12 + amt22;
    Qrtr3AmtGrndTtl = 0 + amt03 + amt13 + amt23;
    Qrtr4AmtGrndTtl = 0 + amt04 + amt14 + amt24;
    AmtGrndTtl[j] = Qrtr1AmtGrndTtl + Qrtr2AmtGrndTtl + Qrtr3AmtGrndTtl + Qrtr4AmtGrndTtl;
    
     System.debug('amt############# ++ ' +AmtGrndTtl);

    j++;

}

Decimal GrndAmtGrndTtl = AmtGrndTtl[0] + AmtGrndTtl[1] + AmtGrndTtl[2];
Integer GrndQtyGrndTtl = QtyGrndTtl[0] + QtyGrndTtl[1] + QtyGrndTtl[2]; 
             
             
             
         for(integer i=0;i<opflist.size();i++){
           
     
             
            
             
               //Instantiating the wrapper SObject 

                                        wrapperclass w = new wrapperclass();

           
                    //Assigning the wrapper variables from the SObject Fields in the database. 

                 w.gmod_Opportunity = opflist[i].gmod__Opportunity__r.Name;

                 w.gmod_Product = opflist[i].gmod__Product__r.Name;

                 w.gmod_Quantity =opflist[i].gmod__Quantity__c;

                 w.gmod_Price=opflist[i].gmod__Price__c;

                 w.Name =opflist[i].Name;

                 w.gmod_Quarter=opflist[i].gmod__Quarter__c;

                 w.gmod_Month=opflist[i].gmod__Month__c;

                 w.gmod_Amount=opflist[i]. gmod__Amount__c;

                 w.Actual_Price=opflist[i].Actual_Price__c;

                 w.gmod_Year=opflist[i].gmod__Year__c;

                 w.gmod_date=opflist[i].gmod__date__c;

                 w.gmod_Month_Text=opflist[i].gmod__Month_Text__c;

                 w.Forecast_Date=opflist[i].Forecast_Date__c; 

                
                              //Adding everthing to the List  


                            // w.name =qt.name;

                           //   disp_list.add(w);

                              // return disp_list;  
}

}
              }       
              }
         } //End of Class//
Any help very much appreciated.