global with sharing class DeleteVAIDealsScheduler implements Schedulable { /* This Scheduler will delete all the VAI Deals converted from Development Deals whose construction start date is current date or earlier. */ global void execute(SchedulableContext sc) { List<Id> devDealIds = new List<Id>(); //Query all the Development Deals whose construction start date is today or earlier. for (CDP_Deal__c deal : [SELECT Id FROM CDP_Deal__c WHERE Construction_Start_Date__c <= today AND RecordType.Name = 'Development']) { devDealIds.add(deal.Id); } if (devDealIds != null) { //Query all the VAI deals that are cloned from a Development deal List<CDP_Deal__c> vaiDealsToBeDeleted = [SELECT Id, Name FROM CDP_Deal__c WHERE RecordType.Name = 'Value-Add' AND Parent_Deal_Id__c IN :devDealIds]; if (vaiDealsToBeDeleted != null && vaiDealsToBeDeleted.size() > 0) { delete vaiDealsToBeDeleted; } } }}