Advertisement
SoniaMilena

Untitled

May 24th, 2019
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.17 KB | None | 0 0
  1. public class MaintenanceRequestHelper {
  2. public static void updateWorkOrders(List<Case> newRequest, Map<Id , Case> oldRequest){
  3. System.debug('oldRequest' +oldRequest);
  4. System.debug('newRequest' +newRequest);
  5. List<Case> newRequestList = new List<Case>();
  6. Map<Id , Decimal> minCycle = new Map<Id, Decimal>();
  7. Set<Id> setId = new Set<Id>();
  8.  
  9. for (case c : newRequest){
  10. setId.add(c.Id);
  11. }
  12. List<AggregateResult> minCycles =
  13. [SELECT Maintenance_Request__c, Min (Equipment__r.Maintenance_Cycle__c)
  14. FROM Work_Part__c WHERE Maintenance_Request__c =: setId
  15. GROUP BY Maintenance_Request__c];
  16. for(AggregateResult temp : minCycles){
  17. Id idMap = (Id) temp.get('Maintenance_Request__c');
  18. Decimal decimalMap = (Decimal) temp.get('expr0');
  19. minCycle.put(idMap,decimalMap);
  20. }
  21.  
  22. for (case j : newRequest){
  23. case oldCase = oldRequest.get(j.Id);
  24. system.debug('oldCase'+ oldCase);
  25. if((j.Type == ('Routine Maintenance') || j.Type == ('Repair')) &&
  26. j.IsClosed && !oldCase.IsClosed ){
  27. Case nInsert = new Case();
  28. nInsert.Vehicle__c = j.Vehicle__c;
  29. nInsert.Type = 'Routine Maintenance';
  30. nInsert.Subject = '';
  31. nInsert.Date_Reported__c = Date.today();
  32. nInsert.Equipment__c = j.Equipment__c;
  33. integer cycle;
  34. system.debug('nInsert' + nInsert);
  35. if (minCycle.get(j.Id)!= null){
  36. cycle = (integer)minCycle.get(j.Id);
  37. nInsert.Date_Due__c = Date.today().addDays(cycle);
  38. }
  39. else{
  40. cycle = 0;
  41. nInsert.Date_Due__c = Date.today().addDays(cycle);
  42. }
  43. newRequestList.add(nInsert);
  44. }
  45. }
  46. insert newRequestList;
  47. system.debug('newRequestList' + newRequestList);
  48. }
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement