/// <summary> /// Register that a shipment has been shipped. /// </summary> /// <param name="shipDate">Date the shipment has been shipped.</param> /// <param name="updateGoogleCheckout">If the order associated with this shipment is a GoogleCheckout /// order, this flag indicates whether to send an update notification to GoogleCheckout or not.</param> public void Ship(DateTime shipDate, bool updateGoogleCheckout) { this.ShipDate = shipDate; this.Save(); //FORCE ASSOCIATED ORDER TO RELOAD FROM DATABASE this._Order = OrderDataSource.Load(this.OrderId, false); //TRIGGER THE SHIPMENT SHIPPED EVENT Stores.StoreEventEngine.ShipmentShipped(this); //RECALCULATE SHIPMENT STATUS this.Order.RecalculateShipmentStatus(); //if the order was a google checkout order, update gooogle checkout if (updateGoogleCheckout) { if (!string.IsNullOrEmpty(this.Order.GoogleOrderNumber)) { GoogleCheckout instance = GoogleCheckout.GetInstance(); TrackingNumber number = GetLastTrackingNumber(); string carrier = GetGCCarrier(number); string trNumber = (number == null || string.IsNullOrEmpty(number.TrackingNumberData)) ? null : number.TrackingNumberData; instance.AddTrackingData(this.Order.GoogleOrderNumber, carrier, trNumber); //If order has not yet shipped completely, notify that it is under processing if (this.Order.ShipmentStatus == OrderShipmentStatus.Unshipped || this.Order.ShipmentStatus == OrderShipmentStatus.Unspecified) { instance.ProcessOrder(this.Order.GoogleOrderNumber); } } } }
public static OrderPullItemCollection GeneratePullSheet(params int[] orders) { OrderPullItemCollection pullSheet = new OrderPullItemCollection(); foreach (int orderId in orders) { Order order = OrderDataSource.Load(orderId); if (order != null) { foreach (OrderItem item in order.Items) { if (IsPullItem(item)) { pullSheet.Add(item); } } } } return(pullSheet); }
public OrderCollection Search(OrderSearchCriteria criteria, int maximumRows, int startRowIndex, string sortExpression) { //CREATE RETURN SET OrderCollection orders = new OrderCollection(); //GET LIST OF ORDER IDS THAT FIT THE CRITERIA Database database = Token.Instance.Database; DbCommand selectCommand = criteria.BuildSelectCommand(sortExpression); List <int> orderIdList = new List <int>(); //EXECUTE THE COMMAND TO OBTAIN ORDER ID List using (IDataReader dr = database.ExecuteReader(selectCommand)) { while (dr.Read()) { orderIdList.Add(dr.GetInt32(0)); } dr.Close(); } //NOW GET ORDER DETAIL FOR CORRECT INDEXES int rowIndex = startRowIndex; int rowCount = 0; if (maximumRows < 1) { maximumRows = 1000; } while ((rowCount < maximumRows) && (rowIndex < orderIdList.Count)) { Order order = OrderDataSource.Load(orderIdList[rowIndex]); orders.Add(order); rowIndex++; rowCount++; } //RETURN ORDER DETAIL MATCHING CRITERIA return(orders); }
public static Order Load(Int32 orderId) { return(OrderDataSource.Load(orderId, true)); }