public abstract bool UpdateOrder(OrderDetails order);
 public abstract int InsertOrder(OrderDetails order);
Esempio n. 3
0
        /// <summary>
        /// Updates an existing order
        /// </summary>
        public static bool UpdateOrder(int id, int statusID, DateTime shippedDate, string transactionID, string trackingID)
        {
            using (TransactionScope scope = new TransactionScope())
             {
            transactionID = BizObject.ConvertNullToEmptyString(transactionID);
            trackingID = BizObject.ConvertNullToEmptyString(trackingID);

            // retrieve the order's current status ID
            Order order = Order.GetOrderByID(id);

            // update the order
            OrderDetails record = new OrderDetails(id, DateTime.Now, "", statusID, "", "", 0.0m, 0.0m,
               "", "", "", "", "", "", "", "", "", "", shippedDate, transactionID, trackingID);
            bool ret = SiteProvider.Store.UpdateOrder(record);

            // if the new status ID is confirmed, than decrease the UnitsInStock for the purchased products
            if (statusID == (int)StatusCode.Confirmed && order.StatusID == (int)StatusCode.WaitingForPayment)
            {
               foreach (OrderItem item in order.Items)
                  Product.DecrementProductUnitsInStock(item.ProductID, item.Quantity);
            }

            BizObject.PurgeCacheItems("store_order");
            scope.Complete();
            return ret;
             }
        }
Esempio n. 4
0
        /// <summary>
        /// Returns a Order object filled with the data taken from the input OrderDetails
        /// </summary>
        private static Order GetOrderFromOrderDetails(OrderDetails record)
        {
            if (record == null)
            return null;
             else
             {
            // create a list of OrderItems for the order
            List<OrderItem> orderItems = new List<OrderItem>();
            List<OrderItemDetails> recordset = SiteProvider.Store.GetOrderItems(record.ID);
            foreach (OrderItemDetails item in recordset)
            {
               orderItems.Add(new OrderItem(item.ID, item.AddedDate, item.AddedBy,
                  item.OrderID, item.ProductID, item.Title, item.SKU, item.UnitPrice, item.Quantity));
            }

            // create new Order
            return new Order(record.ID, record.AddedDate, record.AddedBy, record.StatusID, record.StatusTitle,
               record.ShippingMethod, record.SubTotal, record.Shipping, record.ShippingFirstName,
               record.ShippingLastName, record.ShippingStreet, record.ShippingPostalCode, record.ShippingCity,
               record.ShippingState, record.ShippingCountry, record.CustomerEmail, record.CustomerPhone,
               record.CustomerFax, record.ShippedDate, record.TransactionID, record.TrackingID,
               orderItems);
             }
        }
Esempio n. 5
0
        /// <summary>
        /// Creates a new order
        /// </summary>
        public static int InsertOrder(ShoppingCart shoppingCart,
            string shippingMethod, decimal shipping, string shippingFirstName,
            string shippingLastName, string shippingStreet, string shippingPostalCode,
            string shippingCity, string shippingState, string shippingCountry,
            string customerEmail, string customerPhone, string customerFax, string transactionID)
        {
            using (TransactionScope scope = new TransactionScope())
             {
            string userName = BizObject.CurrentUserName;

            // insert the master order
            OrderDetails order = new OrderDetails(0, DateTime.Now,
               userName, 1, "", shippingMethod, shoppingCart.Total, shipping,
               shippingFirstName, shippingLastName, shippingStreet, shippingPostalCode,
               shippingCity, shippingState, shippingCountry, customerEmail, customerPhone,
               customerFax, DateTime.MinValue, transactionID, "");
            int orderID = SiteProvider.Store.InsertOrder(order);

            // insert the child order items
            foreach (ShoppingCartItem item in shoppingCart.Items)
            {
               OrderItemDetails orderItem = new OrderItemDetails(0, DateTime.Now, userName,
                  orderID, item.ID, item.Title, item.SKU, item.UnitPrice, item.Quantity);
               SiteProvider.Store.InsertOrderItem(orderItem);
            }

            BizObject.PurgeCacheItems("store_order");
            scope.Complete();

            return orderID;
             }
        }