public ActionResult Update(Despesa pDespesa)
        {
            pDespesa.Tipo.nomeTipo = tipoRep.getOne(pDespesa.Tipo.idTipo).nomeTipo;
            ModelState.Remove("Tipo.nomeTipo");

            if (ModelState.IsValid)
            {
                despesaRep.Update(pDespesa);

                return RedirectToAction("Despesas");
            }
            ViewBag.Tipos = tipoRep.getAllExceptOne(pDespesa.Tipo.idTipo);

            return View(pDespesa);
        }
        public void Create(Despesa pDespesa)
        {
            StringBuilder sql = new StringBuilder();

            sql.Append("INSERT INTO despesa (localDespesa, dataDespesa, valorDespesa, idTipo) ");
            sql.Append("VALUES (@local_despesa, @data_despesa, @valor_despesa, @id_tipo)");

            cmm.CommandText = sql.ToString();

            cmm.Parameters.AddWithValue("@local_despesa", pDespesa.LocalDespesa);
            cmm.Parameters.AddWithValue("@data_despesa", pDespesa.DataDespesa);
            cmm.Parameters.AddWithValue("@valor_despesa", pDespesa.ValorDespesa);
            cmm.Parameters.AddWithValue("@id_tipo", pDespesa.Tipo.idTipo);

            db.executarComando(cmm);
        }
        public void Update(Despesa pDespesa)
        {
            StringBuilder sql = new StringBuilder();

            sql.Append("UPDATE despesa ");
            sql.Append("SET localDespesa = @local_despesa, dataDespesa = @data_despesa, ");
            sql.Append("valorDespesa = @valor_despesa, idTipo = @id_tipo ");
            sql.Append("WHERE idDespesa = @id_despesa");

            cmm.CommandText = sql.ToString();

            cmm.Parameters.AddWithValue("@local_despesa", pDespesa.LocalDespesa);
            cmm.Parameters.AddWithValue("@data_despesa", pDespesa.DataDespesa);
            cmm.Parameters.AddWithValue("@valor_despesa", pDespesa.ValorDespesa);
            cmm.Parameters.AddWithValue("@id_despesa", pDespesa.IdDespesa);
            cmm.Parameters.AddWithValue("@id_tipo", pDespesa.Tipo.idTipo);

            db.executarComando(cmm);
        }
        public Despesa getOne(int Id)
        {
            StringBuilder sql = new StringBuilder();

            sql.Append("SELECT * ");
            sql.Append("FROM despesa d ");
            sql.Append("INNER JOIN tipodespesa t ");
            sql.Append("ON d.idTipo = t.idTipo ");
            sql.Append("WHERE idDespesa = @id_despesa");

            cmm.CommandText = sql.ToString();
            cmm.Parameters.AddWithValue("@id_despesa", Id);
            MySqlDataReader dr = db.executarConsulta(cmm);
            dr.Read();
            Despesa dp = new Despesa
            {
                IdDespesa = (int)dr["idDespesa"],
                LocalDespesa = (string)dr["localDespesa"],
                DataDespesa = (DateTime)dr["dataDespesa"],
                ValorDespesa = (decimal)dr["valorDespesa"],
                Tipo = new TipoDespesa
                {
                    idTipo = (int)dr["idTipo"],
                    nomeTipo = (string)dr["nomeTipo"]
                }

            };

            dr.Dispose();

            return dp;
        }