using System; using System.Collections.Generic; using System.Web; using MySQL; using System.Data; using System.Web.Configuration; using System.Web.UI.WebControls; namespace SiteECom { /// /// Catalogo do site /// public class Catalogo { /// /// Familias de artigos /// public class Familias { /// /// Mostra toda a informação de uma determinada familia /// /// Ordem pela qual o conteúdo é mostrado /// DataTable public static DataTable Listagem(string Ordem) { DataTable dtListagem = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT * " + "FROM catalogo_familia " + "ORDER BY " + Ordem; dtListagem = sqlInfo.Read(); sqlInfo.closeConnection(); return dtListagem; } /// /// Mostra toda a informação de uma determinada familia /// /// Ordem pela qual o conteúdo é mostrado /// Número da página a mostrar /// DataTable public static DataTable Listagem(string Ordem, 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, " + " nome, descricao, imagem, " + " DATE_FORMAT(data_ini, '%Y.%m.%d') AS data_ini, " + " DATE_FORMAT(data_fim, '%Y.%m.%d') AS data_fim, " + " visitas " + "FROM catalogo_familia " + "ORDER BY " + Ordem + " " + "LIMIT " + (Pagina * offset) + ", " + offset; dtListagem = sqlInfo.Read(); sqlInfo.closeConnection(); return dtListagem; } /// /// Pesquisa de familias /// /// DataTable public static DataTable Pesquisa(string Ordem, 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, " + " nome, descricao, imagem, " + " DATE_FORMAT(data_ini, '%Y.%m.%d') AS data_ini, " + " DATE_FORMAT(data_fim, '%Y.%m.%d') AS data_fim, " + " visitas " + "FROM catalogo_familia " + "ORDER BY " + 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 familia /// /// 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, " + " nome, descricao, imagem, " + " DATE_FORMAT(data_ini, '%Y.%m.%d') AS data_ini, " + " DATE_FORMAT(data_fim, '%Y.%m.%d') AS data_fim, " + " visitas " + "FROM catalogo_familia " + "WHERE id=" + Id; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); return dtInfo; } /// /// Nova familia /// /// Activo/Inactivo (1/0) /// Id de quem cria o conteúdo /// Empresa de quem cria o conteúdo /// True ou False public static Boolean Gravar(string Tipo, string Familia, string Inicio, string Fim, string Descricao, string Imagem, int Activo, int CreateUser, int CreateDep) { bool gravado = false; sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "INSERT INTO catalogo_familia(nome, descricao, imagem, data_ini, data_fim, activo, createuser, createdep, createdata) " + "VALUES('" + Familia + "/" + Tipo + "'," + " '" + Descricao + "'," + " '" + Imagem + "'," + " '" + Inicio + "'," + " '" + Fim + "'," + " " + Activo + " ," + " " + CreateUser + " ," + " " + CreateDep + " ," + " now())"; gravado = sqlInfo.Write(); sqlInfo.closeConnection(); return gravado; } /// /// Editar familia /// /// Activo/Inactivo (1/0) /// Id de quem cria o conteúdo /// Empresa de quem cria o conteúdo /// True ou False public static Boolean Editar(int Id, string Tipo, string Familia, string Inicio, string Fim, string Descricao, string Imagem, int Activo, int EditUser, int EditDep) { bool editado = false; sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "UPDATE catalogo_familia " + "SET nome ='" + Familia + "/" + Tipo + "'," + " descricao ='" + Descricao + "'," + " imagem ='" + Imagem + "'," + " data_ini ='" + Inicio + "'," + " data_fim ='" + Fim + "'," + " activo = " + Activo + "," + " edituser = " + EditUser + "," + " editdep = " + EditDep + "," + " editdata = now() " + "WHERE id=" + Id; editado = sqlInfo.Write(); sqlInfo.closeConnection(); return editado; } /// /// Artigos /// public class Artigos { /// /// Listagem de todos os Artigos de uma determianda Familia /// /// ID da Familia /// DataTable public static DataTable Listagem(int Familia) { DataTable dtListagem = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT af.id, " + " a.createuser, a.createdep, a.createdata, " + " a.edituser, a.editdep, a.editdata, " + " af.activo, " + " a.nome, a.referencia, " + " a.preco, a.promocao, " + " DATE_FORMAT(a.promocao_data_ini, '%Y.%m.%d') AS promocao_data_ini, " + " DATE_FORMAT(a.promocao_data_fim, '%Y.%m.%d') AS promocao_data_fim, " + " a.peso, a.dimensao, " + " a.descricao, a.imagem, " + " DATE_FORMAT(a.data_ini, '%Y.%m.%d') AS data_ini, " + " DATE_FORMAT(a.data_fim, '%Y.%m.%d') AS data_fim, " + " a.visitas " + "FROM catalogo_artigo a, catalogo_familia_artigo af " + "WHERE af.familiaid=" + Familia + " " + " AND af.artigoid=a.id " + "ORDER BY a.nome"; dtListagem = sqlInfo.Read(); sqlInfo.closeConnection(); return dtListagem; } /// /// Atribuição de artigos a familias /// /// Id do artigo /// Id do familia /// Id de quem cria o conteúdo /// Departamento de quem cria o conteúdo /// Retorna uma string com os campos da familia adicionada ao artigo [id, nome] public static string Adicionar(int Artigo, int Familia, int CreateUser, int CreateDep) { string _artigo; DataTable _artigo_adicionado; sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); // Verificar se o Artigo já existe nesta Familia sqlInfo.Query = "SELECT * " + "FROM catalogo_familia_artigo " + "WHERE familiaid=" + Familia + " " + " AND artigoid=" + Artigo; if (sqlInfo.Read().Rows.Count == 0) { sqlInfo.Query = "INSERT INTO catalogo_familia_artigo(artigoid, familiaid, activo, createuser, createdep, createdata) " + "VALUES (" + Artigo + "," + " " + Familia + "," + " 1," + " " + CreateUser + "," + " " + CreateDep + "," + " now())"; sqlInfo.Write(); // Verificar dados inseridos sqlInfo.Query = "SELECT af.id, a.nome " + "FROM catalogo_familia_artigo af, catalogo_artigo a " + "WHERE af.artigoid=a.id " + " AND af.artigoid=" + Artigo + " " + " AND af.familiaid=" + Familia; _artigo_adicionado = sqlInfo.Read(); if (_artigo_adicionado.Rows.Count > 0) { _artigo = _artigo_adicionado.Rows[0].ItemArray[0].ToString() + "\\s" + _artigo_adicionado.Rows[0].ItemArray[1].ToString(); } else { _artigo = ""; } } else { // Artigo já existe na Familia _artigo = ""; } return _artigo; } } } /// /// Artigos /// public class Artigos { /// /// Mostra toda a informação de um determinado artigo /// /// Ordem pela qual o conteúdo é mostrado /// DataTable public static DataTable Listagem(string Ordem) { DataTable dtListagem = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT id, " + " createuser, createdep, createdata, " + " edituser, editdep, editdata, " + " activo, " + " nome, referencia, " + " preco, promocao, " + " DATE_FORMAT(promocao_data_ini, '%Y.%m.%d') AS promocao_data_ini, " + " DATE_FORMAT(promocao_data_fim, '%Y.%m.%d') AS promocao_data_fim, " + " peso, dimensao, " + " descricao, imagem, " + " DATE_FORMAT(data_ini, '%Y.%m.%d') AS data_ini, " + " DATE_FORMAT(data_fim, '%Y.%m.%d') AS data_fim, " + " visitas " + "FROM catalogo_artigo " + "ORDER BY " + Ordem; dtListagem = sqlInfo.Read(); sqlInfo.closeConnection(); return dtListagem; } /// /// Mostra toda a informação de um determinado artigo /// /// Ordem pela qual o conteúdo é mostrado /// Número da página a mostrar /// DataTable public static DataTable Listagem(string Ordem, 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, " + " nome, referencia, " + " preco, promocao, " + " DATE_FORMAT(promocao_data_ini, '%Y.%m.%d') AS promocao_data_ini, " + " DATE_FORMAT(promocao_data_fim, '%Y.%m.%d') AS promocao_data_fim, " + " peso, dimensao, " + " descricao, imagem, " + " DATE_FORMAT(data_ini, '%Y.%m.%d') AS data_ini, " + " DATE_FORMAT(data_fim, '%Y.%m.%d') AS data_fim, " + " visitas " + "FROM catalogo_artigo " + "ORDER BY " + Ordem + " " + "LIMIT " + (Pagina * offset) + ", " + offset; dtListagem = sqlInfo.Read(); sqlInfo.closeConnection(); return dtListagem; } /// /// Pesquisa de artigos /// /// DataTable public static DataTable Pesquisa(string Ordem, 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, " + " nome, referencia, " + " preco, promocao, " + " DATE_FORMAT(promocao_data_ini, '%Y.%m.%d') AS promocao_data_ini, " + " DATE_FORMAT(promocao_data_fim, '%Y.%m.%d') AS promocao_data_fim, " + " peso, dimensao, " + " descricao, imagem, " + " DATE_FORMAT(data_ini, '%Y.%m.%d') AS data_ini, " + " DATE_FORMAT(data_fim, '%Y.%m.%d') AS data_fim, " + " visitas " + "FROM catalogo_artigo " + "ORDER BY " + 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 um artigo /// /// 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, " + " nome, referencia, " + " preco, iva, promocao, " + " DATE_FORMAT(promocao_data_ini, '%Y.%m.%d') AS promocao_data_ini, " + " DATE_FORMAT(promocao_data_fim, '%Y.%m.%d') AS promocao_data_fim, " + " peso, dimensao, " + " descricao, imagem, " + " DATE_FORMAT(data_ini, '%Y.%m.%d') AS data_ini, " + " DATE_FORMAT(data_fim, '%Y.%m.%d') AS data_fim, " + " visitas " + "FROM catalogo_artigo " + "WHERE id=" + Id; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); return dtInfo; } /// /// Novo artigo /// /// Activo/Inactivo (1/0) /// Id de quem cria o conteúdo /// Empresa de quem cria o conteúdo /// True ou False public static Boolean Gravar(string Artigo, string Referencia, decimal Preco, decimal IVA, decimal Promocao, string Promocao_Ini, string Promocao_Fim, decimal Peso, string Dimensao, string Descricao, string Imagem, string Inicio, string Fim, int Activo, int CreateUser, int CreateDep) { bool gravado = false; sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "INSERT INTO catalogo_artigo(nome, referencia, preco, iva, " + " promocao, promocao_data_ini, promocao_data_fim, " + " peso, dimensao, descricao, imagem, data_ini, data_fim, " + " activo, createuser, createdep, createdata) " + "VALUES('" + Artigo + "'," + " '" + Referencia + "'," + " '" + Preco.ToString().Replace(",", ".") + "'," + " '" + IVA.ToString().Replace(",", ".") + "'," + " '" + Promocao.ToString().Replace(",", ".") + "'," + " '" + Promocao_Ini + "'," + " '" + Promocao_Fim + "'," + " '" + Peso.ToString().Replace(",", ".") + "'," + " '" + Dimensao + "'," + " '" + Descricao + "'," + " '" + Imagem + "'," + " '" + Inicio + "'," + " '" + Fim + "'," + " " + Activo + " ," + " " + CreateUser + " ," + " " + CreateDep + " ," + " now())"; gravado = sqlInfo.Write(); sqlInfo.closeConnection(); return gravado; } /// /// Editar artigo /// /// Activo/Inactivo (1/0) /// Id de quem cria o conteúdo /// Empresa de quem cria o conteúdo /// True ou False public static Boolean Editar(int Id, string Artigo, string Referencia, decimal Preco, decimal IVA, decimal Promocao, string Promocao_Ini, string Promocao_Fim, decimal Peso, string Dimensao, string Descricao, string Imagem, string Inicio, string Fim, int Activo, int EditUser, int EditDep) { bool editado = false; sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "UPDATE catalogo_artigo " + "SET nome ='" + Artigo + "'," + " referencia ='" + Referencia + "'," + " preco ='" + Preco.ToString().Replace(",", ".") + "'," + " iva ='" + IVA.ToString().Replace(",", ".") + "'," + " promocao ='" + Promocao.ToString().Replace(",", ".") + "'," + " promocao_data_ini ='" + Promocao_Ini + "'," + " promocao_data_fim ='" + Promocao_Fim + "'," + " peso ='" + Peso.ToString().Replace(",", ".") + "'," + " dimensao ='" + Dimensao + "'," + " descricao ='" + Descricao + "'," + " imagem ='" + Imagem + "'," + " data_ini ='" + Inicio + "'," + " data_fim ='" + Fim + "'," + " activo = " + Activo + "," + " edituser = " + EditUser + "," + " editdep = " + EditDep + "," + " editdata = now() " + "WHERE id=" + Id; editado = sqlInfo.Write(); sqlInfo.closeConnection(); return editado; } /// /// Familias /// public class Familias { /// /// Listagem de todas as Familias a que pertence o Artigo /// /// ID do Artigo /// DataTable public static DataTable Listagem(int Artigo) { DataTable dtListagem = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT af.id, " + " f.createuser, f.createdep, f.createdata, " + " f.edituser, f.editdep, f.editdata, " + " af.activo, " + " f.nome, f.descricao, f.imagem, " + " DATE_FORMAT(f.data_ini, '%Y.%m.%d') AS data_ini, " + " DATE_FORMAT(f.data_fim, '%Y.%m.%d') AS data_fim, " + " f.visitas " + "FROM catalogo_familia f, catalogo_familia_artigo af " + "WHERE af.artigoid=" + Artigo + " " + " AND af.familiaid=f.id " + "ORDER BY f.nome"; dtListagem = sqlInfo.Read(); sqlInfo.closeConnection(); return dtListagem; } /// /// Atribuição de artigos a familias /// /// Id do artigo /// Id do familia /// Id de quem cria o conteúdo /// Departamento de quem cria o conteúdo /// Retorna uma string com os campos da familia adicionada ao artigo [id, nome] public static string Adicionar(int Artigo, int Familia, int CreateUser, int CreateDep) { string _familia; DataTable _familia_adicionado; sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); // Verificar se o Artigo já existe nesta Familia sqlInfo.Query = "SELECT * " + "FROM catalogo_familia_artigo " + "WHERE familiaid=" + Familia + " " + " AND artigoid=" + Artigo; if (sqlInfo.Read().Rows.Count == 0) { sqlInfo.Query = "INSERT INTO catalogo_familia_artigo(artigoid, familiaid, activo, createuser, createdep, createdata) " + "VALUES (" + Artigo + "," + " " + Familia + "," + " 1," + " " + CreateUser + "," + " " + CreateDep + "," + " now())"; sqlInfo.Write(); // Verificar dados inseridos sqlInfo.Query = "SELECT af.id, f.nome " + "FROM catalogo_familia_artigo af, catalogo_familia f " + "WHERE af.familiaid=f.id " + " AND af.artigoid=" + Artigo + " " + " AND af.familiaid=" + Familia; _familia_adicionado = sqlInfo.Read(); if (_familia_adicionado.Rows.Count > 0) { _familia = _familia_adicionado.Rows[0].ItemArray[0].ToString() + "\\s" + _familia_adicionado.Rows[0].ItemArray[1].ToString(); } else { _familia = ""; } } else { // Artigo já existe na Familia _familia = ""; } return _familia; } } } } }