Monday, 12 July 2021

Validate duplicate status on opportunity

 



trigger opportunityTrigger on Opportunity (){

 opportunityTriggerHandler.validateOpportunity(Trigger.New, Trigger.old);

}


public class opportunityTriggerHandler{


  public static void validateOpportunity(List<Opportunity> oppList){

  Set<String> accountIdset = new Set<String>();

  for(Opportunity opp : oppList){

     if(opp.AccountId != null){

         accountIdset.add(opp.AccountId);

    }

  }

 

  Map<String,String> opportunityMap = new Map<String,String>();

  

  for(Opportunity opp : [SELECT Id,StageName FROM Opportunity where stageName != null && accountId !=null And accountId IN :accountIdset LIMIT 49999]){

     opportunityMap.add(opp.AccountId,opp.stageName);

  }

    for(Opportunity opp: oppList)){

      if(opp.containsKey(opp.AccountId) && opp.get(opp.AccountId)== opp.stageName){

         opp.stageName.addError('StageName already exists for this account');

     }

   }

 }

}

No comments:

Post a Comment