Ejemplo n.º 1
0
        // Adicionar no Carrinho
        public ActionResult Adicionar(ProdutoMontado produtoMontado, int tabelaPrecoId)
        {
            var produto = _db.ProdutosMontados
                          .FirstOrDefault(p => p.ProdutoId == produtoMontado.ProdutoId &&
                                          p.ProdutoTamanhoId == produtoMontado.ProdutoTamanhoId &&
                                          p.ProdutoCorId == produtoMontado.ProdutoCorId);

            produto.TabelaPrecos = _db.TabelaPrecos.Where(c => c.Id == tabelaPrecoId).ToList();

            if (!produto.TabelaPrecos.Any())
            {
                return(Redirect(Request.UrlReferrer.AbsoluteUri));
            }

            try
            {
                if (produto != null)
                {
                    ObterCarrinho().AdicionarItem(produto);
                }
                TempData["MensagemCarrinhoOk"] = "Item adicionado com sucesso!";
            }
            catch (Exception ex)
            {
                TempData["MensagemCarrinho"] = ex.Message;
            }

            return(RedirectToAction("CarrinhoDeCompras"));
        }
Ejemplo n.º 2
0
        //Adicionar
        public void AdicionarItem(ProdutoMontado produtoMontado)
        {
            ItemCarrinho item;

            if (_userId == null)
            {
                item = _db.ItemCarrinhos
                       .FirstOrDefault(p => p.ProdutoMontado.Id == produtoMontado.Id && p.AnonymousId == _userAnonymonusId);
            }
            else
            {
                item = _db.ItemCarrinhos
                       .FirstOrDefault(p => p.ProdutoMontado.Id == produtoMontado.Id && p.ApplicationUserId == _userId);
            }

            if (_estoque.AvaliaDisponibilidade(produtoMontado.Id) <= 0)
            {
                throw new Exception("Item sem disponibilidade no estoque");
            }

            var promocao = _db.PromocaoItems.FirstOrDefault(c => c.ProdutoMontadoId == produtoMontado.Id && c.Promocao.Ativo);

            if (promocao != null && !PromotionsController.VerificaPromocao(promocao.Promocao))
            {
                promocao = null;
            }

            if (item == null)
            {
                item = new ItemCarrinho
                {
                    PromocaoId          = promocao?.PromocaoId,
                    Data                = DateTime.Now,
                    ProdutoMontadoId    = produtoMontado.Id,
                    QuantidadeTotalItem = 1,
                    ApplicationUserId   = _userId,
                    AnonymousId         = _userAnonymonusId,
                    TabelaPrecoId       = produtoMontado.TabelaPrecos.First().Id,
                    Status              = Status.Alocado
                };
                _db.ItemCarrinhos.Add(item);
            }
            else
            {
                item.QuantidadeTotalItem += 1;
                _db.Entry(item).State     = System.Data.Entity.EntityState.Modified;
            }

            var localLoja  = _db.Parametros.First().local_loja;
            var movEstoque = _db.Estoques.First(c => c.ProdutoMontadoId == produtoMontado.Id && c.LocalId == localLoja);

            movEstoque.SaldoAlocado    += 1;
            _db.Entry(movEstoque).State = System.Data.Entity.EntityState.Modified;
            _db.SaveChanges();
        }
Ejemplo n.º 3
0
 private MvcHtmlString AvaliacaoPorcentual(ProdutoMontado produtoMontado)
 {
     if (produtoMontado.AvaliacaoProduto.Any())
     {
         var sim     = produtoMontado.AvaliacaoProduto.Count(c => c.Recomendaria == Recomendaria.Sim);
         var total   = produtoMontado.AvaliacaoProduto.Count;
         var porcent = (sim / total) * 100;
         return(MvcHtmlString.Create("<p><h2><span class='text-success'>" + porcent + "%</span></h2> dos clientes recomendam este produto.</p>"));
     }
     else
     {
         return(MvcHtmlString.Create("<a href='#avaliacaoProduto' class='btn btn-success btn-sm'>Avaliação de produtos</a>"));
     }
 }
Ejemplo n.º 4
0
        private MvcHtmlString NotaEstrelas(ProdutoMontado produtoMontado)
        {
            var nota = produtoMontado.AvaliacaoProduto.Any() ? produtoMontado.AvaliacaoProduto.Average(c => c.Nota) : 0;

            StringBuilder estrelas = new StringBuilder();

            for (int i = 0; i < 5; i++)
            {
                if (i < nota)
                {
                    estrelas.Append("<i class='glyphicon glyphicon-star' style='font-size: 15px; color:#ffd800;'></i>");
                }
                else
                {
                    estrelas.Append("<i class='glyphicon glyphicon-star' style='font-size: 15px; color:gray;'></i>");
                }
            }

            estrelas.Append("<span>(" + produtoMontado.AvaliacaoProduto.Count + ")</span>");

            return(MvcHtmlString.Create(estrelas.ToString()));
        }
Ejemplo n.º 5
0
        //Remover
        public void RemoverItem(ProdutoMontado produtoMontado)
        {
            ItemCarrinho item;

            if (_userId == null)
            {
                item = _db.ItemCarrinhos
                       .FirstOrDefault(p => p.ProdutoMontado.Id == produtoMontado.Id && p.AnonymousId == _userAnonymonusId);
            }
            else
            {
                item = _db.ItemCarrinhos
                       .FirstOrDefault(p => p.ProdutoMontado.Id == produtoMontado.Id && p.ApplicationUserId == _userId);
            }

            _db.ItemCarrinhos.Remove(item);

            var movEstoque = _db.Estoques.First(c => c.ProdutoMontadoId == produtoMontado.Id);

            movEstoque.SaldoAlocado    -= item.QuantidadeTotalItem;
            _db.Entry(movEstoque).State = System.Data.Entity.EntityState.Modified;
            _db.SaveChanges();
        }