-
ChatterFeed
-
0Best Answers
-
0Likes Received
-
0Likes Given
-
1Questions
-
0Replies
Yet another 'de-reference a null object post'
I am getting the annoying "Attempt to de-reference a null obect" error when trying to deploy a VF page and Class/Test Class. I have 100% code coverage on my test class and it functions perfectly in sandbox. I cannot seem to figure out where/why I am getting the error. Below is the code for both the class and test class. I am getting an error at line 64, 96, and 127 in the class.
public class ctrl_qliEstimatedSellFor { public list< QuoteLineItems__c > qli_List {get;set;} public List < SystemsOrOptions__c > soo_List {get;set;} private final Quotes__c qte_sObj; decimal pem {get;set;} decimal pf {get;set;} decimal se {get;set;} decimal GMNC {get;set;} decimal CostTotal {get;set;} decimal TravelCost {get;set;} decimal TravelCostTest {get;set;} decimal CommissionPercentage {get;set;} decimal SellForWoCommission {get;set;} decimal CommissionAmount {get;set;} decimal EstimatedSellForTotal {get;set;} public ctrl_qliEstimatedSellFor( ApexPages.StandardController stdController ){ this.qte_sObj = ( Quotes__c )stdController.getRecord(); qli_List = new list< QuoteLineItems__c >(); soo_List = new List <SystemsOrOptions__c > (); TravelCost = 0; TravelCostTest = 0; EstimatedSellForTotal = 0; for( QuoteLineItems__c q : [SELECT Id,Name, RelatedQuote__r.CommissionPercentageForCalculations__c, RelatedQuote__r.FinalCommissionAmount__c, Qty__c, FlowItemNumber__c, RelatedQuote__r.SellForPricewoCommission__c, RelatedQuote__c, Description2__c, ContributionCode__c, TotalCost__c, TaxCost__c, CustomerFacingPrice__c, SellForEstimated__c, RelatedQuote__r.GMNC__c, RelatedQuote__r.Name, SystemsOrOptions__r.CostOfTravel__c, PercentageOfCost__c, RelatedQuote__r.BaseOptionsEquipmentTotalCost__c, AdHocCost__c, AdHocSegments__c, Type__c, ProductType__c, SystemsOrOptions__r.MechanicalInstallationCost__c, SystemsOrOptions__r.ElectricalInstallationCost__c, SystemsOrOptions__r.StartupServicesCost__c, AdhocTotalCost__c FROM QuoteLineItems__c WHERE RelatedQuote__c = : qte_sObj.Id ORDER By Name ASC] ){ qli_List.add( q ); } for (SystemsOrOptions__c s : [SELECT Id, Name, CostOfTravel__c FROM SystemsOrOptions__c WHERE Quote__c = : qte_sObj.Id]){ soo_List.add(s); IF(s.CostofTravel__c != null){ TravelCostTest = (TravelCostTest + s.CostOfTravel__c); system.debug('TravelCostTest************************' + TravelCostTest); } else{ system.debug('Null Value in s.CostOfTravel ' + s.Id); } } Integer counter = [SELECT count() FROM QuoteLineItems__c WHERE RelatedQuote__c = : qte_sObj.Id]; for( QuoteLineItems__c qli : qli_List ){ if( qli.ContributionCode__c == '500M1' && qli.TotalCost__c != null){ TravelCost = 0; gmnc = qli.RelatedQuote__r.GMNC__c; pem = 0.065 * (qli.TotalCost__c+ (0.047* qli.TotalCost__c)); pf = 0.047 * qli.TotalCost__c; se = 0.132 * qli.TotalCost__c; qli.TaxCost__c = pem + pf + se; CommissionPercentage = qli.RelatedQuote__r.FinalCommissionAmount__c / qli.RelatedQuote__r.SellForPricewoCommission__c; //Quotes Gross Margin Net of Commission GMNC = qli.RelatedQuote__r.GMNC__c/100; CostTotal = qli.TotalCost__c + qli.TaxCost__c; TravelCost = (TravelCostTest * (qli.PercentageofCost__c/100)); SellForWoCommission = ((CostTotal + TravelCost) / (1-GMNC)); CommissionAmount = ((SellForWoCommission * CommissionPercentage) / (1-GMNC)); qli.SellForEstimated__c = SellForWoCommission + CommissionAmount; EstimatedSellForTotal = qli.SellForEstimated__c + EstimatedSellForTotal; system.debug('GMNC ' + GMNC); system.debug('PEM ' + pem); system.debug('SE ' + Se); system.debug('PF ' + Pf); system.debug('Cost Total ' + CostTotal); system.debug('TravelCost '+ TravelCost); system.debug('Estimated Sell For w/o Commission ' + SellForWoCommission); system.debug('Commission Amount ' + (SellForWoCommission * CommissionPercentage)); system.debug('Estimated Sell For ' + EstimatedSellForTotal); system.debug('QLI Percentage of Cost +' + qli.PercentageofCost__c); system.debug('Travel Cost Test ' + TravelCostTest); } } for( QuoteLineItems__c qli : qli_List ){ if(qli.ContributionCode__c == 'OEM1' && qli.TotalCost__c != null){ travelCost = 0; gmnc = qli.RelatedQuote__r.GMNC__c; pf = 0.047 * qli.TotalCost__c/2; pem = 0.065 * (qli.TotalCost__c + pf); se = 0.132 * qli.TotalCost__c; qli.TaxCost__c = (pem + pf + se); CommissionPercentage = qli.RelatedQuote__r.FinalCommissionAmount__c / qli.RelatedQuote__r.SellForPricewoCommission__c; system.debug('Commission Percentage' + CommissionPercentage); GMNC = qli.RelatedQuote__r.GMNC__c/100; CostTotal = qli.TotalCost__c + qli.TaxCost__c; TravelCost = (TravelCostTest * (qli.PercentageofCost__c/100)); SellForWoCommission = ((CostTotal + TravelCost) / (1-GMNC)); CommissionAmount = ((SellForWoCommission * CommissionPercentage) / (1-GMNC)); qli.SellForEstimated__c = SellForWoCommission + CommissionAmount; EstimatedSellForTotal = qli.SellForEstimated__c + EstimatedSellForTotal; system.debug('GMNC ' + GMNC); system.debug('PEM ' + pem); system.debug('SE ' + Se); system.debug('PF ' + Pf); system.debug('Cost Total ' + CostTotal); system.debug('TravelCost '+ TravelCost); system.debug('Estimated Sell For w/o Commission ' + SellForWoCommission); system.debug('Commission Amount ' + (SellForWoCommission * CommissionPercentage)); system.debug('Estimated Sell For ' + EstimatedSellForTotal); system.debug('QLI Percentage of Cost +' + qli.PercentageofCost__c); system.debug('Travel Cost Test ' + TravelCostTest); } } for( QuoteLineItems__c qli : qli_List ){ if(qli.ContributionCode__c == 'CTM1' && qli.TotalCost__c != null){ TravelCost = 0; gmnc = qli.RelatedQuote__r.GMNC__c; pf = 0.047 * qli.TotalCost__c/2; pem = 0.065 * (pf); qli.TaxCost__c = pem + pf; CommissionPercentage = qli.RelatedQuote__r.FinalCommissionAmount__c / qli.RelatedQuote__r.SellForPricewoCommission__c; //Quotes Gross Margin Net of Commission GMNC = qli.RelatedQuote__r.GMNC__c/100; CostTotal = qli.TotalCost__c + qli.TaxCost__c; TravelCost = (TravelCostTest * (qli.PercentageofCost__c/100)); SellForWoCommission = ((CostTotal + TravelCost) / (1-GMNC)); CommissionAmount = ((SellForWoCommission * CommissionPercentage) / (1-GMNC)); qli.SellForEstimated__c = SellForWoCommission + CommissionAmount; EstimatedSellForTotal = qli.SellForEstimated__c + EstimatedSellForTotal; system.debug('GMNC ' + GMNC); system.debug('PEM ' + pem); system.debug('SE ' + Se); system.debug('PF ' + Pf); system.debug('Cost Total ' + CostTotal); system.debug('TravelCost '+ TravelCost); system.debug('Estimated Sell For w/o Commission ' + SellForWoCommission); system.debug('Commission Amount ' + (SellForWoCommission * CommissionPercentage)); system.debug('Estimated Sell For ' + EstimatedSellForTotal); system.debug('QLI Percentage of Cost +' + qli.PercentageofCost__c); system.debug('Travel Cost Test ' + TravelCostTest); } } } }
@IsTest public class ctrl_qliEstimatedSellFor_test { static testMethod void Test1(){ RFQ__c rfqObj = new RFQ__c(); insert rfqObj; Account a = new Account(); a.Name = 'Name'; insert a; Opportunity opp = new Opportunity(); opp.StageName = 'Developing Proposal'; opp.Name = 'test'; opp.CloseDate = system.today(); insert opp; Quotes__c q = new Quotes__c(); q.RFQ__c = rfqObj.Id; q.Name = 'test'; q.Opportunity__c = opp.Id; q.QuoteType__c = 'Budgetary'; q.MarginPercentage__c = 0.32; q.SetSellForPrice__c = 2000000; q.CommissionCalculationType__c = 'Shick Standard'; q.FinalCommissionAmountPB__c = 0; insert q; SystemsOrOptions__c soo = new SystemsOrOptions__c(); soo.Quote__c = q.Id; soo.Locked__c = false; soo.Name = 'Test'; soo.MechanicalInstallationCost__c = 0; soo.ElectricalInstallationCost__c = 0; soo.StartUpServicesCost__c = 0; insert soo; QuoteLineItems__c qli = new QuoteLineItems__c(); qli.RelatedQuote__c = q.Id; qli.SystemsOrOptions__c = soo.Id; qli.ClonedItem__c = false; qli.AdHocCost__c = 4000; qli.Qty__c = 100; qli.AdHocSegments__c = 'System Custom'; qli.Type__c = 'Custom'; qli.ProductType__c = 'Ad-Hoc'; insert qli; system.test.startTest(); ApexPages.StandardController sc = new ApexPages.StandardController( q ); ctrl_qliEstimatedSellFor ctrl = new ctrl_qliEstimatedSellFor( sc ); system.test.stopTest(); } static testMethod void Test2(){ RFQ__c rfqObj = new RFQ__c(); insert rfqObj; Account a = new Account(); a.Name = 'Name'; insert a; Opportunity opp = new Opportunity(); opp.StageName = 'Developing Proposal'; opp.Name = 'test'; opp.CloseDate = system.today(); insert opp; Quotes__c q = new Quotes__c(); q.RFQ__c = rfqObj.Id; q.Name = 'test'; q.Opportunity__c = opp.Id; q.QuoteType__c = 'Budgetary'; q.MarginPercentage__c = 0.32; q.SetSellForPrice__c = 2000000; q.CommissionCalculationType__c = 'Shick Standard'; q.FinalCommissionAmountPB__c = 0; insert q; SystemsOrOptions__c soo = new SystemsOrOptions__c(); soo.Quote__c = q.Id; soo.Locked__c = false; soo.Name = 'Test'; soo.MechanicalInstallationCost__c = 0; soo.ElectricalInstallationCost__c = 0; soo.StartUpServicesCost__c = 0; insert soo; QuoteLineItems__c qli = new QuoteLineItems__c(); qli.RelatedQuote__c = q.Id; qli.SystemsOrOptions__c = soo.Id; qli.ClonedItem__c = false; qli.AdHocCost__c = 4000; qli.Qty__c = 100; qli.AdHocSegments__c = 'OEM'; qli.Type__c = 'Custom'; qli.ProductType__c = 'Ad-Hoc'; insert qli; system.test.startTest(); ApexPages.StandardController sc = new ApexPages.StandardController( q ); ctrl_qliEstimatedSellFor ctrl = new ctrl_qliEstimatedSellFor( sc ); system.test.stopTest(); } static testMethod void Test3(){ RFQ__c rfqObj = new RFQ__c(); insert rfqObj; Account a = new Account(); a.Name = 'Name'; insert a; Opportunity opp = new Opportunity(); opp.StageName = 'Developing Proposal'; opp.Name = 'test'; opp.CloseDate = system.today(); insert opp; Quotes__c q = new Quotes__c(); q.RFQ__c = rfqObj.Id; q.Name = 'test'; q.Opportunity__c = opp.Id; q.QuoteType__c = 'Budgetary'; q.MarginPercentage__c = 0.32; q.SetSellForPrice__c = 2000000; q.CommissionCalculationType__c = 'Shick Standard'; q.FinalCommissionAmountPB__c = 0; insert q; SystemsOrOptions__c soo = new SystemsOrOptions__c(); soo.Quote__c = q.Id; soo.Locked__c = false; soo.Name = 'Test'; soo.MechanicalInstallationCost__c = 0; soo.ElectricalInstallationCost__c = 0; soo.StartUpServicesCost__c = 0; insert soo; QuoteLineItems__c qli = new QuoteLineItems__c(); qli.RelatedQuote__c = q.Id; qli.SystemsOrOptions__c = soo.Id; qli.ClonedItem__c = false; qli.AdHocCost__c = 4000; qli.Qty__c = 100; qli.AdHocSegments__c = 'Controls'; qli.Type__c = 'Controls'; qli.ProductType__c = 'Ad-Hoc'; insert qli; system.test.startTest(); ApexPages.StandardController sc = new ApexPages.StandardController( q ); ctrl_qliEstimatedSellFor ctrl = new ctrl_qliEstimatedSellFor( sc ); system.test.stopTest(); } }
- NathanW.
- November 09, 2018
- Like
- 0
- Continue reading or reply