public void UpdateDpiTimeArrival(CS_CallLog callLog, Globals.CallEntry.CallType type) { CallLogModel model; DateTime actionDate = new DateTime(); using (model = new CallLogModel()) { actionDate = model.GetCallLogActionDateTime(callLog.Xml).Value; } if (!actionDate.Equals(new DateTime())) { DateTime date = actionDate.Date; CS_DPI datedDPI = _dpiRepository.Get(e => e.Date == date && e.JobID == callLog.JobID); CS_DPI newDPI; if (null != datedDPI) { newDPI = new CS_DPI() { ApprovedBy = datedDPI.ApprovedBy, Calculate = datedDPI.Calculate, CalculationStatus = datedDPI.CalculationStatus, CreatedBy = datedDPI.CreatedBy, CreationDate = datedDPI.CreationDate, CreationID = datedDPI.CreationID, Date = datedDPI.Date, FirstATA = datedDPI.FirstATA, FirstETA = datedDPI.FirstETA, ID = datedDPI.ID, IsContinuing = datedDPI.IsContinuing, JobID = datedDPI.JobID, ModificationDate = datedDPI.ModificationDate, ModificationID = datedDPI.ModificationID, ModifiedBy = datedDPI.ModifiedBy, ProcessStatus = datedDPI.ProcessStatus, ProcessStatusDate = datedDPI.ProcessStatusDate, Total = datedDPI.Total }; if (type == Globals.CallEntry.CallType.ETA) { if (!newDPI.FirstETA.HasValue || actionDate < newDPI.FirstETA.Value) { newDPI.FirstETA = actionDate; _dpiRepository.Update(newDPI); } } else { if (!newDPI.FirstATA.HasValue || actionDate < newDPI.FirstATA.Value) { newDPI.FirstATA = actionDate; _dpiRepository.Update(newDPI); } } } } }
private List<DPICallLogVO> GetDPICallLogTimesFromList(List<CS_CallLogResource> originalCallLogs, DateTime calculationDate) { List<DPICallLogVO> returnList = new List<DPICallLogVO>(); CallLogModel model = new CallLogModel(); for (int i = 0; i < originalCallLogs.Count; i++) { DPICallLogVO newVO = new DPICallLogVO() { ID = originalCallLogs[i].CallLogID }; if (originalCallLogs[i].ActionDate.HasValue) newVO.ActionTime = originalCallLogs[i].ActionDate.Value; else { // Only for old records if (originalCallLogs[i].CS_CallLog.CS_CallType.ID == (int)Globals.CallEntry.CallType.AddedResource) { int jobID = originalCallLogs[i].JobID; int? employeeID = originalCallLogs[i].EmployeeID; int? equipmentID = originalCallLogs[i].EquipmentID; CS_Resource addedResource = _resourceRepository.Get(e => e.Active && e.JobID == jobID && ((employeeID.HasValue && e.EmployeeID == employeeID.Value) || (equipmentID.HasValue && e.EquipmentID == equipmentID.Value))); if (null != addedResource) newVO.ActionTime = addedResource.StartDateTime; else newVO.ActionTime = new DateTime(); } else if (originalCallLogs[i].CS_CallLog.CS_CallType.IsAutomaticProcess) { newVO.ActionTime = originalCallLogs[i].CS_CallLog.CreationDate; } else { newVO.ActionTime = model.GetCallLogActionDateTime(originalCallLogs[i].CS_CallLog.Xml).Value; } } if (newVO.ActionTime.Date == calculationDate.Date) returnList.Add(newVO); } returnList.Sort(); return returnList; }