Exemplo n.º 1
0
        public static void CreateShipment()
        {
            AmeriCommerceDatabaseIO oWs = InitializeWebservice();

            // get an existing order
            OrderTrans oOrder = oWs.Order_GetByKey(100167);

            // fill its collection of existing shipments
            oOrder = oWs.Order_FillOrderShippingCollection(oOrder);

            // create a list out of the shipments collection array so we can manipulate it
            System.Collections.Generic.List<OrderShippingTrans> oShipmentCol;
            if (oOrder.OrderShippingColTrans != null)
                oShipmentCol = new System.Collections.Generic.List<OrderShippingTrans>(oOrder.OrderShippingColTrans);
            else
                oShipmentCol = new System.Collections.Generic.List<OrderShippingTrans>();

            // add a new shipment
            OrderShippingTrans oShipment = new OrderShippingTrans();

            oShipment.OrderID = oOrder.orderID;
            oShipment.TrackingNumbers = "1234567890";
            oShipment.ShippingDate = MakeDataDateTime(DateTime.Parse("09/1/09"));
            oShipment.ShippingMethod = "test";
            oShipment.TotalWeight = MakeDataMoney(1.0m);

            // optionally add items to shipment
            // this shipment will contain all items on the order, but it can be a partial shipment as well
            oOrder = oWs.Order_FillOrderItemCollection(oOrder);

            // this part is a bit strange - this is due to OrderShippingOrderItemsTrans being an associative entity
            // between the OrderItems and OrderShipping collections

            // since the shipment will contain all the items on the order, create an array that is the same length as the order's items array
            oShipment.OrderItemColTrans = new OrderItemTrans[oOrder.OrderItemColTrans.Length];

            // loop through and create the associative entity for each order item
            for (int i = 0; i < oOrder.OrderItemColTrans.Length; i++)
            {
                OrderShippingOrderItemsTrans oItem = new OrderShippingOrderItemsTrans();

                oItem.OrderItemsID = oOrder.OrderItemColTrans[i].orderItemsID;
                oItem.QuantityShipped = oOrder.OrderItemColTrans[i].quantity;

                oShipment.OrderItemColTrans[i] = oOrder.OrderItemColTrans[i];
                oShipment.OrderItemColTrans[i].OrderShippingOrderItemsTrans = oItem;
            }

            // add this shipment to the collection
            oShipmentCol.Add(oShipment);

            // convert the shipment col back to an array and assign it to the order
            oOrder.OrderShippingColTrans = oShipmentCol.ToArray();

            // saving the parent object (the order) will handle saving all of its children (shipments, etc)
            oWs.Order_Save(oOrder);
        }
Exemplo n.º 2
0
        public static void CreateShipment()
        {
            AmeriCommerceDatabaseIO oWs = InitializeWebservice();

            // get an existing order
            OrderTrans oOrder = oWs.Order_GetByKey(100167);

            // fill its collection of existing shipments
            oOrder = oWs.Order_FillOrderShippingCollection(oOrder);

            // create a list out of the shipments collection array so we can manipulate it
            System.Collections.Generic.List <OrderShippingTrans> oShipmentCol;
            if (oOrder.OrderShippingColTrans != null)
            {
                oShipmentCol = new System.Collections.Generic.List <OrderShippingTrans>(oOrder.OrderShippingColTrans);
            }
            else
            {
                oShipmentCol = new System.Collections.Generic.List <OrderShippingTrans>();
            }

            // add a new shipment
            OrderShippingTrans oShipment = new OrderShippingTrans();

            oShipment.OrderID         = oOrder.orderID;
            oShipment.TrackingNumbers = "1234567890";
            oShipment.ShippingDate    = MakeDataDateTime(DateTime.Parse("09/1/09"));
            oShipment.ShippingMethod  = "test";
            oShipment.TotalWeight     = MakeDataMoney(1.0m);

            // optionally add items to shipment
            // this shipment will contain all items on the order, but it can be a partial shipment as well
            oOrder = oWs.Order_FillOrderItemCollection(oOrder);

            // this part is a bit strange - this is due to OrderShippingOrderItemsTrans being an associative entity
            // between the OrderItems and OrderShipping collections

            // since the shipment will contain all the items on the order, create an array that is the same length as the order's items array
            oShipment.OrderItemColTrans = new OrderItemTrans[oOrder.OrderItemColTrans.Length];

            // loop through and create the associative entity for each order item
            for (int i = 0; i < oOrder.OrderItemColTrans.Length; i++)
            {
                OrderShippingOrderItemsTrans oItem = new OrderShippingOrderItemsTrans();

                oItem.OrderItemsID    = oOrder.OrderItemColTrans[i].orderItemsID;
                oItem.QuantityShipped = oOrder.OrderItemColTrans[i].quantity;

                oShipment.OrderItemColTrans[i] = oOrder.OrderItemColTrans[i];
                oShipment.OrderItemColTrans[i].OrderShippingOrderItemsTrans = oItem;
            }

            // add this shipment to the collection
            oShipmentCol.Add(oShipment);

            // convert the shipment col back to an array and assign it to the order
            oOrder.OrderShippingColTrans = oShipmentCol.ToArray();

            // saving the parent object (the order) will handle saving all of its children (shipments, etc)
            oWs.Order_Save(oOrder);
        }