Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class MaintenanceRequestHelper {
- public static void updateWorkOrders(List<Case> newRequest, Map<Id , Case> oldRequest){
- System.debug('oldRequest' +oldRequest);
- System.debug('newRequest' +newRequest);
- List<Case> newRequestList = new List<Case>();
- Map<Id , Decimal> minCycle = new Map<Id, Decimal>();
- Set<Id> setId = new Set<Id>();
- for (case c : newRequest){
- setId.add(c.Id);
- }
- List<AggregateResult> minCycles =
- [SELECT Maintenance_Request__c, Min (Equipment__r.Maintenance_Cycle__c)
- FROM Work_Part__c WHERE Maintenance_Request__c =: setId
- GROUP BY Maintenance_Request__c];
- for(AggregateResult temp : minCycles){
- Id idMap = (Id) temp.get('Maintenance_Request__c');
- Decimal decimalMap = (Decimal) temp.get('expr0');
- minCycle.put(idMap,decimalMap);
- }
- for (case j : newRequest){
- case oldCase = oldRequest.get(j.Id);
- system.debug('oldCase'+ oldCase);
- if((j.Type == ('Routine Maintenance') || j.Type == ('Repair')) &&
- j.IsClosed && !oldCase.IsClosed ){
- Case nInsert = new Case();
- nInsert.Vehicle__c = j.Vehicle__c;
- nInsert.Type = 'Routine Maintenance';
- nInsert.Subject = '';
- nInsert.Date_Reported__c = Date.today();
- nInsert.Equipment__c = j.Equipment__c;
- integer cycle;
- system.debug('nInsert' + nInsert);
- if (minCycle.get(j.Id)!= null){
- cycle = (integer)minCycle.get(j.Id);
- nInsert.Date_Due__c = Date.today().addDays(cycle);
- }
- else{
- cycle = 0;
- nInsert.Date_Due__c = Date.today().addDays(cycle);
- }
- newRequestList.add(nInsert);
- }
- }
- insert newRequestList;
- system.debug('newRequestList' + newRequestList);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement