Esempio n. 1
0
        public ActionResult ExibirPedido(int?id)
        {
            if (GestaoUsuarios.VerificarStatusCliente() != null)
            {
                if (id == null)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }

                Pedido pedido = db.Pedido.Find(id);

                if (pedido == null)
                {
                    return(HttpNotFound());
                }

                if (pedido.UsuarioID == Convert.ToInt32(System.Web.HttpContext.Current.Session["ID"].ToString()))
                {
                    pedido.Cliente = db.Cliente.Find(pedido.UsuarioID);

                    foreach (var item in pedido.Itens)
                    {
                        item.Produto = db.Produto.Find(item.ProdutoID);
                    }

                    return(View(pedido));
                }
                else
                {
                    return(RedirectToAction("MeusPedidos", "Pedidos"));
                }
            }

            return(null);
        }
Esempio n. 2
0
        public JsonResult CancelarPedido(int id)
        {
            if (GestaoUsuarios.VerificarStatusCliente() != null)
            {
                var idUsuario = Convert.ToInt32(System.Web.HttpContext.Current.Session["ID"].ToString());

                Pedido pedido = db.Pedido.Find(id);

                if (pedido.UsuarioID == idUsuario)
                {
                    DateTime dataAtual  = DateTime.Now;
                    DateTime dataPedido = Convert.ToDateTime(pedido.DataPedido);

                    double horas = (dataAtual - dataPedido).TotalHours;

                    if (horas <= 6)
                    {
                        if (pedido.Ativo)
                        {
                            // Desativar o Pedido
                            pedido.Ativo = false;
                            db.Pedido.AddOrUpdate(pedido);
                            int resultado = db.SaveChanges();

                            if (resultado > 0)
                            {
                                foreach (var item in pedido.Itens)
                                {
                                    Produto produto = db.Produto.Find(item.ProdutoID);
                                    produto.Quantidade += item.Quantidade;
                                    db.Produto.AddOrUpdate(produto);
                                    db.SaveChanges();
                                }

                                return(Json(new { OK = true, Mensagem = "Pedido cancelado com sucesso." }, JsonRequestBehavior.AllowGet));
                            }
                            else
                            {
                                return(Json(new { OK = false, Mensagem = "Erro ao cancelar o pedido." }, JsonRequestBehavior.AllowGet));
                            }
                        }
                        else
                        {
                            return(Json(new { OK = false, Mensagem = "Este pedido já foi cancelado anteriormente." }, JsonRequestBehavior.AllowGet));
                        }
                    }
                    else
                    {
                        return(Json(new { OK = false, Mensagem = "Após seis horas o pedido não pode ser mais cancelado." }, JsonRequestBehavior.AllowGet));
                    }
                }
                else
                {
                    return(Json(new { OK = false, Mensagem = "Não é possível cancelar um pedido de outro usuário." }, JsonRequestBehavior.AllowGet));
                }
            }

            return(null);
        }
Esempio n. 3
0
        public ActionResult MeusPedidos()
        {
            if (GestaoUsuarios.VerificarStatusCliente() != null)
            {
                var id      = Convert.ToInt32(System.Web.HttpContext.Current.Session["ID"].ToString());
                var pedidos = db.Pedido.Where(p => p.UsuarioID == id).Include(p => p.Cliente);
                return(View(pedidos.ToList()));
            }

            return(null);
        }
Esempio n. 4
0
        public ActionResult EmitirPedido()
        {
            if (GestaoUsuarios.VerificarStatusCliente() != null)
            {
                Pedido            novoPedido = new Pedido();
                List <ItemPedido> listaItens = new List <ItemPedido>();

                var carrinho = GestaoCarrinho.RetornarCarrinho();

                if (carrinho.Count > 0)
                {
                    // Cria novo pedido
                    novoPedido.DataPedido    = DateTime.Now;
                    novoPedido.UsuarioID     = Convert.ToInt32(System.Web.HttpContext.Current.Session["ID"].ToString());
                    novoPedido.Cliente       = db.Cliente.Find(novoPedido.UsuarioID);
                    novoPedido.Ativo         = true;
                    novoPedido.ModificadoEm  = null;
                    novoPedido.ModificadoPor = null;

                    db.Pedido.Add(novoPedido);
                    db.SaveChanges();

                    // Adiciona os itens do pedido
                    foreach (var item in carrinho)
                    {
                        ItemPedido itemPedido = new ItemPedido
                        {
                            ProdutoID  = item.Key.ProdutoID,
                            PedidoID   = novoPedido.PedidoID,
                            Quantidade = item.Value
                        };

                        db.ItemPedido.Add(itemPedido);
                        db.SaveChanges();

                        // Remove produtos do estoque
                        Produto produto = db.Produto.Find(itemPedido.ProdutoID);
                        produto.Quantidade -= itemPedido.Quantidade;
                        db.Produto.AddOrUpdate(produto);
                        db.SaveChanges();
                    }
                }

                // Limpa o carrinho
                GestaoCarrinho.LimparCarrinho();

                return(RedirectToAction("ExibirPedido", new { id = novoPedido.PedidoID }));
            }

            return(null);
        }
Esempio n. 5
0
 public JsonResult VerificarAutenticacao()
 {
     if (GestaoUsuarios.VerificarStatusCliente() != null)
     {
         return(Json(new { OK = true, Nivel = "Cliente" }, JsonRequestBehavior.AllowGet));
     }
     else if (GestaoUsuarios.VerificarStatusAdministrador() != null)
     {
         return(Json(new { OK = true, Nivel = "Administrador" }, JsonRequestBehavior.AllowGet));
     }
     else
     {
         return(Json(new { OK = false, Nivel = "Visitante" }, JsonRequestBehavior.AllowGet));
     }
 }
Esempio n. 6
0
        // GET: Clientes/ManageAccount
        public ActionResult ManageAccount()
        {
            if (GestaoUsuarios.VerificarStatusCliente() != null)
            {
                int     id      = Convert.ToInt32(System.Web.HttpContext.Current.Session["ID"].ToString());
                Cliente cliente = db.Cliente.Find(id);

                if (cliente == null)
                {
                    return(HttpNotFound());
                }

                return(View(cliente));
            }

            return(null);
        }
Esempio n. 7
0
        public override void OnActionExecuting(ActionExecutingContext filtroContexto)
        {
            var controller = filtroContexto.ActionDescriptor.ControllerDescriptor.ControllerName;
            var action     = filtroContexto.ActionDescriptor.ActionName;

            if ((controller != "Home") &&
                (controller != "Clientes" || action != "Register") &&
                (controller != "Administradores" || action != "Register") &&
                (controller != "Produtos" || action != "Search"))
            {
                if ((controller == "Clientes" && action == "ManageAccount") ||
                    (controller == "Clientes" && action == "ChangePassword") ||
                    (controller == "Pedidos" && action == "EmitirPedido") ||
                    (controller == "Pedidos" && action == "ExibirPedido") ||
                    (controller == "Pedidos" && action == "MeusPedidos") ||
                    (controller == "Pedidos" && action == "CancelarPedido"))
                {
                    if (GestaoUsuarios.VerificarStatusCliente() == null)
                    {
                        if (controller == "Pedidos" && action == "EmitirPedido")
                        {
                            HttpContext.Current.Response.Redirect("/Home/Login?redir=/Carrinho");
                        }
                        else if ((controller == "Pedidos" && action == "ExibirPedido") || (controller == "Pedidos" && action == "CancelarPedido"))
                        {
                            HttpContext.Current.Response.Redirect("/Home/Login?redir=/Pedidos/MeusPedidos");
                        }
                        else
                        {
                            HttpContext.Current.Response.Redirect("/Home/Login?redir=/" + controller + "/" + action);
                        }
                    }
                }
                else
                {
                    if (GestaoUsuarios.VerificarStatusAdministrador() == null)
                    {
                        HttpContext.Current.Response.Redirect("/Home/Login?redir=/" + controller + "/" + action);
                    }
                }
            }
        }
Esempio n. 8
0
        // GET: Clientes/ChangePassword
        public ActionResult ChangePassword()
        {
            if (GestaoUsuarios.VerificarStatusCliente() != null)
            {
                int     id      = Convert.ToInt32(System.Web.HttpContext.Current.Session["ID"].ToString());
                Cliente cliente = db.Cliente.Find(id);

                cliente.Senha            = null;
                cliente.ConfirmacaoSenha = null;

                if (cliente == null)
                {
                    return(HttpNotFound());
                }

                return(View(cliente));
            }

            return(null);
        }