Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public with sharing class OpportunityBO {
- private final static OpportunityBO instance = new OpportunityBO();
- public static OpportunityBO getInstance(){
- return instance;
- }
- private OpportunityBO() {
- }
- public void processOppUpdate(List<Opportunity> opps,Map<Id,Opportunity> oldMap){
- for(Opportunity opp:opps ){
- Opportunity oldOpp = oldMap.get(opp.Id);
- List<Id> ids = new List<Id>();
- if(opp.StageName=='Validação da qualificação' && opp.StatusDaOportunidade__c =='Reunião Feita na Hora' && oldOpp.OwnerId!=opp.OwnerId ){
- List<Opportunity> oppInMonth = OpportunityDAO.getInstance().getTotalOppInMonth();
- System.debug('Total Opp >>>> '+ oppInMonth);
- System.debug('Total Opp Size >>>> '+ oppInMonth.size());
- for(Opportunity opportunity: oppInMonth){
- ids.add(opportunity.OwnerId);
- }
- ids.add(opp.OwnerId);
- List<SREP__c> sreps = OpportunityDAO.getInstance().getSREPByOwnerId(ids);
- Map<Id, Team__c> teamMap = OpportunityDAO.getInstance().getTeamBySREP();
- System.debug('Map Team before >>>> '+teamMap);
- Decimal totalGoal=0;
- for(Team__c t:teamMap.values()){
- totalGoal+=t.Goal__c;
- }
- for(Team__c t:teamMap.values()){
- t.Participation__c = (t.Goal__c/totalGoal)*100;
- t.TotalIdeal__c = ((oppInMonth.size()+1)*t.Participation__c);
- }
- System.debug('Map Team after >>>> '+teamMap);
- update teamMap.values();
- Map<Id, SREP__c> srepsMap = new Map<Id, SREP__c>(sreps);
- System.debug('Map SREP before >>>> '+srepsMap);
- for(SREP__c srep:srepsMap.values()){
- srep.deliveryQty__c=0;
- }
- for(SREP__c srep:sreps){
- SREP__c s = srepsMap.get(srep.Id);
- System.debug('DeliveryQty >>>> '+s.deliveryQty__c);
- s.deliveryQty__c++;
- }
- System.debug('Map SREP after >>>> '+srepsMap);
- update srepsMap.values();
- }
- }
- }
- public void ValidaFaseSolucaoESemCompromisso(List<Opportunity> oppList){
- Integer contadorReuniaoSolucao = 0;
- String idInbound = Schema.SObjectType.Opportunity.getRecordTypeInfosByName().get('Inbound').getRecordTypeId();
- for(Opportunity opp:oppList ){
- if(opp.Statusdodaavaliacao__c <> 'Aprovado' && opp.StageName == 'Solução' && opp.RecordTypeId ==idInbound){
- contadorReuniaoSolucao = EventDAO.getInstance().countEventByOppTypeAndId('Reunião de Solução', opp.Id);
- if (contadorReuniaoSolucao == 0){
- opp.addError( 'Por favor, verifique se a Oportunidade se enquadra nas condições para avançar para a fase de "Solução"');
- }
- }
- }
- }
- public void ValidaFaseNegociacaoESemCompromisso(List<Opportunity> oppList){
- Integer contadorReuniaoSolucaoRealizada = 0;
- String idInbound = Schema.SObjectType.Opportunity.getRecordTypeInfosByName().get('Inbound').getRecordTypeId();
- for(Opportunity opp:oppList ){
- if(opp.Statusdodaavaliacao__c == 'Aprovado' && opp.StageName == 'Negociação' && opp.RecordTypeId ==idInbound){
- contadorReuniaoSolucaoRealizada = EventDAO.getInstance().countEventByOppTypeReuniaoFinalizada('Reunião de Solução', opp.Id);
- if (contadorReuniaoSolucaoRealizada == 0){
- opp.addError( 'Por favor, verifique se a Oportunidade se enquadra nas condições para avançar para a fase de "Negociação"');
- }
- }
- }
- }
- public void ValidaFaseLeadDesistiuReuniaoValidacaoRejeitada(List<Opportunity> oppList){
- Integer contadorReuniaoSolucaoRealizada = 0;
- String idInbound = Schema.SObjectType.Opportunity.getRecordTypeInfosByName().get('Inbound').getRecordTypeId();
- for(Opportunity opp:oppList ){
- if(opp.Statusdodaavaliacao__c == 'Aprovado' && opp.StageName == 'Negociação' && opp.RecordTypeId ==idInbound){
- contadorReuniaoSolucaoRealizada = EventDAO.getInstance().countEventByOppTypeReuniaoFinalizada('Reunião de Solução', opp.Id);
- if (contadorReuniaoSolucaoRealizada == 0){
- opp.addError( 'Por favor, verifique se a Oportunidade se enquadra nas condições para avançar para a fase de "Negociação"');
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement