You need to sign in to do that
Don't have an account?
nikkey
How to split the product data based on years and get the column value displayed in a table
Can any on help me out How to split the product data based on years and get the column value displayed in a table in a visual force page which is in a PDF format .With Code i could get the Total but the subtotal is not getting calculated correctly.
For Example :In the above table i got the data for the Year 2014 with their product names and quarter value displayed.Now when i add the data for the Year 2015 with their product names and in the quarter ,it gets added in the Year 2014 itself.
I get the o/p in this way
Any help very much appreciated.
For Example :In the above table i got the data for the Year 2014 with their product names and quarter value displayed.Now when i add the data for the Year 2015 with their product names and in the quarter ,it gets added in the Year 2014 itself.
I get the o/p in this way
ProductName Year Q1 Q2 Q3 Q4 Total BXRC-25e4000-F-04 2014 100 200 300 400 1000 BXRC-25e4000-F-23 2014 200 200 400 Subtotal ------------ 300 200 300 600 1400But Expected o/p is :
ProductName Year Q1 Q2 Q3 Q4 Total BXRC-25e4000-F-04 2014 100 200 300 400 1000 2015 100 100 BXRC-25e4000-F-23 2014 200 200 400 800 2015 200 200 Subtotal ------------ 400 200 700 800 2100Code :
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 subtotalofquantity{get;set;} Public Integer subtotalofamount{get;set;} Public Integer quarter1subtotal{get;set;} Public List<wrapperClass> disp_list {get;set;}{ subtotalofquantity=0; subtotalofamount=0; quarter1subtotal=0; // Integer tempsubtotalofquantity=0; // Integer tempsubtotalofamount=0; //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); } else { Quarter1.put(oppforecast.gmod__Product__r.Name, oppforecast.gmod__Quantity__c); Amount1.put(oppforecast.gmod__Product__r.Name,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(integer i=0;i<opflist.size();i++){ subtotalofquantity+= integer.valueOf(opflist[i].gmod__Quantity__c); // subtotalofquantity = tempsubtotalofquantity; subtotalofamount+= integer.valueOf(opflist[i]. gmod__Amount__c); //subtotalofamount =tempsubtotalofamount; Integer quarter1subtotalTemp = Integer.valueOf(opflist[i].gmod__Quantity__c); quarter1subtotal+=quarter1subtotalTemp; System.debug('qty@@@@@@@@@@@@@ ++ ' + subtotalofquantity); System.debug('amt############# ++ ' +subtotalofamount); System.debug('Qty%%%%%%%%%%% ++ ' +quarter1subtotal); //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; } } } } //End of Class
Any help very much appreciated.