private static void CheckHeader(OrderHistoryHeader header) { DateTime orderDate = DateTime.Parse(header.OrderDateTime); DateTime deliveryDate = DateTime.Parse(header.DeliveryDate).AddDays(1).AddSeconds(-1); // end of day orderDate.Should().BeOnOrBefore(deliveryDate); header.ErrorStatus.Should().BeTrue("because I said so"); }
public static void MergeWithEntity(this OrderHistoryHeader header, ref EF.OrderHistoryHeader entity) { entity.OrderSystem = header.OrderSystem.ToShortString(); entity.BranchId = header.BranchId; entity.CustomerNumber = header.CustomerNumber; entity.InvoiceNumber = header.InvoiceNumber; entity.OrderDateTime = header.OrderDateTime; entity.DeliveryDate = header.DeliveryDate.ToDateTime().Value.ToLongDateFormat(); entity.PONumber = header.PONumber ?? entity.PONumber; //entity.ControlNumber = header.ControlNumber.Trim(); // the original control number is actually set from the entity already // and because the order history header is actually a converted confirmation // it does not know the original control number so it is seeing it as null // and screwing up the original control number //entity.OriginalControlNumber = string.IsNullOrEmpty(header.OriginalControlNumber) ? header.ControlNumber.Trim() : header.OriginalControlNumber.Trim(); entity.OrderStatus = header.OrderStatus; entity.FutureItems = header.FutureItems; entity.ErrorStatus = header.ErrorStatus; entity.RouteNumber = header.RouteNumber; entity.StopNumber = header.StopNumber; //entity.IsSpecialOrder = if (string.IsNullOrEmpty(entity.ControlNumber)) { entity.ControlNumber = header.ControlNumber.Trim(); if (string.IsNullOrEmpty(entity.OriginalControlNumber)) { entity.OriginalControlNumber = header.ControlNumber.Trim(); } } else { // update the history file with EF data int valueControlNumber; if (!int.TryParse(header.ControlNumber, out valueControlNumber)) { valueControlNumber = 0; } int entityControlNumber; if (!int.TryParse(entity.ControlNumber, out entityControlNumber)) { entityControlNumber = 0; } if (entityControlNumber > valueControlNumber) { header.ControlNumber = entity.ControlNumber; } else { entity.ControlNumber = header.ControlNumber; } //value.ControlNumber = entityControlNumber >= valueControlNumber? entity.ControlNumber : value.ControlNumber; header.OriginalControlNumber = entity.OriginalControlNumber ?? entity.ControlNumber; } }
public static OrderHistoryHeader ToOrderHistoryHeader(this EF.OrderHistoryHeader entity) { OrderHistoryHeader header = new OrderHistoryHeader(); header.OrderSystem = OrderSource.Entree; // TODO: entity.OrderSystem.ToShortString(); header.BranchId = entity.BranchId; header.CustomerNumber = entity.CustomerNumber; header.InvoiceNumber = entity.InvoiceNumber; header.DeliveryDate = entity.DeliveryDate.ToDateTime().Value.ToLongDateFormat(); header.PONumber = entity.PONumber; header.ControlNumber = entity.ControlNumber; header.OriginalControlNumber = string.IsNullOrEmpty(entity.OriginalControlNumber) ? entity.ControlNumber.Trim() : entity.OriginalControlNumber.Trim(); header.OrderStatus = entity.OrderStatus; header.FutureItems = entity.FutureItems; header.ErrorStatus = entity.ErrorStatus; header.RouteNumber = entity.RouteNumber; header.StopNumber = entity.StopNumber; return(header); }
public static EF.OrderHistoryHeader ToEntityFrameworkModel(this OrderHistoryHeader header) { EF.OrderHistoryHeader entity = new EF.OrderHistoryHeader(); entity.OrderSystem = header.OrderSystem.ToShortString(); entity.BranchId = header.BranchId; entity.CustomerNumber = header.CustomerNumber; entity.InvoiceNumber = header.InvoiceNumber; entity.OrderDateTime = header.OrderDateTime; entity.DeliveryDate = header.DeliveryDate.ToDateTime().Value.ToLongDateFormat(); entity.PONumber = header.PONumber; entity.ControlNumber = header.ControlNumber; entity.OriginalControlNumber = string.IsNullOrEmpty(header.OriginalControlNumber) ? header.ControlNumber.Trim() : header.OriginalControlNumber.Trim(); entity.OrderStatus = header.OrderStatus; entity.FutureItems = header.FutureItems; entity.ErrorStatus = header.ErrorStatus; entity.RouteNumber = header.RouteNumber; entity.StopNumber = header.StopNumber; return(entity); }
public static OrderHistoryHeader ToOrderHistoryHeader(this CS.PurchaseOrder value, UserSelectedContext customerInfo, string specialCatalogId = null) { OrderHistoryHeader header = new OrderHistoryHeader(); header.OrderSystem = OrderSource.Entree; //if (specialCatalogId == null) // TODO: What to do about branch for unfi? header.BranchId = customerInfo.BranchId; //else // header.BranchId = specialCatalogId; header.CustomerNumber = customerInfo.CustomerId; header.InvoiceNumber = value.Properties["MasterNumber"] == null ? "Processing" : value.Properties["MasterNumber"].ToString(); header.DeliveryDate = value.Properties["RequestedShipDate"].ToString().ToDateTime().Value.ToLongDateFormat(); header.PONumber = value.Properties["PONumber"] == null ? string.Empty : value.Properties["PONumber"].ToString(); header.ControlNumber = value.Properties["OrderNumber"].ToString(); header.OriginalControlNumber = value.Properties["OrderNumber"].ToString(); // OrderStatus for Order History is either a blank space (normal), I (invoiced), D (deleted), or P (processing) //header.OrderStatus = System.Text.RegularExpressions.Regex.Replace(header.Status, "([a-z])([A-Z])", "$1 $2"); header.OrderStatus = string.Empty; return(header); }
public static void Parse(this OrderHistoryHeader header, string record) { if (record.Length >= HEADER_STARTPOS_ORDSYS + HEADER_LENGTH_ORDSYS) { OrderSource tempOrderSource = new OrderSource(); header.OrderSystem = tempOrderSource.Parse(record.Substring(HEADER_STARTPOS_ORDSYS, HEADER_LENGTH_ORDSYS)); } if (record.Length >= HEADER_STARTPOS_BRANCH + HEADER_LENGTH_BRANCH) { header.BranchId = record.Substring(HEADER_STARTPOS_BRANCH, HEADER_LENGTH_BRANCH).Trim(); } if (record.Length >= HEADER_STARTPOS_CUSTNUM + HEADER_LENGTH_CUSTNUM) { header.CustomerNumber = record.Substring(HEADER_STARTPOS_CUSTNUM, HEADER_LENGTH_CUSTNUM).Trim(); } if (record.Length >= HEADER_STARTPOS_DELVDATE + HEADER_LENGTH_DELVDATE) { string deliveryDate = record.Substring(HEADER_STARTPOS_DELVDATE, HEADER_LENGTH_DELVDATE); int year = int.Parse(deliveryDate.Substring(0, 4)); int month = int.Parse(deliveryDate.Substring(4, 2)); int day = int.Parse(deliveryDate.Substring(6, 2)); header.DeliveryDate = new DateTime(year, month, day).ToLongDateFormat(); } if (record.Length >= HEADER_STARTPOS_PONUM + HEADER_LENGTH_PONUM) { header.PONumber = record.Substring(HEADER_STARTPOS_PONUM, HEADER_LENGTH_PONUM).Trim(); } if (record.Length >= HEADER_STARTPOS_CTRLNUM + HEADER_LENGTH_CTRLNUM) { header.ControlNumber = record.Substring(HEADER_STARTPOS_CTRLNUM, HEADER_LENGTH_CTRLNUM).Trim(); } if (record.Length >= HEADER_STARTPOS_INVNUM + HEADER_LENGTH_INVNUM) { header.InvoiceNumber = record.Substring(HEADER_STARTPOS_INVNUM, HEADER_LENGTH_INVNUM).Trim(); } if (record.Length >= HEADER_STARTPOS_ORDSTS + HEADER_LENGTH_ORDSTS) { header.OrderStatus = record.Substring(HEADER_STARTPOS_ORDSTS, HEADER_LENGTH_ORDSTS).Trim(); } // don't set Future Item flag here // don't set Error Status flag here if (record.Length >= HEADER_STARTPOS_RTENUM + HEADER_LENGTH_RTENUM) { header.RouteNumber = record.Substring(HEADER_STARTPOS_RTENUM, HEADER_LENGTH_RTENUM).Trim(); } if (record.Length >= HEADER_STARTPOS_STPNUM + HEADER_LENGTH_STPNUM) { header.StopNumber = record.Substring(HEADER_STARTPOS_STPNUM, HEADER_LENGTH_STPNUM).Trim(); } if (record.Length >= HEADER_STARTPOS_ORDDATE + HEADER_LENGTH_ORDDATE) { string rawOrderDateTime = record.Substring(HEADER_STARTPOS_ORDDATE, HEADER_LENGTH_ORDDATE); if (string.IsNullOrWhiteSpace(rawOrderDateTime) == false) { //value.OrderDateTime = DateTime.ParseExact(orderDateTime, "yyyyMMddHHmmss", null); int year = int.Parse(rawOrderDateTime.Substring(0, 4)); int month = int.Parse(rawOrderDateTime.Substring(4, 2)); int day = int.Parse(rawOrderDateTime.Substring(6, 2)); int hour = int.Parse(rawOrderDateTime.Substring(8, 2)); int minute = int.Parse(rawOrderDateTime.Substring(10, 2)); int second = int.Parse(rawOrderDateTime.Substring(12, 2)); var orderDateTime = new DateTime(year, month, day, hour, minute, second, DateTimeKind.Local); header.OrderDateTime = orderDateTime.ToLongDateFormatWithTime(); } } }