Advertisement
f1lam3ntx0

contact client trigger - AI / AU

Jan 31st, 2025 (edited)
26
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.40 KB | None | 0 0
  1. // Create a field on Account Named (Client Contact lookup to Contact). Once an Account is inserted a Contact will create with the name of the Account and that Contact will be the Client Contact on the Account.
  2.  
  3. trigger accClientContact on Account(after Insert, after update){
  4.    
  5. if(trigger.isAfter){
  6.     if(trigger.isInsert){
  7.     accountHandler.afterInsert(trigger.new);
  8. }if(trigger.isUpdate){
  9.     accountHandler.afterUpdate(trigger.new, trigger.oldMap);
  10. }
  11.  
  12. }
  13.  
  14. public with sharing class accountHandler {
  15.     public static string afterInsert(list<Account> accNew){
  16.         if(!accNew.isEmpty()){
  17.             Map<Id,Contact> updatedContacts = new Map<Id,Contact>();
  18.             for(Account aObj : accNew){
  19.                 Contact cc = new Contact();
  20.                     cc.AccountId = aObj.Id;
  21.                     cc.LastName = aObj.Name;
  22.                     updatedContacts.put(aObj.Id, Contact);
  23.             }
  24.             if(!updatedContacts.isEmpty()){
  25.                     INSERT udpatedContacts;
  26.                 List<Account> udpatedAccount = new List<Account>();
  27.                 for(Account aObj : accNew){
  28.                     if(udpateContacts.containsKey(aObj.Id){
  29.                         aObj.Client_Contact__c = updateContact.get(aObj).Id;
  30.                         updatedAccount.add(aobj);
  31.                     }  
  32.                 }
  33.             }
  34.                        if(!updatedAccount.isEmpty()){
  35.                            insert udpatedAccount;
  36.                        }
  37.         }
  38.  
  39.     } public static List<Account> afterUpdate(list<Account> accNew, Map<Id,Account> oldAccMap){
  40.         if(accNew.isEmpty() && oldAccMap.isEmpty()) return;
  41.        
  42.        
  43.             list<Contact> updatedContacts = new list<contact>();
  44.             Map<Id, Id> AccountToContactMapping = new Map<Id, Id>();
  45.             for(Account aObj : accNew){
  46.                 if(aObj.Client_contact__c != oldAccMap.get(aObj.Id).contact_client__c){
  47.                     Contact cc = new Contact();
  48.                     cc.AccountId = aObj.Id;
  49.                     cc.LastName = aObj.Name;
  50.                     updatedContacts.add(cc);
  51.                 }// end if
  52.                 else{
  53.                     free();
  54.                 } //end else
  55.         }// end for
  56.        
  57.         // Buld Insert New Contact
  58.              if(!updatedContats.isEmpty()){
  59.                 Databae.SaveResults[] conInsert = Database.Insert(updatedContats, false); // partial insert is allowed
  60.                 for( integer i =0 ; i < conInsert.size(); i++){
  61.                     if(conInsert[i].isSuccess){
  62.                         Contact insertedContact = updatedContacts[i];
  63.                         AccountToContactMapping.put(insetedContact.AccountId, insertedContact.Id);
  64.                     }else{
  65.                         system.debug('Error while inserting contact'+conInsert[i].getError();
  66.                 }                    
  67.             }
  68.                 list<Account> accountUpdates = new list<Account>();
  69.                 for( Account aObj : accNew){
  70.                     aObj.Client_contact__c = AccountToContact.get(aObj.Id);
  71.                     accountUpdates.add(aObj);
  72.                 }
  73.             if(!accountUpdates.isEmpty()){
  74.                 Database.SaveResults[] accResults = Databse.Update(accountUpdates, false);
  75.                 for(integer i = 0; i<accResults.size(); i++){
  76.                     if(!accResults[i].isSuccess){
  77.                         system.debug('Error while updating account'+accResults[i].getError();
  78.                     }
  79.                 }
  80.             }
  81.  
  82.     }
  83.    
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement