コード例 #1
0
        public ActionResult OrderControl()
        {
            List <Product>       outStock;
            List <BasketProduct> basketList;

            if (Session["user"] != null)
            {
                currentUser = Session["user"] as ETicaret.Model.Models.Entity.User;
                basketList  = basketDAL.GetList(x => x.UserID == currentUser.UserID && x.IsActive == true).ToList();
                outStock    = StockControl(basketList);
                if (outStock.Count > 0)
                {
                    TempData["OutStockError"] = outStock;
                    return(RedirectToAction("Index"));
                }
                else
                {
                    return(RedirectToAction("UserOrder", "Order"));
                }
            }
            else
            {
                basketList = Session["basket"] as List <BasketProduct>;
                outStock   = StockControl(basketList);
                if (outStock.Count > 0)
                {
                    TempData["OutStockError"] = outStock;
                    return(RedirectToAction("Index"));
                }
                else
                {
                    return(RedirectToAction("QuickOrder", "Order"));
                }
            }
        }
コード例 #2
0
        public ActionResult OrderSummary(Guid id)
        {
            //List<Product> isValidStock = StokControl();

            //if (isValidStock.Count == 0)
            //{
            Guid        selectedAddressID = new Guid(Session["address"].ToString());
            Guid        selectedCardID    = id;
            UserAddress address           = userAddressDAL.Get(x => x.IsActive == true && x.UserAddressID == selectedAddressID);
            UserCard    card       = userCardDAL.Get(x => x.UserCardID == selectedCardID && x.IsActive == true && x.UserID == currentUser.UserID);
            UserDetail  userDetail = userDetailDAL.Get(x => x.UserID == currentUser.UserID && x.IsActive == true);
            ICollection <BasketProduct> basketProducts = basketProductDAL.GetList(x => x.UserID == currentUser.UserID && x.IsActive == true);
            decimal totalAmount = 0;

            Order newOrder = new Order()
            {
                OrderID       = Guid.NewGuid(),
                AddressID     = selectedAddressID,
                CreatedTime   = DateTime.Now,
                IsActive      = true,
                OrderStatusID = new Guid("7a75cdfb-52a3-4455-a8c2-08d6de333e45"),
                UserDetailID  = userDetail.UserDetailID,
                UserID        = currentUser.UserID
            };

            newOrder.UserCardID = selectedCardID;

            foreach (var item in basketProducts)
            {
                decimal unitPrice = item.Product.UnitPrice;
                if (item.Product.Campaigns.Count != 0)
                {
                    foreach (var camp in item.Product.Campaigns.Where(x => x.EndingDate > DateTime.Now && x.StartedDate < DateTime.Now && x.IsActive == true))
                    {
                        unitPrice = unitPrice * (1 - camp.Discount);
                    }
                }

                totalAmount += (unitPrice * item.Count);


                OrderDetail newOD = new OrderDetail()
                {
                    OrderID   = newOrder.OrderID,
                    Count     = item.Count,
                    ProductID = item.ProductID,
                    IsActive  = true
                };
                newOrder.OrderDetails.Add(newOD);

                Product product = productDAL.Get(x => x.ProductID == item.ProductID);
                product.UnitsInStock -= item.Count;
                productDAL.Update(product);

                item.IsActive = false;
                basketProductDAL.Update(item);
            }

            newOrder.TotalAmount   = totalAmount;
            newOrder.PaymentTypeID = new Guid("7e4289f3-ce9d-4c3b-847f-710664319e4b");
            newOrder.UserCardID    = selectedCardID;

            orderDAL.Add(newOrder);

            Session["address"] = null;
            Session["basket"]  = null;

            TempData["Success"] = "Siparişiniz Alındı. İşlem Sürecini Bu Sayfadan Takip Edebilirsiniz.";

            return(RedirectToAction("Index", "UserDetail"));
            //}
            //else
            //{
            //    TempData["outOrder"] = isValidStock;
            //    return RedirectToAction("Index", "Cart");
            //}
        }