Untitled
unknown
plain_text
10 months ago
4.3 kB
15
Indexable
List<Customer_Intelligence__c> demandMapping = new List<Customer_Intelligence__c>();
List<User> userList = new List<User>();
Map<Id, List<Customer_Intelligence__c>> demandMappingOwners = new Map<Id, List<Customer_Intelligence__c>>();
Set<Id> accountsIds = new Set<Id>();
Map<Id, String> usersEmail = new Map<Id,String>();
Set<Id> testUsers = new Set<Id>();
testUsers.add('0050600000H3ggVAAR');//Pramod
testUsers.add('0059O00000YXArRQAX');//Eduardo
testUsers.add('0059O00000YXBCPQA5');//Gustavo
testUsers.add('0059O00000ed5FLQAY');//Alejandro
demandMapping = [SELECT Id, OwnerId, Status__c, Name, Account__c, Owner.Name, Account__r.Name, Due_Date__c,Product__c, Product__r.Name FROM Customer_Intelligence__c WHERE Status__c = 'Assigned' ORDER BY Account__r.Name ];
for(Customer_Intelligence__c demandMappingItem : demandMapping){
if(!demandMappingOwners.containsKey(demandMappingItem.OwnerId)){
demandMappingOwners.put(demandMappingItem.OwnerId, new List<Customer_Intelligence__c>{demandMappingItem});
}else if(demandMappingOwners.containsKey(demandMappingItem.OwnerId)){
demandMappingOwners.get(demandMappingItem.OwnerId).add(demandMappingItem);
}
if(!accountsIds.contains(demandMappingItem.Account__c)){
accountsIds.add(demandMappingItem.Account__c);
}
}
System.debug('Demand mapping Map: '+ demandMappingOwners);
userList = [SELECT Id, Email FROM User WHERE Id IN:testUsers];
for(User userIterator : userList){
if(!usersEmail.containsKey(userIterator.Id)){
usersEmail.put(userIterator.Id , userIterator.Email);
}else if(usersEmail.containsKey(userIterator.Id)){
System.debug('Id already in the map');
}
}
List<Messaging.SingleEmailMessage> emails = new List<Messaging.SingleEmailMessage>();
OrgWideEmailAddress[] owea = [SELECT Id FROM OrgWideEmailAddress WHERE Address = '[email protected]'];
for(Id user : usersEmail.keyset()){
if(demandMappingOwners.containsKey(user)){
Boolean verifyAccount = false;
String dmRecord = '';
String lastReviewedId = '';
List<Customer_Intelligence__c> demandMappingAux = new List<Customer_Intelligence__c>();
demandMappingAux = demandMappingOwners.get(user);
for(Customer_Intelligence__c ci :demandMappingAux){
String idToReview = ci.Account__c ;
String recordLink = URL.getOrgDomainUrl().toExternalForm()+'/'+ ci.Account__c;
dmRecord += '<tr>';
if(lastReviewedId == idToReview && lastReviewedId != null){
dmRecord += '<td style="border-top-style: none"> </td>';
}else{
dmRecord += '<td style="border-bottom-style: none"> <a href ="'+ recordLink +'">'+ ci.Account__r.Name +'</td>';
lastReviewedId = ci.Account__c;
}
dmRecord += '<td>'+ ci.Status__c+'</td>';
//dmRecord += '<td>'+ ci.Owner.Name +'</td>';
dmRecord += '<td>' + ci.Name +' </td>';
dmRecord += '<td>' + ci.Product__r.Name +' </td>';
dmRecord += '<td>'+ ci.Due_Date__c +'</td>';
dmRecord += '</tr>';
}
String testGetEmail = usersEmail.get(user);
String[] addresses = new String[]{testGetEmail};
Messaging.SingleEmailMessage dmEmail = new Messaging.SingleEmailMessage();
dmEmail.setToAddresses(addresses);
dmEmail.setSubject('Demand Mapping Assigned');
dmEmail.setOrgWideEmailAddressId(owea.get(0).Id);
dmEmail.setHtmlBody('The following Demand Mapping records have been created and assigned to you: <br/><br/>'+
'<table border = "1px solid black"> <tr> '+
'<th>Account</th>'+
'<th>Status</th>'+
//'<th>Owner</th>'+
'<th>Demand Mapping </th>'+
'<th>Product </th>'+
'<th>Due Date</th>'+
'</tr>'+
dmRecord+'</table>');
emails.add(dmEmail);
testGetEmail='';
}
}
if(emails.size()>0){
Messaging.sendEmail(emails);
}Editor is loading...
Leave a Comment