public static NetSuiteSalesOrderFulfillment ToSVSalesOrderFulfillment(this NetSuiteSoapWS.ItemFulfillment orderFulfillment)
        {
            var svOrderFulfillment = new NetSuiteSalesOrderFulfillment()
            {
                Id                  = orderFulfillment.internalId,
                TransactionId       = orderFulfillment.tranId,
                CreatedDateUtc      = orderFulfillment.createdDate.ToUniversalTime(),
                LastModifiedDateUtc = orderFulfillment.lastModifiedDate.ToUniversalTime(),
                Status              = ToSVSalesOrderFulfillmentStatus(orderFulfillment.shipStatus),
                ShipmentCarrier     = GetSVSalesOrderFulfillmentCarrier(orderFulfillment),
                ShipmentClass       = orderFulfillment.shipMethod?.name,
                ShippingCost        = (decimal)orderFulfillment.shippingCost,
                Note                = orderFulfillment.memo,
                Items               = orderFulfillment.itemList.ToSVSalesOrderFulfillmentItems(),
                Packages            = GetSVSalesOrderFullfillmentPackages(orderFulfillment)
            };

            return(svOrderFulfillment);
        }
        public static NetSuiteSalesOrderFulfillmentCarrierEnum GetSVSalesOrderFulfillmentCarrier(NetSuiteSoapWS.ItemFulfillment orderFulfillment)
        {
            if (orderFulfillment.packageFedExList != null)
            {
                return(NetSuiteSalesOrderFulfillmentCarrierEnum.FedEx);
            }

            if (orderFulfillment.packageUspsList != null)
            {
                return(NetSuiteSalesOrderFulfillmentCarrierEnum.USPS);
            }

            if (orderFulfillment.packageUpsList != null)
            {
                return(NetSuiteSalesOrderFulfillmentCarrierEnum.UPS);
            }

            return(NetSuiteSalesOrderFulfillmentCarrierEnum.Other);
        }
        private static IEnumerable <NetSuiteSalesOrderFulfillmentPackage> GetSVSalesOrderFullfillmentPackages(NetSuiteSoapWS.ItemFulfillment orderFulfillment)
        {
            if (orderFulfillment.packageFedExList != null)
            {
                return(orderFulfillment.packageFedExList.ToSVSalesOrderFulfillmentPackages());
            }

            if (orderFulfillment.packageUspsList != null)
            {
                return(orderFulfillment.packageUspsList.ToSVSalesOrderFulfillmentPackages());
            }

            if (orderFulfillment.packageUpsList != null)
            {
                return(orderFulfillment.packageUpsList.ToSVSalesOrderFulfillmentPackages());
            }

            return(orderFulfillment.packageList.ToSVSalesOrderFulfillmentPackages());
        }
Ejemplo n.º 4
0
        public void WhenToSVSalesOrderFulfillment_ThenFieldsAreMapped()
        {
            var nsOrderFulfillment = new NetSuiteSoapWS.ItemFulfillment()
            {
                internalId       = "1",
                tranId           = "100",
                createdDate      = DateTime.UtcNow.AddDays(-1),
                lastModifiedDate = DateTime.UtcNow,
                shipStatus       = NetSuiteSoapWS.ItemFulfillmentShipStatus._shipped,
                shipMethod       = new NetSuiteSoapWS.RecordRef()
                {
                    name = "UPS 2nd Day Air"
                },
                shippingCost = 1.24,
                memo         = "Some note here",
                itemList     = new NetSuiteSoapWS.ItemFulfillmentItemList()
                {
                    item = new NetSuiteSoapWS.ItemFulfillmentItem[]
                    {
                        new NetSuiteSoapWS.ItemFulfillmentItem()
                        {
                            itemName = "NS-testsku1",
                            quantity = 2
                        },
                        new NetSuiteSoapWS.ItemFulfillmentItem()
                        {
                            itemName = "NS-testsku2",
                            quantity = 4
                        }
                    }
                },
                packageUpsList = new NetSuiteSoapWS.ItemFulfillmentPackageUpsList()
                {
                    packageUps = new NetSuiteSoapWS.ItemFulfillmentPackageUps[]
                    {
                        new NetSuiteSoapWS.ItemFulfillmentPackageUps()
                        {
                            packageTrackingNumberUps = "123456789ABCD",
                            packageWeightUps         = 4.12,
                            packageDescrUps          = "Fragile content",
                            packageLengthUps         = 2,
                            packageHeightUps         = 2,
                            packageWidthUps          = 1,
                            insuredValueUps          = 1.5
                        }
                    }
                }
            };

            var svSalesOrderFulfillment = nsOrderFulfillment.ToSVSalesOrderFulfillment();

            svSalesOrderFulfillment.Id.Should().Be(nsOrderFulfillment.internalId);
            svSalesOrderFulfillment.TransactionId.Should().Be(nsOrderFulfillment.tranId);
            svSalesOrderFulfillment.CreatedDateUtc.Should().Be(nsOrderFulfillment.createdDate.ToUniversalTime());
            svSalesOrderFulfillment.LastModifiedDateUtc.Should().Be(nsOrderFulfillment.lastModifiedDate.ToUniversalTime());
            svSalesOrderFulfillment.Note.Should().Be(nsOrderFulfillment.memo);
            svSalesOrderFulfillment.Status.Should().Be(NetSuiteSalesOrderFulfillmentStatusEnum.Shipped);
            svSalesOrderFulfillment.ShipmentCarrier.Should().Be(NetSuiteSalesOrderFulfillmentCarrierEnum.UPS);
            svSalesOrderFulfillment.ShipmentClass.Should().Be(nsOrderFulfillment.shipMethod.name);
            svSalesOrderFulfillment.ShippingCost.Should().Be((decimal)nsOrderFulfillment.shippingCost);

            svSalesOrderFulfillment.Items.Count().Should().Be(nsOrderFulfillment.itemList.item.Count());
            svSalesOrderFulfillment.Items.First().Name.Should().Be(nsOrderFulfillment.itemList.item.First().itemName);
            svSalesOrderFulfillment.Items.First().Quantity.Should().Be((int)nsOrderFulfillment.itemList.item.First().quantity);
            svSalesOrderFulfillment.Items.Last().Name.Should().Be(nsOrderFulfillment.itemList.item.Last().itemName);
            svSalesOrderFulfillment.Items.Last().Quantity.Should().Be((int)nsOrderFulfillment.itemList.item.Last().quantity);

            svSalesOrderFulfillment.Packages.Count().Should().Be(nsOrderFulfillment.packageUpsList.packageUps.Count());
            var svSalesOrderFulfillmentPackage = svSalesOrderFulfillment.Packages.First();
            var nsOrderFulfillmentPackage      = nsOrderFulfillment.packageUpsList.packageUps.First();

            svSalesOrderFulfillmentPackage.TrackingNumber.Should().Be(nsOrderFulfillmentPackage.packageTrackingNumberUps);
            svSalesOrderFulfillmentPackage.WeightLbs.Should().Be((decimal)nsOrderFulfillmentPackage.packageWeightUps);
            svSalesOrderFulfillmentPackage.WidthInches.Should().Be(nsOrderFulfillmentPackage.packageWidthUps);
            svSalesOrderFulfillmentPackage.LengthInches.Should().Be(nsOrderFulfillmentPackage.packageLengthUps);
            svSalesOrderFulfillmentPackage.HeightInches.Should().Be(nsOrderFulfillmentPackage.packageHeightUps);
            svSalesOrderFulfillmentPackage.InsuranceCost.Should().Be((decimal)nsOrderFulfillmentPackage.insuredValueUps);
        }