function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
kevin.chileskevin.chiles 

Updating record type of a related object

Hello!

 

I am trying to update the record type of child objects.  These need to be updated when the payment (parent) is set to a specific status of "reversed" this should update my child object "commissions" to a record type of returns.  It saves and compiles but does not seem to fire and I cannot figure out why!  Help me Obi Wan, your my only hope....

 

trigger CommsReturn on pymt__PaymentX__c (after insert, after update) {
    List<pymt__PaymentX__c> updatePayList = new List<pymt__PaymentX__c>();
    RecordType ReturnRT = [Select Id From RecordType Where Name = 'Returns'];
    
    RecordType CommRT2 = [Select Id From RecordType Where Name = 'Commissions'];
    
    
    //Loop through the case and update the account with appropriate category
    set<ID> PayIds = new set<ID>();
    for( pymt__PaymentX__c p1 : Trigger.New){
        if(p1.Id != null) 
            PayIds.add(p1.Id);
    }
    if(!PayIds.isEmpty()){
        list<Commission__c> csList = [select Payment_ID__c, RecordTypeId  from Commission__c where Payment_ID__c = : PayIds];
        map<Id, pymt__PaymentX__c> PayUpdates = new map<ID, pymt__PaymentX__c>();
        for(Commission__c cs : csList){
            pymt__PaymentX__c pmt = PayUpdates.get(cs.Payment_ID__c);
            if(pmt == null)
                pmt = new pymt__PaymentX__c(Id = cs.Payment_ID__c);

            if(pmt.pymt__Status__c != 'Reversed')
                cs.RecordType = ReturnRT ;
                else
                cs.RecordType =CommRT2 ;
            

            PayUpdates.put(cs.Payment_ID__c, pmt);
        }
        
        update PayUpdates.Values();
    }
}