You are on page 1of 2

public static String List<Contact> getContacts(Id accountId) {

Map<String,String> returnMap = new Map<String, String>();


List<Contact> contactList = new List<Contact>();

contactList = [SELECT Id, Name FROM Contact WHERE AccountId =: accountId];

if(contactList.size > 10){


returnMap.put('Contacts',JSON.serilize(contactList));
} else{
Integer contactSize = contactList.size;
List<Contact> newContactList =
createNewContacts(contactSize,accountId);
returnMap.put('Contacts',JSON.serilize(contactList));
returnMap.put('NewContacts',JSON.serilize(newContactList));
}

return JSON.serialize(returnMap);
}

public static List<Contacts> createNewContacts(Integer contactSize, Id


accountId ){
List<Contact> contactListToInsert = new List<Contact>();
Integer remainingContacts = 10-contactSize;
for(Interger iter = 0; iter < remainingContacts; iter++){
createContacts;
contactListToInsert(createContacts);
}

if(!contactListToInsert.isEmpty()){
insert contactListToInsert;
}

return contactListToInsert;
}

Javscript ---

public void afterInsert(newOpportunity){


Map<Id,Integer> accTotalAmountMap = new Map<Id,Integer>();
Set<Id> accountIdSet = new Set<Id>();
Integer prevTotalSum =0;

for(Opportunity rec : newOpportunity){


accountIdSet.add(rec.AccountId);
}

Map<Id,Account> accountMap = new Map<Id,Account>([select Id,


TotalAmount__c from account Where ID =:accountIdSet]);
List<Account> accountList = accountMap.Values();

for(Opportunity rec : newOpportunity){


if(accountMap.containsKey(rec.AccountId)){
Integer prevTotalSum =
accountMap.get(rec.AccountId).TotalAmount__c;
if(prevTotalSum == 0){
prevTotalSum = prevTotalSum+ rec.Amount__c;
}else{
prevTotalSum = prevTotalSum+ rec.Amount__c;
}
accTotalAmountMap.put(rec.AccountId,prevTotalSum);
}
}

for(Account acc :accountList){


if(accTotalAmountMap.containsKey(acc.id)){
acc.TotalAmount__c = accTotalAmountMap.get(acc.Id);
}
}

update accountList;
}

You might also like