public ActionResult Edit(int id)
 {
     if (Sessao.isLogged())
     {
         Usuario u = UsuarioDAO.searchUsuarioPorNome(Sessao.RetornarUsuario());
         Despesa d = DespesaDAO.getDespesa(id);
         if (TipoUsuario.Administrador.Equals(u.tipo) || u.cliente.id == d.dono.id)
         {
             List <Models.TipoDespesa> tiposDespesa = new List <Models.TipoDespesa>();
             tiposDespesa.Add(new Models.TipoDespesa(Utils.TipoDespesa.Anual));
             tiposDespesa.Add(new Models.TipoDespesa(Utils.TipoDespesa.Mensal));
             tiposDespesa.Add(new Models.TipoDespesa(Utils.TipoDespesa.Semanal));
             tiposDespesa.Add(new Models.TipoDespesa(Utils.TipoDespesa.CobrancaUnica));
             IEnumerable <SelectListItem> tipos = new SelectList(tiposDespesa, "sigla", "nome");
             ViewBag.Tipos = tipos;
             desp          = d;
             double valorTotal       = 0;
             double valorDependentes = 0;
             valorTotal = d.valor;
             foreach (Dependente dep in d.dependentes)
             {
                 valorDependentes += dep.valor;
             }
             double valorRestante = valorTotal - valorDependentes;
             ViewBag.ValorRestante = valorRestante;
             if (valorRestante > 0)
             {
                 ViewBag.CanAdd = true;
             }
             else
             {
                 ViewBag.CanAdd = false;
             }
             if (TipoUsuario.Administrador.Equals(u.tipo))
             {
                 ViewBag.AmigosSolicitados = new List <Amizade>();
                 ViewBag.AmigosAceitos     = AmizadeDAO.getAmizades();
             }
             else
             {
                 ViewBag.AmigosSolicitados = AmizadeDAO.searchAmizadesSolicitadasAceitasPorCliente(u.cliente.id);
                 ViewBag.AmigosAceitos     = AmizadeDAO.searchAmizadesAceitasPorCliente(u.cliente.id);
             }
             return(View(d));
         }
         else
         {
             return(RedirectToAction("Index", "Despesa"));
         }
     }
     else
     {
         return(RedirectToAction("Login", "Usuario"));
     }
 }
 public ActionResult Edit(Despesa d)
 {
     if (Sessao.isLogged())
     {
         Usuario u = UsuarioDAO.searchUsuarioPorNome(Sessao.RetornarUsuario());
         if (ModelState.IsValid)
         {
             Despesa aux = DespesaDAO.getDespesa(d.id);
             for (int i = 0; i < aux.dependentes.Count; i++)
             {
                 if (aux.dependentes[i].valor != d.dependentes[i].valor)
                 {
                     aux.dependentes[i].valor = d.dependentes[i].valor;
                 }
             }
             aux = d;
             DespesaDAO.updateDespesa(aux);
             return(RedirectToAction("Index", "Despesa"));
         }
         ModelState.AddModelError("", "Falha ao atualizar despesa!");
         double valorTotal       = 0;
         double valorDependentes = 0;
         valorTotal = d.valor;
         foreach (Dependente dep in d.dependentes)
         {
             valorDependentes += dep.valor;
         }
         double valorRestante = valorTotal - valorDependentes;
         ViewBag.ValorRestante = valorRestante;
         if (valorRestante > 0)
         {
             ViewBag.CanAdd = true;
         }
         else
         {
             ViewBag.CanAdd = false;
         }
         if (TipoUsuario.Administrador.Equals(u.tipo))
         {
             ViewBag.AmigosSolicitados = new List <Amizade>();
             ViewBag.AmigosAceitos     = AmizadeDAO.getAmizades();
         }
         else
         {
             ViewBag.AmigosSolicitados = AmizadeDAO.searchAmizadesSolicitadasAceitasPorCliente(u.cliente.id);
             ViewBag.AmigosAceitos     = AmizadeDAO.searchAmizadesAceitasPorCliente(u.cliente.id);
         }
         return(View(d));
     }
     else
     {
         return(RedirectToAction("Login", "Usuario"));
     }
 }