Example #1
0
        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");
        }
Example #2
0
        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;
            }
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }
Example #5
0
        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);
        }
Example #6
0
        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();
                }
            }
        }