You need to sign in to do that
Don't have an account?
Error on Opportunity Product insertion
Hi all,
I am getting error on product insertion on Opportunity.apex class Update_OpportunityStageAndStatus_Class in which if you see line number 186,187 you will find getStage(lowest) having null value.The class file is too long,so
i am sending it in two post.So please combine these two section into one and solve my problem
FIRST SECTION:
public with sharing class Update_OpportunityStageAndStatus_Class {
public static void updateOpenStatus(Map<Id, OpportunityLineItem> opplineitemMap)
{
System.debug('inside method');
List <Opportunity> oppList = [Select id, StageName, INTL_Status__c from Opportunity where Id in :opplineitemMap.keySet()];
System.debug('inside method' +oppList);
if(oppList != null && oppList.size()>0)
{
for(Opportunity opp : oppList)
{
opp.INTL_Status__c = 'Open';
}
update oppList;
System.debug('Opportunity are updated for status as open');
}
}
private static integer assignWeight(String Stage)
{
Integer retString =0;
if(Stage.contains('0') )
retString =0;
if(Stage.contains('1') )
retString =1;
if(Stage.contains('2') )
retString =2;
if(Stage.contains('3') )
retString =3;
if(Stage.contains('4') )
retString =4;
if(Stage.contains('5') )
retString =5;
if(Stage.contains('6') )
retString =6;
if(Stage.contains('7') )
retString =7;
if(Stage.contains('8') )
retString =8;
if(Stage.contains('9') )
retString =9;
return retString;
}
private static String getStage(integer Weight)
{
String retString ='';
if(Weight== 0)
retString ='0. Identify';
if(Weight== 1)
retString ='1. Qualify';
if(Weight== 2)
retString ='2. First Contact';
if(Weight== 3)
retString ='3. Assess Needs';
if(Weight== 4)
retString ='4. Formal Offer';
if(Weight== 5)
retString ='5. Verbal Win';
if(Weight== 6)
retString ='6. Complete';
if(Weight== 7 || Weight== 8 || Weight== 9 )
retString ='6. Complete';
return retString;
}
public static void updateOpenStatus_2(List<OpportunityLineItem> opplineitemList , List<Opportunity> oppList,Map<ID, Opportunity> oppMap)
{
List<Opportunity> LastUpdateOppList = new List<Opportunity>();
List<OpportunityLineItem> LineItembyOpp = new List<OpportunityLineItem>();
List<Opportunity> updateOppList = new List<Opportunity>();
Map<ID , List<OpportunityLineItem>> MapOppandLineItem = new Map<ID , List<OpportunityLineItem>>();
System.debug('inside method');
for(Opportunity opp : oppList)
{
List<OpportunityLineItem> tempList = new List<OpportunityLineItem>();
for(OpportunityLineItem oppListitem2 : opplineitemList)
{
if(oppListitem2.OpportunityId == opp.ID)
{
tempList.add(oppListitem2);
}
}
//This map contains opportunity and list of opportunity line items under it
MapOppandLineItem.put(opp.ID , tempList);
system.debug('Map' +MapOppandLineItem);
}
for(ID oppID : MapOppandLineItem.keySet())
{ system.debug('inside for1');
Opportunity opptoUpdate=oppMap.get(oppID);
opptoUpdate.Flag__c = true;
String oppStage=opptoUpdate.StageName;
Integer lineItemSize = MapOppandLineItem.get(oppID).size();
Integer RejectCount = 0;
Integer lineItemCount = 0;
Integer oppStageWt = assignWeight(oppStage);
Boolean lineItemOpen = false;
Boolean lineItemSigned = false;
Boolean lineitemrejected = false;
system.debug('opptoUpdatebeforeupdate' +oppStage);
system.debug('stagein opp' +oppStageWt);
String lineItemSatge = MapOppandLineItem.get(oppID)[0].stage__c;
integer lowest = assignWeight(lineItemSatge);
system.debug('loweststagebeforeiteration' + lowest);
for(OpportunityLineItem oppLineItem : MapOppandLineItem.get(oppID))
{ system.debug('inside for2');
Integer lineItemWt = assignWeight(oppLineItem.Stage__c);
system.debug('stagein opplineitem' +lineItemWt);
//if(oppLineItem.Status__c!='Rejected')
// {
With Regards
Prabhash Mishra
SECTION SECTION: Simply Past next to FIRST SECTION
if(lineItemWt <= lowest)
{ system.debug('inside if for low stage');
lowest = lineItemWt;
//break;
}
if(oppLineItem.Status__c == 'Open')
{
lineItemOpen= true;
system.debug( 'inside open');
opptoUpdate.INTL_Status__c = 'Open';
system.debug('opp to be open' +opptoUpdate);
continue;
}
if(oppLineItem.Status__c == 'Signed')
{
lineItemSigned = true;
}
// }
// else if(oppLineItem.Status__c == 'Rejected')
if(oppLineItem.Status__c == 'Rejected')
{
System.debug('Reject Count' + RejectCount);
RejectCount++;
System.debug('Reject Count after adding' + RejectCount);
if(RejectCount == lineItemSize)
{
opptoUpdate.INTL_Status__c = 'Rejected';
//lineitemrejected = true;
//break;
}
}
lineItemCount ++;
}
system.debug('loweststageafteriteration' + lowest);
if(lineItemCount==lineItemSize && !lineItemOpen && lineItemSigned)
{
system.debug('inside if for signed');
opptoUpdate.INTL_Status__c = 'Signed';
opptoUpdate.StageName = '6. Complete';
system.debug('opp to be signed' + opptoUpdate);
}
/* else if(lineitemrejected)
{
opptoUpdate.INTL_Status__c = 'Rejected';
opptoUpdate.StageName = '6. Complete';
}*/
else
{
system.debug('Lowest stage is :::: '+ getStage(lowest));
opptoUpdate.StageName = getStage(lowest);
}
system.debug('Updated Opportunity' + opptoUpdate);
updateOppList.add(opptoUpdate);
}
if(updateOppList!=null && updateOppList.size()>0)
update updateOppList;
for(Opportunity LastUpdatedOpp : updateOppList)
{
LastUpdatedOpp.Flag__c = false;
LastUpdateOppList.add(LastUpdatedOpp);
}
if(LastUpdateOppList!=null && LastUpdateOppList.size()>0)
update LastUpdateOppList;
}
}
With Regards
Prabhash Mishra