public ActionResult Produto()
        {
            ProdutoBll produtoBll = new ProdutoBll();

            List<Produto> produtos = produtoBll.ListarProdutosAtivos();

            return new Rotativa.ViewAsPdf("~/Views/Relatorios/Produto.cshtml", produtos);
        }
        public ActionResult Produtos()
        {
            ProdutoBll produtoBll = new ProdutoBll();

            List<Produto> produtos = produtoBll.ListarProdutosAtivos();

            var pdf = new ViewAsPdf
            {
                ViewName = "Produtos",
                Model = produtos
            };
            return pdf;
        }
        // GET: Produtos
        public ActionResult Index(string sortOrder, string filtroAtual,
                                    string filtro, int? page,
                                    string ativoFiltro,
                                    string ativoFiltroAtual,
                                    string codigoInternoFiltro,
                                    string codigoInternoFiltroAtual)
        {
            try
            {
                ViewBag.CurrentSort = sortOrder;
                ViewBag.DescricaoSort = string.IsNullOrEmpty(sortOrder) ? "descricao_desc" : "";
                ViewBag.CodigoInternoSort = sortOrder == "CodigoInterno" ? "codigointerno_desc" : "CodigoInterno";

                if (filtro != null)
                {
                    page = 1;
                }
                else
                {
                    filtro = filtroAtual;
                }

                if (ativoFiltro != null)
                {
                    page = 1;
                }
                else
                {
                    ativoFiltro = ativoFiltroAtual;
                }

                if (codigoInternoFiltro != null)
                {
                    page = 1;
                }
                else
                {
                    codigoInternoFiltro = codigoInternoFiltroAtual;
                }

                ViewBag.FiltroAtual = filtro;

                ProdutoBll produtobll = new ProdutoBll();

                return View("~/Views/Admin/Produtos/Index.cshtml", produtobll.ListarProdutosPaginacao(page, filtro, sortOrder, ativoFiltro, codigoInternoFiltro));
            }
            catch(Exception ex)
            {
                return View("~/Views/Admin/Produtos/Index.cshtml").ComMensagem(Resources.Geral.TenteNovamente, TipoMensagem.Erro);
            }
        }
        public ActionResult ItemPedido(int? ID)
        {
            ProdutoBll produtoBll = new ProdutoBll();
            ViewBag.Produtos = produtoBll.ListarProdutosAtivos();

            if(ID != null)
            {
                ItemPedido itemPedido = PedidoBll.RetornaItemPedido(ID);

                return PartialView("~/Views/ItensPedido/ItemPedido.cshtml", itemPedido);
            }
            else
            {
                return PartialView("~/Views/ItensPedido/ItemPedido.cshtml");
            }
        }
        // GET: Pedidos/Create
        public ActionResult Pedido(int? id, int? idcli)
        {
            try
            {
                ProdutoBll produtoBll = new ProdutoBll();
                List<Cliente> clientes = ClienteBll.ListarClientes();

                ViewBag.Produtos = produtoBll.ListarProdutosAtivos();
                ViewBag.Clientes = clientes;

                Pedido pedido = new Pedido();

                if (id != null)
                {
                    PedidoBll pedidoBll = new PedidoBll();
                    pedido = PedidoBll.RetornarPedido(id);
                    pedido.ValorTotal = pedidoBll.CalcularTotal(pedido.ID) + pedido.ValorFrete;
                }

                return View(pedido);
            }
            catch(Exception exception)
            {
                return RedirectToAction("Index").ComMensagem(Resources.Geral.TenteNovamente, TipoMensagem.Erro);
            }
        }
        public ActionResult Pedido([Bind(Include = "ID,CodigoInterno,DataPedido, DataEntrega,ValorTotal,ValorFrete,SituacaoPedido,ClienteID")] Pedido pedido, string ClienteID, string Permanecer)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    PedidoBll pedidoBll = new PedidoBll();

                    pedido.ClienteID = int.Parse(ClienteID);

                    if (pedido.ID > 0)
                    {
                        pedidoBll.Atualizar(pedido);
                    }
                    else
                    {
                        pedidoBll.Criar(pedido);
                    }

                    if (string.IsNullOrEmpty(Permanecer))
                    {
                        return RedirectToAction("Index");
                    }
                    else
                    {
                        return RedirectToAction("Pedido", new { id = pedido.ID });
                    }
                }

                ProdutoBll produtoBll = new ProdutoBll();
                List<Cliente> clientes = ClienteBll.ListarClientes();

                ViewBag.Produtos = produtoBll.ListarProdutosAtivos();
                ViewBag.Clientes = clientes;

                return View(pedido);
            }
            catch(Exception ex)
            {
                return RedirectToAction("Index").ComMensagem(Resources.Geral.TenteNovamente, TipoMensagem.Erro);
            }
        }