public ActionResult CancelOrder(int id)
 {
     using (Entities1 db = new Entities1())
     {
         string             username = Session["username"].ToString();
         var                uid      = db.Users.Where(x => x.username.Equals(username)).FirstOrDefault().userID;
         Order              od       = db.Orders.Where(x => x.orderID == id).FirstOrDefault();
         List <OrderDetail> listODT  = db.OrderDetails.Where(x => x.orderID == id).ToList();
         ShippingInfor      si       = db.ShippingInfors.Where(x => x.orderID == id).FirstOrDefault();
         db.ShippingInfors.Remove(si);
         db.SaveChanges();
         foreach (OrderDetail odt in listODT)
         {
             db.OrderDetails.Remove(odt);
             db.SaveChanges();
         }
         db.Orders.Remove(od);
         db.SaveChanges();
         return(RedirectToAction("ListOrder", "CheckoutAndOrder", new { id = db.Users.Where(x => x.username.Equals(username)).FirstOrDefault().userID }));
     }
 }
        public ActionResult Order(FormCollection form)
        {
            string address    = form["Address"].ToString();
            string email      = form["Email"].ToString();
            string phone      = form["Phone"].ToString();
            string checkValid = checkOrderInfor(email, phone);

            if (checkValid == "Succeed")
            {
                Order         od       = new Order();
                ShippingInfor si       = new ShippingInfor();
                string        username = Session["username"].ToString();
                using (Entities1 db = new Entities1())
                {
                    List <Order>         listOrder        = db.Orders.ToList();
                    List <OrderDetail>   listOrderDetails = db.OrderDetails.ToList();
                    List <ShoppingCart>  listCart         = db.ShoppingCarts.ToList();
                    List <ShippingInfor> listShipping     = db.ShippingInfors.ToList();
                    float totalPrice = 0;
                    foreach (ShoppingCart sc in listCart)
                    {
                        if (sc.userID == db.Users.Where(x => x.username.Equals(username)).FirstOrDefault().userID)
                        {
                            totalPrice += (float)sc.productTotalPrice;
                        }
                    }
                    if (listOrder.Count == 0)
                    {
                        od.orderID         = 1;
                        od.userID          = db.Users.Where(x => x.username.Equals(username)).FirstOrDefault().userID;
                        od.orderTotalPrice = totalPrice;
                        od.dateCreate      = DateTime.Now.ToString();
                        od.dateConfirm     = "Chưa xác nhận";
                        od.orderStatus     = "Đang chờ xử lý";
                        db.Orders.Add(od);
                        db.SaveChanges();
                    }
                    else
                    {
                        od.orderID         = listOrder[listOrder.Count - 1].orderID + 1;
                        od.userID          = db.Users.Where(x => x.username.Equals(username)).FirstOrDefault().userID;
                        od.orderTotalPrice = totalPrice;
                        od.dateCreate      = DateTime.Now.ToString();
                        od.dateConfirm     = "Chưa xác nhận";
                        od.orderStatus     = "Đang chờ xử lý";
                        db.Orders.Add(od);
                        db.SaveChanges();
                    }

                    foreach (ShoppingCart sc in listCart)
                    {
                        List <OrderDetail> lodt = db.OrderDetails.ToList();
                        if (sc.userID == db.Users.Where(x => x.username.Equals(username)).FirstOrDefault().userID)
                        {
                            if (lodt.Count > 0)
                            {
                                OrderDetail odt = new OrderDetail()
                                {
                                    orderDetailID        = lodt[lodt.Count - 1].orderDetailID + 1,
                                    orderID              = od.orderID,
                                    productName          = db.Products.Where(x => x.productID.Equals(sc.productID)).FirstOrDefault().productName,
                                    productQuantityOrder = sc.productQuantityOrder,
                                    productTotalPrice    = sc.productTotalPrice,
                                    productID            = sc.productID
                                };
                                Inventory iv = db.Inventories.Where(x => x.productID.Equals(sc.productID)).FirstOrDefault();
                                iv.productQuantity = iv.productQuantity - sc.productQuantityOrder;
                                var local = db.Set <Inventory>()
                                            .Local
                                            .FirstOrDefault(f => f.productID == sc.productID);
                                if (local != null)
                                {
                                    db.Entry(local).State = EntityState.Detached;
                                }
                                db.Entry(iv).State = EntityState.Modified;
                                db.SaveChanges();
                                db.OrderDetails.Add(odt);
                                db.SaveChanges();
                            }
                            else
                            {
                                OrderDetail odt = new OrderDetail()
                                {
                                    orderDetailID        = 1,
                                    orderID              = od.orderID,
                                    productName          = db.Products.Where(x => x.productID.Equals(sc.productID)).FirstOrDefault().productName,
                                    productQuantityOrder = sc.productQuantityOrder,
                                    productTotalPrice    = sc.productTotalPrice,
                                    productID            = sc.productID
                                };
                                Inventory iv = db.Inventories.Where(x => x.productID.Equals(sc.productID)).FirstOrDefault();
                                iv.productQuantity = iv.productQuantity - sc.productQuantityOrder;
                                var local = db.Set <Inventory>()
                                            .Local
                                            .FirstOrDefault(f => f.productID == sc.productID);
                                if (local != null)
                                {
                                    db.Entry(local).State = EntityState.Detached;
                                }
                                db.Entry(iv).State = EntityState.Modified;
                                db.SaveChanges();
                                db.OrderDetails.Add(odt);
                                db.SaveChanges();
                            }
                        }
                    }
                    if (listShipping.Count == 0)
                    {
                        si.shipID    = 1;
                        si.orderID   = od.orderID;
                        si.shipPhone = phone;
                        si.address   = address;
                        si.shipName  = db.Users.Where(x => x.username.Equals(username)).FirstOrDefault().fullname;
                        si.dateShip  = null;
                        db.ShippingInfors.Add(si);
                        db.SaveChanges();
                    }
                    else
                    {
                        si.shipID    = listShipping[listShipping.Count - 1].shipID + 1;
                        si.orderID   = od.orderID;
                        si.shipPhone = phone;
                        si.address   = address;
                        si.shipName  = db.Users.Where(x => x.username.Equals(username)).FirstOrDefault().fullname;
                        si.dateShip  = null;
                        db.ShippingInfors.Add(si);
                        db.SaveChanges();
                    }
                    foreach (ShoppingCart sc in listCart)
                    {
                        if (sc.userID == db.Users.Where(x => x.username.Equals(username)).FirstOrDefault().userID)
                        {
                            db.ShoppingCarts.Remove(sc);
                            db.SaveChanges();
                        }
                    }
                    return(RedirectToAction("ListOrder", "CheckoutAndOrder", new { id = db.Users.Where(x => x.username.Equals(username)).FirstOrDefault().userID }));
                }
            }
            else
            {
                TempData["msg"] = "<script>alert('" + checkValid + "');</script>";
                return(RedirectToAction("Checkout", "CheckoutAndOrder"));
            }
        }
예제 #3
0
        public ActionResult Order(FormCollection form)
        {
            Order         od       = new Order();
            ShippingInfor si       = new ShippingInfor();
            string        username = Session["username"].ToString();

            using (Entities1 db = new Entities1())
            {
                List <Order>         listOrder        = db.Orders.ToList();
                List <OrderDetail>   listOrderDetails = db.OrderDetails.ToList();
                List <ShoppingCart>  listCart         = db.ShoppingCarts.ToList();
                List <ShippingInfor> listShipping     = db.ShippingInfors.ToList();
                float totalPrice = 0;
                foreach (ShoppingCart sc in listCart)
                {
                    if (sc.userID == db.Users.Where(x => x.username.Equals(username)).FirstOrDefault().userID)
                    {
                        totalPrice += (float)sc.productTotalPrice;
                    }
                }
                if (listOrder.Count == 0)
                {
                    od.orderID         = 1;
                    od.userID          = db.Users.Where(x => x.username.Equals(username)).FirstOrDefault().userID;
                    od.orderTotalPrice = totalPrice;
                    od.dateCreate      = DateTime.Now.ToString();
                    od.dateConfirm     = "Chưa xác nhận";
                    od.orderStatus     = "Đang chờ xử lý";
                    db.Orders.Add(od);
                    db.SaveChanges();
                }
                else
                {
                    od.orderID         = listOrder[listOrder.Count - 1].orderID + 1;
                    od.userID          = db.Users.Where(x => x.username.Equals(username)).FirstOrDefault().userID;
                    od.orderTotalPrice = totalPrice;
                    od.dateCreate      = DateTime.Now.ToString();
                    od.dateConfirm     = "Chưa xác nhận";
                    od.orderStatus     = "Đang chờ xử lý";
                    db.Orders.Add(od);
                    db.SaveChanges();
                }

                foreach (ShoppingCart sc in listCart)
                {
                    List <OrderDetail> lodt = db.OrderDetails.ToList();
                    if (sc.userID == db.Users.Where(x => x.username.Equals(username)).FirstOrDefault().userID)
                    {
                        if (lodt.Count > 0)
                        {
                            OrderDetail odt = new OrderDetail()
                            {
                                orderDetailID        = lodt[lodt.Count - 1].orderDetailID + 1,
                                orderID              = od.orderID,
                                productName          = db.Products.Where(x => x.productID.Equals(sc.productID)).FirstOrDefault().productName,
                                productQuantityOrder = sc.productQuantityOrder,
                                productTotalPrice    = sc.productTotalPrice,
                                productID            = sc.productID
                            };

                            db.OrderDetails.Add(odt);
                            db.SaveChanges();
                        }
                        else
                        {
                            OrderDetail odt = new OrderDetail()
                            {
                                orderDetailID        = 1,
                                orderID              = od.orderID,
                                productName          = db.Products.Where(x => x.productID.Equals(sc.productID)).FirstOrDefault().productName,
                                productQuantityOrder = sc.productQuantityOrder,
                                productTotalPrice    = sc.productTotalPrice,
                                productID            = sc.productID
                            };

                            db.OrderDetails.Add(odt);
                            db.SaveChanges();
                        }
                    }
                }
                string address = form["Address"].ToString();
                string email   = form["Email"].ToString();
                string phone   = form["Phone"].ToString();
                if (listShipping.Count == 0)
                {
                    si.shipID    = 1;
                    si.orderID   = od.orderID;
                    si.shipPhone = phone;
                    si.address   = address;
                    si.shipName  = db.Users.Where(x => x.username.Equals(username)).FirstOrDefault().fullname;
                    si.dateShip  = null;
                    db.ShippingInfors.Add(si);
                    db.SaveChanges();
                }
                else
                {
                    si.shipID    = listShipping[listShipping.Count - 1].shipID + 1;
                    si.orderID   = od.orderID;
                    si.shipPhone = phone;
                    si.address   = address;
                    si.shipName  = db.Users.Where(x => x.username.Equals(username)).FirstOrDefault().fullname;
                    si.dateShip  = null;
                    db.ShippingInfors.Add(si);
                    db.SaveChanges();
                }
                foreach (ShoppingCart sc in listCart)
                {
                    if (sc.userID == db.Users.Where(x => x.username.Equals(username)).FirstOrDefault().userID)
                    {
                        db.ShoppingCarts.Remove(sc);
                        db.SaveChanges();
                    }
                }
                return(RedirectToAction("ListOrder", "CheckoutAndOrder", new { id = db.Users.Where(x => x.username.Equals(username)).FirstOrDefault().userID }));
            }
        }