using System; using System.Collections.Generic; using System.Web; using MySQL; using System.Data; using System.Web.Configuration; using System.Web.UI.WebControls; namespace Intranet { /// /// Empresas /// public class Empresas { public Empresas() { // // TODO: Add constructor logic here // } /// /// Listagem de todas as empresas /// /// Número da página a mostrar /// DataTable public static DataTable Listagem(int Pagina) { DataTable dtInfo = new DataTable(); int offset = Convert.ToInt16(WebConfigurationManager.AppSettings["offset"].ToString()); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT * " + "FROM empresa " + "ORDER BY nome, moradasede_localidade " + "LIMIT " + (Pagina * offset) + ", " + offset; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); return dtInfo; } /// /// Listagem de todas as empresas mediante pesquisa em todos os campos /// /// Texto a pesquisas /// DataTable public static DataTable Listagem(string Pesquisa) { DataTable dtInfo = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT * " + "FROM empresa " + "WHERE nome LIKE '%" + Pesquisa + "%' " + " OR designacao LIKE '%" + Pesquisa + "%' " + " OR moradasede_rua LIKE '%" + Pesquisa + "%' " + " OR moradasede_numero LIKE '%" + Pesquisa + "%' " + " OR moradasede_codigopostal LIKE '%" + Pesquisa + "%' " + " OR moradasede_localidade LIKE '%" + Pesquisa + "%' " + " OR moradasede_concelho LIKE '%" + Pesquisa + "%' " + " OR moradasede_distrito LIKE '%" + Pesquisa + "%' " + " OR latitude_sede LIKE '%" + Pesquisa + "%' " + " OR longitude_sede LIKE '%" + Pesquisa + "%' " + " OR telefone LIKE '%" + Pesquisa + "%' " + " OR telemovel LIKE '%" + Pesquisa + "%' " + " OR fax LIKE '%" + Pesquisa + "%' " + " OR email LIKE '%" + Pesquisa + "%' " + " OR url LIKE '%" + Pesquisa + "%' " + " OR facebook LIKE '%" + Pesquisa + "%' " + " OR twitter LIKE '%" + Pesquisa + "%' " + " OR youtube LIKE '%" + Pesquisa + "%' " + " OR responsavel LIKE '%" + Pesquisa + "%' " + " OR responsavel_titulo LIKE '%" + Pesquisa + "%' " + " OR responsavel_telefone LIKE '%" + Pesquisa + "%' " + " OR responsavel_telemovel LIKE '%" + Pesquisa + "%' " + " OR responsavel_email LIKE '%" + Pesquisa + "%' " + " OR actividade LIKE '%" + Pesquisa + "%' " + " OR cae LIKE '%" + Pesquisa + "%' " + " OR cae_secundario LIKE '%" + Pesquisa + "%' " + " OR nif LIKE '%" + Pesquisa + "%' " + " OR trabalhadores LIKE '%" + Pesquisa + "%' " + "ORDER BY nome, moradasede_localidade"; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); return dtInfo; } /// /// Pesquisa de empresas /// /// DataTable public static DataTable Pesquisa(string Pesquisa) { DataTable dtInfo = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT * " + "FROM empresa " + "ORDER BY nome, moradasede_localidade"; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); /* #1 - CONVERTE A PESQUISA NUM ARRAY EM QUE CADA POSIÇÃO CONTEM UM PARALVRA */ string[] _pesquisa = Pesquisa.Split(new char[] { ' ' }); /* #2 - PESQUISA TODAS AS OCURRÊNCIAS DE _pesquisa EM dtInfo. REMOVE DE dtInfo TODAS AS LINHAS QUE NÃO TENHAM PELO MENOS UMA OCURRÊNCIA */ Intranet.Geral.Pesquisa(ref dtInfo, _pesquisa); return dtInfo; } /// /// Mostra o detalhe de uma detarminada empresa /// /// Id do conteúdo a mostrar /// DataTable public static DataTable Detalhes(int Id) { DataTable dtInfo = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT * " + "FROM empresa " + "WHERE id=" + Id + " " + "ORDER BY nome, moradasede_localidade"; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); return dtInfo; } /// /// Gravar nova empresa /// /// Activo/Inactivo (1/0) /// Id de quem cria o conteúdo /// Departamento de quem cria o conteúdo /// True ou False public static Boolean Gravar(string Empresa, string Designacao, string NIB, string Banco, int Cliente, int Fornecedor, string MoradaSedeRua, string MoradaSedeNumero, string MoradaSedeAndarNumero, string MoradaSedeCodigoPostal, string MoradaSedeLocalidade, string MoradaSedeConcelho, string MoradaSedeDistrito, string MoradaSedePais, string LatitudeSede, string LongitudeSede, string Telefone, string Telemovel, string Fax, string Email, string URL, string Responsavel, string ResponsavelTitulo, string ResponsavelTelefone, string ResponsavelTelemovel, string ResponsavelEmail, string ResponsavelNISS, string Actividade, string CAE, string CAESecundario, string NIF, int Trabalhadores, string Observacao, int Activo, int CreateUser, int CreateDep) { bool gravado = false; // VERIFICAR NIF DUPLICADO //if (ValidarNIF(0, NIF)) //{ sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "INSERT INTO empresa(nome, denominacao_fiscal, " + " nib, banco, " + " cliente, fornecedor, " + " moradasede_rua, moradasede_numero, moradasede_andar_numero, moradasede_codigopostal, moradasede_localidade, moradasede_concelho, moradasede_distrito, moradasede_pais, " + " latitude_sede, longitude_sede, " + " telefone, telemovel, fax, email, url, " + " responsavel, responsavel_titulo, responsavel_telefone, responsavel_telemovel, responsavel_email, responsavel_niss, " + " actividade, cae, cae_secundario, nif, trabalhadores, " + " observacao, " + " activo, createuser, createdep, createdata) " + "VALUES ('" + Empresa + "'," + " '" + Designacao + "'," + " '" + NIB + "'," + " '" + Banco + "'," + " " + Cliente + " ," + " " + Fornecedor + " ," + " '" + MoradaSedeRua + "'," + " '" + MoradaSedeNumero + "'," + " '" + MoradaSedeAndarNumero + "'," + " '" + MoradaSedeCodigoPostal + "'," + " '" + MoradaSedeLocalidade + "'," + " '" + MoradaSedeConcelho + "'," + " '" + MoradaSedeDistrito + "'," + " '" + MoradaSedePais + "'," + " '" + LatitudeSede + "'," + " '" + LongitudeSede + "'," + " '" + Telefone + "'," + " '" + Telemovel + "'," + " '" + Fax + "'," + " '" + Email + "'," + " '" + URL + "'," + " '" + Responsavel + "'," + " '" + ResponsavelTitulo + "'," + " '" + ResponsavelTelefone + "'," + " '" + ResponsavelTelemovel + "'," + " '" + ResponsavelEmail + "'," + " '" + ResponsavelNISS + "'," + " '" + Actividade + "'," + " '" + CAE + "'," + " '" + CAESecundario + "'," + " '" + NIF + "'," + " " + Trabalhadores + " ," + " '" + Observacao + "'," + " " + Activo + " ," + " " + CreateUser + " ," + " " + CreateDep + " ," + " now())"; gravado = sqlInfo.Write(); sqlInfo.closeConnection(); //} return gravado; } /// /// Gravar nova empresa /// /// Activo/Inactivo (1/0) /// Id de quem cria o conteúdo /// Departamento de quem cria o conteúdo /// True ou False public static Boolean Gravar(string Empresa, string Designacao, string NIB, string Banco, int Cliente, int Fornecedor, string MoradaSedeRua, string MoradaSedeNumero, string MoradaSedeAndarNumero, string MoradaSedeCodigoPostal, string MoradaSedeLocalidade, string MoradaSedeConcelho, string MoradaSedeDistrito, string MoradaSedePais, string MoradaDescargaRua, string MoradaDescargaNumero, string MoradaDescargaAndarNumero, string MoradaDescargaCodigoPostal, string MoradaDescargaLocalidade, string MoradaDescargaConcelho, string MoradaDescargaDistrito, string MoradaDescargaPais, string MoradaFaturacaoRua, string MoradaFaturacaoNumero, string MoradaFaturacaoAndarNumero, string MoradaFaturacaoCodigoPostal, string MoradaFaturacaoLocalidade, string MoradaFaturacaoConcelho, string MoradaFaturacaoDistrito, string MoradaFaturacaoPais, string LatitudeSede, string LongitudeSede, string LatitudeDescarga, string LongitudeDescarga, string LatitudeFacturacao, string LongitudeFacturacao, string Telefone, string Telemovel, string Fax, string Email, string URL, string Facebook, string Twitter, string Youtube, string Responsavel, string ResponsavelTitulo, string ResponsavelTelefone, string ResponsavelTelemovel, string ResponsavelEmail, string ResponsavelNISS, string Actividade, string CAE, string CAESecundario, string NIF, int Trabalhadores, string Observacao, int Activo, int CreateUser, int CreateDep) { bool gravado = false; // VERIFICAR NIF DUPLICADO //if (ValidarNIF(0, NIF)) //{ sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "INSERT INTO empresa(nome, denominacao_fiscal, " + " nib, banco, " + " cliente, fornecedor, " + " moradasede_rua, moradasede_numero, moradasede_andar_numero, moradasede_codigopostal, moradasede_localidade, moradasede_concelho, moradasede_distrito, moradasede_pais, " + " moradadescarga_rua, moradadescarga_numero, moradadescarga_andar_numero, moradadescarga_codigopostal, moradadescarga_localidade, moradadescarga_concelho, moradadescarga_distrito, moradadescarga_pais, " + " moradafaturacao_rua, moradafaturacao_numero, moradafaturacao_andar_numero, moradafaturacao_codigopostal, moradafaturacao_localidade, moradafaturacao_concelho, moradafaturacao_distrito, moradafaturacao_pais, " + " latitude_sede, longitude_sede, " + " latitude_descarga, longitude_descarga, " + " latitude_facturacao, longitude_facturacao, " + " telefone, telemovel, fax, email, url, facebook, twitter, youtube, " + " responsavel, responsavel_titulo, responsavel_telefone, responsavel_telemovel, responsavel_email, responsavel_niss, " + " actividade, cae, cae_secundario, nif, trabalhadores, " + " observacao, " + " activo, createuser, createdep, createdata) " + "VALUES ('" + Empresa + "'," + " '" + Designacao + "'," + " '" + NIB + "'," + " '" + Banco + "'," + " " + Cliente + " ," + " " + Fornecedor + " ," + " '" + MoradaSedeRua + "'," + " '" + MoradaSedeNumero + "'," + " '" + MoradaSedeAndarNumero + "'," + " '" + MoradaSedeCodigoPostal + "'," + " '" + MoradaSedeLocalidade + "'," + " '" + MoradaSedeConcelho + "'," + " '" + MoradaSedeDistrito + "'," + " '" + MoradaSedePais + "'," + " '" + MoradaDescargaRua + "'," + " '" + MoradaDescargaNumero + "'," + " '" + MoradaDescargaAndarNumero + "'," + " '" + MoradaDescargaCodigoPostal + "'," + " '" + MoradaDescargaLocalidade + "'," + " '" + MoradaDescargaConcelho + "'," + " '" + MoradaDescargaDistrito + "'," + " '" + MoradaDescargaPais + "'," + " '" + MoradaFaturacaoRua + "'," + " '" + MoradaFaturacaoNumero + "'," + " '" + MoradaFaturacaoAndarNumero + "'," + " '" + MoradaFaturacaoCodigoPostal + "'," + " '" + MoradaFaturacaoLocalidade + "'," + " '" + MoradaFaturacaoConcelho + "'," + " '" + MoradaFaturacaoDistrito + "'," + " '" + MoradaFaturacaoPais + "'," + " '" + LatitudeSede + "'," + " '" + LongitudeSede + "'," + " '" + LatitudeDescarga + "'," + " '" + LongitudeDescarga + "'," + " '" + LatitudeFacturacao + "'," + " '" + LongitudeFacturacao + "'," + " '" + Telefone + "'," + " '" + Telemovel + "'," + " '" + Fax + "'," + " '" + Email + "'," + " '" + URL + "'," + " '" + Facebook + "'," + " '" + Twitter + "'," + " '" + Youtube + "'," + " '" + Responsavel + "'," + " '" + ResponsavelTitulo + "'," + " '" + ResponsavelTelefone + "'," + " '" + ResponsavelTelemovel + "'," + " '" + ResponsavelEmail + "'," + " '" + ResponsavelNISS + "'," + " '" + Actividade + "'," + " '" + CAE + "'," + " '" + CAESecundario + "'," + " '" + NIF + "'," + " " + Trabalhadores + " ," + " '" + Observacao + "'," + " " + Activo + " ," + " " + CreateUser + " ," + " " + CreateDep + " ," + " now())"; gravado = sqlInfo.Write(); sqlInfo.closeConnection(); //} return gravado; } /// /// Editar empresa /// /// Id do conteúdo a editar /// Activo/Inactivo (1/0) /// Id de quem cria o conteúdo /// Departamento de quem cria o conteúdo /// True ou False public static Boolean Editar(int Id, string Empresa, string Designacao, string NIB, string Banco, int Cliente, int Fornecedor, string MoradaSedeRua, string MoradaSedeNumero, string MoradaSedeAndarNumero, string MoradaSedeCodigoPostal, string MoradaSedeLocalidade, string MoradaSedeConcelho, string MoradaSedeDistrito, string MoradaSedePais, string LatitudeSede, string LongitudeSede, string Telefone, string Telemovel, string Fax, string Email, string URL, string Responsavel, string ResponsavelTitulo, string ResponsavelTelefone, string ResponsavelTelemovel, string ResponsavelEmail, string ResponsavelNISS, string Actividade, string CAE, string CAESecundario, string NIF, int Trabalhadores, string Observacao, int Activo, int EditUser, int EditDep) { bool editado = false; // VERIFICAR NIF DUPLICADO //if (ValidarNIF(Id, NIF)) //{ sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "UPDATE empresa " + "SET nome ='" + Empresa + "'," + " denominacao_fiscal ='" + Designacao + "'," + " nib ='" + NIB + "'," + " banco ='" + Banco + "'," + " cliente = " + Cliente + " ," + " fornecedor = " + Fornecedor + " ," + " moradasede_rua ='" + MoradaSedeRua + "'," + " moradasede_numero ='" + MoradaSedeNumero + "'," + " moradasede_andar_numero ='" + MoradaSedeAndarNumero + "'," + " moradasede_codigopostal ='" + MoradaSedeCodigoPostal + "'," + " moradasede_localidade ='" + MoradaSedeLocalidade + "'," + " moradasede_concelho ='" + MoradaSedeConcelho + "'," + " moradasede_distrito ='" + MoradaSedeDistrito + "'," + " moradasede_pais ='" + MoradaSedePais + "'," + " latitude_sede ='" + LatitudeSede + "'," + " longitude_sede ='" + LongitudeSede + "'," + " telefone ='" + Telefone + "'," + " telemovel ='" + Telemovel + "'," + " fax ='" + Fax + "'," + " email ='" + Email + "'," + " url ='" + URL + "'," + " responsavel ='" + Responsavel + "'," + " responsavel_titulo ='" + ResponsavelTitulo + "'," + " responsavel_telefone ='" + ResponsavelTelefone + "'," + " responsavel_telemovel ='" + ResponsavelTelemovel + "'," + " responsavel_email ='" + ResponsavelEmail + "'," + " responsavel_niss ='" + ResponsavelNISS + "'," + " actividade ='" + Actividade + "'," + " cae ='" + CAE + "'," + " cae_secundario ='" + CAESecundario + "'," + " nif ='" + NIF + "'," + " trabalhadores = " + Trabalhadores + " ," + " observacao ='" + Observacao + "'," + " activo = " + Activo + "," + " edituser = " + EditUser + "," + " editdep = " + EditDep + "," + " editdata = now() " + "WHERE id=" + Id; editado = sqlInfo.Write(); sqlInfo.closeConnection(); //} return editado; } /// /// Editar empresa /// /// Id do conteúdo a editar /// Activo/Inactivo (1/0) /// Id de quem cria o conteúdo /// Departamento de quem cria o conteúdo /// True ou False public static Boolean Editar(int Id, string Empresa, string Designacao, string NIB, string Banco, int Cliente, int Fornecedor, string MoradaSedeRua, string MoradaSedeNumero, string MoradaSedeAndarNumero, string MoradaSedeCodigoPostal, string MoradaSedeLocalidade, string MoradaSedeConcelho, string MoradaSedeDistrito, string MoradaSedePais, string MoradaDescargaRua, string MoradaDescargaNumero, string MoradaDescargaAndarNumero, string MoradaDescargaCodigoPostal, string MoradaDescargaLocalidade, string MoradaDescargaConcelho, string MoradaDescargaDistrito, string MoradaDescargaPais, string MoradaFaturacaoRua, string MoradaFaturacaoNumero, string MoradaFaturacaoAndarNumero, string MoradaFaturacaoCodigoPostal, string MoradaFaturacaoLocalidade, string MoradaFaturacaoConcelho, string MoradaFaturacaoDistrito, string MoradaFaturacaoPais, string LatitudeSede, string LongitudeSede, string LatitudeDescarga, string LongitudeDescarga, string LatitudeFacturacao, string LongitudeFacturacao, string Telefone, string Telemovel, string Fax, string Email, string URL, string Facebook, string Twitter, string Youtube, string Responsavel, string ResponsavelTitulo, string ResponsavelTelefone, string ResponsavelTelemovel, string ResponsavelEmail, string ResponsavelNISS, string Actividade, string CAE, string CAESecundario, string NIF, int Trabalhadores, string Observacao, int Activo, int EditUser, int EditDep) { bool editado = false; // VERIFICAR NIF DUPLICADO //if (ValidarNIF(Id, NIF)) //{ sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "UPDATE empresa " + "SET nome ='" + Empresa + "'," + " designacao ='" + Designacao + "'," + " nib ='" + NIB + "'," + " banco ='" + Banco + "'," + " cliente = " + Cliente + " ," + " fornecedor = " + Fornecedor + " ," + " moradasede_rua ='" + MoradaSedeRua + "'," + " moradasede_numero ='" + MoradaSedeNumero + "'," + " moradasede_andar_numero ='" + MoradaSedeAndarNumero + "'," + " moradasede_codigopostal ='" + MoradaSedeCodigoPostal + "'," + " moradasede_localidade ='" + MoradaSedeLocalidade + "'," + " moradasede_concelho ='" + MoradaSedeConcelho + "'," + " moradasede_distrito ='" + MoradaSedeDistrito + "'," + " moradasede_pais ='" + MoradaSedePais + "'," + " moradadescarga_rua ='" + MoradaDescargaRua + "'," + " moradadescarga_numero ='" + MoradaDescargaNumero + "'," + " moradadescarga_andar_numero ='" + MoradaDescargaAndarNumero + "'," + " moradadescarga_codigopostal ='" + MoradaDescargaCodigoPostal + "'," + " moradadescarga_localidade ='" + MoradaDescargaLocalidade + "'," + " moradadescarga_concelho ='" + MoradaDescargaConcelho + "'," + " moradadescarga_distrito ='" + MoradaDescargaDistrito + "'," + " moradadescarga_pais ='" + MoradaDescargaPais + "'," + " moradafaturacao_rua ='" + MoradaFaturacaoRua + "'," + " moradafaturacao_numero ='" + MoradaFaturacaoNumero + "'," + " moradafaturacao_andar_numero ='" + MoradaFaturacaoAndarNumero + "'," + " moradafaturacao_codigopostal ='" + MoradaFaturacaoCodigoPostal + "'," + " moradafaturacao_localidade ='" + MoradaFaturacaoLocalidade + "'," + " moradafaturacao_concelho ='" + MoradaFaturacaoConcelho + "'," + " moradafaturacao_distrito ='" + MoradaFaturacaoDistrito + "'," + " moradafaturacao_pais ='" + MoradaFaturacaoPais + "'," + " latitude_sede ='" + LatitudeSede + "'," + " longitude_sede ='" + LongitudeSede + "'," + " latitude_descarga ='" + LatitudeDescarga + "'," + " longitude_descarga ='" + LongitudeDescarga + "'," + " latitude_facturacao ='" + LatitudeFacturacao + "'," + " longitude_facturacao ='" + LongitudeFacturacao + "'," + " telefone ='" + Telefone + "'," + " telemovel ='" + Telemovel + "'," + " fax ='" + Fax + "'," + " email ='" + Email + "'," + " url ='" + URL + "'," + " facebook ='" + Facebook + "'," + " twitter ='" + Twitter + "'," + " youtube ='" + Youtube + "'," + " responsavel ='" + Responsavel + "'," + " responsavel_titulo ='" + ResponsavelTitulo + "'," + " responsavel_telefone ='" + ResponsavelTelefone + "'," + " responsavel_telemovel ='" + ResponsavelTelemovel + "'," + " responsavel_email ='" + ResponsavelEmail + "'," + " responsavel_niss ='" + ResponsavelNISS + "'," + " actividade ='" + Actividade + "'," + " cae ='" + CAE + "'," + " cae_secundario ='" + CAESecundario + "'," + " nif ='" + NIF + "'," + " trabalhadores = " + Trabalhadores + " ," + " observacao ='" + Observacao + "'," + " activo = " + Activo + "," + " edituser = " + EditUser + "," + " editdep = " + EditDep + "," + " editdata = now() " + "WHERE id=" + Id; editado = sqlInfo.Write(); sqlInfo.closeConnection(); //} return editado; } /// /// Verifica a duplicação de logins /// /// ID da empresa em caso de edição. 0 (zero) caso seja um nova empresa. /// NIF a verificar /// True se o nif for válido private static Boolean ValidarNIF(int Id, string NIF) { DataTable dtInfo = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT id FROM empresa WHERE nif='" + NIF + "'"; if (Id != 0) { sqlInfo.Query = sqlInfo.Query + " AND id != " + Id; } dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); if (dtInfo.Rows.Count > 0) { // EMPRESA EXISTENTE return false; } else { // NOVA EMPRESA return true; } } /// /// Alteração do campo activo /// /// Id da empresa /// Novo estado para o campo activo /// Id do colaborador que edita o conteúdo /// Id do departamento que edita o conteúdo /// True ou false public static Boolean Activar(int Id, int Estado, int Colaborador, int Departamento) { bool activar = false; sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "UPDATE empresa " + "SET activo=" + Estado + ", " + " edituser=" + Colaborador + ", " + " editdep=" + Departamento + ", " + " editdata=now() " + "WHERE id=" + Id; activar = sqlInfo.Write(); sqlInfo.closeConnection(); return activar; } /// /// Empresas só clientes /// public class Clientes { /// /// Listagem de todas as empresas /// /// Número da página a mostrar /// DataTable public static DataTable Listagem(int Pagina) { DataTable dtInfo = new DataTable(); int offset = Convert.ToInt16(WebConfigurationManager.AppSettings["offset"].ToString()); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT * " + "FROM empresa " + "WHERE cliente=1 " + "ORDER BY nome, moradasede_localidade " + "LIMIT " + (Pagina * offset) + ", " + offset; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); return dtInfo; } /// /// Pesquisa de empresas /// /// DataTable public static DataTable Pesquisa(string Pesquisa) { DataTable dtInfo = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT * " + "FROM empresa " + "WHERE cliente=1 " + "ORDER BY nome, moradasede_localidade"; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); /* #1 - CONVERTE A PESQUISA NUM ARRAY EM QUE CADA POSIÇÃO CONTEM UM PARALVRA */ string[] _pesquisa = Pesquisa.Split(new char[] { ' ' }); /* #2 - PESQUISA TODAS AS OCURRÊNCIAS DE _pesquisa EM dtInfo. REMOVE DE dtInfo TODAS AS LINHAS QUE NÃO TENHAM PELO MENOS UMA OCURRÊNCIA */ Intranet.Geral.Pesquisa(ref dtInfo, _pesquisa); return dtInfo; } } // Empresas só fornecedoras public class Fornecedores { /// /// Listagem de todas as empresas /// /// Número da página a mostrar /// DataTable public static DataTable Listagem(int Pagina) { DataTable dtInfo = new DataTable(); int offset = Convert.ToInt16(WebConfigurationManager.AppSettings["offset"].ToString()); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT * " + "FROM empresa " + "WHERE fornecedor=1 " + "ORDER BY nome, moradasede_localidade " + "LIMIT " + (Pagina * offset) + ", " + offset; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); return dtInfo; } /// /// Pesquisa de empresas /// /// DataTable public static DataTable Pesquisa(string Pesquisa) { DataTable dtInfo = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT * " + "FROM empresa " + "WHERE fornecedor=1 " + "ORDER BY nome, moradasede_localidade"; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); /* #1 - CONVERTE A PESQUISA NUM ARRAY EM QUE CADA POSIÇÃO CONTEM UM PARALVRA */ string[] _pesquisa = Pesquisa.Split(new char[] { ' ' }); /* #2 - PESQUISA TODAS AS OCURRÊNCIAS DE _pesquisa EM dtInfo. REMOVE DE dtInfo TODAS AS LINHAS QUE NÃO TENHAM PELO MENOS UMA OCURRÊNCIA */ Intranet.Geral.Pesquisa(ref dtInfo, _pesquisa); return dtInfo; } } /// /// Relatórios de Reunião /// public class RelatorioReuniao { /// /// Listagem de todas os relatórios de reunião de uma determinada empresa /// /// ID da empresa /// DataTable public static DataTable Listagem(int Empresa) { DataTable dtInfo = new DataTable(); int offset = Convert.ToInt16(WebConfigurationManager.AppSettings["offset"].ToString()); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT r.id, " + " r.createuser, r.createdep, r.createdata, " + " r.edituser, r.editdep, r.editdata, " + " r.activo, " + " DATE_FORMAT(r.data, '%Y.%m.%d') AS data, " + " r.local, " + " r.presencas, r.presencas_empresa, " + " r.assunto, r.ordemtrabalho, r.decisoes, r.compromissos, r.observacoes, " + " e.id AS empresaid, e.nome AS empresa, " + " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, " + " d.nome AS departamento, d.abreviatura AS departamento_abreviatura " + "FROM empresa e, empresa_relatorio_reuniao r, " + " colaborador c, departamento d " + "WHERE r.empresaid=e.id " + " AND e.id=" + Empresa + " " + " AND c.id=r.createuser " + " AND d.id=r.createdep " + "ORDER BY r.data DESC"; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); return dtInfo; } /// /// Listagem de todas os relatórios de reunião /// /// Número da página a mostrar /// Id do departameto do colaborador autenticado /// Nível de permissão do colaborador que acede à listagem /// DataTable public static DataTable Listagem(int Pagina, int Departamento, int Permissao) { DataTable dtInfo = new DataTable(); int offset = Convert.ToInt16(WebConfigurationManager.AppSettings["offset"].ToString()); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); if (Permissao <= Intranet.Sistema.Permissoes.Total) { sqlInfo.Query = "SELECT r.id, " + " r.createuser, r.createdep, r.createdata, " + " r.edituser, r.editdep, r.editdata, " + " r.activo, " + " DATE_FORMAT(r.data, '%Y.%m.%d') AS data, " + " r.local, " + " r.presencas, r.presencas_empresa, " + " r.assunto, r.ordemtrabalho, r.decisoes, r.compromissos, r.observacoes, " + " e.id AS empresaid, e.nome AS empresa, " + " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, " + " d.nome AS departamento, d.abreviatura AS departamento_abreviatura " + "FROM empresa e, empresa_relatorio_reuniao r, " + " colaborador c, departamento d " + "WHERE r.empresaid=e.id " + " AND c.id=r.createuser " + " AND d.id=r.createdep " + "ORDER BY r.data DESC, e.nome " + "LIMIT " + (Pagina * offset) + ", " + offset; } else { sqlInfo.Query = "SELECT r.id, " + " r.createuser, r.createdep, r.createdata, " + " r.edituser, r.editdep, r.editdata, " + " r.activo, " + " DATE_FORMAT(r.data, '%Y.%m.%d') AS data, " + " r.local, " + " r.presencas, r.presencas_empresa, " + " r.assunto, r.ordemtrabalho, r.decisoes, r.compromissos, r.observacoes, " + " e.id AS empresaid, e.nome AS empresa, " + " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, " + " d.nome AS departamento, d.abreviatura AS departamento_abreviatura " + "FROM empresa e, empresa_relatorio_reuniao r, " + " colaborador c, departamento d " + "WHERE r.empresaid=e.id " + " AND c.id=r.createuser " + " AND d.id=r.createdep " + " AND r.createdep=" + Departamento + " " + "ORDER BY r.data, e.nome " + "LIMIT " + (Pagina * offset) + ", " + offset; } dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); return dtInfo; } /// /// Pesquisa os relatórios de reunião /// /// DataTable public static DataTable Pesquisa(string Pesquisa) { DataTable dtInfo = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT r.id, " + " r.createuser, r.createdep, r.createdata, " + " r.edituser, r.editdep, r.editdata, " + " r.activo, " + " DATE_FORMAT(r.data, '%Y.%m.%d') AS data, " + " r.local, " + " r.presencas, r.presencas_empresa, " + " r.assunto, r.ordemtrabalho, r.decisoes, r.compromissos, r.observacoes, " + " e.id AS empresaid, e.nome AS empresa, " + " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, " + " d.nome AS departamento, d.abreviatura AS departamento_abreviatura, " + " r.*, e.*, d.*, c.* " + "FROM empresa e, empresa_relatorio_reuniao r, " + " colaborador c, departamento d " + "WHERE r.empresaid=e.id " + " AND c.id=r.createuser " + " AND d.id=r.createdep " + "ORDER BY r.data DESC, e.nome"; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); /* #1 - CONVERTE A PESQUISA NUM ARRAY EM QUE CADA POSIÇÃO CONTEM UM PARALVRA */ string[] _pesquisa = Pesquisa.Split(new char[] { ' ' }); /* #2 - PESQUISA TODAS AS OCURRÊNCIAS DE _pesquisa EM dtInfo. REMOVE DE dtInfo TODAS AS LINHAS QUE NÃO TENHAM PELO MENOS UMA OCURRÊNCIA */ Intranet.Geral.Pesquisa(ref dtInfo, _pesquisa); return dtInfo; } /// /// Mostra o detalhe de um relatório de reunião /// /// Id do conteúdo a mostrar /// DataTable public static DataTable Detalhes(int Id) { DataTable dtInfo = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT r.id, " + " r.createuser, r.createdep, r.createdata, " + " r.edituser, r.editdep, r.editdata, " + " r.activo, " + " DATE_FORMAT(r.data, '%Y.%m.%d') AS data, " + " r.local, " + " r.presencas, r.presencas_empresa, " + " r.assunto, r.ordemtrabalho, r.decisoes, r.compromissos, r.observacoes, " + " e.id AS empresaid, e.nome AS empresa, " + " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, " + " d.nome AS departamento, d.abreviatura AS departamento_abreviatura " + "FROM empresa e, empresa_relatorio_reuniao r, " + " colaborador c, departamento d " + "WHERE r.empresaid=e.id " + " AND c.id=r.createuser " + " AND d.id=r.createdep " + " AND r.id=" + Id; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); return dtInfo; } /// /// Gravar novo relatório de reunião /// /// Activo/Inactivo (1/0) /// Id de quem cria o conteúdo /// Departamento de quem cria o conteúdo /// True ou False public static Boolean Gravar(int Empresa, string Data, string Local, string Presencas, string PresencasEmpresa, string Assunto, string OrdemTrabalho, string Decisoes, string Compromissos, string Observacoes, int Activo, int CreateUser, int CreateDep) { bool gravado = false; sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "INSERT INTO empresa_relatorio_reuniao(empresaid, " + " data, local, " + " presencas, presencas_empresa, " + " assunto, " + " ordemtrabalho, decisoes, compromissos, observacoes, " + " activo, createuser, createdep, createdata) " + "VALUES (" + Empresa + "," + " '" + Data + "'," + " '" + Local + "'," + " '" + Presencas + "'," + " '" + PresencasEmpresa + "'," + " '" + Assunto + "'," + " '" + OrdemTrabalho + "'," + " '" + Decisoes + "'," + " '" + Compromissos + "'," + " '" + Observacoes + "'," + " " + Activo + " ," + " " + CreateUser + " ," + " " + CreateDep + " ," + " now())"; gravado = sqlInfo.Write(); sqlInfo.closeConnection(); return gravado; } /// /// Editar relatório de reunião /// /// Id do conteúdo a editar /// Activo/Inactivo (1/0) /// Id de quem cria o conteúdo /// Departamento de quem cria o conteúdo /// True ou False public static Boolean Editar(int Id, int Empresa, string Data, string Local, string Presencas, string PresencasEmpresa, string Assunto, string OrdemTrabalho, string Decisoes, string Compromissos, string Observacoes, int Activo, int EditUser, int EditDep) { bool editado = false; sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "UPDATE empresa_relatorio_reuniao " + "SET empresaid = " + Empresa + "," + " data ='" + Data + "'," + " local ='" + Local + "'," + " presencas ='" + Presencas + "'," + " presencas_empresa ='" + PresencasEmpresa + "'," + " assunto ='" + Assunto + "'," + " ordemtrabalho ='" + OrdemTrabalho + "'," + " decisoes ='" + Decisoes + "'," + " compromissos ='" + Compromissos + "'," + " observacoes ='" + Observacoes + "'," + " activo = " + Activo + "," + " edituser = " + EditUser + "," + " editdep = " + EditDep + "," + " editdata = now() " + "WHERE id=" + Id; editado = sqlInfo.Write(); sqlInfo.closeConnection(); return editado; } } /// /// Observações em formato temporal /// public class Observacoes { /// /// Listagem de todas as observações /// /// ID da empresa /// DataTable public static DataTable Listagem(int Empresa) { DataTable dtInfo = new DataTable(); int offset = Convert.ToInt16(WebConfigurationManager.AppSettings["offset"].ToString()); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT o.id, " + " o.createuser, o.createdep, o.createdata, " + " o.edituser, o.editdep, o.editdata, " + " o.activo, " + " DATE_FORMAT(o.data, '%Y.%m.%d') AS data, " + " o.assunto, o.observacoes, " + " e.id AS empresaid, e.nome AS empresa, " + " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, " + " d.nome AS departamento, d.abreviatura AS departamento_abreviatura " + "FROM empresa e, empresa_observacoes o, " + " colaborador c, departamento d " + "WHERE o.empresaid=e.id " + " AND e.id=" + Empresa + " " + " AND c.id=o.createuser " + " AND d.id=o.createdep " + "ORDER BY o.data DESC"; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); return dtInfo; } /// /// Listagem de todas as observações /// /// Número da página a mostrar /// Id do departameto do colaborador autenticado /// Nível de permissão do colaborador que acede à listagem /// DataTable public static DataTable Listagem(int Pagina, int Departamento, int Permissao) { DataTable dtInfo = new DataTable(); int offset = Convert.ToInt16(WebConfigurationManager.AppSettings["offset"].ToString()); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); if (Permissao <= Intranet.Sistema.Permissoes.Total) { sqlInfo.Query = "SELECT o.id, " + " o.createuser, o.createdep, o.createdata, " + " o.edituser, o.editdep, o.editdata, " + " o.activo, " + " DATE_FORMAT(o.data, '%Y.%m.%d') AS data, " + " o.assunto, o.observacoes, " + " e.id AS empresaid, e.nome AS empresa, " + " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, " + " d.nome AS departamento, d.abreviatura AS departamento_abreviatura " + "FROM empresa e, empresa_observacoes o, " + " colaborador c, departamento d " + "WHERE o.empresaid=e.id " + " AND c.id=o.createuser " + " AND d.id=o.createdep " + "ORDER BY o.data DESC, e.nome " + "LIMIT " + (Pagina * offset) + ", " + offset; } else { sqlInfo.Query = "SELECT o.id, " + " o.createuser, o.createdep, o.createdata, " + " o.edituser, o.editdep, o.editdata, " + " o.activo, " + " DATE_FORMAT(o.data, '%Y.%m.%d') AS data, " + " o.assunto, o.observacoes, " + " e.id AS empresaid, e.nome AS empresa, " + " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, " + " d.nome AS departamento, d.abreviatura AS departamento_abreviatura " + "FROM empresa e, empresa_observacoes o, " + " colaborador c, departamento d " + "WHERE o.empresaid=e.id " + " AND c.id=o.createuser " + " AND d.id=o.createdep " + " AND o.createdep=" + Departamento + " " + "ORDER BY o.data DESC, e.nome " + "LIMIT " + (Pagina * offset) + ", " + offset; } dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); return dtInfo; } /// /// Pesquisa de observações /// /// DataTable public static DataTable Pesquisa(string Pesquisa) { DataTable dtInfo = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT o.id, " + " o.createuser, o.createdep, o.createdata, " + " o.edituser, o.editdep, o.editdata, " + " o.activo, " + " DATE_FORMAT(o.data, '%Y.%m.%d') AS data, " + " o.assunto, o.observacoes, " + " e.id AS empresaid, e.nome AS empresa, " + " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, " + " d.nome AS departamento, d.abreviatura AS departamento_abreviatura, " + " o.*, e.*, d.*, c.* " + "FROM empresa e, empresa_observacoes o, " + " colaborador c, departamento d " + "WHERE o.empresaid=e.id " + " AND c.id=o.createuser " + " AND d.id=o.createdep " + "ORDER BY o.data DESC, e.nome"; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); /* #1 - CONVERTE A PESQUISA NUM ARRAY EM QUE CADA POSIÇÃO CONTEM UM PARALVRA */ string[] _pesquisa = Pesquisa.Split(new char[] { ' ' }); /* #2 - PESQUISA TODAS AS OCURRÊNCIAS DE _pesquisa EM dtInfo. REMOVE DE dtInfo TODAS AS LINHAS QUE NÃO TENHAM PELO MENOS UMA OCURRÊNCIA */ Intranet.Geral.Pesquisa(ref dtInfo, _pesquisa); return dtInfo; } /// /// Mostra o detalhe de uma observação /// /// Id do conteúdo a mostrar /// DataTable public static DataTable Detalhes(int Id) { DataTable dtInfo = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT o.id, " + " o.createuser, o.createdep, o.createdata, " + " o.edituser, o.editdep, o.editdata, " + " o.activo, " + " DATE_FORMAT(o.data, '%Y.%m.%d') AS data, " + " o.assunto, o.observacoes, " + " e.id AS empresaid, e.nome AS empresa, " + " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, " + " d.nome AS departamento, d.abreviatura AS departamento_abreviatura " + "FROM empresa e, empresa_observacoes o, " + " colaborador c, departamento d " + "WHERE o.empresaid=e.id " + " AND c.id=o.createuser " + " AND d.id=o.createdep " + " AND o.id=" + Id; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); return dtInfo; } /// /// Gravar nova observação /// /// Activo/Inactivo (1/0) /// Id de quem cria o conteúdo /// Departamento de quem cria o conteúdo /// True ou False public static Boolean Gravar(int Empresa, string Data, string Assunto, string Observacao, int Activo, int CreateUser, int CreateDep) { bool gravado = false; sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "INSERT INTO empresa_observacoes(empresaid, " + " data, " + " assunto, observacoes, " + " activo, createuser, createdep, createdata) " + "VALUES (" + Empresa + "," + " '" + Data + "'," + " '" + Assunto + "'," + " '" + Observacao + "'," + " " + Activo + " ," + " " + CreateUser + " ," + " " + CreateDep + " ," + " now())"; gravado = sqlInfo.Write(); sqlInfo.closeConnection(); return gravado; } /// /// Editar observação /// /// Id do conteúdo a editar /// Activo/Inactivo (1/0) /// Id de quem cria o conteúdo /// Departamento de quem cria o conteúdo /// True ou False public static Boolean Editar(int Id, int Empresa, string Data, string Assunto, string Observacao, int Activo, int EditUser, int EditDep) { bool editado = false; sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "UPDATE empresa_observacoes " + "SET empresaid = " + Empresa + "," + " data ='" + Data + "'," + " assunto ='" + Assunto + "'," + " observacoes ='" + Observacao + "'," + " activo = " + Activo + "," + " edituser = " + EditUser + "," + " editdep = " + EditDep + "," + " editdata = now() " + "WHERE id=" + Id; editado = sqlInfo.Write(); sqlInfo.closeConnection(); return editado; } } /// /// Comunicações com empresas /// public class Comunicacoes { /// /// Mostra todas as comunicações já criadas /// /// Número da página a mostrar /// DataTable public static DataTable Listagem(int Pagina) { int offset = Convert.ToInt16(WebConfigurationManager.AppSettings["offset"].ToString()); DataTable dtListagem = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT id, " + " createuser, createdep, createdata, " + " edituser, editdep, editdata, " + " activo, " + " titulo, resumo, desenvolvimento, " + " DATE_FORMAT(data_ini, '%Y.%m.%d') AS data_ini, " + " DATE_FORMAT(data_fim, '%Y.%m.%d') AS data_fim, " + " visitas " + "FROM empresa_comunicacoes " + "ORDER BY data_ini DESC " + "LIMIT " + (Pagina * offset) + ", " + offset; dtListagem = sqlInfo.Read(); sqlInfo.closeConnection(); return dtListagem; } /// /// Pesquisa de conteudos /// /// DataTable public static DataTable Pesquisa(string Pesquisa) { DataTable dtInfo = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT id, " + " createuser, createdep, createdata, " + " edituser, editdep, editdata, " + " activo, " + " titulo, resumo, desenvolvimento, " + " DATE_FORMAT(data_ini, '%Y.%m.%d') AS data_ini, " + " DATE_FORMAT(data_fim, '%Y.%m.%d') AS data_fim, " + " visitas " + "FROM empresa_comunicacoes " + "ORDER BY data_ini DESC"; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); /* #1 - CONVERTE A PESQUISA NUM ARRAY EM QUE CADA POSIÇÃO CONTEM UM PARALVRA */ string[] _pesquisa = Pesquisa.Split(new char[] { ' ' }); /* #2 - PESQUISA TODAS AS OCURRÊNCIAS DE _pesquisa EM dtInfo. REMOVE DE dtInfo TODAS AS LINHAS QUE NÃO TENHAM PELO MENOS UMA OCURRÊNCIA */ Intranet.Geral.Pesquisa(ref dtInfo, _pesquisa); return dtInfo; } /// /// Mostra o detalhe de uma comunicação /// /// Id do conteúdo a mostrar /// DataTable public static DataTable Detalhes(int Id) { DataTable dtInfo = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT id, " + " createuser, createdep, createdata, " + " edituser, editdep, editdata, " + " activo, " + " titulo, resumo, desenvolvimento, " + " DATE_FORMAT(data_ini, '%Y.%m.%d') AS data_ini, " + " DATE_FORMAT(data_fim, '%Y.%m.%d') AS data_fim, " + " visitas " + "FROM empresa_comunicacoes " + "WHERE id=" + Id; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); return dtInfo; } /// /// Comunicação actual /// /// ID da última comunicação criada public static int Actual() { DataTable dtListagem = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT id " + "FROM empresa_comunicacoes " + "WHERE activo=1 " + " AND (DATE_FORMAT(data_ini, '%Y.%m.%d')<=DATE_FORMAT(now(), '%Y.%m.%d') OR data_ini='0000.00.00') " + " AND (DATE_FORMAT(data_fim, '%Y.%m.%d')>=DATE_FORMAT(now(), '%Y.%m.%d') OR data_fim='0000.00.00') " + "ORDER BY data_ini DESC"; dtListagem = sqlInfo.Read(); sqlInfo.closeConnection(); if (dtListagem.Rows.Count > 0) { return Convert.ToInt32(dtListagem.Rows[0]["id"].ToString()); } else { return 0; } } /// /// Nova comunicação /// /// Activo/Inactivo (1/0) /// Id de quem cria a comunicação /// Departamento de quem cria a comunicação /// True ou False public static Boolean Gravar(string Titulo, string Data, string Resumo, int Activo, int CreateUser, int CreateDep) { bool gravado = false; sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "INSERT INTO empresa_comunicacoes(titulo, data_ini, resumo, activo, createuser, createdep, createdata) " + "VALUES('" + Titulo + "'," + " '" + Data + "'," + " '" + Resumo + "'," + " " + Activo + " ," + " " + CreateUser + " ," + " " + CreateDep + " ," + " now())"; gravado = sqlInfo.Write(); sqlInfo.closeConnection(); return gravado; } /// /// Editar comunicação /// /// Activo/Inactivo (1/0) /// Id de quem cria a comunicação /// Departamento quem cria a comunicação /// True ou False public static Boolean Editar(int Id, string Titulo, string Data, string Resumo, int Activo, int EditUser, int EditDep) { bool editado = false; sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "UPDATE empresa_comunicacoes " + "SET titulo ='" + Titulo + "'," + " data_ini ='" + Data + "'," + " resumo ='" + Resumo + "'," + " activo = " + Activo + "," + " edituser = " + EditUser + "," + " editdep = " + EditDep + "," + " editdata = now() " + "WHERE id=" + Id; editado = sqlInfo.Write(); sqlInfo.closeConnection(); return editado; } /// /// Registo de comunicações enviadas /// public class Log { /// /// Mostra todos os envios de uma determinada comunicação /// /// ID da comunicação enviada /// DataTable public static DataTable Envios(int Comunicacao) { DataTable dtListagem = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT id, " + " createuser, createdep, createdata, " + " edituser, editdep, editdata, " + " activo, " + " comunicacao, status, " + " DATE_FORMAT(createdata, '%Y.%m.%d %H:%i') AS envio " + "FROM empresa_comunicacoes_envio " + "WHERE comunicacaoid=" + Comunicacao + " " + "ORDER BY createdata DESC"; dtListagem = sqlInfo.Read(); sqlInfo.closeConnection(); return dtListagem; } /// /// Mostra os detalhes do envio de uma comunicação /// /// Id do envio /// DataTable public static DataTable Detalhes(int Envio) { DataTable dtListagem = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT id, " + " createuser, createdep, createdata, " + " edituser, editdep, editdata, " + " activo, " + " comunicacao, status, " + " DATE_FORMAT(createdata, '%Y.%m.%d') AS envio " + "FROM empresa_comunicacoes_envio " + "WHERE id=" + Envio + " " + "ORDER BY createdata DESC"; dtListagem = sqlInfo.Read(); sqlInfo.closeConnection(); return dtListagem; } /// /// Registo de comunicações enviadas /// /// ID da comunicação enviada /// Código fonte da comunicação /// Estado do envio /// Id de quem envia a comunicação /// Departamento quem envia a comunicação /// public static Boolean Adicionar(int Comunicacao, string Html, string Estado, int CreateUser, int CreateDep) { bool gravado = false; sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "INSERT INTO empresa_comunicacoes_envio(comunicacaoid, comunicacao, status, activo, createuser, createdep, createdata) " + "VALUES( " + Comunicacao + " ," + " '" + Html + "'," + " '" + Estado + "'," + " 1," + " " + CreateUser + " ," + " " + CreateDep + " ," + " now())"; gravado = sqlInfo.Write(); sqlInfo.closeConnection(); return gravado; } } /// /// Gestão de conteúdos para cada comunicação /// public class Conteudos { /// /// Listagem de conteúdos de uma detarminada comunicação /// public class Listagem { /// /// Mostra todos os conteúdos de uma determinada comunicação /// /// ID da comunicação /// DataTable public static DataTable Geral(int Comunicacao) { DataTable dtListagem = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT id, " + " createuser, createdep, createdata, " + " edituser, editdep, editdata, " + " activo, " + " local, ordem, titulo, resumo, desenvolvimento, link, imagem, " + " DATE_FORMAT(data_ini, '%Y.%m.%d') AS data_ini, " + " DATE_FORMAT(data_fim, '%Y.%m.%d') AS data_fim, " + " visitas " + "FROM empresa_comunicacoes_conteudo " + "WHERE comunicacaoid=" + Comunicacao + " " + "ORDER BY local, ordem"; dtListagem = sqlInfo.Read(); sqlInfo.closeConnection(); return dtListagem; } /// /// Mostra todos os conteúdos de uma determinada comunicação /// /// ID da comunicação /// Número da página a mostrar /// DataTable public static DataTable Geral(int Comunicacao, int Pagina) { int offset = Convert.ToInt16(WebConfigurationManager.AppSettings["offset"].ToString()); DataTable dtListagem = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT id, " + " createuser, createdep, createdata, " + " edituser, editdep, editdata, " + " activo, " + " local, ordem, titulo, resumo, desenvolvimento, link, imagem, " + " DATE_FORMAT(data_ini, '%Y.%m.%d') AS data_ini, " + " DATE_FORMAT(data_fim, '%Y.%m.%d') AS data_fim, " + " visitas " + "FROM empresa_comunicacoes_conteudo " + "WHERE comunicacaoid=" + Comunicacao + " " + "ORDER BY local, ordem " + "LIMIT " + (Pagina * offset) + ", " + offset; dtListagem = sqlInfo.Read(); sqlInfo.closeConnection(); return dtListagem; } /// /// Mostra todos os conteúdos activos de uma determinada comunicação por área /// /// ID da comunicação /// DataTable public static DataTable Local(int Comunicacao, int Local) { DataTable dtListagem = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT id, " + " createuser, createdep, createdata, " + " edituser, editdep, editdata, " + " activo, " + " local, ordem, titulo, resumo, desenvolvimento, link, imagem, " + " DATE_FORMAT(data_ini, '%Y.%m.%d') AS data_ini, " + " DATE_FORMAT(data_fim, '%Y.%m.%d') AS data_fim, " + " visitas " + "FROM empresa_comunicacoes_conteudo " + "WHERE comunicacaoid=" + Comunicacao + " " + " AND local=" + Local + " " + " AND activo=1 " + "ORDER BY local, ordem"; dtListagem = sqlInfo.Read(); sqlInfo.closeConnection(); return dtListagem; } /// /// Mostra todos os conteúdos de uma determinada comunicação publicada. Não mostra a nostícias que não estejam activas. /// /// ID da comunicação /// DataTable public static DataTable Publicados(int Comunicacao) { DataTable dtListagem = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT id, " + " createuser, createdep, createdata, " + " edituser, editdep, editdata, " + " activo, " + " local, ordem, titulo, resumo, desenvolvimento, link, imagem, " + " DATE_FORMAT(data_ini, '%Y.%m.%d') AS data_ini, " + " DATE_FORMAT(data_fim, '%Y.%m.%d') AS data_fim, " + " visitas " + "FROM empresa_comunicacoes_conteudo " + "WHERE comunicacaoid=" + Comunicacao + " " + " AND activo=1 " + "ORDER BY local, ordem"; dtListagem = sqlInfo.Read(); sqlInfo.closeConnection(); return dtListagem; } /// /// Mostra todos os conteúdos de uma determinada comunicação publicada. Não mostra a nostícias que não estejam activas. /// /// ID da comunicação /// DataTable public static DataTable Publicados(int Comunicacao, int Local) { DataTable dtListagem = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT id, " + " createuser, createdep, createdata, " + " edituser, editdep, editdata, " + " activo, " + " local, ordem, titulo, resumo, desenvolvimento, link, imagem, " + " DATE_FORMAT(data_ini, '%Y.%m.%d') AS data_ini, " + " DATE_FORMAT(data_fim, '%Y.%m.%d') AS data_fim, " + " visitas " + "FROM empresa_comunicacoes_conteudo " + "WHERE comunicacaoid=" + Comunicacao + " " + " AND local='" + Local + "' " + " AND activo=1 " + "ORDER BY local, ordem"; dtListagem = sqlInfo.Read(); sqlInfo.closeConnection(); return dtListagem; } } /// /// Pesquisa de conteudos /// /// ID da comunicação /// DataTable public static DataTable Pesquisa(int Comunicacao, string Pesquisa) { DataTable dtInfo = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT id, " + " createuser, createdep, createdata, " + " edituser, editdep, editdata, " + " activo, " + " local, ordem, titulo, resumo, desenvolvimento, link, imagem, " + " DATE_FORMAT(data_ini, '%Y.%m.%d') AS data_ini, " + " DATE_FORMAT(data_fim, '%Y.%m.%d') AS data_fim, " + " visitas " + "FROM empresa_comunicacoes_conteudo " + "WHERE comunicacaoid=" + Comunicacao + " " + "ORDER BY local, ordem"; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); /* #1 - CONVERTE A PESQUISA NUM ARRAY EM QUE CADA POSIÇÃO CONTEM UM PARALVRA */ string[] _pesquisa = Pesquisa.Split(new char[] { ' ' }); /* #2 - PESQUISA TODAS AS OCURRÊNCIAS DE _pesquisa EM dtInfo. REMOVE DE dtInfo TODAS AS LINHAS QUE NÃO TENHAM PELO MENOS UMA OCURRÊNCIA */ Intranet.Geral.Pesquisa(ref dtInfo, _pesquisa); return dtInfo; } /// /// Mostra o detalhe de uma comunicação /// /// Id do conteúdo a mostrar /// DataTable public static DataTable Detalhes(int Id) { DataTable dtInfo = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT id, " + " createuser, createdep, createdata, " + " edituser, editdep, editdata, " + " activo, " + " local, ordem, titulo, resumo, desenvolvimento, link, imagem, " + " DATE_FORMAT(data_ini, '%Y.%m.%d') AS data_ini, " + " DATE_FORMAT(data_fim, '%Y.%m.%d') AS data_fim, " + " visitas " + "FROM empresa_comunicacoes_conteudo " + "WHERE id=" + Id; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); return dtInfo; } /// /// Novo conteúdo /// /// ID da comunicação /// Localização do conteúdo na comunicação /// Activo/Inactivo (1/0) /// Id de quem cria o conteúdo /// Departamento de cria o conteúdo /// True ou False public static Boolean Gravar(int Comunicacao, string Local, string Titulo, int Ordem, string Inicio, string Fim, string Imagem, string Link, string Desenvolvimento, int Activo, int CreateUser, int CreateDep) { bool gravado = false; sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); // Actualiza todos os conteúdos com ordem superior à ordem inserida sqlInfo.Query = "UPDATE empresa_comunicacoes_conteudo " + "SET ordem=ordem + 1 " + "WHERE ordem>=" + Ordem + " " + " AND comunicacaoid=" + Comunicacao; sqlInfo.Write(); sqlInfo.Query = "INSERT INTO empresa_comunicacoes_conteudo(comunicacaoid, " + " local, titulo, ordem, " + " data_ini, data_fim, " + " imagem, link, resumo, desenvolvimento, " + " activo, " + " createuser, createdep, createdata) " + "VALUES( " + Comunicacao + "," + " '" + Local + "'," + " '" + Titulo + "'," + " " + Ordem + "," + " '" + Inicio + "'," + " '" + Fim + "'," + " '" + Imagem + "'," + " '" + Link + "'," + " ''," + " '" + Desenvolvimento + "'," + " " + Activo + " ," + " " + CreateUser + " ," + " " + CreateDep + " ," + " now())"; gravado = sqlInfo.Write(); sqlInfo.closeConnection(); return gravado; } /// /// Editar conteúdo /// /// ID do conteúdo a editar /// ID da comunicação /// Localização do conteúdo na comunicação /// Activo/Inactivo (1/0) /// Id de quem cria o conteúdo /// Departamento de quem cria o conteúdo /// True ou False public static Boolean Editar(int Id, int Comunicacao, string Local, string Titulo, int Ordem, string Inicio, string Fim, string Imagem, string Link, string Desenvolvimento, int Activo, int EditUser, int EditDep) { bool editado = false; sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "UPDATE empresa_comunicacoes_conteudo " + "SET comunicacaoid = " + Comunicacao + "," + " local ='" + Local + "'," + " titulo ='" + Titulo + "'," + " ordem = " + Ordem + "," + " data_ini ='" + Inicio + "'," + " data_fim ='" + Fim + "'," + " imagem ='" + Imagem + "'," + " link ='" + Link + "'," + " desenvolvimento ='" + Desenvolvimento + "'," + " activo = " + Activo + "," + " edituser = " + EditUser + "," + " editdep = " + EditDep + "," + " editdata =now() " + "WHERE id=" + Id; editado = sqlInfo.Write(); // ACTUALIZA TODAS AS ORDEM DOS CONTEÚDOS ACIMA DESTE sqlInfo.Query = "SELECT i.id AS id, i.local, i.ordem AS ordem " + "FROM empresa_comunicacoes_conteudo i, empresa_comunicacoes_conteudo j " + "WHERE i.ordem>=" + Ordem + " " + " AND i.id<>" + Id + " " + " AND j.id=" + Id + " " + " AND i.comunicacaoid='" + Comunicacao + "' " + " AND i.comunicacaoid=j.comunicacaoid " + "ORDER BY i.ordem"; DataTable dtOrdem = sqlInfo.Read(); if (dtOrdem.Rows.Count > 0) { Ordem += 1; foreach (DataRow _ordem in dtOrdem.Rows) { sqlInfo.Query = "UPDATE empresa_comunicacoes_conteudo " + "SET ordem=" + Ordem + " " + "WHERE id=" + _ordem.ItemArray[0]; Ordem += 1; sqlInfo.Write(); } } sqlInfo.closeConnection(); return editado; } } /// /// Gestão de subscrições /// public class Subscricoes { /// /// Listagem de endereços ACTIVOS que subscreveram a comunicação /// /// Array com todos os endereços activos public static string[] Listagem() { DataTable dtListagem = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT id, " + " createuser, createdep, createdata, " + " edituser, editdep, editdata, " + " activo, " + " email " + "FROM empresa_comunicacoes_subscricao " + "WHERE activo=1 " + "ORDER BY email"; dtListagem = sqlInfo.Read(); sqlInfo.closeConnection(); // ENDEREÇOS SUBSCRITOS E ACTIVOS string[] subscriocoes = new string[] { }; if (dtListagem.Rows.Count > 0) { Array.Resize(ref subscriocoes, dtListagem.Rows.Count); for (int i = 0; i < dtListagem.Rows.Count; i++) { subscriocoes[i] = dtListagem.Rows[i].ItemArray[8].ToString(); } } return subscriocoes; } /// /// Listagem de endereços que subscreveram a comuniccação /// /// Número da página a mostrar /// DataTable public static DataTable Listagem(int Pagina) { int offset = Convert.ToInt16(WebConfigurationManager.AppSettings["offset"].ToString()); DataTable dtListagem = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT id, " + " createuser, createdep, createdata, " + " edituser, editdep, editdata, " + " activo, " + " email " + "FROM empresa_comunicacoes_subscricao " + "ORDER BY email " + "LIMIT " + (Pagina * offset) + ", " + offset; dtListagem = sqlInfo.Read(); sqlInfo.closeConnection(); return dtListagem; } /// /// Pesquisa de subscrições /// /// DataTable public static DataTable Pesquisa(string Pesquisa) { DataTable dtInfo = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); /* sqlInfo.Query = "SELECT id, " + " createuser, createdep, createdata, " + " edituser, editdep, editdata, " + " activo, " + " email " + "FROM empresa_comunicacoes_subscricao " + "ORDER BY email"; */ sqlInfo.Query = "SELECT id, " + " createuser, createdep, createdata, " + " edituser, editdep, editdata, " + " activo, " + " email " + "FROM empresa_comunicacoes_subscricao " + "WHERE email LIKE '%" + Pesquisa + "%' " + "ORDER BY email"; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); /* #1 - CONVERTE A PESQUISA NUM ARRAY EM QUE CADA POSIÇÃO CONTEM UM PARALVRA */ //string[] _pesquisa = Pesquisa.Split(new char[] { ' ' }); /* #2 - PESQUISA TODAS AS OCURRÊNCIAS DE _pesquisa EM dtInfo. REMOVE DE dtInfo TODAS AS LINHAS QUE NÃO TENHAM PELO MENOS UMA OCURRÊNCIA */ //Intranet.Geral.Pesquisa(ref dtInfo, _pesquisa); return dtInfo; } /// /// Mostra o detalhe de um endereço de email subscrito /// /// Id do conteúdo a mostrar /// DataTable public static DataTable Detalhes(int Id) { DataTable dtInfo = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT id, " + " createuser, createdep, createdata, " + " edituser, editdep, editdata, " + " activo, " + " email " + "FROM empresa_comunicacoes_subscricao " + "WHERE id=" + Id; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); return dtInfo; } /// /// Novo email a subscrever a comunicação /// /// Endereço a subscrever /// Activo/Inactivo (1/0) /// Id de quem cria a comunicação /// Departamento de quem cria a comunicação /// True ou False public static Boolean Gravar(string Email, int Activo, int CreateUser, int CreateDep) { bool gravado = false; sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "INSERT INTO empresa_comunicacoes_subscricao(email, activo, createuser, createdep, createdata) " + "VALUES('" + Email + "'," + " " + Activo + " ," + " " + CreateUser + " ," + " " + CreateDep + " ," + " now())"; gravado = sqlInfo.Write(); sqlInfo.closeConnection(); return gravado; } /// /// Editar email subscrito /// /// ID do email subscrito a editar /// Endereço a subscrever /// Activo/Inactivo (1/0) /// Id de quem cria a comunicação /// Departamento de quem cria a comunicação /// True ou False public static Boolean Editar(int Id, string Email, int Activo, int EditUser, int EditDep) { bool editado = false; sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "UPDATE empresa_comunicacoes_subscricao " + "SET email ='" + Email + "'," + " activo = " + Activo + "," + " edituser = " + EditUser + "," + " editdep = " + EditDep + "," + " editdata =now() " + "WHERE id=" + Id; editado = sqlInfo.Write(); sqlInfo.closeConnection(); return editado; } } } } }