Пример #1
0
        public IActionResult EnviarPedido(CartaoDeCredito cartaoUm, CartaoDeCredito cartaoDois, byte multiplosCartoes)
        {
            if (HttpContext.Session.Get <int>("idUsuario") > 0)
            {
                Carrinho carrinho;
                Pedido   pedido;

                carrinho = SessionHelper.Get <Carrinho>(HttpContext.Session, "carrinho");

                pedido = new Pedido
                {
                    MultiplosCartoes = carrinho.MultiplosCartoes = multiplosCartoes,
                    ItensPedido      = carrinho.ItensPedido,
                    CuponsTroca      = carrinho.CuponsTroca,
                    CupomPromocional = carrinho.CupomPromocional,
                    ValorFrete       = carrinho.ValorFrete,
                    CartaoUm         = carrinho.CartaoUm = cartaoUm,
                    CartaoDois       = carrinho.CartaoDois = cartaoDois,
                    EnderecoId       = carrinho.EnderecoId,
                    CupomTrocaGerado = new Cupom(),
                    UsuarioId        = HttpContext.Session.Get <int>("idUsuario")
                };
                //Verificacao de itens do carrinho
                VerificacaoItensTempoLimiteAtingido verificacaoItens = new VerificacaoItensTempoLimiteAtingido();
                string retornoMsg = verificacaoItens.VerificarItensCarrinho(carrinho);
                if (retornoMsg != null)
                {
                    SessionHelper.Set <Carrinho>(HttpContext.Session, "carrinho", new Carrinho());
                    HttpContext.Session.Set("mensagemCarrinho", Encoding.UTF8.GetBytes(retornoMsg));
                    return(RedirectToAction("index", "carrinho"));
                }

                SessionHelper.Set <Carrinho>(HttpContext.Session, "carrinho", carrinho);


                resultado = new Facade().Salvar(pedido);//Salva o pedido
                if (!string.IsNullOrEmpty(resultado.Msg))
                {
                    string msg = resultado.Msg;
                    HttpContext.Session.Set("mensagemCarrinho", Encoding.UTF8.GetBytes(msg));
                    return(RedirectToAction("Index", "Carrinho"));
                }

                resultado = new Facade().Alterar(pedido);//Alterar o pedido
                if (!string.IsNullOrEmpty(resultado.Msg))
                {
                    string msg = resultado.Msg;
                    HttpContext.Session.Set("mensagemCarrinho", Encoding.UTF8.GetBytes(msg));
                    return(RedirectToAction("Index", "Carrinho"));
                }
                if (pedido.Status == 'A')
                {
                    string msg;
                    if (pedido.CupomTrocaGerado.Id > 0)
                    {
                        msg = "Pedido " + pedido.Id + " realizado com sucesso.\nCupom de troca gerado no valor de R$ " + pedido.CupomTrocaGerado.Valor + ".";
                    }
                    else
                    {
                        msg = "Pedido " + pedido.Id + " realizado com sucesso";
                    }
                    char statusPedido = 'A';
                    HttpContext.Session.Set("mensagemCarrinho", Encoding.UTF8.GetBytes(msg));
                    HttpContext.Session.Set("statusPedido", statusPedido);
                }
                else if (pedido.Status == 'R')
                {
                    string msg          = "Pedido " + pedido.Id + " Recusado.\n Contate a operadora de cartão de crédito";
                    char   statusPedido = 'R';
                    HttpContext.Session.Set("mensagemCarrinho", Encoding.UTF8.GetBytes(msg));
                    HttpContext.Session.Set("statusPedido", statusPedido);
                }
                else
                {
                    string msg          = "Pedido efetuado com sucesso";
                    char   statusPedido = 'P';
                    HttpContext.Session.Set("mensagemCarrinho", Encoding.UTF8.GetBytes(msg));
                    HttpContext.Session.Set("statusPedido", statusPedido);
                }
            }
            else
            {
                string msg = "Faça login para continuar";
                HttpContext.Session.Set("mensagemCarrinho", Encoding.UTF8.GetBytes(msg));
            }
            return(RedirectToAction("Index", "Carrinho"));
        }
Пример #2
0
        public IActionResult AdicionarItem(int id)
        {
            List <Livro>   livros;
            List <Estoque> estoqueProds;
            Carrinho       carrinho;
            Estoque        estoque;
            ItemPedido     itemPedido = new ItemPedido();

            Livro livro = new Livro
            {
                Id = id
            };

            resultado = new Facade().Consultar(livro);
            if (!string.IsNullOrEmpty(resultado.Msg))
            {
                TempData["MsgErro"] = resultado.Msg;
                return(PartialView("_produtos"));
            }
            else
            {
                livros = new List <Livro>();
                foreach (var item in resultado.Entidades)
                {
                    livros.Add((Livro)item);
                }
                itemPedido.Qtde    = 1;
                itemPedido.Produto = livros.FirstOrDefault();

                carrinho = SessionHelper.Get <Carrinho>(HttpContext.Session, "carrinho");
                if (carrinho == null)
                {
                    carrinho = new Carrinho();
                    HttpContext.Session.Set("statusPedido", '\0');
                }
                //Verificacao de itens do carrinho
                VerificacaoItensTempoLimiteAtingido verificacaoItens = new VerificacaoItensTempoLimiteAtingido();
                string msg = verificacaoItens.VerificarItensCarrinho(carrinho);
                if (msg != null)
                {
                    SessionHelper.Set <Carrinho>(HttpContext.Session, "carrinho", new Carrinho());
                    HttpContext.Session.Set("mensagemCarrinho", Encoding.UTF8.GetBytes(msg));
                    return(RedirectToAction("index", "carrinho"));
                }

                ItemPedido itemPed = carrinho.ItensPedido.Find(x => x.Produto.Id == id);//Verifica se o produto ja esta no carrinho

                if (itemPed != null)
                {//Encontrou produto no carrinho
                    estoque = new Estoque
                    {
                        ProdutoId = id
                    };
                    resultado = new Facade().Consultar(estoque);//Consulta estoque
                    if (!string.IsNullOrEmpty(resultado.Msg))
                    {
                        TempData["MsgErro"] = resultado.Msg;
                        return(PartialView("_produtos"));
                    }
                    else
                    {
                        estoqueProds = new List <Estoque>();
                        foreach (var item in resultado.Entidades)
                        {
                            estoqueProds.Add((Estoque)item);
                        }
                        if (estoqueProds.FirstOrDefault().Qtde >= carrinho.ItensPedido[carrinho.ItensPedido.IndexOf(itemPed)].Qtde + 1)
                        {
                            carrinho.ItensPedido[carrinho.ItensPedido.IndexOf(itemPed)].Qtde += 1;
                            carrinho.QtdeTotalItens += 1;
                        }
                    }
                }
                else
                {
                    //verificar se produto está na lista de itens bloqueados
                    resultado = new Facade().Consultar(new ItemBloqueado {
                        Id = id
                    });
                    if (resultado.Msg != null)
                    {
                        ViewBag.Mensagem = resultado.Msg;
                        return(RedirectToAction("Index", "Carrinho"));
                    }
                    else if (resultado.Entidades.Count > 0)
                    {
                        string retornoMsg = "Produto bloqueado temporariamente";
                        HttpContext.Session.Set("mensagemCarrinho", Encoding.UTF8.GetBytes(retornoMsg));
                        return(RedirectToAction("Index", "Carrinho"));
                    }
                    itemPedido.HoraInclusao = DateTime.Now;//Grava a hora da insercao desse produto no carrinho
                    estoque = new Estoque
                    {
                        ProdutoId = id
                    };
                    resultado = new Facade().Consultar(estoque);//Consulta estoque
                    if (!string.IsNullOrEmpty(resultado.Msg))
                    {
                        TempData["MsgErro"] = resultado.Msg;
                        return(PartialView("_produtos"));
                    }
                    else
                    {
                        estoqueProds = new List <Estoque>();
                        foreach (var item in resultado.Entidades)
                        {
                            estoqueProds.Add((Estoque)item);
                        }
                        if (estoqueProds.FirstOrDefault().Qtde >= 1)
                        {
                            carrinho.ItensPedido.Add(itemPedido);
                            carrinho.QtdeTotalItens    += 1;
                            carrinho.HoraUltimaInclusao = DateTime.Now;//Grava a hora da ultima insercao no carrinho

                            resultado = new Facade().Salvar(new ItemBloqueado {
                                Id = id
                            });
                            if (resultado.Msg != null)
                            {
                                ViewBag.Mensagem = resultado.Msg;
                                return(RedirectToAction("index", "carrinho"));
                            }
                        }
                    }
                }
                SessionHelper.Set <Carrinho>(HttpContext.Session, "carrinho", carrinho);

                return(RedirectToAction("index", "carrinho"));
            }
        }