Example #1
0
        public ActionResult Pesquisa(string categoria, string termo)
        {
            using (var db = new alphasupermarketEntities())
            {
                db.Configuration.LazyLoadingEnabled = false;

                List <Produto> lista = new List <Produto>();

                if (!String.IsNullOrEmpty(categoria))
                {
                    if (categoria == "todos")
                    {
                        lista = db.Produto.Where(p => p.ativoProduto == "1").OrderBy(p => p.nomeProduto).ToList();
                    }
                    else
                    {
                        int id = int.Parse(categoria);
                        lista = db.Produto.Where(p => p.idCategoria == id).ToList();
                    }
                }
                else
                {
                    lista = db.Produto.Where(p => p.nomeProduto.ToLower().Contains(termo.ToLower())).ToList();
                }

                return(View(lista));
            }
        }
Example #2
0
        public ActionResult Adicionar(Endereco model)
        {
            // removemos as chaves da validação, pois nesse caso nao vamos ter esses dados no Adicionar
            ModelState.Remove("idCliente");
            ModelState.Remove("idEndereco");

            if (ModelState.IsValid)
            {
                using (var db = new alphasupermarketEntities())
                {
                    string email   = User.Identity.Name;
                    var    cliente = db.Cliente.FirstOrDefault(c => c.emailCliente == email);

                    model.idCliente = cliente.idCliente;

                    db.Endereco.Add(model);
                    db.SaveChanges();

                    TempData["sucesso"] = "Endreço adicionado com sucesso !";

                    return(RedirectToAction("Index"));
                }
            }

            return(View(model));
        }
Example #3
0
 private Cliente ValidaLogin(string usuario, string senha)
 {
     using (var db = new alphasupermarketEntities())
     {
         return(db.Cliente.FirstOrDefault(c => c.emailCliente == usuario && c.senhaCliente == senha));
     }
 }
Example #4
0
        public ActionResult Excluir(int id)
        {
            using (var db = new alphasupermarketEntities())
            {
                var endereco = db.Endereco.Include("Pedido").FirstOrDefault(c => c.idEndereco == id);

                if (endereco.Pedido.Count > 0)
                {
                    TempData["erro"] = "Operação cancelada. Existe um ou mais pedidos em aberto com esse endereço !";

                    return(RedirectToAction("Index"));
                }

                try
                {
                    db.Endereco.Remove(endereco);
                    db.SaveChanges();

                    TempData["sucesso"] = "Endreço excluído com sucesso !";
                }
                catch (Exception)
                {
                    TempData["erro"] = "Falha ao excluir endereço. Tente novamente.";
                }

                return(RedirectToAction("Index"));
            }
        }
Example #5
0
 public ActionResult MeusPedidos()
 {
     using (var db = new alphasupermarketEntities())
     {
         string email   = User.Identity.Name;
         var    cliente = db.Cliente.Include("Pedido").Include("Pedido.StatusPedido").Include("Pedido.TipoPagamento").Include("Pedido.ItemPedido").Include("Pedido.ItemPedido.Produto").Include("Endereco").FirstOrDefault(c => c.emailCliente == email);
         return(View(cliente));
     }
 }
Example #6
0
        public ActionResult Produto(int id)
        {
            using (var db = new alphasupermarketEntities())
            {
                Produto produto = db.Produto.FirstOrDefault(p => p.idProduto == id);

                return(View(produto));
            }
        }
Example #7
0
        public ActionResult Editar(int id)
        {
            using (var db = new alphasupermarketEntities())
            {
                var endereco = db.Endereco.FirstOrDefault(c => c.idEndereco == id);

                return(View(endereco));
            }
        }
Example #8
0
        public ActionResult DadosCadastrais()
        {
            using (var db = new alphasupermarketEntities())
            {
                string email   = User.Identity.Name;
                var    cliente = db.Cliente.FirstOrDefault(c => c.emailCliente == email);

                return(View(cliente));
            }
        }
Example #9
0
        public ActionResult Index()
        {
            using (var db = new alphasupermarketEntities())
            {
                string email   = User.Identity.Name;
                var    cliente = db.Cliente.Include("Endereco").FirstOrDefault(c => c.emailCliente == email);

                return(View(cliente.Endereco.ToList()));
            }
        }
Example #10
0
        public ActionResult DetalhesPedido(int id)
        {
            using (var db = new alphasupermarketEntities())
            {
                db.Configuration.LazyLoadingEnabled = false;

                var pedido = db.Pedido.Include("ItemPedido").Include("ItemPedido.Produto").FirstOrDefault(p => p.idPedido == id);

                return(View(pedido.ItemPedido.ToList()));
            }
        }
Example #11
0
        public static List <Categoria> MaisCategorias()
        {
            using (var db = new alphasupermarketEntities())
            {
                db.Configuration.LazyLoadingEnabled = false;

                int[] categoriasUsadas = { 1, 2, 3, 4, 5, 6 };

                return(db.Categoria.Where(c => !categoriasUsadas.Contains(c.idCategoria)).ToList());
            }
        }
Example #12
0
        public static List <Produto> MaisVendidos()
        {
            using (var db = new alphasupermarketEntities())
            {
                db.Configuration.LazyLoadingEnabled = false;

                var ids4MaisVendidos = db.ItemPedido.Include("Produto").GroupBy(p => p.idProduto).Select(gr => new { id = gr.Key, count = gr.Count() }).OrderByDescending(p => p.count).Take(4).Select(g => g.id).ToList();

                return(db.Produto.Where(p => ids4MaisVendidos.Contains(p.idProduto)).ToList());
            }
        }
Example #13
0
        public ActionResult FinalizarCompra()
        {
            var lista = RecuperaCarrinhoSessao();

            if (lista.Count == 0)
            {
                return(RedirectToAction("Index", "Home"));
            }

            if (Request.Form.Count > 0)
            {
                foreach (var item in lista)
                {
                    AtualizaQuantidadeSessao(item, int.Parse(Request.Form["quantidade[" + item.idProduto + "]"]));
                }
            }

            ViewBag.carrinho = RecuperaCarrinhoSessao();

            List <SelectListItem> enderecos  = new List <SelectListItem>();
            List <SelectListItem> pagamentos = new List <SelectListItem>();

            using (var db = new alphasupermarketEntities())
            {
                db.Configuration.LazyLoadingEnabled = false;

                string email = User.Identity.Name;

                var cliente = db.Cliente.Include("endereco").FirstOrDefault(c => c.emailCliente == email);

                foreach (var endereco in cliente.Endereco.ToList())
                {
                    SelectListItem item = new SelectListItem();
                    item.Selected = false;
                    item.Text     = endereco.nomeEndereco;
                    item.Value    = endereco.idEndereco.ToString();

                    enderecos.Add(item);
                }

                pagamentos.Add(new SelectListItem()
                {
                    Selected = false, Text = "Cartão de Crédito", Value = "1"
                });
            }

            ViewBag.enderecos  = enderecos;
            ViewBag.pagamentos = pagamentos;

            return(View());
        }
Example #14
0
        public ActionResult Finalizar()
        {
            Pedido pedido = new Pedido();

            using (var db = new alphasupermarketEntities())
            {
                try
                {
                    string email = User.Identity.Name;

                    var cliente = db.Cliente.Include("endereco").FirstOrDefault(c => c.emailCliente == email);

                    pedido.idCliente   = cliente.idCliente;
                    pedido.idStatus    = (int)StatusTransacaoEnum.AguardandoAprovacao;
                    pedido.dataPedido  = DateTime.Now;
                    pedido.idTipoPagto = byte.Parse(Request.Form["pagamento"].ToString());
                    pedido.idEndereco  = int.Parse(Request.Form["endereco"].ToString());

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

                    var carrinho = RecuperaCarrinhoSessao();

                    foreach (var item in carrinho.Distinct())
                    {
                        ItemPedido ip = new ItemPedido();
                        ip.idProduto      = item.idProduto;
                        ip.idPedido       = pedido.idPedido;
                        ip.qtdProduto     = Convert.ToInt16(carrinho.Count(c => c.idProduto == item.idProduto));
                        ip.precoVendaItem = item.precProduto;

                        db.ItemPedido.Add(ip);
                    }

                    db.SaveChanges();

                    TempData["mensagem"] = "Obrigado por comprar no Alpha Supermarket ! <br /> A partir de agora qualquer atualização do seu pedido será comunicado via email.";
                }
                catch (Exception)
                {
                    TempData["erro"] = "Falha ao finalizar compra.";
                }
            }

            LimparCarrinho();

            return(View());
        }
Example #15
0
        public ActionResult Index()
        {
            using (var db = new alphasupermarketEntities())
            {
                int quantidadeParaMostrar = 9;

                // retorna produtos ativos, ordenados randomicamente pegado so os quantidadeParaMostrar primeiros
                var produtosAleatorios = db.Produto.Where(p => p.ativoProduto == "1").OrderBy(p => Guid.NewGuid()).Take(quantidadeParaMostrar).ToList();

                // os 4 produtos mais vendidos
                var ids4MaisVendidos = db.ItemPedido.Include("Produto").GroupBy(p => p.idProduto).Select(gr => new { id = gr.Key, count = gr.Count() }).OrderByDescending(p => p.count).Take(4).Select(g => g.id).ToList();
                ViewBag.maisVendidos = db.Produto.Where(p => ids4MaisVendidos.Contains(p.idProduto)).ToList();

                return(View(produtosAleatorios));
            }
        }
Example #16
0
        public ActionResult CancelarPedido(int id)
        {
            using (var db = new alphasupermarketEntities())
            {
                db.Configuration.LazyLoadingEnabled = false;

                var pedido = db.Pedido.FirstOrDefault(p => p.idPedido == id && p.idStatus <= 2);

                if (pedido != null)
                {
                    pedido.idStatus = (int)StatusTransacaoEnum.Cancelado;

                    db.SaveChanges();
                }
            }

            return(RedirectToAction("MeusPedidos"));
        }
Example #17
0
        public JsonResult InsereProdutoCarrinho(int produtoId, int quantidade)
        {
            using (var db = new alphasupermarketEntities())
            {
                List <Produto> carrinho = RecuperaCarrinhoSessao();

                var produto = db.Produto.FirstOrDefault(p => p.idProduto == produtoId);

                if (produto != null)
                {
                    carrinho = InsereProdutoSessao(produto, quantidade);
                }

                return(Json(new
                {
                    totalProdutos = carrinho.Count,
                    valorTotal = carrinho.Sum(c => (c.precProduto - c.descontoPromocao.Value)).ToString("n2")
                }, JsonRequestBehavior.AllowGet));
            }
        }
Example #18
0
        public ActionResult Editar(Endereco model)
        {
            using (var db = new alphasupermarketEntities())
            {
                if (ModelState.IsValid)
                {
                    try
                    {
                        db.Entry <Endereco>(model).State = System.Data.Entity.EntityState.Modified;
                        db.SaveChanges();

                        TempData["sucesso"] = "Endreço alterado com sucesso !";
                    }
                    catch (Exception)
                    {
                        TempData["erro"] = "Falha ao alterar o endereço. Tente novamente.";
                    }
                }

                return(RedirectToAction("Index", "Endereco", new { returnUrl = Request.QueryString["ReturnUrl"] }));
            }
        }
Example #19
0
        public ActionResult Cadastrar(Cliente cliente, string returnUrl)
        {
            // removemos o erro do recebeNewsLetter, idCliente e data
            ModelState.Remove("recebeNewsLetter");
            ModelState.Remove("idCliente");
            ModelState.Remove("dtNascCliente");

            using (var db = new alphasupermarketEntities())
            {
                // Validamos se o email já existe
                var clienteComEmail = db.Cliente.FirstOrDefault(c => c.emailCliente == cliente.emailCliente);
                if (clienteComEmail != null && clienteComEmail.idCliente != cliente.idCliente)
                {
                    ModelState.AddModelError("", "Email já cadastrado.");
                }

                // Validamos a data
                if (cliente.dtNascCliente == null)
                {
                    ModelState.AddModelError("", "Data inválida.");
                }

                // valida a senha
                if (String.IsNullOrEmpty(cliente.senhaCliente))
                {
                    ModelState.AddModelError("", "Senha inválida.");
                }
                if (cliente.senhaCliente != Request.Form["confirmarSenha"])
                {
                    ModelState.AddModelError("", "Senhas não conferem.");
                }
            }

            if (ModelState.IsValid)
            {
                using (var db = new alphasupermarketEntities())
                {
                    try
                    {
                        // se o recebeNewsLetter esta presente no form
                        if (Request.Form["recebeNewsLetter"] != null && Request.Form["recebeNewsLetter"] == "on")
                        {
                            cliente.recebeNewsLetter = true;
                        }
                        else
                        {
                            cliente.recebeNewsLetter = false;
                        }

                        if (cliente.idCliente == 0)
                        {
                            db.Cliente.Add(cliente);
                        }
                        else
                        {
                            try
                            {
                                db.Entry <Cliente>(cliente).State = System.Data.Entity.EntityState.Modified;
                            }
                            catch (Exception)
                            {
                            }
                        }

                        db.SaveChanges();

                        // Loga o cliente no sistema
                        FormsAuthentication.SetAuthCookie(cliente.emailCliente, false);

                        TempData["sucesso"] = "Cadastro salvo com sucesso !";

                        return(RedirectToLocal(returnUrl));
                    }
                    catch (Exception ex)
                    {
                        // Adiciona o erro no model
                        ModelState.AddModelError("", ex.Message);
                    }
                }
            }

            return(View(cliente));
        }