Example #1
0
        public ActionResult Cashier(int?Id)
        {// trang thu ngân
            if (User.IsInRole("Admin"))
            {
                ViewBag.IsAdmin = true;
            }
            else
            {
                ViewBag.IsAdmin = false;
            }

            Order order;
            User  user = db.Users.Where(u => u.Username == User.Identity.Name).FirstOrDefault();

            ViewBag.User = user;

            int userId = user.ID;

            if (Id != null)
            {
                order = db.Orders.Find(Id);
                if (order == null)
                {
                    //return new HttpNotFoundResult("khong tim thay don hang nay");

                    return(RedirectToAction("Error"
                                            , new
                    {
                        errorCode = "Lỗi 404."
                        , errorDetail = "Không tìm thấy đơn hàng với id: " + Id.ToString()
                    }));
                }

                if (!(order.Status == OrderStatus.New && order.AnonymousUserId == null))
                {
                    return(RedirectToAction("ViewOrder", "Order", new { Id }));
                }

                if (!User.IsInRole("Admin"))
                {
                    if (order.UserId != userId)
                    {
                        Response.Cookies["order_id"].Expires = DateTime.Now.AddDays(-1);
                        return(RedirectToAction("Error"
                                                , new
                        {
                            errorCode = "Lỗi 403."
                            ,
                            errorDetail = "Bạn không có quyền truy cập đơn hàng này"
                        }));
                    }
                }

                // cookie đơn hàng hiện tại, nhằm giúp nhân viên tiếp tục đơn hàng nếu lỡ bấm F5
                //, hay mất mạng tạm thời, hay cúp điện.
                //, dĩ nhiên phải có cả điện lẫn mạng khi thao tác thanh toán rồi
                Response.Cookies["order_id"].Value   = order.ID.ToString();
                Response.Cookies["order_id"].Expires = DateTime.Now.AddDays(3);
                ViewBag.id = Id;
                return(View());
            }



            if (Request.Cookies["order_id"] != null)
            {
                Id    = int.Parse(Request.Cookies["order_id"].Value);
                order = db.Orders.Find(Id);
                if (order != null)
                {
                    if (!(order.Status == OrderStatus.New && order.AnonymousUserId == null))
                    {
                        return(RedirectToAction("ViewOrder", "Order", new { Id }));
                    }

                    if (!User.IsInRole("Admin"))
                    {
                        if (order.UserId != userId)
                        {
                            Response.Cookies["order_id"].Expires = DateTime.Now.AddDays(-1);
                            return(RedirectToAction("Error"
                                                    , new
                            {
                                errorCode = "Lỗi 403."
                                ,
                                errorDetail = "Bạn không có quyền truy cập đơn hàng này"
                            }));
                        }
                    }

                    ViewBag.id = Id;
                    return(View());
                }
                Id = null;
            }

            order = new Order
            {
                UserId       = userId,
                Status       = OrderStatus.New,
                CreatedAt    = DateTime.Today,
                DeliveryDate = DateTime.Today,
                TotalAmount  = 0
            };
            db.Orders.Add(order);
            db.SaveChanges();

            Response.Cookies["order_id"].Value   = order.ID.ToString();
            Response.Cookies["order_id"].Expires = DateTime.Now.AddDays(7);
            ViewBag.id = order.ID;

            //details = new List<OrderDetail>();

            return(View());
        }
Example #2
0
        public ActionResult Cashier(int?id)
        {
            if (User.IsInRole("Admin"))
            {
                ViewBag.IsAdmin = true;
            }
            else
            {
                ViewBag.IsAdmin = false;
            }

            Order order;
            User  user = db.Users.Where(u => u.Username == User.Identity.Name).FirstOrDefault();

            ViewBag.User = user;

            int userId = user.ID;

            if (id != null)
            {
                order = db.Orders.Find(id);
                if (order == null)
                {
                    //return new HttpNotFoundResult("khong tim thay don hang nay");

                    return(RedirectToAction("Error"
                                            , new
                    {
                        errorCode = "Lỗi 404."
                        , errorDetail = "Không tìm thấy đơn hàng với id: " + id.ToString()
                    }));
                }

                if (!User.IsInRole("Admin"))
                {
                    if (!(order.Status == OrderStatus.New && (order.UserId != null && order.UserId == userId)) &&
                        order.Status != OrderStatus.Pending &&
                        order.Status != OrderStatus.Packing)
                    {
                        Response.Cookies["order_id"].Expires = DateTime.Now.AddDays(-1);
                        return(RedirectToAction("Error"
                                                , new
                        {
                            errorCode = "Lỗi 403."
                            ,
                            errorDetail = "Bạn không có quyền truy cập đơn hàng này"
                        }));
                    }
                }

                Response.Cookies["order_id"].Value   = order.ID.ToString();
                Response.Cookies["order_id"].Expires = DateTime.Now.AddDays(3);
                ViewBag.id = id;
                return(View());
            }



            if (Request.Cookies["order_id"] != null)
            {
                id    = int.Parse(Request.Cookies["order_id"].Value);
                order = db.Orders.Find(id);
                if (order != null)
                {
                    if (!User.IsInRole("Admin"))
                    {
                        if (order.Status != OrderStatus.New && order.Status != OrderStatus.Pending)
                        {
                            Response.Cookies["order_id"].Expires = DateTime.Now.AddDays(-1);
                            return(RedirectToAction("ListOrder"));
                        }
                    }

                    ViewBag.id = id;
                    return(View());
                }
                id = null;
            }



            order = new Order
            {
                UserId       = userId,
                Status       = OrderStatus.New,
                CreatedAt    = DateTime.Today,
                DeliveryDate = DateTime.Today,
                TotalAmount  = 0
            };
            db.Orders.Add(order);
            db.SaveChanges();

            Response.Cookies["order_id"].Value   = order.ID.ToString();
            Response.Cookies["order_id"].Expires = DateTime.Now.AddDays(7);
            ViewBag.id = order.ID;

            //details = new List<OrderDetail>();

            return(View());
        }