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 { /// /// Requisições /// public class Requisicoes { /// /// Requisição de viaturas /// public class Viaturas { /// /// Listagem de requisições ainda activas e/ou com KM's por preencher /// /// 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 rv.id, " + " rv.createuser, rv.createdep, rv.createdata, " + " rv.edituser, rv.editdep, rv.editdata, " + " rv.activo, " + " DATE_FORMAT(rv.data_ini, '%Y.%m.%d') AS data, " + " DATE_FORMAT(rv.data_ini, '%H:%i') AS hora_ini, " + " DATE_FORMAT(rv.data_fim, '%H:%i') AS hora_fim, " + " rv.destino, rv.descricao, " + " v.marca, v.modelo, v.matricula, " + " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, " + " d.nome AS departamento, d.abreviatura AS departamento_abreviatura, " + " IF(((TO_DAYS(rv.data_ini)-TO_DAYS(rv.createdata)) * 24 * 60 * 60) + (TIME_TO_SEC(rv.data_ini) - TIME_TO_SEC(rv.createdata))>86400, '', 'Vermelho') AS CssClass " + "FROM requisicao_viatura rv LEFT OUTER JOIN viatura v ON rv.viaturaid=v.id, " + " colaborador c, departamento d " + "WHERE c.id=rv.createuser " + " AND d.id=rv.createdep " + " AND (DATE_FORMAT(rv.data_fim, '%Y.%m.%d %H:%i')>DATE_FORMAT(now(), '%Y.%m.%d %H:%i') " + " OR (rv.km_ini=0 " + " AND rv.km_fim=0)) " + "ORDER BY rv.data_ini DESC, rv.data_fim DESC, rv.destino " + "LIMIT " + (Pagina * offset) + ", " + offset; //AND rv.activo=1 dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); return dtInfo; } /// /// Retorna todas as requisições num determinado mês. /// /// Ano da actividade /// Mês da actividade /// /// Retorna todas as requisições num detarminado mês. /// public static DataTable Listagem(int Ano, int Mes) { DataTable dtInfo = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT rv.id, " + " rv.createuser, rv.createdep, rv.createdata, " + " rv.edituser, rv.editdep, rv.editdata, " + " rv.activo, " + " DATE_FORMAT(rv.data_ini, '%Y.%m.%d') AS data, " + " DATE_FORMAT(rv.data_ini, '%H:%i') AS hora_ini, " + " DATE_FORMAT(rv.data_fim, '%H:%i') AS hora_fim, " + " rv.destino, rv.descricao, " + " v.marca, v.modelo, v.matricula, " + " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, " + " d.nome AS departamento, d.abreviatura AS departamento_abreviatura, " + " IF(((TO_DAYS(rv.data_ini)-TO_DAYS(rv.createdata)) * 24 * 60 * 60) + (TIME_TO_SEC(rv.data_ini) - TIME_TO_SEC(rv.createdata))>86400, '', 'Vermelho') AS CssClass " + "FROM requisicao_viatura rv LEFT OUTER JOIN viatura v ON rv.viaturaid=v.id, " + " colaborador c, departamento d " + "WHERE c.id=rv.createuser " + " AND d.id=rv.createdep " + " AND DATE_FORMAT(rv.data_ini, '%Y.%m')=DATE_FORMAT('" + Ano + "." + Mes + ".1', '%Y.%m') " + " AND rv.activo=1 " + "ORDER BY rv.data_ini, rv.data_fim, rv.destino"; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); return dtInfo; } /// /// Retorna todas as requisições num detarminado dia. /// /// Ano da actividade /// Mês da actividade /// Dia da actividade /// /// Retorna todas as requisições num detarminado dia. /// public static DataTable Listagem(int Ano, int Mes, int Dia) { DataTable dtInfo = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT rv.id, " + " rv.createuser, rv.createdep, rv.createdata, " + " rv.edituser, rv.editdep, rv.editdata, " + " rv.activo, " + " DATE_FORMAT(rv.data_ini, '%Y.%m.%d') AS data, " + " DATE_FORMAT(rv.data_ini, '%H:%i') AS hora_ini, " + " DATE_FORMAT(rv.data_fim, '%H:%i') AS hora_fim, " + " rv.destino, rv.descricao, " + " v.marca, v.modelo, v.matricula, " + " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, " + " d.nome AS departamento, d.abreviatura AS departamento_abreviatura, " + " IF(((TO_DAYS(rv.data_ini)-TO_DAYS(rv.createdata)) * 24 * 60 * 60) + (TIME_TO_SEC(rv.data_ini) - TIME_TO_SEC(rv.createdata))>86400, '', 'Vermelho') AS CssClass " + "FROM requisicao_viatura rv LEFT OUTER JOIN viatura v ON rv.viaturaid=v.id, " + " colaborador c, departamento d " + "WHERE c.id=rv.createuser " + " AND d.id=rv.createdep " + " AND DATE_FORMAT(rv.data_ini, '%Y.%c.%e')=DATE_FORMAT('" + Ano + "." + Mes + "." + Dia + "', '%Y.%c.%e') " + " AND rv.activo=1 " + "ORDER BY rv.data_ini, rv.data_fim, rv.destino"; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); return dtInfo; } /// /// Pesquisa de requisições ainda activas e/ou com KM's por preencher /// /// DataTable public static DataTable Pesquisa(string Pesquisa) { DataTable dtInfo = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT rv.id, " + " rv.createuser, rv.createdep, rv.createdata, " + " rv.edituser, rv.editdep, rv.editdata, " + " rv.activo, " + " DATE_FORMAT(rv.data_ini, '%Y.%m.%d') AS data, " + " DATE_FORMAT(rv.data_ini, '%H:%i') AS hora_ini, " + " DATE_FORMAT(rv.data_fim, '%H:%i') AS hora_fim, " + " rv.destino, rv.descricao, " + " v.marca, v.modelo, v.matricula, " + " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, " + " d.nome AS departamento, d.abreviatura AS departamento_abreviatura, " + " IF(((TO_DAYS(rv.data_ini)-TO_DAYS(rv.createdata)) * 24 * 60 * 60) + (TIME_TO_SEC(rv.data_ini) - TIME_TO_SEC(rv.createdata))>86400, '', 'Vermelho') AS CssClass, " + " c.*, d.*, v.*, rv.* " + "FROM requisicao_viatura rv LEFT OUTER JOIN viatura v ON rv.viaturaid=v.id, " + " colaborador c, departamento d " + "WHERE c.id=rv.createuser " + " AND d.id=rv.createdep " + " AND (DATE_FORMAT(rv.data_fim, '%Y.%m.%d %H:%i')>DATE_FORMAT(now(), '%Y.%m.%d %H:%i') " + " OR (rv.km_ini=0 " + " AND rv.km_fim=0 " + " AND rv.activo=1)) " + "ORDER BY rv.data_ini, rv.data_fim, rv.destino"; 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 requisiçã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 rv.id, " + " rv.createuser, rv.createdep, rv.createdata, " + " rv.edituser, rv.editdep, rv.editdata, " + " rv.activo, " + " DATE_FORMAT(rv.data_ini, '%Y.%m.%d %H:%i') AS data_ini, " + " DATE_FORMAT(rv.data_fim, '%Y.%m.%d %H:%i') AS data_fim, " + " rv.destino, rv.descricao, " + " v.id AS viaturaid, v.marca, v.modelo, v.matricula, " + " rv.km_ini, rv.km_fim, rv.litros, rv.anomalias, " + " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, " + " d.nome AS departamento, d.abreviatura AS departamento_abreviatura " + "FROM requisicao_viatura rv LEFT OUTER JOIN viatura v ON rv.viaturaid=v.id, " + " colaborador c, departamento d " + "WHERE rv.id=" + Id + " " + " AND c.id=rv.createuser " + " AND d.id=rv.createdep"; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); return dtInfo; } /// /// Nova requisição /// /// Destino da requisição /// Data e hora de início /// Data e hora de fim /// Descrição do evento /// 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 Destino, string Inicio, string Fim, string Descricao, int Activo, int CreateUser, int CreateDep) { bool gravado = false; sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "INSERT INTO requisicao_viatura(destino, data_ini, data_fim, descricao, activo, createuser, createdep, createdata) " + "VALUES ('" + Destino + "'," + " '" + Inicio + "'," + " '" + Fim + "'," + " '" + Descricao + "'," + " " + Activo + " ," + " " + CreateUser + " ," + " " + CreateDep + " ," + " now())"; gravado = sqlInfo.Write(); sqlInfo.closeConnection(); return gravado; } /// /// Editar requisição /// /// Id do conteúdo a editar /// Destino da requisição /// Data e hora de início /// Data e hora de fim /// Descrição do evento /// 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 Destino, string Inicio, string Fim, string Descricao, int Activo, int EditUser, int EditDep) { bool editado = false; sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "UPDATE requisicao_viatura " + "SET viaturaid=0," + " destino='" + Destino + "'," + " data_ini='" + Inicio + "'," + " data_fim='" + Fim + "'," + " descricao='" + Descricao + "'," + " activo=" + Activo + "," + " edituser=" + EditUser + "," + " editdep=" + EditDep + "," + " editdata=now() " + "WHERE id=" + Id; editado = sqlInfo.Write(); sqlInfo.closeConnection(); return editado; } /// /// Atribui viatura a uma requisição /// /// Id da requisição /// Id da viatura /// Id de quem cria o conteúdo /// Departamento de quem cria o conteúdo /// True ou False public static Boolean Atribuir(int Requisicao, int Viatura, int EditUser, int EditDep) { bool editado = false; sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "UPDATE requisicao_viatura " + "SET viaturaid=" + Viatura + "," + " edituser=" + EditUser + "," + " editdep=" + EditDep + "," + " editdata=now() " + "WHERE id=" + Requisicao; editado = sqlInfo.Write(); sqlInfo.closeConnection(); return editado; } /// /// Adiciona os Km's à requisição (km's, litros e anomalias). /// /// Id da requisição /// Id da viatura (para verificação dos KM's da última requisição) /// KM's à saída /// KM's à chegada /// Quantidade de listros no abastecimento /// Anomalidas detectadas /// Id de quem cria o conteúdo /// Departamento de quem cria o conteúdo /// True ou False public static int KM(int Requisicao, int Viatura, int KM_Ini, int KM_Fim, decimal Litros, string Anomalias, int EditUser, int EditDep) { /* STATUS * 0: Inserção OK * 1: ERRO - KM's à saída inferiores aos KM's à chegada da última requisição * 2: ERRO - Erro de inserção */ int editado = 0; int km = 0; sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); /* VERIFICAR SE OS KM's À SAÍDA SÃO SUPERIORES AOS KM's À CHEGADA DA ÚLTIMA REQUISIÇÃO */ DataTable dtDetalhes = Requisicoes.Viaturas.Detalhes(Requisicao); sqlInfo.Query = "SELECT MAX(vr.km_fim) AS km_fim " + "FROM requisicao_viatura vr LEFT OUTER JOIN requisicao_viatura v ON v.id=vr.id " + "WHERE vr.viaturaid=" + Viatura + " " + " AND vr.data_ini<'" + dtDetalhes.Rows[0].ItemArray[8].ToString() + " " + dtDetalhes.Rows[0].ItemArray[9].ToString() + "'"; dtDetalhes = sqlInfo.Read(); if (dtDetalhes.Rows[0].ItemArray[0].ToString() != "") { km = Convert.ToInt16(dtDetalhes.Rows[0].ItemArray[0].ToString()); } if (km > KM_Ini) { // KM's À SAÍDA SÃO INFERIORES AOS KM's À CHEGADA DA ÚLTIMA REQUISIÇÃO editado = 1; } else { // ADICIONAR KM's À REQUISIÇÃO sqlInfo.Query = "UPDATE requisicao_viatura " + "SET km_ini=" + KM_Ini + "," + " km_fim=" + KM_Fim + "," + " litros='" + Litros.ToString().Replace(",", ".") + "'," + " anomalias='" + Anomalias + "'," + " edituser=" + EditUser + "," + " editdep=" + EditDep + "," + " editdata=now() " + "WHERE id=" + Requisicao; if (!sqlInfo.Write()) { editado = 2; } sqlInfo.closeConnection(); } return editado; } /// /// Listagem de todas as viaturas activas /// /// DataTable public static DataTable Activas() { DataTable dtInfo = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT * " + "FROM viatura " + "WHERE activo=1 " + "ORDER BY marca, modelo, matricula"; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); return dtInfo; } } /// /// Requisição de economato /// public class Economato { public class Listagem { /// /// Listagem de requisições de economato /// /// Número da página a mostrar /// DataTable public static DataTable Requisicao(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 re.id, " + " re.createuser, re.createdep, re.createdata, " + " re.edituser, re.editdep, re.editdata, " + " re.activo, " + " DATE_FORMAT(re.createdata, '%Y.%m.%d') AS data, " + " re.numero, re.descricao, " + " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, " + " d.nome AS departamento, d.abreviatura AS departamento_abreviatura " + "FROM requisicao_economato re, " + " colaborador c, departamento d " + "WHERE c.id=re.createuser " + " AND d.id=re.createdep " + "ORDER BY re.createdata DESC " + "LIMIT " + (Pagina * offset) + ", " + offset; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); return dtInfo; } /// /// Retorna todas as requisições num determinado mês. /// /// Ano da actividade /// Mês da actividade /// /// Retorna todas as requisições num detarminado mês. /// public static DataTable Requisicao(int Ano, int Mes) { DataTable dtInfo = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT re.id, " + " re.createuser, re.createdep, re.createdata, " + " re.edituser, re.editdep, re.editdata, " + " re.activo, " + " DATE_FORMAT(re.createdata, '%Y.%m.%d') AS data, " + " re.numero, re.descricao, " + " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, " + " d.nome AS departamento, d.abreviatura AS departamento_abreviatura " + "FROM requisicao_economato re, " + " colaborador c, departamento d " + "WHERE c.id=re.createuser " + " AND d.id=re.createdep " + " AND DATE_FORMAT(re.createdata, '%Y.%m')=DATE_FORMAT('" + Ano + "." + Mes + ".1', '%Y.%m') " + "ORDER BY re.createdata DESC"; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); return dtInfo; } /// /// Retorna todas as requisições num detarminado dia. /// /// Ano da actividade /// Mês da actividade /// Dia da actividade /// /// Retorna todas as requisições num detarminado dia. /// public static DataTable Requisicao(int Ano, int Mes, int Dia) { DataTable dtInfo = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT re.id, " + " re.createuser, re.createdep, re.createdata, " + " re.edituser, re.editdep, re.editdata, " + " re.activo, " + " DATE_FORMAT(re.createdata, '%Y.%m.%d') AS data, " + " re.numero, re.descricao, " + " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, " + " d.nome AS departamento, d.abreviatura AS departamento_abreviatura " + "FROM requisicao_economato re, " + " colaborador c, departamento d " + "WHERE c.id=re.createuser " + " AND d.id=re.createdep " + " AND DATE_FORMAT(re.data_ini, '%Y.%c.%e')=DATE_FORMAT('" + Ano + "." + Mes + "." + Dia + "', '%Y.%c.%e') " + "ORDER BY re.createdata DESC"; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); return dtInfo; } /// /// Material existênte para requisição /// /// DataTable public static DataTable Material() { DataTable dtInfo = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT * " + "FROM economato " + "WHERE activo=1 " + "ORDER BY categoria, nome"; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); return dtInfo; } /// /// Material de uma determinada requisição de economato /// /// ID da requisição de economato /// DataTable public static DataTable Material(int Requisicao) { DataTable dtInfo = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT m.id, " + " m.requisicaoid, " + " e.categoria, m.materialid, m.material, " + " m.quantidade, " + " m.activo " + "FROM requisicao_economato_material m LEFT OUTER JOIN economato e ON m.materialid=e.id " + "WHERE m.requisicaoid=" + Requisicao + " " + "ORDER BY e.categoria, m.material, m.quantidade"; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); return dtInfo; } } public class Pesquisa { /// /// Pesquisa de requisições de economato /// /// DataTable public static DataTable Requisicao(string Pesquisa) { DataTable dtInfo = new DataTable(); int offset = Convert.ToInt16(WebConfigurationManager.AppSettings["offset"].ToString()); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT re.id, " + " re.createuser, re.createdep, re.createdata, " + " re.edituser, re.editdep, re.editdata, " + " re.activo, " + " DATE_FORMAT(re.createdata, '%Y.%m.%d') AS data, " + " re.numero, re.descricao, " + " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, " + " d.nome AS departamento, d.abreviatura AS departamento_abreviatura, " + " c.*, d.*, re.*, rem.* " + "FROM colaborador c, departamento d, " + " requisicao_economato re LEFT OUTER JOIN requisicao_economato_material rem ON rem.requisicaoid=re.id " + "WHERE c.id=re.createuser " + " AND d.id=re.createdep " + "ORDER BY re.createdata 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; } } public class Detalhes { /// /// Mostra o detalhe de uma requisição /// /// Id do conteúdo a mostrar /// DataTable public static DataTable Requisicao(int Id) { DataTable dtInfo = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT re.id, " + " re.createuser, re.createdep, re.createdata, " + " re.edituser, re.editdep, re.editdata, " + " re.activo, " + " DATE_FORMAT(re.createdata, '%Y.%m.%d') AS data, " + " re.numero, re.descricao, " + " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, " + " d.nome AS departamento, d.abreviatura AS departamento_abreviatura " + "FROM requisicao_economato re, " + " colaborador c, departamento d " + "WHERE re.id=" + Id + " " + " AND c.id=re.createuser " + " AND d.id=re.createdep " + "ORDER BY re.createdata"; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); return dtInfo; } } public class Gravar { /// /// Nova requisição /// /// Descrição do evento /// Activo/Inactivo (1/0) /// Id de quem cria o conteúdo /// Departamento de quem cria o conteúdo /// True ou False public static Boolean Requisicao(string Descricao, int Activo, int CreateUser, int CreateDep) { bool gravado = false; int numero = 0; sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); // Verificar qual o último pedido de facturação sqlInfo.Query = "SELECT MAX(numero) " + "FROM requisicao_economato " + "WHERE DATE_FORMAT(createdata, '%Y')='" + DateTime.Now.Year + "'"; DataTable dtMaxPedido = sqlInfo.Read(); if (dtMaxPedido.Rows[0].ItemArray[0].ToString() == "") { numero = 1; } else { numero = Convert.ToInt16(dtMaxPedido.Rows[0].ItemArray[0].ToString()) + 1; } sqlInfo.Query = "INSERT INTO requisicao_economato(numero, descricao, activo, createuser, createdep, createdata) " + "VALUES (" + numero + " ," + " '" + Descricao + "' ," + " " + Activo + " ," + " " + CreateUser + " ," + " " + CreateDep + " ," + " now())"; gravado = sqlInfo.Write(); sqlInfo.closeConnection(); return gravado; } /// /// Nova requisição /// /// ID da requisição de economato /// Activo/Inactivo (1/0) /// Id de quem cria o conteúdo /// Departamento de quem cria o conteúdo /// Retorna uma string com os campos da material requisitado [id, categoria, materialid, material, quantidade] public static string Material(int Requisicao, int MaterialID, string Material, decimal Quantidade, int Activo, int CreateUser, int CreateDep) { string _material; DataTable _material_adicionada; sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "INSERT INTO requisicao_economato_material(requisicaoid, materialid, material, quantidade, activo, createuser, createdep, createdata) " + "VALUES (" + Requisicao + "," + " " + MaterialID + "," + " '" + Material + "'," + " '" + Quantidade.ToString().Replace(",", ".") + "'," + " 1," + " " + CreateUser + "," + " " + CreateDep + "," + " now())"; sqlInfo.Write(); // Verificar dados inseridos sqlInfo.Query = "SELECT m.id, e.categoria, m.materialid, m.material, m.quantidade " + "FROM requisicao_economato_material m LEFT OUTER JOIN economato e ON m.materialid=e.id " + "WHERE m.requisicaoid=" + Requisicao + " " + " AND m.materialid=" + MaterialID + " " + " AND m.material='" + Material + "' " + " AND m.quantidade='" + Quantidade.ToString().Replace(",", ".") + "' " + " AND m.quantidade='" + Quantidade.ToString().Replace(".", ",") + "'"; _material_adicionada = sqlInfo.Read(); if (_material_adicionada.Rows.Count > 0) { _material = _material_adicionada.Rows[0]["id"].ToString() + "\\s" + _material_adicionada.Rows[0]["categoria"].ToString() + "\\s" + _material_adicionada.Rows[0]["materialid"].ToString() + "\\s" + _material_adicionada.Rows[0]["material"].ToString() + "\\s" + _material_adicionada.Rows[0]["quantidade"].ToString(); } else { _material = ""; } return _material; } } public class Editar { /// /// Editar requisição /// /// Id do conteúdo a editar /// Descrição do evento /// Activo/Inactivo (1/0) /// Id de quem cria o conteúdo /// Departamento de quem cria o conteúdo /// True ou False public static Boolean Requisicao(int Id, string Descricao, int Activo, int EditUser, int EditDep) { bool editado = false; sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "UPDATE requisicao_economato " + "SET descricao='" + Descricao + "'," + " activo=" + Activo + "," + " edituser=" + EditUser + "," + " editdep=" + EditDep + "," + " editdata=now() " + "WHERE id=" + Id; editado = sqlInfo.Write(); sqlInfo.closeConnection(); return editado; } } } /// /// Requisição de edifícios, salas, etc. /// public class Espacos { /// /// Listagem de requisições ainda por terminarem /// /// 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 r.id, " + " r.createuser, r.createdep, r.createdata, " + " r.edituser, r.editdep, r.editdata, " + " r.activo, " + " DATE_FORMAT(r.data_ini, '%Y.%m.%d %H:%i') AS data_ini, " + " DATE_FORMAT(r.data_fim, '%Y.%m.%d %H:%i') AS data_fim, " + " r.espaco, r.actividade, r.descricao, " + " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, " + " d.nome AS departamento, d.abreviatura AS departamento_abreviatura " + "FROM requisicao_salas r, colaborador c, departamento d " + "WHERE c.id=r.createuser " + " AND d.id=r.createdep " + " AND DATE_FORMAT(r.data_fim, '%Y.%m.%d %H:%i')>DATE_FORMAT(now(), '%Y.%m.%d %H:%i') " + "ORDER BY r.data_ini, r.data_fim, r.espaco, r.actividade " + "LIMIT " + (Pagina * offset) + ", " + offset; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); return dtInfo; } /// /// Retorna todas as requisições num detarminado mês. /// /// Ano da actividade /// Mês da actividade /// /// Retorna todas as requisições num detarminado mês. /// public static DataTable Listagem(int Ano, int Mes) { 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_ini, '%Y.%m.%d %H:%i') AS data_ini, " + " DATE_FORMAT(r.data_fim, '%Y.%m.%d %H:%i') AS data_fim, " + " r.espaco, r.actividade, r.descricao, " + " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, " + " d.nome AS departamento, d.abreviatura AS departamento_abreviatura " + "FROM requisicao_salas r, colaborador c, departamento d " + "WHERE c.id=r.createuser " + " AND d.id=r.createdep " + " AND DATE_FORMAT(r.data_ini, '%Y.%m')=DATE_FORMAT('" + Ano + "." + Mes + ".1', '%Y.%m') " + " AND r.activo=1 " + "ORDER BY r.data_ini, r.data_fim, r.espaco, r.actividade"; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); return dtInfo; } /// /// Retorna todas as requisições num detarminado dia. /// /// ID da peça. /// Ano da actividade /// Mês da actividade /// Dia da actividade /// /// Retorna todas as requisições num detarminado dia. /// public static DataTable Listagem(int Ano, int Mes, int Dia) { 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_ini, '%Y.%m.%d %H:%i') AS data_ini, " + " DATE_FORMAT(r.data_fim, '%Y.%m.%d %H:%i') AS data_fim, " + " r.espaco, r.actividade, r.descricao, " + " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, " + " d.nome AS departamento, d.abreviatura AS departamento_abreviatura " + "FROM requisicao_salas r, colaborador c, departamento d " + "WHERE c.id=r.createuser " + " AND d.id=r.createdep " + " AND DATE_FORMAT(r.data_ini, '%Y.%c.%e')=DATE_FORMAT('" + Ano + "." + Mes + "." + Dia + "', '%Y.%c.%e') " + " AND r.activo=1 " + "ORDER BY r.data_ini, r.data_fim, r.espaco, r.actividade"; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); return dtInfo; } /// /// Pesquisa de requisições /// /// 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_ini, '%Y.%m.%d %H:%i') AS data_ini, " + " DATE_FORMAT(r.data_fim, '%Y.%m.%d %H:%i') AS data_fim, " + " r.espaco, r.actividade, r.descricao, " + " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, " + " d.nome AS departamento, d.abreviatura AS departamento_abreviatura, " + " r.*, c.*, d.* " + "FROM requisicao_salas r, colaborador c, departamento d " + "WHERE c.id=r.createuser " + " AND d.id=r.createdep " + " AND DATE_FORMAT(r.data_fim, '%Y.%m.%d %H:%i')>DATE_FORMAT(now(), '%Y.%m.%d %H:%i') " + "ORDER BY r.data_ini, r.data_fim, r.espaco, r.actividade"; 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 requisiçã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_ini, '%Y.%m.%d %H:%i') AS data_ini, " + " DATE_FORMAT(r.data_fim, '%Y.%m.%d %H:%i') AS data_fim, " + " r.espaco, r.actividade, r.descricao, " + " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, " + " d.nome AS departamento, d.abreviatura AS departamento_abreviatura " + "FROM requisicao_salas r, colaborador c, departamento d " + "WHERE r.id=" + Id + " " + " AND c.id=r.createuser " + " AND d.id=r.createdep"; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); return dtInfo; } /// /// Nova requisiçã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(string Sala, string Inicio, string Fim, string Actividade, string Descricao, int Activo, int CreateUser, int CreateDep) { bool gravado = false; sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "INSERT INTO requisicao_salas(espaco, data_ini, data_fim, actividade, descricao, activo, createuser, createdep, createdata) " + "VALUES ('" + Sala + "'," + " '" + Inicio + "'," + " '" + Fim + "'," + " '" + Actividade + "'," + " '" + Descricao + "'," + " " + Activo + " ," + " " + CreateUser + " ," + " " + CreateDep + " ," + " now())"; gravado = sqlInfo.Write(); sqlInfo.closeConnection(); return gravado; } /// /// Editar requisiçã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, string Inicio, string Fim, string Actividade, string Descricao, int Activo, int EditUser, int EditDep) { bool editado = false; sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "UPDATE requisicao_salas " + "SET data_ini ='" + Inicio + "'," + " data_fim ='" + Fim + "'," + " actividade ='" + Actividade + "'," + " descricao ='" + Descricao + "'," + " activo = " + Activo + "," + " edituser = " + EditUser + "," + " editdep = " + EditDep + "," + " editdata = now() " + "WHERE id=" + Id; editado = sqlInfo.Write(); sqlInfo.closeConnection(); return editado; } } /// /// Processo de compra /// public class Compras { /// /// IDENTIFICAÇÃO DA NECESSIDADE (#1) /// public class Pedidos { /// /// Listagem de pedidos de compra /// /// 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); /* * ETAPAS * #0 - Cancelado * #1 - Em aprovação * #2 - Consulta ao mercado * #3 - Parecer final * #4 - Finalizado */ if (Permissao <= Intranet.Sistema.Permissoes.Total) { // Permissão total // Vê todos os pedidos de compras sqlInfo.Query = "SELECT pc.id, " + " pc.createuser, pc.createdep, pc.createdata, " + " pc.edituser, pc.editdep, pc.editdata, " + " pc.activo, " + " DATE_FORMAT(pc.createdata, '%Y.%m.%d') AS data, " + " DATE_FORMAT(pc.createdata, '%Y') AS ano, " + " pc.numero, pc.necessidade, pc.justificacao, " + " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, " + " d.nome AS departamento, d.abreviatura AS departamento_abreviatura, " + " IF(cm.edituser, '4', " + " IF(cm.createuser, '3', " + " IF(a.createuser, " + " IF(a.activo=1, '2', '0' ), " + " '1' " + " ) " + " ) " + " ) AS etapa " + "FROM colaborador c, departamento d, " + " compra pc LEFT OUTER JOIN compra_2_aprovacao a ON a.compraid=pc.id, " + " compra_1_forncedores f, " + " compra_1_servicos s LEFT OUTER JOIN compra_3_consultamercado cm ON cm.servicoid=s.id " + "WHERE c.id=pc.createuser " + " AND d.id=pc.createdep " + " AND f.compraid=pc.id " + " AND s.compraid=pc.id " + "GROUP BY pc.id " + "ORDER BY pc.createdata DESC " + "LIMIT " + (Pagina * offset) + ", " + offset; } else { // Ler / Escrever / Editar // Vê apenas os pedidos de compra do departamento sqlInfo.Query = "SELECT pc.id, " + " pc.createuser, pc.createdep, pc.createdata, " + " pc.edituser, pc.editdep, pc.editdata, " + " pc.activo, " + " DATE_FORMAT(pc.createdata, '%Y.%m.%d') AS data, " + " DATE_FORMAT(pc.createdata, '%Y') AS ano, " + " pc.numero, pc.necessidade, pc.justificacao, " + " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, " + " d.nome AS departamento, d.abreviatura AS departamento_abreviatura, " + " IF(cm.edituser, '4', " + " IF(cm.createuser, '3', " + " IF(a.createuser, " + " IF(a.activo=1, '2', '0' ), " + " '1' " + " ) " + " ) " + " ) AS etapa " + "FROM colaborador c, departamento d, " + " compra pc LEFT OUTER JOIN compra_2_aprovacao a ON a.compraid=pc.id, " + " compra_1_forncedores f, " + " compra_1_servicos s LEFT OUTER JOIN compra_3_consultamercado cm ON cm.servicoid=s.id, " + " sys_colaborador_departamento sys " + "WHERE sys.departamentoid=" + Departamento + " " + " AND c.id=sys.colaboradorid " + " AND sys.departamentoid=d.id " + " AND c.id=pc.createuser " + " AND d.id=pc.createdep " + " AND f.compraid=pc.id " + " AND s.compraid=pc.id " + "GROUP BY pc.id " + "ORDER BY pc.createdata DESC " + "LIMIT " + (Pagina * offset) + ", " + offset; } dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); return dtInfo; } /// /// Retorna todas os pedidos de comra num determinado mês. /// /// Ano da actividade /// Mês da actividade /// /// Retorna todas os pedidos de comra compra num detarminado mês. /// public static DataTable ListagemData(int Ano, int Mes) { DataTable dtInfo = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT re.id, " + " re.createuser, re.createdep, re.createdata, " + " re.edituser, re.editdep, re.editdata, " + " re.activo, " + " DATE_FORMAT(re.createdata, '%Y.%m.%d') AS data, " + " re.numero, re.descricao, " + " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, " + " d.nome AS departamento, d.abreviatura AS departamento_abreviatura " + "FROM requisicao_economato re, " + " colaborador c, departamento d " + "WHERE c.id=re.createuser " + " AND d.id=re.createdep " + " AND DATE_FORMAT(re.createdata, '%Y.%m')=DATE_FORMAT('" + Ano + "." + Mes + ".1', '%Y.%m') " + "ORDER BY re.createdata DESC"; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); return dtInfo; } /// /// Retorna todas os pedidos de compra num detarminado dia. /// /// Ano da actividade /// Mês da actividade /// Dia da actividade /// /// Retorna todas as requisições num detarminado dia. /// public static DataTable ListagemData(int Ano, int Mes, int Dia) { DataTable dtInfo = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT re.id, " + " re.createuser, re.createdep, re.createdata, " + " re.edituser, re.editdep, re.editdata, " + " re.activo, " + " DATE_FORMAT(re.createdata, '%Y.%m.%d') AS data, " + " re.numero, re.descricao, " + " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, " + " d.nome AS departamento, d.abreviatura AS departamento_abreviatura " + "FROM requisicao_economato re, " + " colaborador c, departamento d " + "WHERE c.id=re.createuser " + " AND d.id=re.createdep " + " AND DATE_FORMAT(re.data_ini, '%Y.%c.%e')=DATE_FORMAT('" + Ano + "." + Mes + "." + Dia + "', '%Y.%c.%e') " + "ORDER BY re.createdata DESC"; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); return dtInfo; } /// /// Pesquisa de pedidos de compra /// /// Id do departameto do colaborador autenticado /// Nível de permissão do colaborador que acede à listagem /// DataTable public static DataTable Pesquisa(string Pesquisa, int Departamento, int Permissao) { DataTable dtInfo = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); /* * ETAPAS * #0 - Cancelado * #1 - Em aprovação * #2 - Consulta ao mercado * #3 - Parecer final * #4 - Finalizado */ if (Permissao <= Intranet.Sistema.Permissoes.Total) { // Permissão total // Vê todos os pedidos de compras sqlInfo.Query = "SELECT pc.id, " + " pc.createuser, pc.createdep, pc.createdata, " + " pc.edituser, pc.editdep, pc.editdata, " + " pc.activo, " + " DATE_FORMAT(pc.createdata, '%Y.%m.%d') AS data, " + " DATE_FORMAT(pc.createdata, '%Y') AS ano, " + " pc.numero, pc.necessidade, pc.justificacao, " + " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, " + " d.nome AS departamento, d.abreviatura AS departamento_abreviatura, " + " IF(cm.edituser, '4', " + " IF(cm.createuser, '3', " + " IF(a.createuser, " + " IF(a.activo=1, '2', '0' ), " + " '1' " + " ) " + " ) " + " ) AS etapa, " + " c.*, d.*, pc.*, a.*, f.*, s.*, cm.* " + "FROM colaborador c, departamento d, " + " compra pc LEFT OUTER JOIN compra_2_aprovacao a ON a.compraid=pc.id, " + " compra_1_forncedores f, " + " compra_1_servicos s LEFT OUTER JOIN compra_3_consultamercado cm ON cm.servicoid=s.id " + "WHERE c.id=pc.createuser " + " AND d.id=pc.createdep " + " AND f.compraid=pc.id " + " AND s.compraid=pc.id " + "GROUP BY pc.id " + "ORDER BY pc.createdata DESC"; } else { // Ler / Escrever / Editar // Vê apenas os pedidos de compra do departamento sqlInfo.Query = "SELECT pc.id, " + " pc.createuser, pc.createdep, pc.createdata, " + " pc.edituser, pc.editdep, pc.editdata, " + " pc.activo, " + " DATE_FORMAT(pc.createdata, '%Y.%m.%d') AS data, " + " DATE_FORMAT(pc.createdata, '%Y') AS ano, " + " pc.numero, pc.necessidade, pc.justificacao, " + " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, " + " d.nome AS departamento, d.abreviatura AS departamento_abreviatura, " + " IF(cm.edituser, '4', " + " IF(cm.createuser, '3', " + " IF(a.createuser, " + " IF(a.activo=1, '2', '0' ), " + " '1' " + " ) " + " ) " + " ) AS etapa, " + " c.*, d.*, pc.*, a.*, f.*, s.*, cm.*, sys.* " + "FROM colaborador c, departamento d, " + " compra pc LEFT OUTER JOIN compra_2_aprovacao a ON a.compraid=pc.id, " + " compra_1_forncedores f, " + " compra_1_servicos s LEFT OUTER JOIN compra_3_consultamercado cm ON cm.servicoid=s.id, " + " sys_colaborador_departamento sys " + "WHERE sys.departamentoid=" + Departamento + " " + " AND c.id=sys.colaboradorid " + " AND sys.departamentoid=d.id " + " AND c.id=pc.createuser " + " AND d.id=pc.createdep " + " AND f.compraid=pc.id " + " AND s.compraid=pc.id " + "GROUP BY pc.id " + "ORDER BY pc.createdata 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 pedido de compra /// /// Id do pedido de compra /// DataTable public static DataTable Detalhes(int Pedido) { DataTable dtInfo = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT pc.id, " + " pc.createuser, pc.createdep, pc.createdata, " + " pc.edituser, pc.editdep, pc.editdata, " + " pc.activo, " + " DATE_FORMAT(pc.createdata, '%Y.%m.%d') AS data, " + " DATE_FORMAT(pc.createdata, '%Y') AS ano, " + " pc.numero, pc.necessidade, pc.justificacao, " + " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, " + " d.nome AS departamento, d.abreviatura AS departamento_abreviatura " + "FROM compra pc, " + " colaborador c, departamento d " + "WHERE pc.id=" + Pedido + " " + " AND c.id=pc.createuser " + " AND d.id=pc.createdep " + "ORDER BY pc.createdata"; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); return dtInfo; } /// /// Novo pedido de compra /// /// Necessidade da compra /// Justificacção para a compra /// 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 Necessidade, string Justificacao, int Activo, int CreateUser, int CreateDep) { bool gravado = false; int numero = 0; sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); // Verificar qual o último pedido de facturação sqlInfo.Query = "SELECT MAX(numero) " + "FROM compra " + "WHERE DATE_FORMAT(createdata, '%Y')='" + DateTime.Now.Year + "'"; DataTable dtMaxPedido = sqlInfo.Read(); if (dtMaxPedido.Rows[0].ItemArray[0].ToString() == "") { numero = 1; } else { numero = Convert.ToInt16(dtMaxPedido.Rows[0].ItemArray[0].ToString()) + 1; } sqlInfo.Query = "INSERT INTO compra(numero, necessidade, justificacao, activo, createuser, createdep, createdata) " + "VALUES (" + numero + " ," + " '" + Necessidade + "' ," + " '" + Justificacao + "' ," + " " + Activo + " ," + " " + CreateUser + " ," + " " + CreateDep + " ," + " now())"; gravado = sqlInfo.Write(); sqlInfo.closeConnection(); return gravado; } /// /// Editar pedido de compra /// /// Id do conteúdo a editar /// Necessidade da compra /// Justificacção para a compra /// 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 Necessidade, string Justificacao, int Activo, int EditUser, int EditDep) { bool editado = false; sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "UPDATE compra " + "SET necessidade='" + Necessidade + "'," + " justificacao='" + Justificacao + "'," + " activo=" + Activo + "," + " edituser=" + EditUser + "," + " editdep=" + EditDep + "," + " editdata=now() " + "WHERE id=" + Id; editado = sqlInfo.Write(); sqlInfo.closeConnection(); return editado; } /// /// Serviços dos pedidos de compras /// public class Servicos { /// /// Material/Serviços de um determinado pedido de compra /// /// ID do pedido de compra /// DataTable public static DataTable Listagem(int Pedido) { DataTable dtInfo = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT * " + "FROM compra_1_servicos " + "WHERE compraid=" + Pedido + " " + "ORDER BY servico, quantidade"; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); return dtInfo; } /// /// Adicionar produtos/serviços ao pedido de compra /// /// ID do pedido de compra /// Produto/Serviço a adicionar /// Activo/Inactivo (1/0) /// Id de quem cria o conteúdo /// Departamento de quem cria o conteúdo /// Retorna uma string com os campos da material requisitado [id, quantidade, servico] public static string Gravar(int Pedido, string Servico, decimal Quantidade, int CreateUser, int CreateDep) { string _servico; DataTable _servico_adicionado; sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "INSERT INTO compra_1_servicos(compraid, servico, quantidade, activo, createuser, createdep, createdata) " + "VALUES (" + Pedido + "," + " '" + Servico + "'," + " '" + Quantidade.ToString().Replace(",", ".") + "'," + " 1," + " " + CreateUser + "," + " " + CreateDep + "," + " now())"; sqlInfo.Write(); // Verificar dados inseridos sqlInfo.Query = "SELECT id, quantidade, servico " + "FROM compra_1_servicos " + "WHERE compraid=" + Pedido + " " + " AND servico='" + Servico + "' " + " AND quantidade='" + Quantidade.ToString().Replace(",", ".") + "'"; _servico_adicionado = sqlInfo.Read(); if (_servico_adicionado.Rows.Count > 0) { _servico = _servico_adicionado.Rows[0].ItemArray[0].ToString() + "\\s" + _servico_adicionado.Rows[0].ItemArray[1].ToString() + "\\s" + _servico_adicionado.Rows[0].ItemArray[2].ToString(); } else { _servico = ""; } return _servico; } } /// /// Fornecedores dos pedidos de compras /// public class Fornecedores { /// /// Material/Serviços de um determinado pedido de compra /// /// ID do pedido de compra /// DataTable public static DataTable Listagem(int Pedido) { DataTable dtInfo = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT f.id AS id, " + " e.id AS empresaid, e.nome AS empresa, " + " f.activo " + "FROM compra_1_forncedores f, empresa e " + "WHERE f.compraid=" + Pedido + " " + " AND f.empresaid=e.id " + "ORDER BY e.nome"; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); return dtInfo; } /// /// Adicionar empresa à lista de fornecedores para um pedido de compra /// /// ID do pedido de compra /// ID da empresa fornecedora /// Id de quem cria o conteúdo /// Departamento de quem cria o conteúdo /// Retorna uma string com os campos da empresa adicionada como fornecedora [id, empresaid, empresa, activo] public static string Gravar(int Pedido, int Empresa, int CreateUser, int CreateDep) { string _empresa; DataTable _empresa_adicionada; sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "INSERT INTO compra_1_forncedores(compraid, empresaid, activo, createuser, createdep, createdata) " + "VALUES (" + Pedido + "," + " " + Empresa + "," + " 1," + " " + CreateUser + "," + " " + CreateDep + "," + " now())"; sqlInfo.Write(); // Verificar dados inseridos sqlInfo.Query = "SELECT f.id AS id, " + " e.id AS empresaid, e.nome AS empresa, " + " f.activo " + "FROM compra_1_forncedores f, empresa e " + "WHERE f.compraid=" + Pedido + " " + " AND f.empresaid=" + Empresa + " " + " AND f.empresaid=e.id " + "ORDER BY e.nome"; _empresa_adicionada = sqlInfo.Read(); if (_empresa_adicionada.Rows.Count > 0) { _empresa = _empresa_adicionada.Rows[0].ItemArray[0].ToString() + "\\s" + _empresa_adicionada.Rows[0].ItemArray[1].ToString() + "\\s" + _empresa_adicionada.Rows[0].ItemArray[2].ToString() + "\\s" + _empresa_adicionada.Rows[0].ItemArray[3].ToString(); } else { _empresa = ""; } return _empresa; } } } /// /// APROVAÇÃO DO PEDIDO DE COMPRA (#2) /// public class Aprovacao { /// /// Detalhes das aprovação aos pedidos de compras /// /// Id do pedido de compra /// DataTable public static DataTable Detalhes(int Pedido) { DataTable dtInfo = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT a.id, " + " a.createuser, a.createdep, a.createdata, " + " a.edituser, a.editdep, a.editdata, " + " a.activo, " + " DATE_FORMAT(c.createdata, '%Y.%m.%d') AS data, " + " DATE_FORMAT(c.createdata, '%Y') AS ano, " + " c.numero, c.necessidade, c.justificacao, " + " a.descricao " + "FROM compra c LEFT OUTER JOIN compra_2_aprovacao a ON a.compraid=c.id " + "WHERE c.id=" + Pedido; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); return dtInfo; } /// /// Aprovação / Rejeição do pedido de compra /// /// ID do pedido de compra /// Descrição da aprovação /// Aprovar/Rejeitar (1/0) /// Id de quem cria o conteúdo /// Departamento de quem cria o conteúdo /// True ou False public static Boolean Gravar(int Pedido, string Descricao, int Activo, int CreateUser, int CreateDep) { bool gravado = false; sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); // Verificar se já existe aprovação para este pedido de compra sqlInfo.Query = "SELECT id " + "FROM compra_2_aprovacao " + "WHERE compraid=" + Pedido; if (sqlInfo.Read().Rows.Count > 0) { // EDITAR sqlInfo.Query = "UPDATE compra_2_aprovacao " + "SET descricao='" + Descricao + "'," + " activo=" + Activo + "," + " edituser=" + CreateUser + "," + " editdep=" + CreateDep + "," + " editdata=now() " + "WHERE compraid=" + Pedido; } else { // INSERIR sqlInfo.Query = "INSERT INTO compra_2_aprovacao(compraid, descricao, activo, createuser, createdep, createdata) " + "VALUES (" + Pedido + " ," + " '" + Descricao + "' ," + " " + Activo + " ," + " " + CreateUser + " ," + " " + CreateDep + " ," + " now())"; } gravado = sqlInfo.Write(); sqlInfo.closeConnection(); return gravado; } } /// /// CONCULTA AO MERCADO (#3) /// public class Consulta { /// /// Listagem de valores para os serviços/fornecedores de um determinado pedido de compra /// /// ID do pedido de compra /// DataTable public static DataTable Listagem(int Pedido) { DataTable dtInfo = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT cm.id, " + " cm.createuser, cm.createdep, cm.createdata, " + " cm.edituser, cm.editdep, cm.editdata, " + " cm.activo, " + " cm.servicoid, " + " cm.fornecedorid, " + " cm.valor " + "FROM compra_3_consultamercado cm, " + " compra_1_servicos s, " + " compra c " + "WHERE cm.servicoid=s.id " + " AND s.compraid=c.id " + " AND c.id=" + Pedido; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); return dtInfo; } /// /// Adicionar valor a um serviço/produto de uma empresa /// /// Id do pedido de compra /// Id do serviço /// Id da empresa fornecedora /// Valor unitátio do serviço /// Id de quem cria o conteúdo /// Departamento de quem cria o conteúdo /// Retorna o total proposto por uma empresa public static string Adicionar(int Pedido, int Servico, int Fornecedor, decimal Valor, int CreateUser, int CreateDep) { bool gravado = false; sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "INSERT INTO compra_3_consultamercado(servicoid, fornecedorid, valor, activo, createuser, createdep, createdata) " + "VALUES (" + Servico + "," + " " + Fornecedor + "," + " '" + Valor.ToString().Replace(",", ".") + "'," + " 0," + " " + CreateUser + "," + " " + CreateDep + "," + " now())"; gravado = sqlInfo.Write(); if (gravado) { // VERIFICAR O TOTAL PROPOSTO POR ESTA EMPRESA sqlInfo.Query = "SELECT SUM(cm.valor*s.quantidade) " + "FROM compra_3_consultamercado cm, compra_1_servicos s " + "WHERE cm.servicoid=s.id " + " AND s.compraid=" + Pedido + " " + " AND cm.fornecedorid=" + Fornecedor; DataTable dtTotal = sqlInfo.Read(); sqlInfo.closeConnection(); return dtTotal.Rows[0].ItemArray[0].ToString(); } else { sqlInfo.closeConnection(); return "ERRO"; } } /// /// Remove valor a um serviço/produto de uma empresa /// /// Id do pedido de compra /// Id do serviço /// Id da empresa fornecedora /// Retorna o total proposto por uma empresa public static string Remover(int Pedido, int Servico, int Fornecedor) { bool gravado = false; sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "DELETE FROM compra_3_consultamercado " + "WHERE servicoid=" + Servico + " AND fornecedorid=" + Fornecedor; gravado = sqlInfo.Write(); if (gravado) { // VERIFICAR O TOTAL PROPOSTO POR ESTA EMPRESA sqlInfo.Query = "SELECT SUM(cm.valor*s.quantidade) " + "FROM compra_3_consultamercado cm, compra_1_servicos s " + "WHERE cm.servicoid=s.id " + " AND s.compraid=" + Pedido + " " + " AND cm.fornecedorid=" + Fornecedor; DataTable dtTotal = sqlInfo.Read(); sqlInfo.closeConnection(); return dtTotal.Rows[0].ItemArray[0].ToString(); } else { sqlInfo.closeConnection(); return "ERRO"; } } } } /// /// Requisições Interdepartamentais e/ou Intercolaboradores /// public class Interdepartamentais { /// /// Listagens de requisições recebidas e efectuadas /// public class Listagem { /// /// Listagem de requisições recebidas /// /// Número da página a mostrar /// DataTable public static DataTable Recebidas(int Pagina, int Colaborador, int Departamento) { 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, " + " r.cancelado, " + " r.numero, " + " DATE_FORMAT(r.createdata, '%Y') AS ano, " + " CONCAT(r.numero, '/', DATE_FORMAT(r.createdata, '%Y')) AS numeroano, " + " r.requisicao, r.descricao, " + " DATE_FORMAT(r.data_limite, '%Y.%m.%d') AS data_limite, " + " DATE_FORMAT(r.data_conclusao, '%Y.%m.%d') AS data_conclusao, " + " c.id AS colaboradorid, c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, " + " d.id AS departamentoid, d.nome AS departamento, d.abreviatura AS departamento_abreviatura " + "FROM requisicao_interdepartamental r, " + " colaborador c, " + " departamento d " + "WHERE r.createuser=c.id " + " AND r.createdep=d.id " + " AND (r.destinatario_colaborador=" + Colaborador + " " + " OR r.destinatario_departamento=" + Departamento + ") " + "ORDER BY r.activo, r.data_limite, r.requisicao " + "LIMIT " + (Pagina * offset) + ", " + offset; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); return dtInfo; } /// /// Listagem de requisições efectuadas /// /// Número da página a mostrar /// DataTable public static DataTable Efectuadas(int Pagina, int Colaborador, int Departamento) { 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, " + " r.cancelado, " + " r.numero, " + " DATE_FORMAT(r.createdata, '%Y') AS ano, " + " CONCAT(r.numero, '/', DATE_FORMAT(r.createdata, '%Y')) AS numeroano, " + " r.requisicao, r.descricao, " + " DATE_FORMAT(r.data_limite, '%Y.%m.%d') AS data_limite, " + " DATE_FORMAT(r.data_conclusao, '%Y.%m.%d') AS data_conclusao, " + " c.id AS colaboradorid, c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, " + " d.id AS departamentoid, d.nome AS departamento, d.abreviatura AS departamento_abreviatura " + "FROM requisicao_interdepartamental r, " + " colaborador c, " + " departamento d " + "WHERE r.createuser=c.id " + " AND r.createdep=d.id " + " AND (r.createuser=" + Colaborador + " " + " OR r.createdep=" + Departamento + ") " + "ORDER BY r.activo, r.data_limite, r.requisicao " + "LIMIT " + (Pagina * offset) + ", " + offset; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); return dtInfo; } } /// /// Pesquisa de requisições recebidas /// /// 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, " + " r.cancelado, " + " r.numero, " + " DATE_FORMAT(r.createdata, '%Y') AS ano, " + " CONCAT(r.numero, '/', DATE_FORMAT(r.createdata, '%Y')) AS numeroano, " + " r.requisicao, r.descricao, " + " DATE_FORMAT(r.data_limite, '%Y.%m.%d') AS data_limite, " + " DATE_FORMAT(r.data_conclusao, '%Y.%m.%d') AS data_conclusao, " + " c.id AS colaboradorid, c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, " + " d.id AS departamentoid, d.nome AS departamento, d.abreviatura AS departamento_abreviatura, " + " r.*, c.*, d.* " + "FROM requisicao_interdepartamental r, " + " colaborador c, " + " departamento d " + "WHERE r.createuser=c.id " + " AND r.createdep=d.id " + "ORDER BY r.activo, r.data_limite, r.requisicao"; 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 requisiçã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, " + " r.cancelado, " + " r.numero, " + " DATE_FORMAT(r.createdata, '%Y') AS ano, " + " CONCAT(r.numero, '/', DATE_FORMAT(r.createdata, '%Y')) AS numeroano, " + " r.requisicao, r.descricao, " + " DATE_FORMAT(r.data_limite, '%Y.%m.%d') AS data_limite, " + " DATE_FORMAT(r.data_conclusao, '%Y.%m.%d') AS data_conclusao, " + " c.id AS colaboradorid, c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, " + " d.id AS departamentoid, d.nome AS departamento, d.abreviatura AS departamento_abreviatura, " + " r.*, c.*, d.* " + "FROM requisicao_interdepartamental r, " + " colaborador c, " + " departamento d " + "WHERE r.id=" + Id + " " + " AND r.createuser=c.id " + " AND r.createdep=d.id"; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); return dtInfo; } /// /// Nova requisição /// /// Id de quem cria o conteúdo /// Departamento de quem cria o conteúdo /// True ou False public static Boolean Gravar(int Colaborador, int Departamento, string Requisicao, string Descricao, string DataLimite, int CreateUser, int CreateDep) { bool gravado = false; sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); // NÚMERO DO REGISTO DA LAVANDARIA DataTable dtRequisicao; sqlInfo.Query = "SELECT IF(MAX(numero) IS NULL, 0, MAX(numero)) AS numero " + "FROM requisicao_interdepartamental " + "WHERE DATE_FORMAT(createdata, '%Y')='" + DateTime.Now.Year + "'"; dtRequisicao = sqlInfo.Read(); sqlInfo.Query = "INSERT INTO requisicao_interdepartamental(numero, " + " destinatario_colaborador, destinatario_departamento, " + " requisicao, descricao, " + " data_limite, " + " activo, createuser, createdep, createdata) " + "VALUES ( " + (Convert.ToInt16(dtRequisicao.Rows[0]["numero"].ToString()) + 1) + "," + " " + Colaborador + "," + " " + Departamento + "," + " '" + Requisicao + "'," + " '" + Descricao + "'," + " '" + DataLimite + "'," + " 0," + " " + CreateUser + " ," + " " + CreateDep + " ," + " now())"; gravado = sqlInfo.Write(); sqlInfo.closeConnection(); return gravado; } /// /// Editar requisiçã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 Colaborador, int Departamento, string Requisicao, string Descricao, string DataLimite, int Conclusao, int EditUser, int EditDep) { bool editado = false; sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); // VERIFICA A PROPRIEDADE DA REQUISIÇÃO sqlInfo.Query = "SELECT id, " + " createuser, " + " createdep, " + " createdata, " + " activo " + "FROM requisicao_interdepartamental " + "WHERE id=" + Id; DataTable dtRegisto = sqlInfo.Read(); if (dtRegisto.Rows.Count > 0) { if (Convert.ToInt16(dtRegisto.Rows[0]["createuser"].ToString()) == EditUser || Convert.ToInt16(dtRegisto.Rows[0]["createdep"].ToString()) == EditDep) { // Edição feita pelo PROPRIETÁRIO da requisição sqlInfo.Query = "UPDATE requisicao_interdepartamental " + "SET destinatario_colaborador = " + Colaborador + "," + " destinatario_departamento = " + Departamento + "," + " requisicao ='" + Requisicao + "'," + " descricao ='" + Descricao + "'," + " data_limite ='" + DataLimite + "'," + " edituser = " + EditUser + "," + " editdep = " + EditDep + "," + " editdata = now() " + "WHERE id=" + Id; } else { // Edição feita pelo DESTINATÁRIO da requisição if (Conclusao == 1 && Convert.ToInt16(dtRegisto.Rows[0]["activo"].ToString()) == 0) { // FECHO DA REQUISIÇÃO sqlInfo.Query = "UPDATE requisicao_interdepartamental " + "SET activo = 1," + " data_conclusao = now()," + " edituser = " + EditUser + "," + " editdep = " + EditDep + "," + " editdata = now() " + "WHERE id=" + Id; } else { // Não altera a data de conclusão caso não seja a primeira vez que o campo seja alterado sqlInfo.Query = "UPDATE requisicao_interdepartamental " + "SET activo = " + Conclusao + "," + " edituser = " + EditUser + "," + " editdep = " + EditDep + "," + " editdata = now() " + "WHERE id=" + Id; } } } editado = sqlInfo.Write(); sqlInfo.closeConnection(); return editado; } /// /// Conclusão da requisição /// public class Conclusao { /// /// Entredas adicionadas à conclusão da requisição /// /// ID da requisição /// DataTable public static DataTable Listagem(int Requisicao) { DataTable dtInfo = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT r.id, " + " r.createuser, " + " r.activo, " + " DATE_FORMAT(r.data, '%Y.%m.%d') AS data, " + " r.descricao, " + " c.abreviatura AS colaborador, " + " d.abreviatura AS departamento " + "FROM requisicao_interdepartamental_conclusao r, " + " colaborador c, " + " departamento d " + "WHERE requisicaoid = " + Requisicao + " " + " AND r.createuser = c.id " + " AND r.createdep = d.id " + "ORDER BY r.data DESC, r.id DESC"; dtInfo = sqlInfo.Read(); sqlInfo.closeConnection(); return dtInfo; } /// /// Nova entrada de conclusão /// /// ID da requisição /// Activo/Inactivo (1/0) /// Id de quem cria o conteúdo /// Departamento de quem cria o conteúdo /// Retorna uma string com os campos da material requisitado [id, data, descricao, departamento, colaborador] public static string Gravar(int Requisicao, string Data, string Descricao, int Activo, int CreateUser, int CreateDep) { string _conclusao; DataTable _conclusao_adicionada; sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "INSERT INTO requisicao_interdepartamental_conclusao(requisicaoid, " + " data, descricao, " + " activo, createuser, createdep, createdata) " + "VALUES (" + Requisicao + "," + " '" + Data + "'," + " '" + Descricao + "'," + " 1," + " " + CreateUser + "," + " " + CreateDep + "," + " now())"; sqlInfo.Write(); // Verificar dados inseridos sqlInfo.Query = "SELECT r.id, " + " DATE_FORMAT(r.data, '%Y.%m.%d') AS data, " + " r.descricao, " + " c.abreviatura AS colaborador, " + " d.abreviatura AS departamento " + "FROM requisicao_interdepartamental_conclusao r, " + " colaborador c, " + " departamento d " + "WHERE requisicaoid = " + Requisicao + " " + " AND r.createuser =c.id " + " AND r.createdep =d.id " + " AND data ='" + Data + "' " + " AND descricao ='" + Descricao + "' " + "ORDER BY r.id DESC"; _conclusao_adicionada = sqlInfo.Read(); if (_conclusao_adicionada.Rows.Count > 0) { _conclusao = _conclusao_adicionada.Rows[0]["id"].ToString() + "\\s" + _conclusao_adicionada.Rows[0]["data"].ToString() + "\\s" + _conclusao_adicionada.Rows[0]["descricao"].ToString() + "\\s" + _conclusao_adicionada.Rows[0]["departamento"].ToString() + "\\s" + _conclusao_adicionada.Rows[0]["colaborador"].ToString(); } else { _conclusao = ""; } return _conclusao; } } } } }