public ActionResult AtualizaContaPagar(ContaPagarModelAtualizar model)
        {
            try
            {
                Usuario u = (Usuario)Session["usuario"];
                ContaPagarDal cd = new ContaPagarDal();

                if (ModelState.IsValid
                    && u != null)
                {
                    ContaPagar c = new ContaPagar();
                    c.IdContaPagar = model.IdContaPagar;
                    c.Nome = model.Nome;
                    c.Valor = model.Valor;
                    c.DataPagamento = model.DataPagamento;
                    c.IdUsuario = u.IdUsuario;
                    cd.Update(c);

                    ViewBag.Mensagem = "A Conta a Pagar " + model.Nome + ", foi atualizada com sucesso !";

                    ModelState.Clear();
                }
            }
            catch (Exception ex)
            {

                ViewBag.Mensagem = ex.Message;
            }

            CarregarContaPagar();

            return View("EditarContaPagar");
        }
        public Double SomaTotalContasPagar(int IdUsuario)
        {
            Double Soma = 0;

            try
            {
                ContaPagarDal dl = new ContaPagarDal();

                List<ContaPagar> list = dl.FindByUsuario(IdUsuario);

                foreach (ContaPagar c in list)
                {
                    Soma = Soma + c.Valor;
                }

            }
            catch (Exception ex)
            {
                ViewBag.Mensagem = ex.Message;
            }

            return Soma;
        }
        public ContaPagarModelAtualizar SelecionarContasPagar(int IdContaPagar)
        {
            ContaPagarModelAtualizar model = new ContaPagarModelAtualizar();
            try
            {
                ContaPagarDal cd = new ContaPagarDal();

                ContaPagar c = cd.FindById(IdContaPagar);

                if (c != null)
                {
                    model.IdContaPagar = c.IdContaPagar;
                    model.DataPagamento = c.DataPagamento;
                    model.Nome = c.Nome;
                    model.Valor = c.Valor;
                }
            }
            catch (Exception ex)
            {
                ViewBag.Mensagem = ex.Message;
            }

            return model;
        }
        public ActionResult GerarBuscaRelatorioContaPagar(FormCollection fomulario)
        {
            try
            {
                DateTime DataIncio = DateTime.MinValue;
                DateTime DataFim = DateTime.MinValue;
                Usuario u = (Usuario)Session["usuario"];

                if (!Request["DataIncio"].ToString().Equals(string.Empty))
                {
                    try
                    {
                        DataIncio = Convert.ToDateTime(Request["DataIncio"].ToString());
                    }
                    catch
                    {
                        ViewBag.Mensagem = "Data Inicio Invalida! ";
                    }

                }

                if (!Request["DataFim"].ToString().Equals(string.Empty))
                {
                    try
                    {
                        DataFim = Convert.ToDateTime(Request["DataFim"].ToString());
                    }
                    catch
                    {
                        ViewBag.Mensagem = "Data Final Invalida! ";
                    }
                }

                if (DataIncio > DataFim)
                {
                    throw new Exception("A Data de Incio não pode ser menor que a data Final.");
                }

                string formato = Request["formato"].ToString();

                ContaPagarDal d = new ContaPagarDal();
                List<ContaPagar> Lista = d.FindByRelatorio(DataIncio, DataFim, u.IdUsuario);
                DataSetContaPagar ds = new DataSetContaPagar();
                DataTable dt = ds.CONTAPAGAR;

                foreach (ContaPagar c in Lista)
                {
                    DataRow registro = dt.NewRow();
                    registro["CODIGO"] = c.IdContaPagar;
                    registro["NOME"] = c.Nome;
                    registro["DATAPAGAMENTO"] = c.DataPagamento;
                    registro["VALOR"] = c.Valor;

                    dt.Rows.Add(registro);
                }

                RelContaPagar rel = new RelContaPagar();

                rel.SetDataSource(dt);

                Stream arquivo = null;

                switch (formato)
                {
                    case "1": //PDF
                        arquivo = rel.ExportToStream(ExportFormatType.PortableDocFormat);
                        return File(arquivo, "application/pdf", "relatorio.pdf");

                    case "2": //Word
                        arquivo = rel.ExportToStream(ExportFormatType.WordForWindows);
                        return File(arquivo, "application/msword", "relatorio");

                    case "3": //Excel
                        arquivo = rel.ExportToStream(ExportFormatType.Excel);
                        return File(arquivo, "application/excel", "relatorio");
                }
            }
            catch (Exception e)
            {

                ViewBag.Mensagem = e.Message;
            }

            return View("BuscaContaPagar");
        }
        public ActionResult DeletaContaPagar(ContaPagarModelAtualizar model)
        {
            try
            {
                ContaPagarDal cd = new ContaPagarDal();

                if (ModelState.IsValid)
                {
                    cd.Delete(model.IdContaPagar);

                    ViewBag.Mensagem = "A Conta a Pagar " + model.Nome + ", foi deletada com sucesso !";

                    ModelState.Clear();
                }
            }
            catch (Exception ex)
            {

                ViewBag.Mensagem = ex.Message;
            }

            CarregarContaPagar();

            return View("DeletarContaPagar");
        }
        public void CarregarContaPagar()
        {
            try
            {
                Usuario u = (Usuario)Session["usuario"];

                if (u != null)
                {
                    ContaPagarDal cd = new ContaPagarDal();

                    ViewBag.ContasPagar = new SelectList(cd.FindByUsuario(u.IdUsuario), "IdContaPagar", "Nome");

                }
            }
            catch (Exception ex)
            {

                ViewBag.Mensagem = ex.Message;
            }
        }
        public ActionResult CadastrarContaPagar(ContaPagarModelCadastro model)
        {
            try
            {
                Usuario u = (Usuario)Session["usuario"];
                ContaPagarDal cd = new ContaPagarDal();

                if (ModelState.IsValid
                    && u != null)
                {
                    ContaPagar c = new ContaPagar();

                    c.IdUsuario = u.IdUsuario;
                    c.Nome = model.Nome;
                    c.Valor = model.Valor;
                    c.DataPagamento = model.DataPagamento;

                    cd.Insert(c);

                    ViewBag.Mensagem = "A Conta a Pagar " + model.Nome + ", foi cadastrada com sucesso !";

                    ModelState.Clear();
                }
            }
            catch (Exception ex)
            {

                ViewBag.Mensagem = ex.Message;
            }

            return View("ContaPagar");
        }