public ActionResult Edit([Bind(Include = "ContasId,proprietarioid,datatitulo,datapagamento,valor,fonte,codigo,lote,pago")] Contas contas)
 {
     if (ModelState.IsValid)
     {
         db.Entry(contas).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(contas));
 }
        // GET: Contas/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Contas contas = db.Contas.Find(id);

            if (contas == null)
            {
                return(HttpNotFound());
            }
            return(View(contas));
        }
        public void  deletarInadimplentes(Contas c)
        {
            Inadimplentes inadimplente = new Inadimplentes();

            inadimplente.Proprietarioid = c.proprietarioid;
            DateTime date = c.datatitulo;

            inadimplente = db.Inadimplentes.FirstOrDefault(x => x.data.Month.Equals(date.Month) && x.Proprietarioid.Equals(c.proprietarioid));
            if (inadimplente != null)
            {
                db.Inadimplentes.Remove(inadimplente);
                db.SaveChanges();
            }
        }
        public Contas buscarContas(Proprietario p, Contas c)
        {
            Contas conta = new Contas();

            conta = db.Contas.FirstOrDefault(x => x.datapagamento.Equals(c.datapagamento) && x.datatitulo.Equals(c.datatitulo) && x.proprietarioid.Equals(c.proprietarioid));

            if (conta == null)
            {
                return(null);
            }
            else
            {
                return(conta);
            }
        }
        public ActionResult Import(HttpPostedFileBase excelfile, string mes, string ano)
        {
            double subtotal = 0.0;
            string mes1     = mes;
            MesAnoPagosController   MesAnoPago              = new MesAnoPagosController();
            ContasController        contaController         = new ContasController();
            InadimplentesController inadimplentesController = new InadimplentesController();
            List <Inadimplentes>    listaInadimplentes      = new List <Inadimplentes>();
            List <Contas>           contasDoMes             = new List <Contas>();
            ProprietarioController  proprietarioControler   = new ProprietarioController();
            Proprietario            prop = new Proprietario();
            List <Proprietario>     listaproprietario = new List <Proprietario>();


            int contador = 0;

            if (MesAnoPago.verificaMes(mes1))
            {
                if (excelfile == null || excelfile.ContentLength == 0)
                {
                    ViewBag.Error = "Por favor insira um arquivo .pdf<br>";
                    return(View("Index"));
                }
                else
                {
                    if (excelfile.FileName.EndsWith("xls") || (excelfile.FileName.EndsWith("xlsx")))
                    {
                        string path = Server.MapPath("~/Content/" + excelfile.FileName);
                        if (System.IO.File.Exists(path))
                        {
                            System.IO.File.Delete(path);
                        }
                        excelfile.SaveAs(path);
                        Excel.Application application = new Excel.Application();
                        Excel.Workbook    workbook    = application.Workbooks.Open(path);
                        Excel.Worksheet   worksheet   = workbook.ActiveSheet;
                        Excel.Range       range       = worksheet.UsedRange;
                        List <Contas>     listaContas = new List <Contas>();

                        for (int row = 1; row < range.Rows.Count + 1; row++)
                        {
                            Inadimplentes inadimplente = new Inadimplentes();
                            Contas        c            = new Contas();
                            string        nome         = ((Excel.Range)range.Cells[row, 1]).Text;


                            if (nome != null)
                            {
                                Proprietario p = new Proprietario();
                                p = (Proprietario)proprietarioControler.BuscarPorNome(nome);
                                if (p != null)
                                {
                                    c.proprietarioid = p.UsuarioId;
                                    c.datatitulo     = Convert.ToDateTime(((Excel.Range)range.Cells[row, 2]).Text);
                                    c.datapagamento  = Convert.ToDateTime(((Excel.Range)range.Cells[row, 3]).Text);
                                    c.valor          = Convert.ToDouble(((Excel.Range)range.Cells[row, 4]).Text);
                                    c.fonte          = ((Excel.Range)range.Cells[row, 5]).Text;
                                    c.codigo         = ((Excel.Range)range.Cells[row, 6]).Text;
                                    c.lote           = ((Excel.Range)range.Cells[row, 7]).Text;
                                    c.pago           = ((Excel.Range)range.Cells[row, 8]).Text;
                                    // if (buscarContas(p, c) == null)
                                    // {



                                    if (ModelState.IsValid)
                                    {
                                        listaContas.Add(c);
                                        subtotal = subtotal + c.valor;
                                        listaproprietario.Add(p);
                                        inadimplentesController.deletarInadimplentes(c);
                                        db.Contas.Add(c);
                                        db.SaveChanges();
                                        contador++;
                                    }
                                    //}
                                }
                            }
                        }

                        List <Proprietario> listaProprietarios = new List <Proprietario>();

                        listaProprietarios = proprietarioControler.listarTodosOsProprietarios();

                        List <Proprietario> ListaDeInadimplentes = new List <Proprietario>();

                        // List<Proprietario> ListaDeProprietario = new List<Proprietario>();

                        listaProprietarios = listaDeInadimplentes(listaproprietario);

                        ListaDeInadimplentes = inadimplentesController.salvar(listaProprietarios, mes1);


                        ViewBag.subtotal           = subtotal;
                        ViewBag.ListaProprietario  = listaproprietario;
                        ViewBag.contador           = contador;
                        ViewBag.listarContas       = listaContas;
                        ViewBag.listaInadimplentes = ListaDeInadimplentes;
                        MesAnoPago.salvar(mes1);
                        return(View("Success"));
                    }
                    else
                    {
                        ViewBag.Error = "Inserir aquivos apenas EXCEL  <br>";
                        return(View("Index"));
                    }
                }
            }
            ViewBag.Error = "Mês já inserido  <br>";
            return(View("Index"));
        }