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); }
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); }