Exferia/Exferia_KairosPro/Exferia_KairosPRO/2_Datos/AUX_Datos.cs

151 lines
10 KiB
C#

using Exferia_Aplicacion.General;
using Exferia_KairosPRO.General;
using Exferia_KairosPRO_EF;
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Exferia_KairosPRO._2_Datos
{
public class AUX_Datos
{
public string Existe_PresenciaAusenciaDiaFestivoJornada_porDia(long _lng_idEmpleado, long _lng_CodigoCliente, DateTime _dtt_Fecha)
{
KairosProEntities obj_KairosProEntities = null;
string str_PresenciaAusenciaDiaFestivoJornada = "";
try
{
obj_KairosProEntities = new KairosProEntities();
obj_KairosProEntities.Configuration.LazyLoadingEnabled = false;
//PRESENCIA PROGRAMADA........................................................................
string str_SQL_PresenciasProgramadas =
" SELECT " + nameof(KRS_PresenciasProgramadas) + "." + nameof(KRS_PresenciasProgramadas.idJornadaCabecera) +
" FROM " + nameof(KRS_PresenciasProgramadas) +
" WHERE " +
nameof(KRS_PresenciasProgramadas) + "." + nameof(KRS_PresenciasProgramadas.idEmpleado) + "=@idEmpleado AND " +
nameof(KRS_PresenciasProgramadas) + "." + nameof(KRS_PresenciasProgramadas.codigoCliente) + "=@codigoCliente AND " +
nameof(KRS_PresenciasProgramadas) + "." + nameof(KRS_PresenciasProgramadas.fechaDesde) + "<=@fecha AND " +
nameof(KRS_PresenciasProgramadas) + "." + nameof(KRS_PresenciasProgramadas.fechaHasta) + ">=@fecha ";
//Parametros
object[] arr_Parametros_PresenciasProgramadas = new object[]
{
new SqlParameter("@idEmpleado", _lng_idEmpleado),
new SqlParameter("@codigoCliente", _lng_CodigoCliente),
new SqlParameter("@fecha", _dtt_Fecha.Date)
};
long? lng_idJornadaCabecera_PresenciasProgramadas = obj_KairosProEntities.Database.SqlQuery<long>(str_SQL_PresenciasProgramadas, arr_Parametros_PresenciasProgramadas).FirstOrDefault();
if (lng_idJornadaCabecera_PresenciasProgramadas != null && lng_idJornadaCabecera_PresenciasProgramadas.Value > 0)
{
str_PresenciaAusenciaDiaFestivoJornada = Variables_KairosPRO.G_STR_TIPOJORNADADIA_PRESENCIAPROGRAMADA + "|" + lng_idJornadaCabecera_PresenciasProgramadas.Value;
}
//............................................................................................
if (str_PresenciaAusenciaDiaFestivoJornada == "")
{
//AUSENCIA PROGRAMADA........................................................................
string str_SQL_AusenciasProgramadas =
" SELECT " + nameof(KRS_AusenciasProgramadas) + "." + nameof(KRS_AusenciasProgramadas.id) +
" FROM " + nameof(KRS_AusenciasProgramadas) +
" WHERE " +
nameof(KRS_AusenciasProgramadas) + "." + nameof(KRS_AusenciasProgramadas.idEmpleado) + "=@idEmpleado AND " +
nameof(KRS_AusenciasProgramadas) + "." + nameof(KRS_AusenciasProgramadas.codigoCliente) + "=@codigoCliente AND " +
nameof(KRS_AusenciasProgramadas) + "." + nameof(KRS_AusenciasProgramadas.fechaDesde) + "<=@fecha AND " +
nameof(KRS_AusenciasProgramadas) + "." + nameof(KRS_AusenciasProgramadas.fechaHasta) + ">=@fecha ";
//Parametros
object[] arr_Parametros_AusenciasProgramadas = new object[]
{
new SqlParameter("@idEmpleado", _lng_idEmpleado),
new SqlParameter("@codigoCliente", _lng_CodigoCliente),
new SqlParameter("@fecha", _dtt_Fecha.Date)
};
long? lng_idAusenciasProgramadas = obj_KairosProEntities.Database.SqlQuery<long>(str_SQL_AusenciasProgramadas, arr_Parametros_AusenciasProgramadas).FirstOrDefault();
if (lng_idAusenciasProgramadas != null && lng_idAusenciasProgramadas.Value > 0)
{
str_PresenciaAusenciaDiaFestivoJornada = Variables_KairosPRO.G_STR_TIPOJORNADADIA_AUSENCIAPROGRAMADA + "|-1";
}
//............................................................................................
if (str_PresenciaAusenciaDiaFestivoJornada == "")
{
//DIAS FESTIVOS........................................................................
string str_SQL_DiasFestivos =
" SELECT " + nameof(KRS_DiasFestivos) + "." + nameof(KRS_DiasFestivos.id) +
" FROM " + nameof(KRS_DiasFestivos) +
" WHERE " +
nameof(KRS_DiasFestivos) + "." + nameof(KRS_DiasFestivos.codigoCliente) + "=@codigoCliente AND " +
nameof(KRS_DiasFestivos) + "." + nameof(KRS_DiasFestivos.fechaDesde) + "<=@fecha AND " +
nameof(KRS_DiasFestivos) + "." + nameof(KRS_DiasFestivos.fechaHasta) + ">=@fecha ";
//Parametros
object[] arr_Parametros_DiasFestivos = new object[]
{
new SqlParameter("@idEmpleado", _lng_idEmpleado),
new SqlParameter("@codigoCliente", _lng_CodigoCliente),
new SqlParameter("@fecha", _dtt_Fecha.Date)
};
long? lng_idDiasFestivos = obj_KairosProEntities.Database.SqlQuery<long>(str_SQL_DiasFestivos, arr_Parametros_DiasFestivos).FirstOrDefault();
if (lng_idDiasFestivos != null && lng_idDiasFestivos.Value > 0)
{
str_PresenciaAusenciaDiaFestivoJornada = Variables_KairosPRO.G_STR_TIPOJORNADADIA_DIAFESTIVO + "|-1";
}
//............................................................................................
if (str_PresenciaAusenciaDiaFestivoJornada == "")
{
//JORNADA LABORAL ........................................................................
string str_SQL_JornadaLaboral = " SELECT " + nameof(KRS_PerfilesLinea) + "." + nameof(KRS_PerfilesLinea.idJornadaCabecera) +
" FROM " + nameof(KRS_Ejercicios_PerfilesCabecera) + " " +
" INNER JOIN " + nameof(KRS_PerfilesCabecera) + " On " + nameof(KRS_PerfilesCabecera) + "." + nameof(KRS_PerfilesCabecera.id) + " = " + nameof(KRS_Ejercicios_PerfilesCabecera) + "." + nameof(KRS_Ejercicios_PerfilesCabecera.idPerfilCabecera) + " and " + nameof(KRS_PerfilesCabecera) + "." + nameof(KRS_PerfilesCabecera.codigoCliente) + " = " + nameof(KRS_Ejercicios_PerfilesCabecera) + "." + nameof(KRS_Ejercicios_PerfilesCabecera.codigoCliente) +
" INNER JOIN " + nameof(KRS_PerfilesLinea) + " On " + nameof(KRS_PerfilesCabecera) + "." + nameof(KRS_PerfilesCabecera.id) + " = " + nameof(KRS_PerfilesLinea) + "." + nameof(KRS_PerfilesLinea.idPerfilCabecera) + " and " + nameof(KRS_PerfilesCabecera) + "." + nameof(KRS_PerfilesCabecera.codigoCliente) + " = " + nameof(KRS_PerfilesLinea) + "." + nameof(KRS_PerfilesLinea.codigoCliente) + " " +
" WHERE " +
nameof(KRS_Ejercicios_PerfilesCabecera) + "." + nameof(KRS_Ejercicios_PerfilesCabecera.idEmpleado) + "=@idEmpleado AND " +
nameof(KRS_Ejercicios_PerfilesCabecera) + "." + nameof(KRS_Ejercicios_PerfilesCabecera.codigoCliente) + "=@codigoCliente AND " +
nameof(KRS_PerfilesLinea) + "." + nameof(KRS_PerfilesLinea.fechaDesde) + "<=@fecha AND " +
nameof(KRS_PerfilesLinea) + "." + nameof(KRS_PerfilesLinea.fechaHasta) + ">=@fecha ";
//Parametros
object[] arr_Parametros_JornadaLaboral = new object[]
{
new SqlParameter("@idEmpleado", _lng_idEmpleado),
new SqlParameter("@codigoCliente", _lng_CodigoCliente),
new SqlParameter("@fecha", _dtt_Fecha.Date)
};
long? lng_idJornadaCabecera = obj_KairosProEntities.Database.SqlQuery<long>(str_SQL_JornadaLaboral, arr_Parametros_JornadaLaboral).FirstOrDefault();
if (lng_idJornadaCabecera != null && lng_idJornadaCabecera.Value>0)
{
str_PresenciaAusenciaDiaFestivoJornada = Variables_KairosPRO.G_STR_TIPOJORNADADIA_JORNADALABORAL + "|" + lng_idJornadaCabecera.Value;
}
//............................................................................................
}
}
}
}
catch (Exception ex)
{
throw new Control_Errores("", ex, nameof(AUX_Datos) + "/" + nameof(Existe_PresenciaAusenciaDiaFestivoJornada_porDia), true);
}
finally
{
obj_KairosProEntities.Database.Connection.Close();
obj_KairosProEntities.Dispose();
}
return str_PresenciaAusenciaDiaFestivoJornada;
}
}
}