You are on page 1of 2

/** Start | Jai Gupta | Case 00330905 | Sep 06, 2021 | Update Account Priority

Focus Area field */


public with sharing class PriorityHandler implements ITrigger{
public PriorityHandler() {

}
public void bulkBefore() { }
public void bulkAfter() { }
public void beforeInsert(SObject so) { }
public void beforeUpdate(SObject oldSo, SObject so) { }
public void beforeDelete(SObject so) {}
public void afterInsert(SObject so) {}
public void afterUpdate(SObject oldSo, SObject so) {}
public void afterDelete(SObject so) {}
public void bulkBeforeInsert(List<sobject> bulkoldSo, List<sObject> bulkso){}
public void bulkBeforeUpdate(List<sobject> bulkoldSo, List<sObject> bulkso){}
public void bulkBeforeDelete(List<sobject> bulkoldSo, List<sObject> bulkso) { }
public void bulkAfterInsert(List<sobject> bulkoldSo, List<sObject> bulkso) {
/** Start | Jai Gupta | Case 00330905 | Sep 06, 2021 | Update Account
Priority Focus Area field */
updateAccount(bulkoldSo, bulkso);
/** End | Jai Gupta | Case 00330905 | Sep 06, 2021 | Update Account
Priority Focus Area field */
}
public void bulkafterUpdate(List<sobject> bulkoldSo, List<sObject> bulkso) {
/** Start | Jai Gupta | Case 00330905 | Sep 06, 2021 | Update Account
Priority Focus Area field */
updateAccount(bulkoldSo, bulkso);
/** End | Jai Gupta | Case 00330905 | Sep 06, 2021 | Update Account
Priority Focus Area field */
}
public void bulkAfterDelete(List<sobject> bulkoldSo, List<sObject> bulkso) { }
public void andFinally() {}

/** Start | Jai Gupta | Case 00330905 | Sep 06, 2021 | Update Account Priority
Focus Area field */
public void updateAccount(List<sobject> bulkoldSo, List<sObject> bulkso) {
Map<string,String> bdxGrowthDriver_AccountFieldMap = new
Map<String,String>{'Efficiency' => 'Efficiency__c',
'HCWS' => 'HCWS__c',
'Oncology' =>
'Oncology_AP__c',
'Patient Safety -
AMR/AMS' => 'Patient_Safety_AMR_AMS__c',
'Patient Safety - HAI'
=> 'Patient_Safety_HAI__c',
'Patient Safety -
Medication Errors' => 'Patient_Safety_Medication_Errors__c',
'Patient Safety -
Sepsis' => 'Patient_Safety_Sepsis__c'};

set<string> eligibleBUs = new


Set<string>{'BDX','BDB','DC','IDS','MDS','MMS','PI','SUR','UCC'};

Map<Id,sObject> oldMap = null ;


if(bulkoldSo != null) {
oldMap = new Map<Id,sObject>(bulkoldSo);
}
Map<Id,Account> accToUpdate = new Map<Id,Account>();
for(sObject sobj : bulkso ) {
Priority__c aprio = (Priority__c) sobj ;
Priority__c oldAprio = oldMap == null ? null :
(Priority__c)oldMap.get(aprio.Id) ;
if(oldAprio == null || aprio.Growth_Driver__c !=
oldAprio.Growth_Driver__c ||
aprio.BU__c != oldAprio.BU__c || aprio.Priority__c !=
oldAprio.Priority__c ||
aprio.Account__c != oldAprio.Account__c) {

Account acc ;
String fieldName = '' ;
boolean updateAccount = false ;

if(accToUpdate.containsKey(aprio.Account__c)) {
acc = accToUpdate.get(aprio.Account__c);
} else {
acc = new Account(Id = aprio.Account__c);
}
if(String.isBlank(aprio.Growth_Driver__c) &&
eligibleBUs.contains(aprio.BU__c)) {
updateAccount = true ;
fieldName = aprio.BU__c+'_Account_Priority_AP__c';
} else if(aprio.BU__c == 'BDX' && aprio.Growth_Driver__c != null &&
bdxGrowthDriver_AccountFieldMap.containsKey(aprio.Growth_Driver__c)) {
updateAccount = true ;
fieldName =
bdxGrowthDriver_AccountFieldMap.get(aprio.Growth_Driver__c);
}
if(updateAccount) {
acc.put(fieldName,aprio.Priority__c) ;
accToUpdate.put(acc.Id, acc);
}
}
}
if(accToUpdate.size() > 0) {
system.debug('accToUpdate :: '+accToUpdate);
PriorityHandler.updateTriggerSetting(true);
update accToUpdate.values();
}

}
public static boolean bypassAccountHandlerForTerritory = false ;
public static boolean bypassAccountTLA = false ;
public static void updateTriggerSetting(boolean syncRunning) {
bypassAccountHandlerForTerritory = syncRunning ;
bypassAccountTLA = syncRunning ;
}
}
/** End | Jai Gupta | Case 00330905 | Sep 06, 2021 | Update Account Priority Focus
Area field */

You might also like