private bool CalculateSLAMet(Config_Information configInfo, Cleansed_SLA_Report_Details cleansedLine) { bool result = false; if (cleansedLine.Order_Number == "01004281015020000200") { result = false; } DateTime orderDate = (cleansedLine.Released_Date.Year == 1 ? cleansedLine.Date_Imported : cleansedLine.Released_Date); DateTime shipDate = (cleansedLine.Ship_Date.Year == 1 ? DateTime.Now.AddDays(1) : cleansedLine.Ship_Date); DateTime cutOffDeadline = CalculateCutOffTime(orderDate, configInfo, cleansedLine.Delivery_Option, cleansedLine.Ship_Method); DateTime slaDeadline = CalculateSLATime(orderDate, configInfo, cleansedLine.Delivery_Option, cleansedLine.Ship_Method); if (orderDate > cutOffDeadline) { if (shipDate < slaDeadline.AddDays(1)) { result = true; } } else { if (shipDate < slaDeadline) { result = true; } } return(result); }
public IEnumerable <Cleansed_SLA_Report_Details> InterpretRawSLAData(IEnumerable <Raw_SLA_Report_Data> _rawSLAData, Config_Information configInfo) { List <Cleansed_SLA_Report_Details> list = new List <Cleansed_SLA_Report_Details>(); Cleansed_SLA_Report_Details cleansedLine; DateTime dateImported, dateReleased; foreach (var detail in _rawSLAData) { cleansedLine = new Cleansed_SLA_Report_Details(); cleansedLine.Order_Number = detail.ORDER_NUMBER; cleansedLine.Ship_Method = detail.SHIP_METHOD; cleansedLine.Delivery_Option = (detail.DEL_OPTION == 1 ? "Express" : "Standard"); cleansedLine.Date_Imported = detail.DATE_IMPORTED; cleansedLine.Order_Date = detail.ORDER_DATE; cleansedLine.Released_Date = detail.RELEASE_DATE; cleansedLine.Ship_Date = detail.SHIP_DATE; cleansedLine.SLA_Met = CalculateSLAMet(configInfo, cleansedLine); dateImported = (detail.DATE_IMPORTED.Year == 1 ? DateTime.Now : detail.DATE_IMPORTED); dateReleased = (detail.RELEASE_DATE.Year == 1 ? DateTime.Now : detail.RELEASE_DATE); cleansedLine.Time_To_Import = GetTimeDifference_ToTimeSpan(detail.ORDER_DATE, dateImported); cleansedLine.Time_To_Release = GetTimeDifference_ToTimeSpan(detail.DATE_IMPORTED, dateReleased); list.Add(cleansedLine); } IEnumerable <Cleansed_SLA_Report_Details> result = list; return(result); }
public IEnumerable <Cleansed_SLA_Report_Details> FilterDateRangeFromSLADetails(IEnumerable <Cleansed_SLA_Report_Details> fullSLADetails, DateTime dateFrom, DateTime dateTo) { List <Cleansed_SLA_Report_Details> list = new List <Cleansed_SLA_Report_Details>(); Cleansed_SLA_Report_Details cleansedLine; DateTime orderDate; foreach (var detail in fullSLADetails) { orderDate = (detail.Released_Date.Year == 1 ? detail.Order_Date : detail.Released_Date); if ((orderDate >= dateFrom) && (orderDate <= dateTo)) { cleansedLine = new Cleansed_SLA_Report_Details(); cleansedLine.Order_Number = detail.Order_Number; cleansedLine.Ship_Method = detail.Ship_Method; cleansedLine.Delivery_Option = detail.Delivery_Option; cleansedLine.Date_Imported = detail.Date_Imported; cleansedLine.Order_Date = detail.Order_Date; cleansedLine.Released_Date = detail.Released_Date; cleansedLine.Ship_Date = detail.Ship_Date; cleansedLine.SLA_Met = detail.SLA_Met; cleansedLine.Time_To_Import = detail.Time_To_Import; cleansedLine.Time_To_Release = detail.Time_To_Release; list.Add(cleansedLine); } } IEnumerable <Cleansed_SLA_Report_Details> result = list; return(result); }
public IEnumerable <Cleansed_SLA_Report_Details> FilterCutOffTimes(IEnumerable <Cleansed_SLA_Report_Details> fullSLADetails, Config_Information configInfo, DateTime lastDate, DateTime toDate) { List <Cleansed_SLA_Report_Details> list = new List <Cleansed_SLA_Report_Details>(); Cleansed_SLA_Report_Details cleansedLine; DateTime fromCutOffTime = lastDate.Date; DateTime toCutOffTime = toDate.Date; DateTime orderDate; bool isExemptFromView = false; foreach (var detail in fullSLADetails) { fromCutOffTime = lastDate.Date; toCutOffTime = toDate.Date; isExemptFromView = false; if (detail.Order_Number == "3337681") { fromCutOffTime.AddDays(0); } if (dataAdapter.CheckForWeekend(detail.Order_Date, configInfo)) { fromCutOffTime += configInfo.Weekend_Cutoff_Time.TimeOfDay; toCutOffTime += configInfo.Weekend_Cutoff_Time.TimeOfDay; } else if (detail.Delivery_Option == "Express") { fromCutOffTime += configInfo.Express_Cutoff_Time.TimeOfDay; toCutOffTime += configInfo.Express_Cutoff_Time.TimeOfDay; if (toCutOffTime.DayOfWeek == DayOfWeek.Sunday) { isExemptFromView = triggerSundayExpressRule(detail.Order_Date, configInfo); } } else if (detail.Ship_Method == "Home") { fromCutOffTime += configInfo.Standard_Cutoff_Time.TimeOfDay; toCutOffTime += configInfo.Standard_Cutoff_Time.TimeOfDay; } else if (detail.Ship_Method == "Store") { fromCutOffTime += configInfo.Store_Cutoff_Time.TimeOfDay; toCutOffTime += configInfo.Store_Cutoff_Time.TimeOfDay; } else if (detail.Ship_Method == "International") { fromCutOffTime += configInfo.International_Cutoff_Time.TimeOfDay; toCutOffTime += configInfo.International_Cutoff_Time.TimeOfDay; } orderDate = (detail.Released_Date.Year == 1 ? detail.Order_Date : detail.Released_Date); if ((detail.Released_Date.Year != 1) && (!detail.Order_Number.StartsWith("E") || !detail.Order_Number.StartsWith("R"))) { if ((orderDate >= fromCutOffTime) && (orderDate <= toCutOffTime) && !isExemptFromView) { cleansedLine = new Cleansed_SLA_Report_Details(); cleansedLine.Order_Number = detail.Order_Number; cleansedLine.Ship_Method = detail.Ship_Method; cleansedLine.Delivery_Option = detail.Delivery_Option; cleansedLine.Date_Imported = detail.Date_Imported; cleansedLine.Order_Date = detail.Order_Date; cleansedLine.Released_Date = detail.Released_Date; cleansedLine.Ship_Date = detail.Ship_Date; cleansedLine.SLA_Met = detail.SLA_Met; cleansedLine.Time_To_Import = detail.Time_To_Import; cleansedLine.Time_To_Release = detail.Time_To_Release; list.Add(cleansedLine); } } } IEnumerable <Cleansed_SLA_Report_Details> result = list; return(result); }