示例#1
0
        public void ExportLaserTag()
        {
            var order = new AllfleXML.LaserTag.OrderHeader
            {
                CustomerNumber   = "testing",
                Comments         = "PIN:005S55A",
                OrderBy          = "BH",
                OrderDate        = "031316",
                OrderType        = "ST",
                PO               = "TESTTSU4",
                PremiseId        = "005S55A",
                ShipToAddress1   = "ATTN BOB LITTLE",
                ShipToAddress2   = "664 E BLUE SKU ST",
                ShipToCity       = "SHAWANO",
                ShipToCountry    = "USA",
                ShipToName       = "CRI",
                ShipToState      = "WI",
                ShipToZipCode    = "54166",
                OrderLineHeaders = new List <AllfleXML.LaserTag.OrderLineHeader>
                {
                    new AllfleXML.LaserTag.OrderLineHeader
                    {
                        QTY                      = "1",
                        SKU                      = "TSUGNXUSDATXF2/LM-PK",
                        DeliveryRemarks          = "1@ S: M:101 L:150",
                        OrderLineTemplateDetails = new List <AllfleXML.LaserTag.LineTemplateDetail>
                        {
                            new AllfleXML.LaserTag.LineTemplateDetail
                            {
                                SKU       = "TSUGNXUSDATXF2/LM-PK",
                                Variables = new [] { "var1", "var2" }
                            }
                        }
                    }
                }
            };

            var doc = AllfleXML.LaserTag.Parser.Export(order);

            Assert.IsNotNull(doc);

            var isValid = AllfleXML.LaserTag.Parser.Validate(doc);

            Assert.IsTrue(isValid);
        }
示例#2
0
        private static OrderHeader ParseHeaderString(string orderString)
        {
            var fields = orderString.Split('þ'); // "https://en.wikipedia.org/wiki/Thorn_(letter)"

            var orderLineType = fields[0];       // should be SOH;

            if (!orderLineType.Equals(OrderHeaderLineType))
            {
                throw new Exception("That is not the header string!");
            }
            var result = new OrderHeader();

            if (!fields.Any())
            {
                return(result);
            }

            result.OrderLineHeaders = new List <OrderLineHeader>();

            if (fields.Length > 1)
            {
                result.CustomerNumber = fields[1];
            }

            if (fields.Length > 2)
            {
                result.OrderDate = fields[2];
            }

            if (fields.Length > 3)
            {
                result.OrderBy = fields[3];
            }

            if (fields.Length > 4)
            {
                result.Comments = fields[4];

                // TODO: IMPROVE
                var premiseId = result.Comments.Replace("PIN:", "");
                if (premiseId.Contains("NEED PREMISE ID FOR NEXT ORDER") || premiseId.Contains("Replacement Tag Order for PO:") || premiseId.Contains("REPLACEMENT TAGS"))
                {
                    premiseId = string.Empty;
                }
                premiseId = premiseId.Replace("PIN-", "").Replace(" ", "").Trim();

                result.PremiseId = premiseId;
            }
            if (fields.Length > 5)
            {
                result.ShipVia = fields[5];
            }

            if (fields.Length > 6)
            {
                result.ShipComp = fields[6];
            }

            if (fields.Length > 7)
            {
                result.POBPoint = fields[7];
            }

            if (fields.Length > 8)
            {
                result.TermsCode = fields[8];
            }

            if (fields.Length > 9)
            {
                result.PO = fields[9];
            }

            if (fields.Length > 10)
            {
                result.PickDate = fields[10];
            }

            if (fields.Length > 11)
            {
                result.ExtraChargeCode = fields[11];
            }

            if (fields.Length > 12)
            {
                result.ExtraChargeAccount = fields[12];
            }

            if (fields.Length > 13)
            {
                result.TaxCode = fields[13];
            }

            if (fields.Length > 14)
            {
                result.SalesRepCode = fields[14];
            }

            if (fields.Length > 15)
            {
                result.OrderType = fields[15];
            }

            if (fields.Length > 16)
            {
                result.OrderClass = fields[16];
            }

            if (fields.Length > 17)
            {
                result.SalesRepCommission = fields[17];
            }

            if (fields.Length > 18)
            {
                result.CommissionCode = fields[18];
            }

            if (fields.Length > 19)
            {
                result.PickPriorityCode = fields[19];
            }

            if (fields.Length > 20)
            {
                result.DueDate = fields[20];
            }

            if (fields.Length > 21)
            {
                result.DivisionCode = fields[21];
            }

            if (fields.Length > 22)
            {
                result.UnknownFeild01 = fields[22];
            }

            if (fields.Length > 23)
            {
                result.UnknownFeild02 = fields[23];
            }

            if (fields.Length > 24)
            {
                result.UnknownFeild03 = fields[24];
            }

            if (fields.Length > 25)
            {
                result.UnknownFeild04 = fields[25];
            }

            if (fields.Length > 26)
            {
                result.UnknownFeild05 = fields[26];
            }
            if (fields.Length > 27)
            {
                result.UnknownFeild06 = fields[27];
            }

            if (fields.Length > 28)
            {
                result.UnknownFeild07 = fields[28];
            }

            if (fields.Length > 29)
            {
                result.UnknownFeild08 = fields[29];
            }

            if (fields.Length > 30)
            {
                result.UnknownFeild09 = fields[30];
            }

            if (fields.Length > 31)
            {
                result.UnknownFeild10 = fields[31];
            }

            if (fields.Length > 32)
            {
                result.UnknownFeild11 = fields[32];
            }

            if (fields.Length > 33)
            {
                result.UnknownFeild12 = fields[33];
            }

            if (fields.Length > 34)
            {
                result.BookFacCode = fields[34];
            }

            if (fields.Length > 35)
            {
                result.DirShipFlag = fields[35];
            }

            if (fields.Length > 36)
            {
                result.ShipToName = fields[36];
            }

            if (fields.Length > 37)
            {
                result.ShipToAddress1 = fields[37];
            }

            if (fields.Length > 38)
            {
                result.ShipToAddress2 = fields[38];
            }

            if (fields.Length > 39)
            {
                result.ShipToCity = fields[39];
            }

            if (fields.Length > 40)
            {
                result.ShipToState = fields[40];
            }

            if (fields.Length > 41)
            {
                result.ShipToZipCode = fields[41];
            }

            if (fields.Length > 42)
            {
                result.ShipToCountry = fields[42];
            }

            if (fields.Length > 43)
            {
                result.ShipToCode = fields[43];
            }

            if (fields.Length > 44)
            {
                result.RushOrder = fields[44];
            }

            return(result);
        }
示例#3
0
        public static void Save(this OrderHeader order, string xmlFilePath)
        {
            var doc = Export(order);

            doc.Save(xmlFilePath);
        }
示例#4
0
        public static FlexOrder.OrderHeader ToFlexOrder(this OrderHeader order)
        {
            #region User Defined Fields

            var fields = new FlexOrder.UserDefinedFields {
                Fields = new List <FlexOrder.UserDefinedField>()
            };

            //OrderDate
            if (!string.IsNullOrWhiteSpace(order.OrderDate))
            {
                fields.Fields.Add(new FlexOrder.UserDefinedField {
                    Key = "OrderDate", Value = order.OrderDate
                });
            }

            //OrderBy
            if (!string.IsNullOrWhiteSpace(order.OrderBy))
            {
                fields.Fields.Add(new FlexOrder.UserDefinedField {
                    Key = "OrderBy", Value = order.OrderBy
                });
            }

            //Comments
            if (!string.IsNullOrWhiteSpace(order.Comments))
            {
                fields.Fields.Add(new FlexOrder.UserDefinedField {
                    Key = "Comments", Value = order.Comments
                });
            }

            //ShipComp
            if (!string.IsNullOrWhiteSpace(order.ShipComp))
            {
                fields.Fields.Add(new FlexOrder.UserDefinedField {
                    Key = "ShipComp", Value = order.ShipComp
                });
            }

            //POBPoint
            if (!string.IsNullOrWhiteSpace(order.POBPoint))
            {
                fields.Fields.Add(new FlexOrder.UserDefinedField {
                    Key = "POBPoint", Value = order.POBPoint
                });
            }

            //TermsCode
            if (!string.IsNullOrWhiteSpace(order.TermsCode))
            {
                fields.Fields.Add(new FlexOrder.UserDefinedField {
                    Key = "TermsCode", Value = order.TermsCode
                });
            }

            //PickDate
            if (!string.IsNullOrWhiteSpace(order.PickDate))
            {
                fields.Fields.Add(new FlexOrder.UserDefinedField {
                    Key = "PickDate", Value = order.PickDate
                });
            }

            //ExtraChargeCode
            if (!string.IsNullOrWhiteSpace(order.ExtraChargeCode))
            {
                fields.Fields.Add(new FlexOrder.UserDefinedField {
                    Key = "ExtraChargeCode", Value = order.ExtraChargeCode
                });
            }

            //ExtraChargeAccount
            if (!string.IsNullOrWhiteSpace(order.ExtraChargeAccount))
            {
                fields.Fields.Add(new FlexOrder.UserDefinedField {
                    Key = "ExtraChargeAccount", Value = order.ExtraChargeAccount
                });
            }

            //TaxCode
            if (!string.IsNullOrWhiteSpace(order.TaxCode))
            {
                fields.Fields.Add(new FlexOrder.UserDefinedField {
                    Key = "TaxCode", Value = order.TaxCode
                });
            }

            //SalesRepCode
            if (!string.IsNullOrWhiteSpace(order.SalesRepCode))
            {
                fields.Fields.Add(new FlexOrder.UserDefinedField {
                    Key = "SalesRepCode", Value = order.SalesRepCode
                });
            }

            //OrderType
            if (!string.IsNullOrWhiteSpace(order.OrderType))
            {
                fields.Fields.Add(new FlexOrder.UserDefinedField {
                    Key = "OrderType", Value = order.OrderType
                });
            }

            //OrderClass
            if (!string.IsNullOrWhiteSpace(order.OrderClass))
            {
                fields.Fields.Add(new FlexOrder.UserDefinedField {
                    Key = "OrderClass", Value = order.OrderClass
                });
            }

            //SalesRepCommission
            if (!string.IsNullOrWhiteSpace(order.SalesRepCommission))
            {
                fields.Fields.Add(new FlexOrder.UserDefinedField {
                    Key = "SalesRepCommission", Value = order.SalesRepCommission
                });
            }

            //CommissionCode
            if (!string.IsNullOrWhiteSpace(order.CommissionCode))
            {
                fields.Fields.Add(new FlexOrder.UserDefinedField {
                    Key = "CommissionCode", Value = order.CommissionCode
                });
            }

            //PickPriorityCode
            if (!string.IsNullOrWhiteSpace(order.PickPriorityCode))
            {
                fields.Fields.Add(new FlexOrder.UserDefinedField {
                    Key = "PickPriorityCode", Value = order.PickPriorityCode
                });
            }

            //DueDate
            if (!string.IsNullOrWhiteSpace(order.DueDate))
            {
                fields.Fields.Add(new FlexOrder.UserDefinedField {
                    Key = "DueDate", Value = order.DueDate
                });
            }

            //DivisionCode
            if (!string.IsNullOrWhiteSpace(order.DivisionCode))
            {
                fields.Fields.Add(new FlexOrder.UserDefinedField {
                    Key = "DivisionCode", Value = order.DivisionCode
                });
            }

            //UnknownFeild01
            if (!string.IsNullOrWhiteSpace(order.UnknownFeild01))
            {
                fields.Fields.Add(new FlexOrder.UserDefinedField {
                    Key = "UnknownFeild01", Value = order.UnknownFeild01
                });
            }

            //UnknownFeild02
            if (!string.IsNullOrWhiteSpace(order.UnknownFeild02))
            {
                fields.Fields.Add(new FlexOrder.UserDefinedField {
                    Key = "UnknownFeild02", Value = order.UnknownFeild02
                });
            }

            //UnknownFeild03
            if (!string.IsNullOrWhiteSpace(order.UnknownFeild03))
            {
                fields.Fields.Add(new FlexOrder.UserDefinedField {
                    Key = "UnknownFeild03", Value = order.UnknownFeild03
                });
            }

            //UnknownFeild04
            if (!string.IsNullOrWhiteSpace(order.UnknownFeild04))
            {
                fields.Fields.Add(new FlexOrder.UserDefinedField {
                    Key = "UnknownFeild04", Value = order.UnknownFeild04
                });
            }

            //UnknownFeild05
            if (!string.IsNullOrWhiteSpace(order.UnknownFeild05))
            {
                fields.Fields.Add(new FlexOrder.UserDefinedField {
                    Key = "UnknownFeild05", Value = order.UnknownFeild05
                });
            }

            //UnknownFeild06
            if (!string.IsNullOrWhiteSpace(order.UnknownFeild06))
            {
                fields.Fields.Add(new FlexOrder.UserDefinedField {
                    Key = "UnknownFeild06", Value = order.UnknownFeild06
                });
            }

            //UnknownFeild07
            if (!string.IsNullOrWhiteSpace(order.UnknownFeild07))
            {
                fields.Fields.Add(new FlexOrder.UserDefinedField {
                    Key = "UnknownFeild07", Value = order.UnknownFeild07
                });
            }

            //UnknownFeild08
            if (!string.IsNullOrWhiteSpace(order.UnknownFeild08))
            {
                fields.Fields.Add(new FlexOrder.UserDefinedField {
                    Key = "UnknownFeild08", Value = order.UnknownFeild08
                });
            }

            //UnknownFeild09
            if (!string.IsNullOrWhiteSpace(order.UnknownFeild09))
            {
                fields.Fields.Add(new FlexOrder.UserDefinedField {
                    Key = "UnknownFeild09", Value = order.UnknownFeild09
                });
            }

            //UnknownFeild10
            if (!string.IsNullOrWhiteSpace(order.UnknownFeild10))
            {
                fields.Fields.Add(new FlexOrder.UserDefinedField {
                    Key = "UnknownFeild10", Value = order.UnknownFeild10
                });
            }

            //UnknownFeild11
            if (!string.IsNullOrWhiteSpace(order.UnknownFeild11))
            {
                fields.Fields.Add(new FlexOrder.UserDefinedField {
                    Key = "UnknownFeild11", Value = order.UnknownFeild11
                });
            }

            //UnknownFeild12
            if (!string.IsNullOrWhiteSpace(order.UnknownFeild12))
            {
                fields.Fields.Add(new FlexOrder.UserDefinedField {
                    Key = "UnknownFeild12", Value = order.UnknownFeild12
                });
            }

            //BookFacCode
            if (!string.IsNullOrWhiteSpace(order.BookFacCode))
            {
                fields.Fields.Add(new FlexOrder.UserDefinedField {
                    Key = "BookFacCode", Value = order.BookFacCode
                });
            }

            //DirShipFlag
            if (!string.IsNullOrWhiteSpace(order.DirShipFlag))
            {
                fields.Fields.Add(new FlexOrder.UserDefinedField {
                    Key = "DirShipFlag", Value = order.DirShipFlag
                });
            }

            //ShipToCode
            if (!string.IsNullOrWhiteSpace(order.ShipToCode))
            {
                fields.Fields.Add(new FlexOrder.UserDefinedField {
                    Key = "ShipToCode", Value = order.ShipToCode
                });
            }

            #endregion

            var result = new FlexOrder.OrderHeader
            {
                CustomerNumber    = order.CustomerNumber,
                PremiseID         = order.PremiseId,
                PO                = order.PO,
                Comments          = order.Comments,
                ShipToName        = order.ShipToName,
                ShipToAddress1    = order.ShipToAddress1,
                ShipToAddress2    = order.ShipToAddress2,
                ShipToCity        = order.ShipToCity,
                ShipToState       = order.ShipToState,
                ShipToPostalCode  = order.ShipToZipCode,
                ShipToCountry     = order.ShipToCountry,
                IsRush            = (order.RushOrder.Equals("true") || order.RushOrder.Equals("1")),
                ShipMethod        = order.ShipVia,
                UserDefinedFields = fields,
                OrderLineHeaders  = order.OrderLineHeaders.Select(v => v.ToFlexOrder()).ToList(),
            };

            return(result);
        }
示例#5
0
        public void SaveLaserTagOrder()
        {
            var order = new AllfleXML.LaserTag.OrderHeader
            {
                CustomerNumber   = "testing",
                Comments         = "PIN:005S55A",
                OrderBy          = "BH",
                OrderDate        = "031316",
                OrderType        = "ST",
                PO               = "TESTTSU4",
                PremiseId        = "005S55A",
                ShipToAddress1   = "ATTN BOB LITTLE",
                ShipToAddress2   = "664 E BLUE SKU ST",
                ShipToCity       = "SHAWANO",
                ShipToCountry    = "USA",
                ShipToName       = "CRI",
                ShipToState      = "WI",
                ShipToZipCode    = "54166",
                OrderLineHeaders = new List <AllfleXML.LaserTag.OrderLineHeader>
                {
                    new AllfleXML.LaserTag.OrderLineHeader
                    {
                        QTY                      = "1",
                        SKU                      = "TSUGNXUSDATXF2/LM-PK",
                        DeliveryRemarks          = "1@ S: M:101 L:150",
                        OrderLineTemplateDetails = new List <AllfleXML.LaserTag.LineTemplateDetail>
                        {
                            new AllfleXML.LaserTag.LineTemplateDetail
                            {
                                SKU       = "TSUGNXUSDATXF2/LM-PK",
                                Variables = new [] { "var1", "var2" }
                            }
                        }
                    }
                }
            };

            var doc = AllfleXML.LaserTag.Parser.Export(order);

            Assert.IsNotNull(doc);

            var isValid1 = AllfleXML.LaserTag.Parser.Validate(doc);

            Assert.IsTrue(isValid1);

            const string fileName = "testLaserTagOrder.xml";

            order.Save(fileName);
            Assert.IsTrue(File.Exists(fileName));

            var isValid2 = AllfleXML.LaserTag.Parser.Validate(fileName);

            Assert.IsTrue(isValid2);

            var tmp = AllfleXML.LaserTag.Parser.Import(fileName);

            Assert.IsNotNull(tmp);
            Assert.IsTrue(tmp.OrderHeader.Any());
            Assert.IsTrue(tmp.OrderHeader.Select(o => o.OrderLineHeaders.Any()).All(o => o));

            File.Delete(fileName);
            Assert.IsFalse(File.Exists(fileName));
        }