Count Partner and Customer Cases on Account

This trigger tracks and updates the total number of Partner Cases and Customer Cases linked to an Account when new Cases are created.

Practice scenarios like this here: YouTube playlist.

Solution:

trigger CaseTrigger on Case (after insert) {
if(Trigger.isInsert){
         if(Trigger.isAfter){
                              CaseTriggerHandler.countCases(Trigger.new);
                   }
        }
}
public class CaseTriggerHandler{ public static void
             countCases(List cList){
             List<Account> accList= new List<Account>();
             Set<Id> idSet= new Set<Id>();
             Id partnerCaseRecordTypeId = [Select Id From RecordType Where
                         DeveloperName = ‘Partner_Case’].Id;//1.way to do with
                         DeveloperName which is API name
             Id customerCaseRecordTypeId=[Select Id From RecordType Where
                        Name = ‘Customer Case’].Id;//2.way to do with Name for(Case c:cList){
             if(c.AccountId!=null){ idSet.add(c.AccountId);
                           }
             }
for(Account acc:[SELECT
            Id,Total_Case__c,Customer_Case__c,Partner_Case__c,(SELE
            CT Id,RecordTypeId FROM Cases) FROM Account WHERE Id
            IN:idSet]){
                                       decimal countPartner=0; decimal countCustomer=0;
                         for(Case c:acc.Cases){
                         if(c.RecordTypeId==partnerCaseRecordTypeId){
                         countPartner++;
                            }else if(c.RecordTypeId==customerCaseRecordTypeId){ countCustomer++;
                            }
               }
           acc.Customer_Case__c=countCustomer;
           acc.Partner_Case__c=countPartner;
           acc.Total_Case__c=acc.Customer_Case__c+acc.Partner_Case
__c;
                             accList.add(acc);
          }
                            if(!accList.isEmpty()){
                 update accList;
                  }
          }
}

Want to Apply As Content Writer?

Leave a Comment

Your email address will not be published. Required fields are marked *

Shopping Cart

Let's get you started!

Interested in writing Salesforce Content?

Fill in this form and we will get in touch with you :)