You need to sign in to do that
Don't have an account?

How to map open task's due date to Next date and open task's status to opportunity's next step field.
public class countOpenTaskOnOpportunites{ public static boolean firstRun = true; public static date nextDate; List<opportunity> updateOpps=new List<opportunity>(); public static void method1(List<Task> taskListNew,List<Task> taskListOld){ Set<Id> oppIds=new Set<id>(); Set<Id> taskNewIDS=new Set<Id>(); List<opportunity> oppUpdate=new List<opportunity>(); List<Task> updateTaskList=new List<Task>(); for(Task t:taskListNew){ if(((string)t.whatId).startsWith('006')){ oppIds.add(t.whatId); taskNewIDS.add(t.id); } } system.debug('the opportunity list is'+oppIds); List<Task> allTasksList=[select id,whatid,status from task where id NOT in:taskNewIDS AND whatid in:oppIds ]; system.debug('the task new list is'+allTasksList); Map<Id,List<Task>> mapOppAndItsRelatedTask=new Map<Id,List<Task>>(); for(Task tsk:allTasksList){ if(!taskNewIDS.contains(tsk.id)){ if(!mapOppAndItsRelatedTask.containsKey(tsk.whatid)) mapOppAndItsRelatedTask.put(tsk.whatid, new list<task>{tsk}); else mapOppAndItsRelatedTask.get(tsk.whatId).add(tsk); } } system.debug('the opp and task map is'+mapOppAndItsRelatedTask); for(ID optyId:mapOppAndItsRelatedTask.keySet()){ for(Task eachTask:mapOppAndItsRelatedTask.get(optyId)){ system.debug('inside for'); if(eachTask.status!='Completed'){ system.debug('inside for2'); eachTask.status='Completed'; nextDate=eachTask.ActivityDate; updateTaskList.add(eachTask); } } } update updateTaskList; } }