@Usman Ali @EMEA MVP Office Hours
how to change the below code with best practice ?
for(Id c : pId)
{
List<Student__C> child = [select Department__c, isApproved__c, Name, Id FROM Student__c where Department__c =:c AND isApproved__C = True];
pchild.put(c,child);
}
trigger StudentTrigger on Student__c (after insert,after update,after delete,after undelete)
{
if(trigger.isAfter && (trigger.isInsert || trigger.isUpdate || trigger.isUndelete))
{
StudentTriggerHandler.getStudent(Trigger.newMap);
}
if(trigger.isDelete)
{
StudentTriggerHandler.getStudent(trigger.oldMap);
}
}
///Handler
public class StudentTriggerHandler
{
public static void getStudent(Map<Id,Student__C> obj)
{
set<ID> pId = new set<ID>();
for(Student__C a : obj.values())
{
pId.add(a.Department__c);
}
Map<Id,List<Student__C>> pchild = new Map<Id,List<Student__C>>();
for(Id c : pId)
{
List<Student__C> child = [select Department__c, isApproved__c, Name, Id FROM Student__c where Department__c =:c AND isApproved__C = True];
pchild.put(c,child);
}
system.debug('pchild - ' + pchild);
List<sobject> updatedstudent = new List<sobject>();
for(Id idValue : pchild.keyset())
{
integer count =0 ;
for( Student__C s : pchild.get(idValue ))
{
system.debug(' Map keyset Id Value' + idValue );
system.debug(' list values : '+ s);
count =count +1;
}
if (count == 0)
{
Department__c sc = new Department__c();
sc.Id =idValue;
sc.Child_Approved_Status__c ='';
updatedstudent.add(sc);
}
else if(count == 1 )
{
Department__c sc = new Department__c();
sc.Id =idValue;
sc.Child_Approved_Status__c ='1 child approved';
updatedstudent.add(sc);
}
else if(count == 2 )
{
Department__c sc = new Department__c();
sc.Id =idValue;
sc.Child_Approved_Status__c ='2 children approved';
updatedstudent.add(sc);
}
else if(count > 2 )
{
Department__c sc = new Department__c();
sc.Id =idValue;
sc.Child_Approved_Status__c ='All child approved';
updatedstudent.add(sc);
}
}
update updatedstudent;
}
}
Hi @Kaala G Just a follow up check Could you please let us know if above answer helped you or you need more information on the same?