Advertisement
airton-junior

DMLCommands

Mar 29th, 2023 (edited)
749
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.68 KB | None | 0 0
  1. public with sharing class DMLCommands {
  2.      public static void atualiza(List<Contact> contatos){
  3.         try{
  4.             Set<Id> identContas = new Set<Id>();
  5.             Map<Id, Contact> mapa = new Map<Id, Contact>();
  6.             for(Contact c:contatos){
  7.                 identContas.add(c.AccountId);
  8.             }
  9.             List<Account> contasU = [SELECT Name, (SELECT Name, email, AccountId FROM Contacts) FROM Account WHERE Name LIKE 'U%' AND Id IN :identContas];
  10.             for(Account a:contasU){
  11.                 for(Contact c:a.Contacts){
  12.                     if(c.email != null){
  13.                         c.email = atualizaEmailGeral(c.email);                    
  14.                     }
  15.                     mapa.put(c.Id, c);
  16.                 }
  17.             }
  18.  
  19.  
  20.             for(Contact c:contatos){
  21.                 //System.debug('Cada contato: '+c);
  22.                 for(Account u:contasU){
  23.                     if(c.AccountId == u.Id){
  24.                         c.email = atualizaEmailGeral(c.email);
  25.                     }
  26.                 }
  27.                 mapa.put(c.Id, c);
  28.             }
  29.  
  30.  
  31.             for(Id i:mapa.keySet()){
  32.                 System.debug(mapa.get(i));
  33.             }
  34.             //System.debug(mapa);
  35.             //upsert new List<Contact>(mapa.values());
  36.         }catch(Exception e){
  37.         System.debug(e.getMessage());
  38.         }
  39.     }
  40.  
  41.     private static String atualizaEmailGeral(String emailExistente){
  42.         String beforeArroba = emailExistente.substringBefore('@');//Conteúdo da string do email antes do @
  43.         String dominioSemFinais = emailExistente.substringBetween('@','.');
  44.         String novoEmail = beforeArroba+'@'+dominioSemFinais+'.com.it';
  45.         return novoEmail;
  46.     }
  47. }
  48.  
  49.  
  50.  
  51.  
  52. //ANONYMOUS
  53. List<Contact> contatos = new List<Contact>();//[SELECT Name, email, AccountId FROM Contact];
  54. contatos.add(new Contact(firstname='Adriel', lastname='Calhares', email='adriel@calhares.net'));
  55. contatos.add(new Contact(firstname='Paola', lastname='Calhares', email='paola@calhares.net',AccountId='0018Y00002uTgkiQAC'));//Essa conta pai começa com "U" Conta: United(Singapore)
  56. contatos.add(new Contact(firstname='Inácio', lastname='Serafim', email='inacio@serafim.net.us',AccountId='0018Y00002uTgkiQAC'));//Essa conta pai começa com "U" Conta: United(Singapore)
  57. contatos.add(new Contact(firstname='José', lastname='Serafim', email='jose@serafim.net.us', AccountId='0018Y00002uTgkZQAS'));//Essa conta pai não começa com "U" Conta: Edge
  58. contatos.add(new Contact(firstname='Carlotilda', lastname='Serafin', id='0038Y00003cYCIxQAO'));
  59. // for(Contact c:contatos){
  60. //   System.debug(c);
  61. // }
  62. // System.debug(contatos);
  63. DMLCommands.atualiza(contatos);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement