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