Skip to main content

@Usman Ali @EMEA MVP Office Hours  

Bhavin Patel (Salesforce)

 

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;

}

}

4 answers
  1. Oct 23, 2022, 7:10 PM

    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?

0/9000