/// <summary>
       /// Consulta a tabela Desenvolvimento e retorna resultados de acordo com o preenchimento do filtro - Terminar o Consultar Primeiro.depois descomentar
       /// </summary>

        public DesenvolvimentoDTO ConsultarDesenvolvimento(DesenvolvimentoDTO objDesenvolvimentoDTO)
        {
            DesenvolvimentoDados objDesenvolvimentoDados = new DesenvolvimentoDados();
            objDesenvolvimentoDTO.DesenvolvimentoAssistidoDTOLista = objDesenvolvimentoDados.Consultar(objDesenvolvimentoDTO);

            return objDesenvolvimentoDTO;

        }
        protected void btnLocalizar_Click(object sender, EventArgs e)
        {
            SGSServico objSGSServico = new SGSServico();

            DesenvolvimentoDTO = new DesenvolvimentoDTO();


            if (ddlAssistido.SelectedValue == "Selecione")
            {
                DesenvolvimentoDTO.AssistidoValor = null;
            }
            else
            {
                DesenvolvimentoDTO.AssistidoValor = Convert.ToInt32(ddlAssistido.SelectedValue);
            }

            if (txtAtividade.Text == "")
            {
                DesenvolvimentoDTO.AtividadeValor = "";
            }
            else
            {
                DesenvolvimentoDTO.AtividadeValor = txtAtividade.Text;
            }


            if (txtDataInicio.Text == "")
            {
                DesenvolvimentoDTO.DataInicioValor = null;
            }
            else
            {
                DesenvolvimentoDTO.DataInicioValor = Convert.ToDateTime(txtDataInicio.Text);
            }

            if (txtDataFim.Text == "")
            {
                DesenvolvimentoDTO.DataFimValor = null;
            }
            else
            {
                DesenvolvimentoDTO.DataFimValor = Convert.ToDateTime(txtDataFim.Text);
            }

            DesenvolvimentoDTO = objSGSServico.ConsultarDesenvolvimento(DesenvolvimentoDTO);


            GridDesenvolvimentoDataSource = DesenvolvimentoDTO.DesenvolvimentoAssistidoDTOLista;

        }
        public List<DesenvolvimentoAssistidoDTO> Consultar(DesenvolvimentoDTO objDesenvolvimentoDTO)
        {
            SqlCommand comando = new SqlCommand();
            comando.Connection = base.Conectar();

            SqlDataReader leitorDados;

            SqlParameter paramAssistidoValor = new SqlParameter("@assistidoValor", System.Data.SqlDbType.Int);
            if (objDesenvolvimentoDTO.AssistidoValor.HasValue)
                paramAssistidoValor.Value = objDesenvolvimentoDTO.AssistidoValor.Value;
            else
                paramAssistidoValor.Value = DBNull.Value;

            SqlParameter paramAtividadeValor = new SqlParameter("@atividadeValor", "%" + objDesenvolvimentoDTO.AtividadeValor + "%");
            paramAtividadeValor.DbType = System.Data.DbType.String;

            SqlParameter paramDataInicioValor = new SqlParameter("@dataInicioValor", System.Data.SqlDbType.DateTime);
            if (objDesenvolvimentoDTO.DataInicioValor.HasValue)
                paramDataInicioValor.Value = objDesenvolvimentoDTO.DataInicioValor.Value;
            else
                paramDataInicioValor.Value = DBNull.Value;

            SqlParameter paramDataFimValor = new SqlParameter("@dataFimValor", System.Data.SqlDbType.DateTime);
            if (objDesenvolvimentoDTO.DataFimValor.HasValue)
                paramDataFimValor.Value = objDesenvolvimentoDTO.DataFimValor.Value;
            else
                paramDataFimValor.Value = DBNull.Value;


            String sql = "select * from Desenvolvimento PR inner join Pessoa P on P.CodigoPessoa = PR.CodigoAssistido";

            //Se o Assistido, Atividade, Data Inicio e Data Fim preenchidos
            if (objDesenvolvimentoDTO.AssistidoValor.HasValue && objDesenvolvimentoDTO.AtividadeValor != "" && objDesenvolvimentoDTO.DataInicioValor.HasValue && objDesenvolvimentoDTO.DataFimValor.HasValue)
                sql += @" where CodigoAssistido = @assistidoValor and Atividade like @atividadeValor and DataInicio >= @dataInicioValor and DataFim <= @dataFimValor";

            //Se apenas Assistido e Atividade preenchidos
            else if (objDesenvolvimentoDTO.AssistidoValor.HasValue && objDesenvolvimentoDTO.AtividadeValor != "")
                sql += @" where CodigoAssistido = @assistidoValor and Atividade like @atividadeValor";

            //Se apenas Atividade e Data Inicio preenchidos
            else if (objDesenvolvimentoDTO.AtividadeValor != "" && objDesenvolvimentoDTO.DataInicioValor.HasValue && objDesenvolvimentoDTO.DataFimValor.HasValue)
                sql += @" where Atividade like @atividadeValor and DataInicio >= @dataInicioValor and DataFim <= @dataFimValor  ";

            //Se apenas Atividade e Data Inicio preenchidos
            else if (objDesenvolvimentoDTO.AtividadeValor != "" && objDesenvolvimentoDTO.DataInicioValor.HasValue)
                sql += @" where Atividade like @atividadeValor and DataInicio >= @dataInicioValor";

            //Se apenas Data Inicio e Data Fim preenchidos
            else if (objDesenvolvimentoDTO.DataInicioValor.HasValue && objDesenvolvimentoDTO.DataFimValor.HasValue)
                sql += @" where DataInicio >= @dataInicioValor and DataFim <= @dataFimValor";

            //Se apenas Data Fim e Assistidos preenchidos
            else if (objDesenvolvimentoDTO.DataFimValor.HasValue && objDesenvolvimentoDTO.AssistidoValor.HasValue)
                sql += @" where DataFim <= @dataFimValor and CodigoAssistido = @assistidoValor";

            //Se apenas Data Fim preenchido
            else if (objDesenvolvimentoDTO.DataFimValor.HasValue)
                sql += @" where DataFim <= @dataFimValor";

            //Se apenas Assistido preenchido
            else if (objDesenvolvimentoDTO.AssistidoValor.HasValue)
                sql += @" where CodigoAssistido = @assistidoValor";

            //Se apenas Data Inicio preenchida
            else if (objDesenvolvimentoDTO.DataInicioValor.HasValue)
                sql += @" where DataInicio >= @dataInicioValor";

            //Se apenas Atividade preenchida
            else if (objDesenvolvimentoDTO.AtividadeValor != "")
                sql += @" where Atividade like @atividadeValor";

            if (sql.Contains("where"))
                sql += " and P.Ativo = 1";
            else
                sql += " where P.Ativo = 1";

            comando.CommandText = sql;
            comando.CommandType = System.Data.CommandType.Text;
            comando.Parameters.Add(paramAssistidoValor);
            comando.Parameters.Add(paramAtividadeValor);
            comando.Parameters.Add(paramDataInicioValor);
            comando.Parameters.Add(paramDataFimValor);

            leitorDados = comando.ExecuteReader(System.Data.CommandBehavior.CloseConnection);



            List<DesenvolvimentoAssistidoDTO> procedimentosAssistidoDTOLista = new List<DesenvolvimentoAssistidoDTO>();
            DesenvolvimentoAssistidoDTO objDesenvolvimentoAssistidoDTO;

            while (leitorDados.Read())
            {
                objDesenvolvimentoAssistidoDTO = new DesenvolvimentoAssistidoDTO();

                objDesenvolvimentoAssistidoDTO.NomeAssistido = leitorDados["Nome"].ToString();
                objDesenvolvimentoAssistidoDTO.CodigoDesenvolvimento = Convert.ToInt32(leitorDados["CodigoDesenvolvimento"]);
                objDesenvolvimentoAssistidoDTO.CodigoAssistido = Convert.ToInt32(leitorDados["CodigoAssistido"]);
                objDesenvolvimentoAssistidoDTO.TipoAtividade = leitorDados["TipoAtividade"].ToString();
                objDesenvolvimentoAssistidoDTO.Atividade = leitorDados["Atividade"].ToString();
                objDesenvolvimentoAssistidoDTO.DescricaoAtividade = leitorDados["DescricaoAtividade"].ToString();
                objDesenvolvimentoAssistidoDTO.StatusAtividade = leitorDados["StatusAtividade"].ToString();
                if (leitorDados["Valor"] != DBNull.Value) 
                    objDesenvolvimentoAssistidoDTO.Valor = Convert.ToDecimal(leitorDados["Valor"]);
                
                objDesenvolvimentoAssistidoDTO.CargaHoraria = leitorDados["CargaHoraria"].ToString();

                if (leitorDados["DataInicio"] != DBNull.Value)
                    objDesenvolvimentoAssistidoDTO.DataInicio = Convert.ToDateTime(leitorDados["DataInicio"]);

                if (leitorDados["DataFim"] != DBNull.Value)
                    objDesenvolvimentoAssistidoDTO.DataFim = Convert.ToDateTime(leitorDados["DataFim"]);

                procedimentosAssistidoDTOLista.Add(objDesenvolvimentoAssistidoDTO);
            }

            return procedimentosAssistidoDTOLista;
        }