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); }
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); }
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); }
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); }
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)); } }
// 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); }
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); } } } }
// 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); }