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;
}
}
}
}
}