public static bool AtualizarProjeto(Projeto atualizarProjeto)
        {
            int affected = 0;
            VsfDatabase db = new VsfDatabase(Properties.Settings.Default.StringConexao);
            try
            {
                List<SqlParameter> parameters = new List<SqlParameter>();
                parameters.Add(new SqlParameter("@CodigoProjeto", atualizarProjeto.Codigo));
                parameters.Add(new SqlParameter("@nome", atualizarProjeto.Nome));
                parameters.Add(new SqlParameter("@descricao", atualizarProjeto.Descricao));
                parameters.Add(new SqlParameter("@valorProjeto", atualizarProjeto.Valor));

                db.AbreConexao();

                StringBuilder query = new StringBuilder("UPDATE PROJETO");
                query.Append(" SET Nome=@nome,Descricao=@descricao,ValorProjeto=@valorProjeto");
                query.Append(" WHERE CodigoProjeto=@CodigoProjeto");

                affected = db.ExecuteTextNonQuery(query.ToString(), parameters);
            }
            catch (Exception ex)
            {
                Logger.Registrar(0, "Exceção em (DAO) " + ex.Source + " - " + ex.ToString() + " : " + ex.Message + "\n\n StackTrace: " + ex.StackTrace);
                throw new ApplicationException("DAOProjeto.AtualizarProjeto(atualizarProjeto): " + ex.ToString(), ex);
            }
            finally
            {
                db.FechaConexao();
            }

            Logger.Registrar(1, "Projeto atualizado com número de projeto " + atualizarProjeto.Codigo + ".");

            return (affected > 0);
        }
        protected void ButtonCadastrar_Click(object sender, EventArgs e)
        {
            bool errorOccured = false;
            string errorMessage = "Ocorreram erros durante o processamento. <ul>";

            Projeto projeto = new Projeto();

            if (this.TextBoxCodigoProjeto.Text.Trim().ToString() != "")
                projeto.Codigo = this.TextBoxCodigoProjeto.Text;
            else
            {
                errorOccured = true;
                errorMessage += "Código do projeto é obrigatório.";
            }

            if (this.TextBoxNomeProjeto.Text.Trim().ToString() != "")
                projeto.Nome = this.TextBoxNomeProjeto.Text;
            else
            {
                errorOccured = true;
                errorMessage += "Nome do projeto é obrigatório.";
            }

            projeto.Descricao = this.TextBoxDescricaoProjeto.Text;

            Double valorProjeto = 0.0;
            if (Double.TryParse(this.TextValorProjeto.Text, NumberStyles.Currency, _culture, out valorProjeto) && valorProjeto > 0)
                projeto.Valor = valorProjeto;
            else
            {
                errorOccured = true;
                errorMessage += "Valor inválido para o valor do projeto.";
            }

            ProjetoNegocio projetoNegocio = new ProjetoNegocio();
            if (errorOccured)
            {
                ShowErrorMessage(errorMessage);
            }
            else
            {

                if (!Boolean.Parse(HiddenFieldEditando.Value))
                {
                    if (projetoNegocio.IncluirProjeto(projeto))
                    {
                        ShowSuccessMessage("Cadastro  do projeto realizado com sucesso. <a href=\"ProjetoNovoEditar.aspx?idProjeto=" + projeto.Codigo + "\">Clique aqui para editar este projeto.</a>");

                    }
                }
                else
                {
                    if (projetoNegocio.AtualizarProjeto(projeto))
                        ShowSuccessMessage("Projeto atualizado com sucesso."); ;
                }
            }
        }
 public bool IncluirProjeto(Projeto novoProjeto)
 {
     return DAL.ProjetoDAO.IncluirProjeto(novoProjeto);
 }
 public bool AtualizarProjeto(Projeto atualizarProjeto)
 {
     return DAL.ProjetoDAO.AtualizarProjeto(atualizarProjeto);
 }
        public static List<Projeto> ObterArrecadacaoMes(int mes, int ano, enumTipoRelatorio tipo)
        {
            List<Projeto> listaProjeto = null;
            VsfDatabase db = new VsfDatabase(Properties.Settings.Default.StringConexao);
            try
            {
                db.AbreConexao();
                List<SqlParameter> parameters = new List<SqlParameter>();
                parameters.Add(new SqlParameter("@mes", mes));
                parameters.Add(new SqlParameter("@ano", ano));
                StringBuilder query = new StringBuilder("select proj.Nome as Projeto, proj.CodigoProjeto, ");
                switch (tipo)
                {
                    case enumTipoRelatorio.Efetivo:
                        query.Append("SUM(parc.ValorPago) 'Valor' ");
                        break;
                    case enumTipoRelatorio.Previsto:
                        query.Append("SUM(parc.ValorPagar) 'Valor' ");
                        break;
                    case enumTipoRelatorio.Devido:
                        query.Append("SUM(parc.ValorPagar) 'Valor' ");
                        break;
                }
                query.Append("FROM Parcelas as parc ");
                query.Append("INNER JOIN Financeiro as finc ");
                query.Append("on finc.IdFinanceiro = parc.IdFinanceiro ");
                query.Append("INNER JOIN Matricula as mat ");
                query.Append("ON mat.IdMatricula = finc.IdMatricula ");
                query.Append("INNER JOIN projeto as proj ");
                query.Append("ON proj.CodigoProjeto = mat.IdProjeto ");
                query.Append("where month(parc.DataVencimento) = @mes ");
                query.Append("and year(parc.DataVencimento) = @ano ");
                switch (tipo)
                {
                    case enumTipoRelatorio.Efetivo:
                        query.Append("and Pago = 1  ");
                        break;
                    case enumTipoRelatorio.Previsto:
                        query.Append(""); //
                        break;
                    case enumTipoRelatorio.Devido:
                        query.Append("and parc.DataVencimento < GETDATE() ");
                        query.Append("and Pago = 0 ");
                        break;
                }
                query.Append("and mat.Estado = 0 ");
                query.Append("GROUP BY proj.Nome, proj.CodigoProjeto ");

                SqlDataReader reader = db.ExecuteTextReader(query.ToString(), parameters);
                listaProjeto = new List<Projeto>();
                while (reader.Read())
                {
                    Projeto projeto = new Projeto();
                    projeto.Nome = (reader["Projeto"] != DBNull.Value) ? Convert.ToString(reader["Projeto"]) : string.Empty;
                    projeto.Codigo = (reader["CodigoProjeto"] != DBNull.Value) ? Convert.ToString(reader["CodigoProjeto"]) : string.Empty;
                    projeto.Valor = (reader["Valor"] != DBNull.Value) ? Convert.ToDouble(reader["Valor"]) : 0;
                    listaProjeto.Add(projeto);
                }
            }
            catch (Exception ex)
            {
                Logger.Registrar(0, "Exceção em (DAO) " + ex.Source + " - " + ex.ToString() + " : " + ex.Message + "\n\n StackTrace: " + ex.StackTrace);
                throw new ApplicationException("RelatorioAluno.ObterArrecadacaoMes(): " + ex, ex);
            }
            finally
            {
                db.FechaConexao();
            }
            return listaProjeto;
        }
        public static List<Projeto> BuscaProjetosPeloCodigoENome(string Codigo, string Nome)
        {
            VsfDatabase db = new VsfDatabase(Properties.Settings.Default.StringConexao);
            List<Projeto> listaProjetos = new List<Projeto>();
            try
            {
                List<SqlParameter> parameters = new List<SqlParameter>();
                if (!Codigo.Equals(""))
                {
                    parameters.Add(new SqlParameter("@codigo", "%" + Codigo + "%"));
                }
                if (!Nome.Equals(""))
                {
                    parameters.Add(new SqlParameter("@Nome", "%" + Nome + "%"));
                }

                db.AbreConexao();

                StringBuilder query = new StringBuilder("SELECT * FROM PROJETO");
                query.Append(" WHERE ");
                if (!Codigo.Equals(""))
                {
                    query.Append(" CodigoProjeto LIKE @codigo ");
                }
                if (!Codigo.Equals("") && !Nome.Equals(""))
                {
                    query.Append(" OR ");
                }
                if (!Nome.Equals(""))
                {
                    query.Append(" Nome LIKE @Nome ");
                }
                SqlDataReader reader = db.ExecuteTextReader(query.ToString(), parameters);

                while (reader.Read())
                {
                    Projeto projeto = new Projeto();
                    projeto.Codigo = (reader["CodigoProjeto"] != DBNull.Value) ? Convert.ToString(reader["CodigoProjeto"]) : String.Empty;
                    projeto.Valor = (reader["ValorProjeto"] != DBNull.Value) ? Convert.ToDouble(reader["ValorProjeto"]) : 0.0;
                    projeto.Nome = (reader["Nome"] != DBNull.Value) ? Convert.ToString(reader["Nome"]) : String.Empty;
                    projeto.Descricao = (reader["Descricao"] != DBNull.Value) ? Convert.ToString(reader["Descricao"]) : String.Empty;
                    listaProjetos.Add(projeto);

                }
                return listaProjetos;
            }
            catch (Exception ex)
            {
                Logger.Registrar(0, "Exceção em (DAO) " + ex.Source + " - " + ex.ToString() + " : " + ex.Message + "\n\n StackTrace: " + ex.StackTrace);
                throw new ApplicationException("DAOProjeto.BuscaProjetosPeloCodigoENome(): " + ex, ex);
            }
            finally
            {
                db.FechaConexao();
            }
        }
        public static List<Projeto> ObterTodosProjetos()
        {
            List<Projeto> listProjeto = new List<Projeto>();
            VsfDatabase db = new VsfDatabase(Properties.Settings.Default.StringConexao);
            try
            {
                List<SqlParameter> parameters = new List<SqlParameter>();

                db.AbreConexao();

                StringBuilder query =  new StringBuilder("SELECT * FROM Projeto");

                SqlDataReader reader = db.ExecuteTextReader(query.ToString(), parameters);
                while (reader.Read())
                {
                    Projeto projeto = new Projeto();
                    projeto.Codigo = (reader["CodigoProjeto"] != DBNull.Value) ? Convert.ToString(reader["CodigoProjeto"]) : String.Empty;
                    projeto.Descricao = (reader["Descricao"] != DBNull.Value) ? Convert.ToString(reader["Descricao"]) : String.Empty; ;
                    projeto.Nome = (reader["Nome"] != DBNull.Value) ? Convert.ToString(reader["Nome"]) : String.Empty;
                    projeto.Valor = (reader["ValorProjeto"] != DBNull.Value) ? Convert.ToDouble(reader["ValorProjeto"]) : 0.0;
                    projeto.Alunos = (new AlunoDAO()).ObterAlunosPorProjeto(projeto);

                    listProjeto.Add(projeto);
                }
            }
            catch (Exception ex)
            {
                Logger.Registrar(0, "Exceção em (DAO) " + ex.Source + " - " + ex.ToString() + " : " + ex.Message + "\n\n StackTrace: " + ex.StackTrace);
                throw new ApplicationException("DAOProjeto.ObterTodosProjetos(): " + ex.ToString(), ex);
            }
            finally
            {
                db.FechaConexao();
            }
            return listProjeto;
        }
        public static bool IncluirProjeto(Projeto novoProjeto)
        {
            int affected = 0;
            VsfDatabase db = new VsfDatabase(Properties.Settings.Default.StringConexao);
            try
            {
                List<SqlParameter> parameters = new List<SqlParameter>();
                parameters.Add(new SqlParameter("@codigoProjeto", novoProjeto.Codigo));
                parameters.Add(new SqlParameter("@nome", novoProjeto.Nome));
                parameters.Add(new SqlParameter("@descricao", novoProjeto.Descricao));
                parameters.Add(new SqlParameter("@valorProjeto", novoProjeto.Valor));

                db.AbreConexao();

                StringBuilder query = new StringBuilder("INSERT INTO PROJETO");
                query.Append(" (CodigoProjeto, Nome, Descricao, ValorProjeto) ");
                query.Append(" VALUES (@codigoProjeto, @nome, @descricao, @valorProjeto)");

                affected = db.ExecuteTextNonQuery(query.ToString(), parameters);
            }
            catch (Exception ex)
            {
                Logger.Registrar(0, "Exceção em (DAO) " + ex.Source + " - " + ex.ToString() + " : " + ex.Message + "\n\n StackTrace: " + ex.StackTrace);
                throw new ApplicationException("DAOProjeto.IncluirProjeto(novoProjeto): " + ex.ToString(), ex);
            }
            finally
            {
                db.FechaConexao();
            }

            Logger.Registrar(1, "Projeto inserido com número de projeto " + novoProjeto.Codigo + ".");

            return (affected > 0);
        }
 private bool projetoPertenceALista(Projeto projeto, List<Projeto> ListaDeProjetos)
 {
     foreach (Projeto projetoDaLista in ListaDeProjetos)
     {
         if (projeto.Codigo.Equals(projetoDaLista.Codigo))
         {
             return true;
         }
     }
     return false;
 }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {

            }

            string idProjetoSelecionado = "";
            if (!(Request.QueryString["idProjeto"] == null))
            {
                HiddenFieldEditando.Value = "true";
                idProjetoSelecionado = Request.QueryString["idProjeto"].ToString();
                ProjetoNegocio projetoNegocio = new ProjetoNegocio();
                projetoGlobal = projetoNegocio.ObterProjetoPorCodigo(idProjetoSelecionado);
                if (!IsPostBack) FillAllFieldsToEdit(projetoGlobal);
            }
            else
            {

            }

            PanelSucesso.Visible = false;
            PanelErro.Visible = false;
        }
 private void FillAllFieldsToEdit(Projeto projeto)
 {
     this.TextBoxCodigoProjeto.Text = projeto.Codigo;
     this.TextBoxNomeProjeto.Text = projeto.Nome;
     this.TextValorProjeto.Text = projeto.Valor.ToString("#0.00").Replace('.', ',');
     this.TextBoxDescricaoProjeto.Text = projeto.Descricao;
     this.TextBoxCodigoProjeto.ReadOnly = true;
 }
        private void FillComboTodosAlunos(Projeto projeto)
        {
            List<Aluno> alunos = projeto.Alunos;

            this.DropDownListAlunos.DataSource = alunos;

            this.DropDownListAlunos.DataTextField = "Nome";
            this.DropDownListAlunos.DataValueField = "NumeroPece";
            this.DropDownListAlunos.DataBind();
        }
        private void FillComboAlunos(Projeto projeto)
        {
            List<Aluno> alunos = new List<Aluno>();

            AlunoNegocio alunoNegocio = new AlunoNegocio();
            alunos = alunoNegocio.ObterAlunosPorProjetoSemRegistroFinanceiro(projeto.Codigo);

            this.DropDownListAlunos.DataSource = alunos;

            this.DropDownListAlunos.DataTextField = "Nome";
            this.DropDownListAlunos.DataValueField = "NumeroPece";
            this.DropDownListAlunos.DataBind();
        }