Advertisement
leonardopmacedo

Untitled

Aug 2nd, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5 4.02 KB | None | 0 0
  1. public with sharing class OpportunityBO {
  2.  
  3.     private final static OpportunityBO instance = new OpportunityBO();
  4.  
  5.     public static OpportunityBO getInstance(){
  6.         return instance;
  7.     }
  8.  
  9.     private OpportunityBO() {
  10.        
  11.     }
  12.  
  13.  
  14.     public void processOppUpdate(List<Opportunity> opps,Map<Id,Opportunity> oldMap){
  15.  
  16.         for(Opportunity opp:opps ){
  17.  
  18.             Opportunity oldOpp = oldMap.get(opp.Id);
  19.  
  20.             List<Id> ids = new List<Id>();
  21.  
  22.             if(opp.StageName=='Validação da qualificação' && opp.StatusDaOportunidade__c =='Reunião Feita na Hora' && oldOpp.OwnerId!=opp.OwnerId ){
  23.  
  24.                 List<Opportunity> oppInMonth = OpportunityDAO.getInstance().getTotalOppInMonth();
  25.  
  26.                 System.debug('Total Opp >>>> '+ oppInMonth);
  27.                 System.debug('Total Opp Size >>>> '+ oppInMonth.size());
  28.  
  29.                 for(Opportunity opportunity: oppInMonth){
  30.                     ids.add(opportunity.OwnerId);
  31.                 }
  32.  
  33.                 ids.add(opp.OwnerId);
  34.  
  35.                 List<SREP__c> sreps = OpportunityDAO.getInstance().getSREPByOwnerId(ids);
  36.  
  37.                 Map<Id, Team__c> teamMap =  OpportunityDAO.getInstance().getTeamBySREP();
  38.  
  39.                 System.debug('Map Team before >>>> '+teamMap);
  40.  
  41.                 Decimal totalGoal=0;
  42.  
  43.                 for(Team__c t:teamMap.values()){
  44.                     totalGoal+=t.Goal__c;
  45.                 }
  46.  
  47.                 for(Team__c t:teamMap.values()){
  48.                     t.Participation__c = (t.Goal__c/totalGoal)*100;
  49.                     t.TotalIdeal__c = ((oppInMonth.size()+1)*t.Participation__c);
  50.                 }
  51.  
  52.                 System.debug('Map Team after >>>> '+teamMap);
  53.  
  54.                 update teamMap.values();
  55.  
  56.                 Map<Id, SREP__c> srepsMap = new Map<Id, SREP__c>(sreps);
  57.  
  58.                 System.debug('Map SREP before >>>> '+srepsMap);
  59.  
  60.                 for(SREP__c srep:srepsMap.values()){
  61.                     srep.deliveryQty__c=0;
  62.                 }
  63.  
  64.                 for(SREP__c srep:sreps){
  65.                     SREP__c s = srepsMap.get(srep.Id);
  66.                     System.debug('DeliveryQty >>>> '+s.deliveryQty__c);
  67.                     s.deliveryQty__c++;
  68.                 }
  69.  
  70.                 System.debug('Map SREP after >>>> '+srepsMap);
  71.                 update srepsMap.values();
  72.  
  73.             }
  74.  
  75.         }
  76.     }
  77.  
  78.     public void ValidaFaseSolucaoESemCompromisso(List<Opportunity> oppList){
  79.         Integer contadorReuniaoSolucao = 0;
  80.         String idInbound = Schema.SObjectType.Opportunity.getRecordTypeInfosByName().get('Inbound').getRecordTypeId();
  81.  
  82.         for(Opportunity opp:oppList ){
  83.             if(opp.Statusdodaavaliacao__c <> 'Aprovado' && opp.StageName == 'Solução' && opp.RecordTypeId ==idInbound){
  84.                 contadorReuniaoSolucao = EventDAO.getInstance().countEventByOppTypeAndId('Reunião de Solução', opp.Id);
  85.                 if (contadorReuniaoSolucao == 0){
  86.                     opp.addError( 'Por favor, verifique se a Oportunidade se enquadra nas condições para avançar para a fase de "Solução"');
  87.                 }
  88.             }
  89.         }
  90.     }
  91.    
  92.     public void ValidaFaseNegociacaoESemCompromisso(List<Opportunity> oppList){
  93.         Integer contadorReuniaoSolucaoRealizada = 0;
  94.         String idInbound = Schema.SObjectType.Opportunity.getRecordTypeInfosByName().get('Inbound').getRecordTypeId();
  95.         for(Opportunity opp:oppList ){
  96.             if(opp.Statusdodaavaliacao__c == 'Aprovado' && opp.StageName == 'Negociação' && opp.RecordTypeId ==idInbound){
  97.                 contadorReuniaoSolucaoRealizada = EventDAO.getInstance().countEventByOppTypeReuniaoFinalizada('Reunião de Solução', opp.Id);
  98.                 if (contadorReuniaoSolucaoRealizada == 0){
  99.                     opp.addError( 'Por favor, verifique se a Oportunidade se enquadra nas condições para avançar para a fase de "Negociação"');
  100.                 }
  101.  
  102.             }
  103.         }
  104.     }
  105.  
  106.     public void ValidaFaseLeadDesistiuReuniaoValidacaoRejeitada(List<Opportunity> oppList){
  107.         Integer contadorReuniaoSolucaoRealizada = 0;
  108.         String idInbound = Schema.SObjectType.Opportunity.getRecordTypeInfosByName().get('Inbound').getRecordTypeId();
  109.         for(Opportunity opp:oppList ){
  110.             if(opp.Statusdodaavaliacao__c == 'Aprovado' && opp.StageName == 'Negociação' && opp.RecordTypeId ==idInbound){
  111.                 contadorReuniaoSolucaoRealizada = EventDAO.getInstance().countEventByOppTypeReuniaoFinalizada('Reunião de Solução', opp.Id);
  112.                 if (contadorReuniaoSolucaoRealizada == 0){
  113.                     opp.addError( 'Por favor, verifique se a Oportunidade se enquadra nas condições para avançar para a fase de "Negociação"');
  114.                 }
  115.  
  116.             }
  117.         }
  118.     }
  119. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement