/// <summary>
        /// Process the order
        /// </summary>
        protected void wzdCheckOut_FinishButtonClick(object sender, WizardNavigationEventArgs e)
        {
            if (Profile.ShoppingCart.CartItems.Count > 0)
            {
                if (Profile.ShoppingCart.Count > 0)
                {
                    // display ordered items
                    CartListOrdered.Bind(Profile.ShoppingCart.CartItems);

                    // display total and credit card information
                    ltlTotalComplete.Text      = ltlTotal.Text;
                    ltlCreditCardComplete.Text = ltlCreditCard.Text;

                    // create order
                    OrderInfo order = new OrderInfo(int.MinValue, DateTime.Now, User.Identity.Name, GetCreditCardInfo(), billingForm.Address, shippingForm.Address, Profile.ShoppingCart.Total, Profile.ShoppingCart.GetOrderLineItems(), null);

                    // insert
                    Order newOrder = new Order();
                    newOrder.Insert(order);

                    // destroy cart
                    Profile.ShoppingCart.Clear();
                    Profile.Save();
                }
            }
            else
            {
                lblMsg.Text         = "<p><br>Can not process the order. Your cart is empty.</p><p class=SignUpLabel><a class=linkNewUser href=Default.aspx>Continue shopping</a></p>";
                wzdCheckOut.Visible = false;
            }
        }
Beispiel #2
0
        /// <summary>
        /// Process the order
        /// </summary>
        protected void wzdCheckOut_FinishButtonClick(object sender, WizardNavigationEventArgs e)
        {
            Profile profile = ProfileManager.Instance.GetCurrentUser(Page.User.Identity.Name);

            if (profile.ShoppingCart.Count > 0)
            {
                // display ordered items
                CartListOrdered.Bind(profile.ShoppingCart);

                // display total and credit card information
                ltlTotalComplete.Text      = ltlTotal.Text;
                ltlCreditCardComplete.Text = ltlCreditCard.Text;

                #region Create Order

                Order order = Order.NewOrder();

                order.UserId              = profile.UniqueID.ToString();
                order.OrderDate           = DateTime.Now;
                order.CreditCard          = GetCreditCard();
                order.Courier             = order.CreditCard.CardType;
                order.TotalPrice          = profile.ShoppingCart.Total;
                order.AuthorizationNumber = 0;
                order.Locale              = "en-us";

                #region Shipping Information

                order.ShipAddr1       = billingForm.Address.Address1;
                order.ShipAddr2       = billingForm.Address.Address2;
                order.ShipCity        = billingForm.Address.City;
                order.ShipState       = billingForm.Address.State;
                order.ShipZip         = billingForm.Address.Zip;
                order.ShipCountry     = billingForm.Address.Country;
                order.ShipToFirstName = billingForm.Address.FirstName;
                order.ShipToLastName  = billingForm.Address.LastName;

                #endregion

                #region Billing Information

                order.BillAddr1       = shippingForm.Address.Address1;
                order.BillAddr2       = shippingForm.Address.Address2;
                order.BillCity        = shippingForm.Address.City;
                order.BillState       = shippingForm.Address.State;
                order.BillZip         = shippingForm.Address.Zip;
                order.BillCountry     = shippingForm.Address.Country;
                order.BillToFirstName = shippingForm.Address.FirstName;
                order.BillToLastName  = shippingForm.Address.LastName;

                #endregion

                order = order.Save();

                #endregion

                int itemsOnBackOrder = 0;
                //Decrement and check the Inventory.
                foreach (Cart cart in profile.ShoppingCart)
                {
                    Inventory inventory = Inventory.GetByItemId(cart.ItemId);

                    if (cart.Quantity > inventory.Qty)
                    {
                        itemsOnBackOrder += cart.Quantity - inventory.Qty;
                    }

                    inventory.Qty -= cart.Quantity;

                    #region Reset the Inventory back to 10,000

                    if (inventory.Qty < 0)
                    {
                        inventory.Qty = 10000;
                    }

                    #endregion

                    inventory.Save();
                }

                if (itemsOnBackOrder > 0)
                {
                    ItemsOnBackOrder.Text = string.Format("<br /><p style=\"color:red;\"><b>Backorder ALERT:</b> {0} items are on backorder.</p>", itemsOnBackOrder);
                }

                profile.ShoppingCart.SaveOrderLineItems(order.OrderId);

                // destroy cart
                profile.ShoppingCart.Clear();
                profile.Save();
            }
            else
            {
                lblMsg.Text =
                    "<p><br>Can not process the order. Your cart is empty.</p><p class=SignUpLabel><a class=linkNewUser href=Default.aspx>Continue shopping</a></p>";
                wzdCheckOut.Visible = false;
            }
        }