public DataTable ObterFolhaModuloFuncaoParaMenu(string Codigo, int IDUsuario)
        {
            string sql = @"SELECT DISTINCT Sistema.Codigo + '|' + Modulo.Codigo  + '|' + Funcao.Codigo AS Codigo,
               Sistema.Codigo,
               Modulo.Codigo,
               Funcao.Codigo,
               Sistema.Codigo + '|' + Modulo.Codigo AS CodigoRaiz,
               FUNCAO.Nome AS Nome,
               '' AS Descricao,
               Funcao.Url AS Url,
               Cast( '1' as bit ) AS PermiteAcessoInternet
            FROM PERMISSAO.PERMISSAO PERMISSAO
            JOIN PERMISSAO.GRUPOUSUARIO GRUPOUSUARIO ON PERMISSAO.IDGrupoUsuario = GRUPOUSUARIO.IDGrupoUsuario
            JOIN PERMISSAO.FUNCAO FUNCAO ON FUNCAO.IDFuncao = Permissao.IDFuncao
            JOIN Permissao.Modulo Modulo on Modulo.IDModulo = Funcao.IDModulo
            JOIN PERMISSAO.SISTEMA SISTEMA ON Sistema.IDSistema = SISTEMA.IDSistema

            WHERE (GRUPOUSUARIO.IDUsuario = @IDUsuario) AND
              (SISTEMA.Codigo = @Codigo) AND
              (FUNCAO.Ativo = 1) AND
              (FUNCAO.Menu = 1)
            ORDER BY Sistema.Codigo, Modulo.COdigo, Funcao.Codigo";

            BdUtil bdUtil = new BdUtil(sql);
            bdUtil.AdicionarParametro("@Codigo", DbType.AnsiString, Codigo);
            bdUtil.AdicionarParametro("@IDUsuario", DbType.Int32, IDUsuario);

            return bdUtil.ObterDataTable();
        }
	public static DataTable ObterPor_UQ_Prefeito (System.String Nome){
string sql = @"
SELECT 
	
	IDPrefeito, 
	Nome, 
	RG, 
	OrgaoExpedidor, 
	IDEstadoExpedidor, 
	DataExpedicao, 
	Logradouro, 
	Bairro, 
	IDCidade, 
	CEP, 
	Nascimento, 
	Email, 
	Telefone, 
	Celular, 
	NomeConjuge, 
	DataNascimentoConjuge 
FROM 
	Contratos.Prefeito
	  
 WHERE 
	( Nome LIKE @Nome + '%' )";
	BdUtil bd = new BdUtil(sql);
	bd.AdicionarParametro("@Nome", System.Data.DbType.AnsiString, 80, Nome );
      return bd.ObterDataTable();
    }
	public static DataTable ObterPor_PK_Prefeito (System.Int32 IDPrefeito){
string sql = @"
SELECT 
	
	IDPrefeito, 
	Nome, 
	RG, 
	OrgaoExpedidor, 
	IDEstadoExpedidor, 
	DataExpedicao, 
	Logradouro, 
	Bairro, 
	IDCidade, 
	CEP, 
	Nascimento, 
	Email, 
	Telefone, 
	Celular, 
	NomeConjuge, 
	DataNascimentoConjuge 
FROM 
	Contratos.Prefeito
	  
 WHERE 
	IDPrefeito = @IDPrefeito";
	BdUtil bd = new BdUtil(sql);
	bd.AdicionarParametro("@IDPrefeito", System.Data.DbType.Int32, -1, IDPrefeito );
      return bd.ObterDataTable();
    }
	public static DataTable ObterPor_UQ_Empreiteira (System.String CNPJ){
string sql = @"
SELECT 
	
	IDEmpreiteira, 
	CNPJ, 
	RazaoSocial, 
	Fantasia, 
	Logradouro, 
	Bairro, 
	IDCidade, 
	Cep, 
	Telefone, 
	Fax, 
	Responsavel, 
	Email, 
	IDBanco, 
	Conta, 
	Agencia, 
	TipoOperacao 
FROM 
	Contratos.Empreiteira
	  
 WHERE 
	( CNPJ LIKE @CNPJ + '%' )";
	BdUtil bd = new BdUtil(sql);
	bd.AdicionarParametro("@CNPJ", System.Data.DbType.AnsiString, 14, CNPJ );
      return bd.ObterDataTable();
    }
 public static DataTable ObterEmenda(int? Numero,
     int? NumeroFuncional, int? IDArea,
     int? IDTipoRealizacao, string Autor)
 {
     BdUtil bd = new BdUtil(@"
     SELECT
     Emenda.*,
     M.Nome as NomeCidade,
     M.IDEstado as IDEstado
     FROM
     Contratos.Emenda Emenda
     LEFT JOIN Cadastros.Municipio M on M.IDCidade = Emenda.IDCidade
     where
     (@Numero is null OR Numero = @Numero ) AND
     (@NumeroFuncional is null OR NumeroFuncional = @NumeroFuncional ) AND
     (@IDArea is null OR IDArea = @IDArea ) AND
     (@IDTipoRealizacao is null OR IDTipoRealizacao = @IDTipoRealizacao ) AND
     (@Autor is null OR Autor LIKE @Autor + '%' )
     ORDER BY Numero
     ");
     bd.AdicionarParametro("@Numero", DbType.Int32, Numero);
     bd.AdicionarParametro("@NumeroFuncional", DbType.Int32, NumeroFuncional);
     bd.AdicionarParametro("@IDArea", DbType.Int32, IDArea);
     bd.AdicionarParametro("@IDTipoRealizacao", DbType.Int32, IDTipoRealizacao);
     bd.AdicionarParametro("@Autor", DbType.AnsiString, Autor);
     return bd.ObterDataTable();
 }
	public static DataTable ObterPor_PK_Empreiteira (System.Int32 IDEmpreiteira){
string sql = @"
SELECT 
	
	IDEmpreiteira, 
	CNPJ, 
	RazaoSocial, 
	Fantasia, 
	Logradouro, 
	Bairro, 
	IDCidade, 
	Cep, 
	Telefone, 
	Fax, 
	Responsavel, 
	Email, 
	IDBanco, 
	Conta, 
	Agencia, 
	TipoOperacao 
FROM 
	Contratos.Empreiteira
	  
 WHERE 
	IDEmpreiteira = @IDEmpreiteira";
	BdUtil bd = new BdUtil(sql);
	bd.AdicionarParametro("@IDEmpreiteira", System.Data.DbType.Int32, -1, IDEmpreiteira );
      return bd.ObterDataTable();
    }
 public static DataTable Obter_ParaComboBox()
 {
     string sql = @"
     SELECT Plt_Nome, Plt_Planta, (Cast(Plt_Planta as VarChar(4)) + ' - ' + Plt_Nome) as Plt_Descri
     FROM PLANTA
     order by Plt_Planta, Plt_Nome";
     BdUtil bd = new BdUtil(sql);
     return bd.ObterDataTable();
 }
 public static DataTable Obter()
 {
     string sql =
       @"SELECT Cmp_ID, Plt_Bairro, Plt_CEP, Plt_CgcPlt, Plt_Cidade, Plt_DatHor, Plt_DatInc, Plt_Endere, Plt_Estado, Plt_FaxNum, Plt_InsEst, Plt_Nome, Plt_Planta, Plt_Ramal, Plt_RazSoc, Plt_TelNum, Plt_UsuTra, Tbm_ID
     FROM PLANTA
     order by Plt_Nome";
     BdUtil bd = new BdUtil(sql);
     return bd.ObterDataTable();
 }
    public static DataTable ObterPor_UQ_MODULO(int IDSistema, String Codigo)
    {
        string sql = "Select * From Permissao.Modulo where IDSistema = @IDSistema and Codigo = @Codigo";
        BdUtil bd = new BdUtil(sql);
        bd.AdicionarParametro("@IDSistema", System.Data.DbType.Int32, -1, IDSistema);
        bd.AdicionarParametro("@Codigo", System.Data.DbType.AnsiString, 50, Codigo);

        return bd.ObterDataTable();
    }
 public static DataTable ObterUsuario(int usu_ID)
 {
     string sql = @"
     SELECT *
     FROM USUARIO
      WHERE
     ( Usu_ID = @Usu_ID )";
     BdUtil bd = new BdUtil(sql);
     bd.AdicionarParametro("@Usu_ID", System.Data.DbType.Int32, usu_ID);
     return bd.ObterDataTable();
 }
 public static DataTable ObterPor_Cmp_ID(System.Int32 Cmp_ID)
 {
     string sql =
       @"SELECT Cmp_ID, Plt_Bairro, Plt_CEP, Plt_CgcPlt, Plt_Cidade, Plt_DatHor, Plt_DatInc, Plt_Endere, Plt_Estado, Plt_FaxNum, Plt_InsEst, Plt_Nome, Plt_Planta, Plt_Ramal, Plt_RazSoc, Plt_TelNum, Plt_UsuTra, Tbm_ID
     FROM PLANTA
     WHERE (Cmp_ID = @Cmp_ID)
     order by Plt_Nome";
     BdUtil bd = new BdUtil(sql);
     bd.AdicionarParametro("@Cmp_ID", DbType.Int32, Cmp_ID);
     return bd.ObterDataTable();
 }
 /// <summary>
 /// Retorna Sis_Descri, Sis_LogAcesso 
 /// </summary>
 /// <param name="Sis_CodSis"></param>
 /// <returns></returns>
 public static DataTable ObterSistema(string Codigo)
 {
     string sql = @"Select * FROM Permissao.Sistema
                    WHERE (Codigo = @Codigo)";
     BdUtil bdUtil = new BdUtil(sql);
     bdUtil.AdicionarParametro("@Codigo", DbType.AnsiString, Codigo);
     return bdUtil.ObterDataTable();
     //DataSet retorno = bdUtil.ObterDataSet();
     //Sis_Descri = retorno.Tables[0].Rows[0]["Sis_Descri"].ToString();
     //Sis_LogAcesso = (byte)retorno.Tables[0].Rows[0]["Sis_LogAcesso"];
     //return bdUtil.ExecuteScalar<string>();
 }
 public static DataTable ObterUsuario(int usu_ID, string usu_Nome)
 {
     string sql = @"
     SELECT *
     FROM USUARIO
     WHERE (Usu_Nome Like @Usu_Nome or @Usu_Nome is null)
     and   (Usu_ID Like @Usu_ID or @Usu_ID = 0)
     Order By Usu_Nome
     ";
     BdUtil bd = new BdUtil(sql);
     bd.AdicionarParametro("@Usu_Nome", System.Data.DbType.String, usu_Nome);
     bd.AdicionarParametro("@Usu_ID", System.Data.DbType.Int32, usu_ID);
     return bd.ObterDataTable();
 }
 public static DataTable ObterPorID(System.Int32 IDPrefeito)
 {
     string sql = @"
     SELECT
     P.*,
     M.IDEstado
     FROM
     Contratos.Prefeito P
     LEFT JOIN Cadastros.Municipio M on M.IDCidade = P.IDCidade
      WHERE
     P.IDPrefeito = @IDPrefeito";
     BdUtil bd = new BdUtil(sql);
     bd.AdicionarParametro("@IDPrefeito", System.Data.DbType.Int32, -1, IDPrefeito);
     return bd.ObterDataTable();
 }
        public static DataTable ObterEmpreiteira(string Filtro, string ValorFiltro)
        {
            string sql = @"
            SELECT
            *
            FROM
            Contratos.Empreiteira
             WHERE
            {0} LIKE '%'+ @{0}
            ";

            BdUtil bd = new BdUtil(string.Format(sql, Filtro));
            bd.AdicionarParametro("@" + Filtro, System.Data.DbType.AnsiString, ValorFiltro);
            return bd.ObterDataTable();
        }
	public static DataTable ObterPor_PK_TipoRealizacao (System.Int32 IDTipoRealizacao){
string sql = @"
SELECT 
	
	IDTipoRealizacao, 
	Nome 
FROM 
	Contratos.TipoRealizacao
	  
 WHERE 
	IDTipoRealizacao = @IDTipoRealizacao";
	BdUtil bd = new BdUtil(sql);
	bd.AdicionarParametro("@IDTipoRealizacao", System.Data.DbType.Int32, -1, IDTipoRealizacao );
      return bd.ObterDataTable();
    }
	public static DataTable ObterPor_UQ_TipoRealizacao (System.String Nome){
string sql = @"
SELECT 
	
	IDTipoRealizacao, 
	Nome 
FROM 
	Contratos.TipoRealizacao
	  
 WHERE 
	( Nome LIKE @Nome )";
	BdUtil bd = new BdUtil(sql);
	bd.AdicionarParametro("@Nome", System.Data.DbType.AnsiString, 50, Nome );
      return bd.ObterDataTable();
    }
        public static DataTable ObterPor_PK_Area(System.Int32 IDArea)
        {
            string sql = @"
SELECT 
	
	IDArea, 
	Nome 
FROM 
	Contratos.Area
	  
 WHERE 
	IDArea = @IDArea";
            BdUtil bd = new BdUtil(sql);
            bd.AdicionarParametro("@IDArea", System.Data.DbType.Int32, -1, IDArea);
            return bd.ObterDataTable();
        }
 public static DataTable PesquisarPlanoTrabalho(string tipoPesquisa, string valor, DateTime Data)
 {
     string sql = @"
     SELECT
     *
     FROM
     Contratos.PlanoTrabalho Pt
     JOIN Contratos.Emenda E on E.IDEmenda = Pt.IDEmenda
     WHERE
     {0} = @{0}
     ";
     string Campo = string.Empty;
     DbType tipo = DbType.AnsiString;
     object ValorParaPesquisa = null;
     switch (tipoPesquisa.ToUpper())
     {
         case "CP":
             Campo = "CodigoPlanoTrabalho";
             tipo = DbType.AnsiString;
             ValorParaPesquisa = valor;
             break;
         case "CE":
             Campo = "Numero";
             tipo = DbType.AnsiString;
             ValorParaPesquisa = valor;
             break;
         case "DC":
             Campo = "DataContratacao";
             tipo = DbType.Date;
             ValorParaPesquisa = Data;
             break;
         case "DV":
             Campo = "DataVigencia";
             tipo = DbType.Date;
             ValorParaPesquisa = Data;
             break;
         case "DE":
             Campo = "DataEmpenho";
             ValorParaPesquisa = Data;
             tipo = DbType.Date;
             break;
     }
     BdUtil bd = new BdUtil(string.Format(sql, Campo));
     bd.AdicionarParametro("@" + Campo, tipo, ValorParaPesquisa);
     return bd.ObterDataTable();
 }
 public static DataTable ObterEmenda(int IDEmenda)
 {
     BdUtil bd = new BdUtil(@"
     SELECT
     Emenda.*,
     M.Nome as NomeCidade,
     M.IDEstado as IDEstado
     FROM
     Contratos.Emenda Emenda
     LEFT JOIN Cadastros.Municipio M on M.IDCidade = Emenda.IDCidade
     where
     IDEmenda = @IDEmenda
     ORDER BY Numero
     ");
     bd.AdicionarParametro("@IDEmenda", DbType.Int32, IDEmenda);
     return bd.ObterDataTable();
 }
        public static DataTable ObterEmpreiteiraPorID(int IDEmpreiteira)
        {
            string sql = @"
            SELECT
            E.*,
            M.IDEstado
            FROM
            Contratos.Empreiteira E
            LEFT join Cadastros.Municipio M on M.IDCidade = E.IDCidade
            WHERE
            IDEmpreiteira = @IDEmpreiteira
            ";

            BdUtil bd = new BdUtil(sql);
            bd.AdicionarParametro("@IDEmpreiteira", System.Data.DbType.Int32, IDEmpreiteira);
            return bd.ObterDataTable();
        }
 public static DataTable ObterPor_NomeESiglaEstado(System.String Nome)
 {
     string sql = @"
     SELECT
     E.IDEstado,
     Sigla + ' - '+ M.Nome as NomeSigla,
     E.Nome as Estado,
     M.*
     FROM
     Cadastros.Municipio M
     JOIN Cadastros.Estado E on E.IDEstado = M.IDEstado
      WHERE
     ( M.Nome LIKE @Nome + '%' )
     ORDER BY Sigla, M.Nome";
     BdUtil bd = new BdUtil(sql);
     bd.AdicionarParametro("@Nome", System.Data.DbType.AnsiString, 50, Nome);
     return bd.ObterDataTable();
 }
        public static string ObterValorParametro(System.Byte Plt_Planta, System.Int16? Sis_CodSis, System.String Par_NomPar)
        {
            string sql = @"
            SELECT
            Par_ValPar
            FROM
            dbo.PARAMETROS

             WHERE
            ( Plt_Planta LIKE @Plt_Planta ) AND ( Sis_CodSis LIKE @Sis_CodSis ) AND ( Par_NomPar LIKE @Par_NomPar )";
            BdUtil bd = new BdUtil(sql);
            bd.AdicionarParametro("@Plt_Planta", System.Data.DbType.Byte, -1, Plt_Planta);
            bd.AdicionarParametro("@Sis_CodSis", System.Data.DbType.Int16, -1, Sis_CodSis);
            bd.AdicionarParametro("@Par_NomPar", System.Data.DbType.AnsiString, 20, Par_NomPar);
            DataTable dte = bd.ObterDataTable();
            if(dte.Rows.Count == 0)
                return null;
            return dte.Rows[0]["Par_ValPar"].ToString();
        }
	public static DataTable ObterPor_PK_PlanoTrabalho (System.Int32 IDPlanoTrabalho){
string sql = @"
SELECT 
	
	IDPlanoTrabalho, 
	CodigoPlanoTrabalho, 
	Acao, 
	Objeto, 
	SitInstCadastral, 
	SitEngenharia, 
	SitSocial, 
	DataContratacao, 
	DataVigencia, 
	DataVigenciaProrrog1, 
	DataVigenciaProrrog2, 
	ValorRepasse, 
	ValorContraPartida, 
	ValorContraPartidaEngenharia, 
	ValorContraPartidaSocial, 
	IDEmenda, 
	DataReformulacaoPlanoTrabalho, 
	ReformulacaoPlanoTrabalho, 
	Programa, 
	DataEmpenho, 
	CodEmpenho, 
	DataEmpenhoInvest, 
	CodEmpenhoInvest, 
	DataEmpenhoCusteio, 
	CodEmpenhoCusteio, 
	IDCliente, 
	NaturezaDespesa, 
	ValorInvestimento 
FROM 
	Contratos.PlanoTrabalho
	  
 WHERE 
	IDPlanoTrabalho = @IDPlanoTrabalho";
	BdUtil bd = new BdUtil(sql);
	bd.AdicionarParametro("@IDPlanoTrabalho", System.Data.DbType.Int32, -1, IDPlanoTrabalho );
      return bd.ObterDataTable();
    }
	public static DataTable ObterPor_UQ_Emenda (System.Int32 Numero){
string sql = @"
SELECT 
	
	IDEmenda, 
	Numero, 
	IDArea, 
	IDTipoRealizacao, 
	IDCidade, 
	NumeroFuncional, 
	Valor, 
	Autor 
FROM 
	Contratos.Emenda
	  
 WHERE 
	Numero = @Numero";
	BdUtil bd = new BdUtil(sql);
	bd.AdicionarParametro("@Numero", System.Data.DbType.Int32, -1, Numero );
      return bd.ObterDataTable();
    }
        public static DataTable ObterUsuario_PorGrupo(int grp_CodGrp)
        {
            string sql = @"
            select
            GU.Usu_Login ,
            GU.Grp_CodGrp,
            GU.Gru_DatInc,
            GU.Gru_DatHor,
            GU.Gru_UsuTra,
            U.Usu_Nome,
            U.Usu_Email,
            U.usu_id,
            U.Usu_Ativo
            from grupo_usuario GU
            join  usuario U on ( U.usu_Login = GU.usu_Login  )
            where grp_CodGrp = @Grp_CodGrp
            ";
            BdUtil bd = new BdUtil( sql );
            bd.AdicionarParametro("@Grp_CodGrp", DbType.Int32, grp_CodGrp );

            return bd.ObterDataTable();
        }
	public static DataTable ObterPor_IX_PARAMETROS_ParametrosSistema (System.Byte Plt_Planta, System.Int16? Sis_CodSis){
string sql = @"
SELECT 
	
	Plt_Planta, 
	Par_NomPar, 
	Par_ValPar, 
	Par_ParFix, 
	Par_DatInc, 
	Par_DatHor, 
	Par_UsuTra, 
	Sis_CodSis, 
	Par_Descricao 
FROM 
	dbo.PARAMETROS
	  
 WHERE 
	( Plt_Planta LIKE @Plt_Planta ) AND ( Sis_CodSis LIKE @Sis_CodSis )";
	BdUtil bd = new BdUtil(sql);
	bd.AdicionarParametro("@Plt_Planta", System.Data.DbType.Byte, -1, Plt_Planta );
	bd.AdicionarParametro("@Sis_CodSis", System.Data.DbType.Int16, -1, Sis_CodSis );
      return bd.ObterDataTable();
    }
        public static DataTable ObterPor_PK_COMPANHIA(System.Int32 ID)
        {
            string sql = @"
            SELECT

            ID,
            Cmp_Nome,
            Cmp_DatInc,
            Cmp_DatHor,
            Cmp_UsuTra
            FROM
            COMPANHIA

             WHERE
            ID = @ID";
            BdUtil bd = new BdUtil(sql);
            bd.AdicionarParametro("@ID", System.Data.DbType.Int32, -1, ID );
              return bd.ObterDataTable();
        }
        public static DataTable Obter()
        {
            string sql = @"
            SELECT

            ID,
            Cmp_Nome,
            Cmp_DatInc,
            Cmp_DatHor,
            Cmp_UsuTra
            FROM
            COMPANHIA";
            BdUtil bd = new BdUtil(sql);
            return bd.ObterDataTable();
        }
 public static DataTable ObterUsuariosParaComboBox()
 {
     string sql = @"
     SELECT Usu_ID, Usu_Nome
     FROM USUARIO
     Order By Usu_Nome
     ";
     BdUtil bd = new BdUtil(sql);
     return bd.ObterDataTable();
 }