/// <summary> /// Consulta de alertas por ausentismo. /// </summary> /// <param name="parametros"></param> public List <EDAlertaAusentismo> ConsultarAlertaAusencia(EDAlertaAusentismoParametros parametros) { var Resultado = new List <EDAlertaAusentismo>(); try { using (var context = new SG_SSTContext()) { if (parametros.IdEmpresaUsuaria != 0) { foreach (var item in context.Database.SqlQuery <EDAlertaAusentismo>( "SP_ALERTA_AUSENTISMO_CONSULTAR @idEmpresaUsuaria, @anioGestion, @NitEmpresa", new SqlParameter("@idEmpresaUsuaria", parametros.IdEmpresaUsuaria), new SqlParameter("@anioGestion", parametros.AnioGestion), new SqlParameter("@NitEmpresa", parametros.NitEmpresa) )) { // Ajustar las fechas en caso que el periodo de la ausencia // comience el año anterior o termine el próximo año. if (item.FechaInicio.Year < parametros.AnioGestion) { item.FechaInicio = new DateTime(parametros.AnioGestion, 1, 1); } if (item.FechaFin.Year > parametros.AnioGestion) { item.FechaFin = new DateTime(parametros.AnioGestion, 12, 31, 23, 59, 59); } Resultado.Add(item); } } else { foreach (var item in context.Database.SqlQuery <EDAlertaAusentismo>( "SP_ALERTA_AUSENTISMO_CONSULTAR_TODOS @anioGestion, @NitEmpresa", new SqlParameter("@anioGestion", parametros.AnioGestion), new SqlParameter("@NitEmpresa", parametros.NitEmpresa) )) { // Ajustar las fechas en caso que el periodo de la ausencia // comience el año anterior o termine el próximo año. if (item.FechaInicio.Year < parametros.AnioGestion) { item.FechaInicio = new DateTime(parametros.AnioGestion, 1, 1); } if (item.FechaFin.Year > parametros.AnioGestion) { item.FechaFin = new DateTime(parametros.AnioGestion, 12, 31, 23, 59, 59); } Resultado.Add(item); } } } } catch (Exception ex) { return(null); } return(Resultado); }
/// <summary> /// Consulta de alertas por ausentismo. /// </summary> /// <param name="parametros"></param> public List <EDAlertaAusentismo> ConsultarAlertaAusencia(EDAlertaAusentismoParametros parametros) { //Modificado por Javier García (Kerocorp) 30/03/2017 var Consulta = ausenciaMg.ConsultarAlertaAusencia(parametros); // Calcular los días laborables para los resultados. foreach (var item in Consulta) { item.DiasAusencia = CalcularDiasLaborales( item.FechaInicio, item.FechaFin, 5, item.IdContingencia); } // Calcular la suma de los días de ausencia // para el año de gestión. //Modificado por Javier García (Kerocorp) 30/03/2017 var Resultado = (from x in Consulta group x by x.DocumentoPersona into g select new EDAlertaAusentismo { DocumentoPersona = g.Key, DiasAusencia = g.Sum(y => y.DiasAusencia), NombrePersona = g.FirstOrDefault().NombrePersona, DiagnosticoDescripcion = g.FirstOrDefault().DiagnosticoDescripcion, Id_Ausencia = g.FirstOrDefault().Id_Ausencia, ListaAlertas = g.ToList() }) .Where(x => x.DiasAusencia >= 60) .OrderBy(x => x.DiasAusencia) .ToList(); if (Resultado != null) { foreach (var item in Resultado) { if (item.ListaAlertas != null) { foreach (var item1 in item.ListaAlertas) { item1.DiagnosticoDescripcion = ConsultarDiagnostico(item1.Id_Diagnostico); item1.Tipo = ConsultarTipo(item1.Id_Ausencia); } } } } return(Resultado); }