Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Long newHours;
- Long otherHours;
- Long milliSeconds;
- Double totalMinutes = 0, totalHours = 0;
- Long seconds;
- DateTime startTime;
- Set<String> operationalEventIdSet = new Set<String>();
- sm1e__Operational_Event__c operationalEventInstance = null;
- List<sm1e__Operational_Event__c> operationalEventList = new List<sm1e__Operational_Event__c>();
- for(sm1e__Event_Log__c eventLog : Trigger.new){
- operationalEventIdSet.add(eventLog.sm1e__Operational_Event__c);
- }
- Map<Id, sm1e__Operational_Event__c> operationalEventMap = new Map<Id, sm1e__Operational_Event__c>();
- operationalEventMap = new Map<Id, sm1e__Operational_Event__c>([SELECT Id,
- sm1e__Status__c,
- sm1e__Start_Time__c,
- (SELECT Id,
- Status_Start_Time__c,
- sm1e__Operational_Event_Status__c
- FROM sm1e__Event_Logs__r
- ORDER BY CreatedDate ASC)
- FROM sm1e__Operational_Event__c WHERE Id IN: operationalEventIdSet]);
- for(sm1e__Event_Log__c eventLog : Trigger.new){
- if(operationalEventMap != null && operationalEventMap.containsKey(eventLog.sm1e__Operational_Event__c)){
- if(eventLog.sm1e__Operational_Event_Status__c == 'Work Order Created'){
- totalMinutes = 0;
- totalHours = 0;
- startTime = operationalEventMap.get(eventLog.sm1e__Operational_Event__c).sm1e__Start_Time__c;
- operationalEventInstance = new sm1e__Operational_Event__c();
- operationalEventInstance.Id = eventLog.sm1e__Operational_Event__c;
- for(sm1e__Event_Log__c eLog : operationalEventMap.get(eventLog.sm1e__Operational_Event__c).sm1e__Event_Logs__r){
- if(eLog.sm1e__Operational_Event_Status__c == 'New' && eLog.Status_Start_Time__c != null)
- newHours = eLog.Status_Start_Time__c.getTime();
- if(eLog.sm1e__Operational_Event_Status__c == 'Work Order Created' && eLog.Status_Start_Time__c != null)
- otherHours = eLog.Status_Start_Time__c.getTime();
- }
- milliSeconds = otherHours - newHours;
- seconds = milliSeconds / 1000;
- totalMinutes = seconds / 60;
- totalHours = totalMinutes / 60;
- operationalEventInstance.NewToCreatedTotalHours__c = totalHours;
- operationalEventList.add(operationalEventInstance);
- }
- if(eventLog.sm1e__Operational_Event_Status__c == 'Work Order In Progress'){
- totalMinutes = 0;
- totalHours = 0;
- startTime = operationalEventMap.get(eventLog.sm1e__Operational_Event__c).sm1e__Start_Time__c;
- operationalEventInstance = new sm1e__Operational_Event__c();
- operationalEventInstance.Id = eventLog.sm1e__Operational_Event__c;
- for(sm1e__Event_Log__c eLog : operationalEventMap.get(eventLog.sm1e__Operational_Event__c).sm1e__Event_Logs__r){
- if(eLog.sm1e__Operational_Event_Status__c == 'New' && eLog.Status_Start_Time__c != null)
- newHours = eLog.Status_Start_Time__c.getTime();
- if(eLog.sm1e__Operational_Event_Status__c == 'Work Order In Progress' && eLog.Status_Start_Time__c != null)
- otherHours = eLog.Status_Start_Time__c.getTime();
- }
- milliSeconds = otherHours - newHours;
- seconds = milliSeconds / 1000;
- totalMinutes = seconds / 60;
- totalHours = totalMinutes / 60;
- operationalEventInstance.New_to_In_progress__c = totalHours;
- operationalEventList.add(operationalEventInstance);
- }
- if(eventLog.sm1e__Operational_Event_Status__c == 'Work Order Completed'){
- totalMinutes = 0;
- totalHours = 0;
- startTime = operationalEventMap.get(eventLog.sm1e__Operational_Event__c).sm1e__Start_Time__c;
- operationalEventInstance = new sm1e__Operational_Event__c();
- operationalEventInstance.Id = eventLog.sm1e__Operational_Event__c;
- for(sm1e__Event_Log__c eLog : operationalEventMap.get(eventLog.sm1e__Operational_Event__c).sm1e__Event_Logs__r){
- if(eLog.sm1e__Operational_Event_Status__c == 'New' && eLog.Status_Start_Time__c != null)
- newHours = eLog.Status_Start_Time__c.getTime();
- if(eLog.sm1e__Operational_Event_Status__c == 'Work Order Completed' && eLog.Status_Start_Time__c != null)
- otherHours = eLog.Status_Start_Time__c.getTime();
- }
- milliSeconds = otherHours - newHours;
- seconds = milliSeconds / 1000;
- totalMinutes = seconds / 60;
- totalHours = totalMinutes / 60;
- operationalEventInstance.NewToCompletedHotalHours__c = totalHours;
- operationalEventList.add(operationalEventInstance);
- }
- }
- }
- if(operationalEventList != null && !operationalEventList.isEmpty())
- update operationalEventList;
Add Comment
Please, Sign In to add comment