Exemple #1
0
        // private static bool estaNoCarrinho = false;

        public ActionResult Index()
        {
            ViewBag.Carrinho      = GestaoCarrinho.RetornarCarrinho();
            ViewBag.TotalCarrinho = GestaoCarrinho.RetornarTotalCarrinho();
            // ViewBag.EstaNoCarrinho = estaNoCarrinho;
            return(View());
        }
        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);
        }