示例#1
0
        public static bool WriteSingleUpsPackage(ref XmlTextWriter xw, ref Package p)
        {
            bool result = true;

            decimal dGirth = 0;

            decimal dLength = 0;
            decimal dHeight = 0;
            decimal dwidth = 0;

            SortedList sar = new SortedList(2);
            sar.Add(1, p.Length);
            sar.Add(2, p.Width);
            sar.Add(3, p.Height);

            IDictionaryEnumerator myEnumerator = sar.GetEnumerator();
            int place = 0;
            while (myEnumerator.MoveNext())
            {
                place += 1;
                switch (place)
                {
                    case 1:
                        dLength = Convert.ToDecimal(myEnumerator.Value);
                        break;
                    case 2:
                        dwidth = Convert.ToDecimal(myEnumerator.Value);
                        break;
                    case 3:
                        dHeight = Convert.ToDecimal(myEnumerator.Value);
                        break;
                }
            }
            myEnumerator = null;

            dGirth = dwidth + dwidth + dHeight + dHeight;


            //--------------------------------------------
            // Package
            xw.WriteStartElement("Package");

            xw.WriteStartElement("PackagingType");
            string packagingCode = Convert.ToInt32(p.Packaging).ToString();
            if (packagingCode.Length < 2)
            {
                packagingCode = "0" + packagingCode;
            }
            xw.WriteElementString("Code", packagingCode);
            if (p.Description != string.Empty)
            {
                xw.WriteElementString("Description", p.Description);
            }
            xw.WriteEndElement();

            if (p.Packaging == PackagingType.CustomerSupplied)
            {
                if (dLength > 0 | dHeight > 0 | dwidth > 0)
                {
                    xw.WriteStartElement("Dimensions");
                    xw.WriteStartElement("UnitOfMeasure");
                    switch (p.DimensionalUnits)
                    {
                        case UnitsType.Imperial:
                            xw.WriteElementString("Code", "IN");
                            break;
                        case UnitsType.Metric:
                            xw.WriteElementString("Code", "CM");
                            break;
                        default:
                            xw.WriteElementString("Code", "IN");
                            break;
                    }
                    xw.WriteEndElement();
                    xw.WriteElementString("Length", Math.Round(dLength, 0).ToString());
                    xw.WriteElementString("Width", Math.Round(dwidth, 0).ToString());
                    xw.WriteElementString("Height", Math.Round(dHeight, 0).ToString());
                    xw.WriteEndElement();
                }
            }

            // Weight
            if (p.Weight > 0)
            {
                xw.WriteStartElement("PackageWeight");
                xw.WriteStartElement("UnitOfMeasure");
                switch (p.WeightUnits)
                {
                    case UnitsType.Imperial:
                        xw.WriteElementString("Code", "LBS");
                        break;
                    case UnitsType.Metric:
                        xw.WriteElementString("Code", "KGS");
                        break;
                    default:
                        xw.WriteElementString("Code", "LBS");
                        break;
                }
                xw.WriteEndElement();
                xw.WriteElementString("Weight", Math.Round(p.Weight, 1).ToString());
                xw.WriteEndElement();
            }

            // Oversize Checks
            decimal oversizeCheck = dGirth + dLength;
            if (oversizeCheck > 84)
            {
                if (oversizeCheck < 108 & p.Weight < 30)
                {
                    xw.WriteElementString("OversizePackage", "1");
                }
                else
                {
                    if (p.Weight < 70)
                    {
                        xw.WriteElementString("OversizePackage", "2");
                    }
                    else
                    {
                        xw.WriteElementString("OversizePackage", "0");
                    }
                }
            }

            // ReferenceNumber
            if (p.ReferenceNumber != string.Empty)
            {
                xw.WriteStartElement("ReferenceNumber");
                string codeType = ConvertReferenceNumberCodeToString(p.ReferenceNumberType);
                xw.WriteElementString("Code", codeType);
                xw.WriteElementString("Value", XmlTools.TrimToLength(p.ReferenceNumber, 35));
                xw.WriteEndElement();
            }
            // ReferenceNumber2
            if (p.ReferenceNumber2 != string.Empty)
            {
                xw.WriteStartElement("ReferenceNumber");
                string codeType = ConvertReferenceNumberCodeToString(p.ReferenceNumber2Type);
                xw.WriteElementString("Code", codeType);
                xw.WriteElementString("Value", XmlTools.TrimToLength(p.ReferenceNumber2, 35));
                xw.WriteEndElement();
            }

            // Additional Handling
            if (p.AdditionalHandlingIsRequired == true)
            {
                xw.WriteElementString("AdditionalHandling", "");
            }

            //-------------------------------------------
            // Start Service Options
            xw.WriteStartElement("PackageServiceOptions");


            // Delivery Confirmation
            if (p.DeliveryConfirmation == true)
            {
                xw.WriteStartElement("DeliveryConfirmation");
                xw.WriteElementString("DCISType", Convert.ToInt32(p.DeliveryConfirmationType).ToString());
                if (p.DeliveryConfirmationControlNumber != string.Empty)
                {
                    xw.WriteElementString("DCISNumber", XmlTools.TrimToLength(p.DeliveryConfirmationControlNumber, 11));
                }
                xw.WriteEndElement();
            }

            // InsuredValue
            if (p.InsuredValue > 0)
            {
                xw.WriteStartElement("InsuredValue");
                xw.WriteElementString("MonetaryValue", p.InsuredValue.ToString());
                xw.WriteElementString("CurrencyCode", XmlTools.ConvertCurrencyCodeToString(p.InsuredValueCurrency));
                xw.WriteEndElement();
            }

            // COD
            if (p.COD == true)
            {
                xw.WriteStartElement("COD");
                xw.WriteElementString("CODCode", "3");
                xw.WriteElementString("CODFundsCode", Convert.ToInt32(p.CODPaymentType).ToString());
                xw.WriteStartElement("CODAmount");
                xw.WriteElementString("CurrencyCode", XmlTools.ConvertCurrencyCodeToString(p.CODCurrencyCode));
                xw.WriteElementString("MonetaryValue", p.CODAmount.ToString());
                xw.WriteEndElement();
                xw.WriteEndElement();
            }

            // Verbal Confirmation
            if (p.VerbalConfirmation == true)
            {
                xw.WriteStartElement("VerbalConfirmation");
                xw.WriteStartElement("ContactInfo");
                if (p.VerbalConfirmationName != string.Empty)
                {
                    xw.WriteElementString("Name", p.VerbalConfirmationName);
                }
                if (p.VerbalConfirmationPhoneNumber != string.Empty)
                {
                    xw.WriteElementString("PhoneNumber", p.VerbalConfirmationPhoneNumber);
                }
                xw.WriteEndElement();
                xw.WriteEndElement();
            }

            xw.WriteEndElement();
            // End Service Options
            //-------------------------------------------

            xw.WriteEndElement();
            // End Package
            //--------------------------------------------

            return result;
        }
示例#2
0
        public bool AddPackage(ref Package p)
        {
            bool result = false;

            _Packages.Add(p);
            result = true;

            return result;
        }