You need to sign in to do that
Don't have an account?
nikkey
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 1The 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.