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 RH
{
///
/// Gestão de férias
///
public class Ferias
{
///
/// Listagem de marcações de férias de todos os utilizadores de todos os departamentos a que pertence o utilizador autenticado
///
/// Número da página a mostrar
/// Id do departameto do colaborador autenticado
/// Nível de permissão do colaborador que acede à listagem
/// DataTable
public static DataTable Listagem(int Pagina, int Departamento, int Permissao)
{
DataTable dtInfo = new DataTable();
int offset = Convert.ToInt16(WebConfigurationManager.AppSettings["offset"].ToString());
sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString);
if (Permissao <= Intranet.Sistema.Permissoes.Total)
{
// Permissão total
// Vê as marcações de todos
sqlInfo.Query = "SELECT f.id, "
+ " f.createuser, f.createdep, f.createdata, "
+ " f.edituser, f.editdep, f.editdata, "
+ " f.activo, "
+ " DATE_FORMAT(f.data_ini, '%Y.%m.%d') AS data_ini, "
+ " DATE_FORMAT(f.data_fim, '%Y.%m.%d') AS data_fim, "
+ " f.dias, f.descricao, f.autorizado, "
+ " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, "
+ " d.nome AS departamento, d.abreviatura AS departamento_abreviatura "
+ "FROM colaborador c, departamento d, rh_ferias f "
+ "WHERE c.id=f.createuser "
+ " AND d.id=f.createdep "
+ "ORDER BY f.data_ini DESC, f.data_fim DESC "
+ "LIMIT " + (Pagina * offset) + ", " + offset;
}
else
{
// Ler / Escrever / Editar
// Vê apenas as marcações do departamento
sqlInfo.Query = "SELECT f.id, "
+ " f.createuser, f.createdep, f.createdata, "
+ " f.edituser, f.editdep, f.editdata, "
+ " f.activo, "
+ " DATE_FORMAT(f.data_ini, '%Y.%m.%d') AS data_ini, "
+ " DATE_FORMAT(f.data_fim, '%Y.%m.%d') AS data_fim, "
+ " f.dias, f.descricao, f.autorizado, "
+ " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, "
+ " d.nome AS departamento, d.abreviatura AS departamento_abreviatura "
+ "FROM departamento d, colaborador c, sys_colaborador_departamento s, "
+ " rh_ferias f "
+ "WHERE s.departamentoid=" + Departamento + " "
+ " AND c.id=s.colaboradorid "
+ " AND s.departamentoid=d.id "
+ " AND c.id=f.createuser "
+ "ORDER BY f.data_ini DESC, f.data_fim DESC "
+ "LIMIT " + (Pagina * offset) + ", " + offset;
}
dtInfo = sqlInfo.Read();
sqlInfo.closeConnection();
return dtInfo;
}
///
/// Listagem de marcações de férias para determinado ano. Apenas marcações aprovadas.
///
/// Ano da marcação
/// Mês da marcação
/// DataTable
public static DataTable Listagem(int Ano)
{
DataTable dtInfo = new DataTable();
sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString);
sqlInfo.Query = "SELECT f.id, "
+ " f.createuser, f.createdep, f.createdata, "
+ " f.edituser, f.editdep, f.editdata, "
+ " f.activo, "
+ " DATE_FORMAT(f.data_ini, '%Y.%m.%d') AS data_ini, "
+ " DATE_FORMAT(f.data_fim, '%Y.%m.%d') AS data_fim, "
+ " f.dias, f.descricao, f.autorizado, "
+ " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, "
+ " d.nome AS departamento, d.abreviatura AS departamento_abreviatura "
+ "FROM colaborador c, departamento d, rh_ferias f "
+ "WHERE c.id=f.createuser "
+ " AND d.id=f.createdep "
+ " AND f.activo=1 "
+ " AND f.autorizado=1 "
+ " AND DATE_FORMAT(f.data_ini, '%Y')=DATE_FORMAT('" + Ano + ".1.1', '%Y') "
+ "ORDER BY f.data_ini DESC, f.data_fim DESC";
dtInfo = sqlInfo.Read();
sqlInfo.closeConnection();
return dtInfo;
}
///
/// Listagem de marcações de férias para determinado mês.
///
/// Ano da marcação
/// Mês da marcação
/// DataTable
public static DataTable ListagemData(int Ano, int Mes)
{
DataTable dtInfo = new DataTable();
sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString);
sqlInfo.Query = "SELECT f.id, "
+ " f.createuser, f.createdep, f.createdata, "
+ " f.edituser, f.editdep, f.editdata, "
+ " f.activo, "
+ " DATE_FORMAT(f.data_ini, '%Y.%m.%d') AS data_ini, "
+ " DATE_FORMAT(f.data_fim, '%Y.%m.%d') AS data_fim, "
+ " f.dias, f.descricao, f.autorizado, "
+ " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, "
+ " d.nome AS departamento, d.abreviatura AS departamento_abreviatura "
+ "FROM colaborador c, departamento d, rh_ferias f "
+ "WHERE c.id=f.createuser "
+ " AND d.id=f.createdep "
+ " AND DATE_FORMAT(f.data_ini, '%Y.%m')=DATE_FORMAT('" + Ano + "." + Mes + ".1', '%Y.%m') "
+ "ORDER BY f.data_ini DESC, f.data_fim DESC";
dtInfo = sqlInfo.Read();
sqlInfo.closeConnection();
return dtInfo;
}
///
/// Listagem de marcações de férias para determinado dia.
///
/// Ano da marcação
/// Mês da marcação
/// Dia da marcação
/// DataTable
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 f.id, "
+ " f.createuser, f.createdep, f.createdata, "
+ " f.edituser, f.editdep, f.editdata, "
+ " f.activo, "
+ " DATE_FORMAT(f.data_ini, '%Y.%m.%d') AS data_ini, "
+ " DATE_FORMAT(f.data_fim, '%Y.%m.%d') AS data_fim, "
+ " f.dias, f.descricao, f.autorizado, "
+ " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, "
+ " d.nome AS departamento, d.abreviatura AS departamento_abreviatura "
+ "FROM colaborador c, departamento d, rh_ferias f "
+ "WHERE c.id=f.createuser "
+ " AND d.id=f.createdep "
+ " AND DATE_FORMAT(f.data_ini, '%Y.%m.%d')<=DATE_FORMAT('" + Ano + "." + Mes + "." + Dia + "', '%Y.%m.%d') "
+ " AND DATE_FORMAT(f.data_fim, '%Y.%m.%d')>=DATE_FORMAT('" + Ano + "." + Mes + "." + Dia + "', '%Y.%m.%d') "
+ "ORDER BY f.data_ini DESC, f.data_fim DESC";
dtInfo = sqlInfo.Read();
sqlInfo.closeConnection();
return dtInfo;
}
///
/// Pesquisa de marcações de férias de todos os utilizadores de todos os departamentos a que pertence o utilizador autenticado
///
/// 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);
if (Permissao <= Intranet.Sistema.Permissoes.Total)
{
// Permissão total
// Vê as marcações de todos
sqlInfo.Query = "SELECT f.id, "
+ " f.createuser, f.createdep, f.createdata, "
+ " f.edituser, f.editdep, f.editdata, "
+ " f.activo, "
+ " DATE_FORMAT(f.data_ini, '%Y.%m.%d') AS data_ini, "
+ " DATE_FORMAT(f.data_fim, '%Y.%m.%d') AS data_fim, "
+ " f.dias, f.descricao, f.autorizado, "
+ " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, "
+ " d.nome AS departamento, d.abreviatura AS departamento_abreviatura, "
+ " c.*, d.*, f.* "
+ "FROM colaborador c, departamento d, rh_ferias f "
+ "WHERE c.id=f.createuser "
+ " AND d.id=f.createdep "
+ "ORDER BY f.data_ini DESC, f.data_fim DESC";
}
else
{
// Ler / Escrever / Editar
// Vê apenas as marcações do departamento
sqlInfo.Query = "SELECT f.id, "
+ " f.createuser, f.createdep, f.createdata, "
+ " f.edituser, f.editdep, f.editdata, "
+ " f.activo, "
+ " DATE_FORMAT(f.data_ini, '%Y.%m.%d') AS data_ini, "
+ " DATE_FORMAT(f.data_fim, '%Y.%m.%d') AS data_fim, "
+ " f.dias, f.descricao, f.autorizado, "
+ " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, "
+ " d.nome AS departamento, d.abreviatura AS departamento_abreviatura, "
+ " c.*, d.*, f.*, sys.* "
+ "FROM departamento d, colaborador c, sys_colaborador_departamento s, "
+ " rh_ferias f "
+ "WHERE s.departamentoid=" + Departamento + " "
+ " AND c.id=s.colaboradorid "
+ " AND s.departamentoid=d.id "
+ " AND c.id=f.createuser "
+ "ORDER BY f.data_ini DESC, f.data_fim 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 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 f.id, "
+ " f.createuser, f.createdep, f.createdata, "
+ " f.edituser, f.editdep, f.editdata, "
+ " f.activo, "
+ " DATE_FORMAT(f.data_ini, '%Y.%m.%d') AS data_ini, "
+ " DATE_FORMAT(f.data_fim, '%Y.%m.%d') AS data_fim, "
+ " f.dias, f.descricao, f.autorizado, "
+ " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, "
+ " d.nome AS departamento, d.abreviatura AS departamento_abreviatura "
+ "FROM rh_ferias f, departamento d, colaborador c, sys_colaborador_departamento s "
+ "WHERE f.id=" + Id + " "
+ " AND f.createuser=c.id "
+ " AND s.colaboradorid=c.id "
+ " AND s.departamentoid=d.id "
+ "GROUP BY f.id";
dtInfo = sqlInfo.Read();
sqlInfo.closeConnection();
return dtInfo;
}
///
/// Nova requisição
///
/// Data de início
/// Data de fim
/// Total de dias úteis referentes à marcação
/// Descrição do evento
/// Autorização de férias (1/0)
/// 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 Inicio, string Fim, decimal Dias, string Descricao, int Autorizado, int Activo, int CreateUser, int CreateDep)
{
bool gravado = false;
sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString);
sqlInfo.Query = "INSERT INTO rh_ferias(data_ini, data_fim, dias, descricao, autorizado, activo, createuser, createdep, createdata) "
+ "VALUES ('" + Inicio + "',"
+ " '" + Fim + "',"
+ " '" + Dias.ToString().Replace(",", ".") + "',"
+ " '" + Descricao + "',"
+ " " + Autorizado + " ,"
+ " " + Activo + " ,"
+ " " + CreateUser + " ,"
+ " " + CreateDep + " ,"
+ " now())";
gravado = sqlInfo.Write();
sqlInfo.closeConnection();
return gravado;
}
///
/// Editar requisição
///
/// Id do conteúdo a editar
/// Data de início
/// Data de fim
/// Total de dias úteis referentes à marcação
/// Descrição do evento
/// Autorização de férias (1/0)
/// 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, decimal Dias, string Descricao, int Autorizado, int Activo, int EditUser, int EditDep)
{
bool editado = false;
sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString);
sqlInfo.Query = "UPDATE rh_ferias "
+ "SET data_ini='" + Inicio + "',"
+ " data_fim='" + Fim + "',"
+ " dias='" + Dias.ToString().Replace(",", ".") + "',"
+ " descricao='" + Descricao + "',"
+ " autorizado=" + Autorizado + ","
+ " activo=" + Activo + ","
+ " edituser=" + EditUser + ","
+ " editdep=" + EditDep + ","
+ " editdata=now() "
+ "WHERE id=" + Id;
editado = sqlInfo.Write();
sqlInfo.closeConnection();
return editado;
}
public class Log
{
///
/// Listagem de todas as actividades numa determinada marcações de férias
///
/// Id da marcação de férias
/// DataTable
public static DataTable Listagem(int Marcacao)
{
DataTable dtInfo = new DataTable();
int offset = Convert.ToInt16(WebConfigurationManager.AppSettings["offset"].ToString());
sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString);
sqlInfo.Query = "SELECT l.id, "
+ " l.createuser, l.createdep, "
+ " l.edituser, l.editdep, "
+ " DATE_FORMAT(l.createdata, '%Y.%m.%d %H:%i:%S') AS createdata, "
+ " DATE_FORMAT(l.editdata, '%Y.%m.%d %H:%i:%S') AS editdata, "
+ " l.activo, "
+ " DATE_FORMAT(l.data_ini, '%Y.%m.%d') AS data_ini, "
+ " DATE_FORMAT(l.data_fim, '%Y.%m.%d') AS data_fim, "
+ " l.dias, l.status, "
+ " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura "
+ "FROM rh_ferias_log l, colaborador c "
+ "WHERE l.marcacaoid=" + Marcacao + " "
+ " AND l.createuser=c.id "
+ "ORDER BY l.createdata";
dtInfo = sqlInfo.Read();
sqlInfo.closeConnection();
return dtInfo;
}
///
/// Regista todas as alterações a uma determinada marcação de férias
///
/// Id da marcação
/// Data de início
/// Data de fim
/// Dias marcados
/// Descrição da actividade
/// Activo/Inactivo (1/0)
/// Id de quem cria o conteúdo
/// Departamento de quem cria o conteúdo
public static void Adicionar(int Marcacao, string Inicio, string Fim, decimal Dias, string Descricao, int Activo, int CreateUser, int CreateDep)
{
sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString);
sqlInfo.Query = "INSERT INTO rh_ferias_log(marcacaoid, data_ini, data_fim, dias, status, activo, createuser, createdep, createdata) "
+ "VALUES ( " + Marcacao + ","
+ " '" + Inicio + "',"
+ " '" + Fim + "',"
+ " '" + Dias.ToString().Replace(",", ".") + "',"
+ " '" + Descricao + "',"
+ " " + Activo + " ,"
+ " " + CreateUser + " ,"
+ " " + CreateDep + " ,"
+ " now())";
sqlInfo.Write();
sqlInfo.closeConnection();
}
}
///
/// Gestão de dias marcados, atribuidos e disponíveis
///
public class Dias
{
public class Atribuidos
{
///
/// Dias de férias atribuidos a um colaborador
///
/// Id do colaborador
/// Número de dias atribuidos
public static decimal Total(int Colaborador)
{
DataTable dtInfo = new DataTable();
sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString);
// DIAS ATRIBUIDOS
decimal atribuidos = 0;
sqlInfo.Query = "SELECT IF(SUM(dias)>=0, SUM(dias), 0) "
+ "FROM rh_ferias_dias "
+ "WHERE colaboradorid=" + Colaborador + " "
+ " AND activo=1";
dtInfo = sqlInfo.Read();
if (dtInfo.Rows.Count > 0)
{
atribuidos = Convert.ToDecimal(dtInfo.Rows[0].ItemArray[0].ToString());
}
sqlInfo.closeConnection();
return atribuidos;
}
///
/// Listagem dos dias de férias atribuidos a um colaborador agrupados por ano
///
/// Id do colaborador
/// DataTable
public static DataTable Anos(int Colaborador)
{
DataTable dtInfo = new DataTable();
sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString);
sqlInfo.Query = "SELECT SUM(dias) AS dias, ano "
+ "FROM rh_ferias_dias "
+ "WHERE colaboradorid=" + Colaborador + " "
+ " AND activo=1 "
+ "GROUP BY ano "
+ "ORDER BY ano DESC";
dtInfo = sqlInfo.Read();
sqlInfo.closeConnection();
return dtInfo;
}
}
public class Marcados
{
///
/// Dias de férias marcados por um colaborador
///
/// Id do colaborador
/// Número de dias marcados
public static decimal Total(int Colaborador)
{
DataTable dtInfo = new DataTable();
sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString);
// DIAS MARCADOS
decimal marcados = 0;
sqlInfo.Query = "SELECT IF(SUM(dias)>=0, SUM(dias), 0) "
+ "FROM rh_ferias "
+ "WHERE createuser=" + Colaborador + " "
+ " AND activo=1 "
+ " AND (autorizado=1 "
+ " OR (autorizado=0 AND DATE_FORMAT(data_ini, '%Y.%m.%d')>DATE_FORMAT(now(), '%Y.%m.%d')))";
dtInfo = sqlInfo.Read();
if (dtInfo.Rows.Count > 0)
{
marcados = Convert.ToDecimal(dtInfo.Rows[0].ItemArray[0].ToString());
}
sqlInfo.closeConnection();
return marcados;
}
///
/// Dias de férias marcados por um colaborador num determinado ano
///
/// Id do colaborador
/// Ano das marcações
/// Número de dias marcados
public static decimal Anos(int Colaborador, int Ano)
{
DataTable dtInfo = new DataTable();
sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString);
// DIAS MARCADOS
decimal marcados = 0;
sqlInfo.Query = "SELECT IF(SUM(dias)>=0, SUM(dias), 0) "
+ "FROM rh_ferias "
+ "WHERE createuser=" + Colaborador + " "
+ " AND DATE_FORMAT(data_ini, '%Y')=" + Ano + " "
+ " AND activo=1 "
+ " AND (autorizado=1 "
+ " OR (autorizado=0 AND DATE_FORMAT(data_ini, '%Y.%m.%d')>DATE_FORMAT(now(), '%Y.%m.%d')))";
dtInfo = sqlInfo.Read();
if (dtInfo.Rows.Count > 0)
{
marcados = Convert.ToDecimal(dtInfo.Rows[0].ItemArray[0].ToString());
}
sqlInfo.closeConnection();
return marcados;
}
}
///
/// Dias de férias ainda disponíveis para marcação
///
/// Id do colaborador
/// Número de dias disponíveis para marcação
public static decimal Disponiveis(int Colaborador)
{
DataTable dtInfo = new DataTable();
sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString);
// DIAS ATRIBUIDOS
decimal atribuidos = 0;
sqlInfo.Query = "SELECT IF(SUM(dias)>=0, SUM(dias), 0) "
+ "FROM rh_ferias_dias "
+ "WHERE colaboradorid=" + Colaborador + " "
+ " AND activo=1";
dtInfo = sqlInfo.Read();
if (dtInfo.Rows.Count > 0)
{
atribuidos = Convert.ToDecimal(dtInfo.Rows[0].ItemArray[0].ToString());
}
// HORAS ATRIBUIDAS
sqlInfo.Query = "SELECT IF(SUM(horas)>=0, SUM(horas), 0) "
+ "FROM rh_ferias_horas "
+ "WHERE colaboradorid=" + Colaborador + " "
+ " AND activo=1";
dtInfo = sqlInfo.Read();
if (dtInfo.Rows.Count > 0)
{
atribuidos = atribuidos + Convert.ToDecimal(dtInfo.Rows[0].ItemArray[0].ToString()) / 8;
}
// DIAS MARCADOS
decimal marcados = 0;
sqlInfo.Query = "SELECT IF(SUM(dias)>=0, SUM(dias), 0) "
+ "FROM rh_ferias "
+ "WHERE createuser=" + Colaborador + " "
+ " AND activo=1 "
+ " AND (autorizado=1 "
+ " OR (autorizado=0 AND DATE_FORMAT(data_ini, '%Y.%m.%d')>DATE_FORMAT(now(), '%Y.%m.%d')))";
dtInfo = sqlInfo.Read();
if (dtInfo.Rows.Count > 0)
{
marcados = Convert.ToDecimal(dtInfo.Rows[0].ItemArray[0].ToString());
}
sqlInfo.closeConnection();
return (atribuidos - marcados);
}
}
}
///
/// Gestão de ausências
///
public class Ausencias
{
///
/// Listagem de marcações de ausências de todos os utilizadores de todos os departamentos a que pertence o utilizador autenticado
///
/// Número da página a mostrar
/// Id do departameto do colaborador autenticado
/// Nível de permissão do colaborador que acede à listagem
/// DataTable
public static DataTable Listagem(int Pagina, int Departamento, int Permissao)
{
DataTable dtInfo = new DataTable();
int offset = Convert.ToInt16(WebConfigurationManager.AppSettings["offset"].ToString());
sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString);
if (Permissao <= Intranet.Sistema.Permissoes.Total)
{
// Permissão total
// Vê as marcações de todos
sqlInfo.Query = "SELECT a.id, "
+ " a.createuser, a.createdep, a.createdata, "
+ " a.edituser, a.editdep, a.editdata, "
+ " a.activo, "
+ " DATE_FORMAT(a.data_ini, '%Y.%m.%d') AS data_ini, "
+ " DATE_FORMAT(a.data_fim, '%Y.%m.%d') AS data_fim, "
+ " a.dias, a.codigo, a.descricao, a.autorizado, a.justificado, "
+ " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, "
+ " d.nome AS departamento, d.abreviatura AS departamento_abreviatura "
+ "FROM colaborador c, departamento d, rh_ausencias a "
+ "WHERE c.id=a.createuser "
+ " AND d.id=a.createdep "
+ "ORDER BY a.data_ini DESC, a.data_fim DESC "
+ "LIMIT " + (Pagina * offset) + ", " + offset;
}
else
{
// Ler / Escrever / Editar
// Vê apenas as marcações do departamento
sqlInfo.Query = "SELECT a.id, "
+ " a.createuser, a.createdep, a.createdata, "
+ " a.edituser, a.editdep, a.editdata, "
+ " a.activo, "
+ " DATE_FORMAT(a.data_ini, '%Y.%m.%d') AS data_ini, "
+ " DATE_FORMAT(a.data_fim, '%Y.%m.%d') AS data_fim, "
+ " a.dias, a.codigo, a.descricao, a.autorizado, a.justificado, "
+ " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, "
+ " d.nome AS departamento, d.abreviatura AS departamento_abreviatura "
+ "FROM departamento d, colaborador c, sys_colaborador_departamento s, "
+ " rh_ausencias a "
+ "WHERE s.departamentoid=" + Departamento + " "
+ " AND c.id=s.colaboradorid "
+ " AND s.departamentoid=d.id "
+ " AND c.id=a.createuser "
+ "ORDER BY a.data_ini DESC, a.data_fim DESC "
+ "LIMIT " + (Pagina * offset) + ", " + offset;
}
dtInfo = sqlInfo.Read();
sqlInfo.closeConnection();
return dtInfo;
}
///
/// Listagem de marcações de ausências para determinado ano. Apenas marcações aprovadas.
///
/// Ano da marcação
/// Mês da marcação
/// DataTable
public static DataTable Listagem(int Ano)
{
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(a.data_ini, '%Y.%m.%d') AS data_ini, "
+ " DATE_FORMAT(a.data_fim, '%Y.%m.%d') AS data_fim, "
+ " a.dias, a.codigo, a.descricao, a.autorizado, a.justificado, "
+ " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, "
+ " d.nome AS departamento, d.abreviatura AS departamento_abreviatura "
+ "FROM colaborador c, departamento d, rh_ausencias a "
+ "WHERE c.id=a.createuser "
+ " AND d.id=a.createdep "
+ " AND a.activo=1 "
+ " AND a.autorizado=1 "
+ " AND DATE_FORMAT(a.data_ini, '%Y')=DATE_FORMAT('" + Ano + ".1.1', '%Y') "
+ "ORDER BY a.data_ini DESC, a.data_fim DESC";
dtInfo = sqlInfo.Read();
sqlInfo.closeConnection();
return dtInfo;
}
///
/// Listagem de marcações de ausências para determinado mês.
///
/// Ano da marcação
/// Mês da marcação
/// DataTable
public static DataTable ListagemData(int Ano, int Mes)
{
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(a.data_ini, '%Y.%m.%d') AS data_ini, "
+ " DATE_FORMAT(a.data_fim, '%Y.%m.%d') AS data_fim, "
+ " a.dias, a.codigo, a.descricao, a.autorizado, a.justificado, "
+ " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, "
+ " d.nome AS departamento, d.abreviatura AS departamento_abreviatura "
+ "FROM colaborador c, departamento d, rh_ausencias a "
+ "WHERE c.id=a.createuser "
+ " AND d.id=a.createdep "
+ " AND DATE_FORMAT(a.data_ini, '%Y.%m')=DATE_FORMAT('" + Ano + "." + Mes + ".1', '%Y.%m') "
+ "ORDER BY a.data_ini DESC, a.data_fim DESC";
dtInfo = sqlInfo.Read();
sqlInfo.closeConnection();
return dtInfo;
}
///
/// Listagem de marcações de ausências para determinado dia.
///
/// Ano da marcação
/// Mês da marcação
/// Dia da marcação
/// DataTable
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 a.id, "
+ " a.createuser, a.createdep, a.createdata, "
+ " a.edituser, a.editdep, a.editdata, "
+ " a.activo, "
+ " DATE_FORMAT(a.data_ini, '%Y.%m.%d') AS data_ini, "
+ " DATE_FORMAT(a.data_fim, '%Y.%m.%d') AS data_fim, "
+ " a.dias, a.codigo, a.descricao, a.autorizado, a.justificado, "
+ " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, "
+ " d.nome AS departamento, d.abreviatura AS departamento_abreviatura "
+ "FROM colaborador c, departamento d, rh_ausencias a "
+ "WHERE c.id=a.createuser "
+ " AND d.id=a.createdep "
+ " AND DATE_FORMAT(a.data_ini, '%Y.%m.%d')<=DATE_FORMAT('" + Ano + "." + Mes + "." + Dia + "', '%Y.%m.%d') "
+ " AND DATE_FORMAT(a.data_fim, '%Y.%m.%d')>=DATE_FORMAT('" + Ano + "." + Mes + "." + Dia + "', '%Y.%m.%d') "
+ "ORDER BY a.data_ini DESC, a.data_fim DESC";
dtInfo = sqlInfo.Read();
sqlInfo.closeConnection();
return dtInfo;
}
///
/// Pesqusa de marcações de ausências de todos os utilizadores de todos os departamentos a que pertence o utilizador autenticado
///
/// 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);
if (Permissao <= Intranet.Sistema.Permissoes.Total)
{
// Permissão total
// Vê as marcações de todos
sqlInfo.Query = "SELECT a.id, "
+ " a.createuser, a.createdep, a.createdata, "
+ " a.edituser, a.editdep, a.editdata, "
+ " a.activo, "
+ " DATE_FORMAT(a.data_ini, '%Y.%m.%d') AS data_ini, "
+ " DATE_FORMAT(a.data_fim, '%Y.%m.%d') AS data_fim, "
+ " a.dias, a.codigo, a.descricao, a.autorizado, a.justificado, "
+ " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, "
+ " d.nome AS departamento, d.abreviatura AS departamento_abreviatura, "
+ " c.*, d.*, a.* "
+ "FROM colaborador c, departamento d, rh_ausencias a "
+ "WHERE c.id=a.createuser "
+ " AND d.id=a.createdep "
+ "ORDER BY a.data_ini DESC, a.data_fim DESC";
}
else
{
// Ler / Escrever / Editar
// Vê apenas as marcações do departamento
sqlInfo.Query = "SELECT a.id, "
+ " a.createuser, a.createdep, a.createdata, "
+ " a.edituser, a.editdep, a.editdata, "
+ " a.activo, "
+ " DATE_FORMAT(a.data_ini, '%Y.%m.%d') AS data_ini, "
+ " DATE_FORMAT(a.data_fim, '%Y.%m.%d') AS data_fim, "
+ " a.dias, a.codigo, a.descricao, a.autorizado, a.justificado, "
+ " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, "
+ " d.nome AS departamento, d.abreviatura AS departamento_abreviatura, "
+ " c.*, d.*, a.*, sys.* "
+ "FROM departamento d, colaborador c, sys_colaborador_departamento s, "
+ " rh_ausencias a "
+ "WHERE s.departamentoid=" + Departamento + " "
+ " AND c.id=s.colaboradorid "
+ " AND s.departamentoid=d.id "
+ " AND c.id=a.createuser "
+ "ORDER BY a.data_ini DESC, a.data_fim 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 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 a.id, "
+ " a.createuser, a.createdep, a.createdata, "
+ " a.edituser, a.editdep, a.editdata, "
+ " a.activo, "
+ " DATE_FORMAT(a.data_ini, '%Y.%m.%d') AS data_ini, "
+ " DATE_FORMAT(a.data_fim, '%Y.%m.%d') AS data_fim, "
+ " a.dias, a.codigo, a.descricao, a.autorizado, a.justificado, "
+ " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, "
+ " d.nome AS departamento, d.abreviatura AS departamento_abreviatura "
+ "FROM rh_ausencias a, departamento d, colaborador c, sys_colaborador_departamento s "
+ "WHERE a.id=" + Id + " "
+ " AND a.createuser=c.id "
+ " AND s.colaboradorid=c.id "
+ " AND s.departamentoid=d.id "
+ "GROUP BY a.id";
dtInfo = sqlInfo.Read();
sqlInfo.closeConnection();
return dtInfo;
}
///
/// Nova requisição
///
/// Data de início
/// Data de fim
/// Total de dias úteis referentes à marcação
/// Código de ausência
/// Descrição do evento
/// Autorização de ausências (1/0)
/// Justificação da ausência (1/0)
/// 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 Inicio, string Fim, decimal Dias, string Codigo, string Descricao, int Autorizado, int Justificado, int Activo, int CreateUser, int CreateDep)
{
bool gravado = false;
sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString);
sqlInfo.Query = "INSERT INTO rh_ausencias(data_ini, data_fim, dias, codigo, descricao, autorizado, justificado, activo, createuser, createdep, createdata) "
+ "VALUES ('" + Inicio + "',"
+ " '" + Fim + "',"
+ " '" + Dias.ToString().Replace(",", ".") + "',"
+ " '" + Codigo + "',"
+ " '" + Descricao + "',"
+ " " + Autorizado + " ,"
+ " " + Justificado + " ,"
+ " " + Activo + " ,"
+ " " + CreateUser + " ,"
+ " " + CreateDep + " ,"
+ " now())";
gravado = sqlInfo.Write();
sqlInfo.closeConnection();
return gravado;
}
///
/// Editar requisição
///
/// Id do conteúdo a editar
/// Data de início
/// Data de fim
/// Total de dias úteis referentes à marcação
/// Código de ausência
/// Descrição do evento
/// Autorização de ausências (1/0)
/// Justificação da ausência (1/0)
/// 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, decimal Dias, string Codigo, string Descricao, int Autorizado, int Justificado, int Activo, int EditUser, int EditDep)
{
bool editado = false;
sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString);
sqlInfo.Query = "UPDATE rh_ausencias "
+ "SET data_ini='" + Inicio + "',"
+ " data_fim='" + Fim + "',"
+ " dias='" + Dias.ToString().Replace(",", ".") + "',"
+ " codigo='" + Codigo + "',"
+ " descricao='" + Descricao + "',"
+ " autorizado=" + Autorizado + ","
+ " justificado=" + Justificado + ","
+ " activo=" + Activo + ","
+ " edituser=" + EditUser + ","
+ " editdep=" + EditDep + ","
+ " editdata=now() "
+ "WHERE id=" + Id;
editado = sqlInfo.Write();
sqlInfo.closeConnection();
return editado;
}
public class Log
{
///
/// Listagem de todas as actividades numa determinada marcações de ausências
///
/// Id da marcação de ausências
/// DataTable
public static DataTable Listagem(int Marcacao)
{
DataTable dtInfo = new DataTable();
int offset = Convert.ToInt16(WebConfigurationManager.AppSettings["offset"].ToString());
sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString);
sqlInfo.Query = "SELECT l.id, "
+ " l.createuser, l.createdep, "
+ " l.edituser, l.editdep, "
+ " DATE_FORMAT(l.createdata, '%Y.%m.%d %H:%i:%S') AS createdata, "
+ " DATE_FORMAT(l.editdata, '%Y.%m.%d %H:%i:%S') AS editdata, "
+ " l.activo, "
+ " DATE_FORMAT(l.data_ini, '%Y.%m.%d') AS data_ini, "
+ " DATE_FORMAT(l.data_fim, '%Y.%m.%d') AS data_fim, "
+ " l.dias, l.codigo, l.status, "
+ " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura "
+ "FROM rh_ausencias_log l, colaborador c "
+ "WHERE l.marcacaoid=" + Marcacao + " "
+ " AND l.createuser=c.id "
+ "ORDER BY l.createdata";
dtInfo = sqlInfo.Read();
sqlInfo.closeConnection();
return dtInfo;
}
///
/// Regista todas as alterações a uma determinada marcação de ausências
///
/// Id da marcação
/// Data de início
/// Data de fim
/// Dias marcados
/// Código de ausência
/// Descrição da actividade
/// Activo/Inactivo (1/0)
/// Id de quem cria o conteúdo
/// Departamento de quem cria o conteúdo
public static void Adicionar(int Marcacao, string Inicio, string Fim, decimal Dias, string Codigo, string Descricao, int Activo, int CreateUser, int CreateDep)
{
sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString);
sqlInfo.Query = "INSERT INTO rh_ausencias_log(marcacaoid, data_ini, data_fim, dias, codigo, status, activo, createuser, createdep, createdata) "
+ "VALUES ( " + Marcacao + ","
+ " '" + Inicio + "',"
+ " '" + Fim + "',"
+ " '" + Dias.ToString().Replace(",", ".") + "',"
+ " '" + Codigo + "',"
+ " '" + Descricao + "',"
+ " " + Activo + " ,"
+ " " + CreateUser + " ,"
+ " " + CreateDep + " ,"
+ " now())";
sqlInfo.Write();
sqlInfo.closeConnection();
}
}
///
/// Gestão de dias marcados, atribuidos e disponíveis
///
public class Dias
{
public class Marcados
{
///
/// Dias de ausências marcados por um colaborador
///
/// Id do colaborador
/// Número de dias marcados
public static decimal Total(int Colaborador)
{
DataTable dtInfo = new DataTable();
sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString);
// DIAS MARCADOS
decimal marcados = 0;
sqlInfo.Query = "SELECT IF(SUM(dias)>=0, SUM(dias), 0) "
+ "FROM rh_ausencias "
+ "WHERE createuser=" + Colaborador + " "
+ " AND activo=1 "
+ " AND (autorizado=1 "
+ " OR (autorizado=0 AND DATE_FORMAT(data_ini, '%Y.%m.%d')>DATE_FORMAT(now(), '%Y.%m.%d')))";
dtInfo = sqlInfo.Read();
if (dtInfo.Rows.Count > 0)
{
marcados = Convert.ToDecimal(dtInfo.Rows[0].ItemArray[0].ToString());
}
sqlInfo.closeConnection();
return marcados;
}
///
/// Dias de ausências marcados por um colaborador agrupado por anos
///
/// Id do colaborador
/// DataTable
public static DataTable Anos(int Colaborador)
{
DataTable dtInfo = new DataTable();
sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString);
// DIAS MARCADOS
sqlInfo.Query = "SELECT IF(SUM(dias)>=0, SUM(dias), 0) AS dias, DATE_FORMAT(data_ini, '%Y') AS ano "
+ "FROM rh_ausencias "
+ "WHERE createuser=" + Colaborador + " "
+ " AND activo=1 "
+ " AND (autorizado=1 "
+ " OR (autorizado=0 AND DATE_FORMAT(data_ini, '%Y.%m.%d')>DATE_FORMAT(now(), '%Y.%m.%d'))) "
+ "GROUP BY ano "
+ "ORDER BY ano DESC";
dtInfo = sqlInfo.Read();
sqlInfo.closeConnection();
return dtInfo;
}
///
/// Dias de ausências marcados por um colaborador num determinado ano
///
/// Id do colaborador
/// Ano das marcações
/// Número de dias marcados
public static decimal Anos(int Colaborador, int Ano)
{
DataTable dtInfo = new DataTable();
sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString);
// DIAS MARCADOS
decimal marcados = 0;
sqlInfo.Query = "SELECT IF(SUM(dias)>=0, SUM(dias), 0) "
+ "FROM rh_ausencias "
+ "WHERE createuser=" + Colaborador + " "
+ " AND DATE_FORMAT(data_ini, '%Y')=" + Ano + " "
+ " AND activo=1 "
+ " AND (autorizado=1 "
+ " OR (autorizado=0 AND DATE_FORMAT(data_ini, '%Y.%m.%d')>DATE_FORMAT(now(), '%Y.%m.%d')))";
dtInfo = sqlInfo.Read();
if (dtInfo.Rows.Count > 0)
{
marcados = Convert.ToDecimal(dtInfo.Rows[0].ItemArray[0].ToString());
}
sqlInfo.closeConnection();
return marcados;
}
}
public class Justificados
{
///
/// Dias de ausências justificados por um colaborador num determinado ano
///
/// Id do colaborador
/// Ano das marcações
/// Número de dias marcados
public static decimal Anos(int Colaborador, int Ano)
{
DataTable dtInfo = new DataTable();
sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString);
// DIAS MARCADOS
decimal marcados = 0;
sqlInfo.Query = "SELECT IF(SUM(dias)>=0, SUM(dias), 0) "
+ "FROM rh_ausencias "
+ "WHERE createuser=" + Colaborador + " "
+ " AND DATE_FORMAT(data_ini, '%Y')=" + Ano + " "
+ " AND activo=1 "
+ " AND justificado=1 "
+ " AND (autorizado=1 "
+ " OR (autorizado=0 AND DATE_FORMAT(data_ini, '%Y.%m.%d')>DATE_FORMAT(now(), '%Y.%m.%d')))";
dtInfo = sqlInfo.Read();
if (dtInfo.Rows.Count > 0)
{
marcados = Convert.ToDecimal(dtInfo.Rows[0].ItemArray[0].ToString());
}
sqlInfo.closeConnection();
return marcados;
}
}
}
}
///
/// Gestão de ambas as "ausências"
///
public class FeriasAusencias
{
///
/// Listagem de marcações de férias e ausências para determinado ano. Apenas marcações aprovadas.
///
/// Ano da marcação
/// DataTable
public static DataTable Listagem(int Ano)
{
DataTable dtInfo = new DataTable();
sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString);
sqlInfo.Query = "SELECT f.id, "
+ " f.createuser, f.createdep, f.createdata, "
+ " f.edituser, f.editdep, f.editdata, "
+ " f.activo, "
+ " 'Férias' AS tipo, "
+ " DATE_FORMAT(f.data_ini, '%Y.%m.%d') AS data_ini, "
+ " DATE_FORMAT(f.data_fim, '%Y.%m.%d') AS data_fim, "
+ " f.dias, '' AS codigo, f.descricao, f.autorizado, '' AS justificado, "
+ " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, "
+ " d.nome AS departamento, d.abreviatura AS departamento_abreviatura "
+ "FROM colaborador c, departamento d, rh_ferias f "
+ "WHERE c.id=f.createuser "
+ " AND d.id=f.createdep "
+ " AND f.activo=1 "
+ " AND f.autorizado=1 "
+ " AND DATE_FORMAT(f.data_ini, '%Y')=DATE_FORMAT('" + Ano + ".1.1', '%Y') "
+ "UNION "
+ "SELECT a.id, "
+ " a.createuser, a.createdep, a.createdata, "
+ " a.edituser, a.editdep, a.editdata, "
+ " a.activo, "
+ " 'Ausência' AS tipo, "
+ " DATE_FORMAT(a.data_ini, '%Y.%m.%d') AS data_ini, "
+ " DATE_FORMAT(a.data_fim, '%Y.%m.%d') AS data_fim, "
+ " a.dias, a.codigo AS codigo, a.descricao, a.autorizado, a.justificado AS justificado, "
+ " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, "
+ " d.nome AS departamento, d.abreviatura AS departamento_abreviatura "
+ "FROM colaborador c, departamento d, rh_ausencias a "
+ "WHERE c.id=a.createuser "
+ " AND d.id=a.createdep "
+ " AND a.activo=1 "
+ " AND a.autorizado=1 "
+ " AND DATE_FORMAT(a.data_ini, '%Y')=DATE_FORMAT('" + Ano + ".1.1', '%Y') "
+ "ORDER BY data_ini, data_fim";
dtInfo = sqlInfo.Read();
sqlInfo.closeConnection();
return dtInfo;
}
///
/// Listagem de marcações de férias e ausências para determinado ano. Apenas marcações aprovadas.
///
/// Ano da marcação
/// ID docolaborador que se pretende listar
/// DataTable
public static DataTable Listagem(int Ano, int Colaborador)
{
DataTable dtInfo = new DataTable();
sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString);
sqlInfo.Query = "SELECT f.id, "
+ " f.createuser, f.createdep, f.createdata, "
+ " f.edituser, f.editdep, f.editdata, "
+ " f.activo, "
+ " 'Férias' AS tipo, "
+ " DATE_FORMAT(f.data_ini, '%Y.%m.%d') AS data_ini, "
+ " DATE_FORMAT(f.data_fim, '%Y.%m.%d') AS data_fim, "
+ " f.dias, '' AS codigo, f.descricao, f.autorizado, '' AS justificado, "
+ " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, "
+ " d.nome AS departamento, d.abreviatura AS departamento_abreviatura "
+ "FROM colaborador c, departamento d, rh_ferias f "
+ "WHERE c.id=f.createuser "
+ " AND d.id=f.createdep "
+ " AND c.id=" + Colaborador + " "
+ " AND f.activo=1 "
+ " AND f.autorizado=1 "
+ " AND DATE_FORMAT(f.data_ini, '%Y')=DATE_FORMAT('" + Ano + ".1.1', '%Y') "
+ "UNION "
+ "SELECT a.id, "
+ " a.createuser, a.createdep, a.createdata, "
+ " a.edituser, a.editdep, a.editdata, "
+ " a.activo, "
+ " 'Ausência' AS tipo, "
+ " DATE_FORMAT(a.data_ini, '%Y.%m.%d') AS data_ini, "
+ " DATE_FORMAT(a.data_fim, '%Y.%m.%d') AS data_fim, "
+ " a.dias, a.codigo AS codigo, a.descricao, a.autorizado, a.justificado AS justificado, "
+ " c.nome AS colaborador, c.abreviatura AS colaborador_abreviatura, "
+ " d.nome AS departamento, d.abreviatura AS departamento_abreviatura "
+ "FROM colaborador c, departamento d, rh_ausencias a "
+ "WHERE c.id=a.createuser "
+ " AND d.id=a.createdep "
+ " AND c.id=" + Colaborador + " "
+ " AND a.activo=1 "
+ " AND a.autorizado=1 "
+ " AND DATE_FORMAT(a.data_ini, '%Y')=DATE_FORMAT('" + Ano + ".1.1', '%Y') "
+ "ORDER BY data_ini, data_fim";
dtInfo = sqlInfo.Read();
sqlInfo.closeConnection();
return dtInfo;
}
}
}
}