Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        /// <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);
        }