Пример #1
0
 public ActionResult Graph(int alumnoid)
 {
     Kyo.Entidades.Alumno alumno = db.Alumnos.Find(alumnoid);
     ViewBag.Title = "Detalles de Asistencia de " + alumno.Nombre + " " + alumno.Apellido;
     this.GetAnios();
     return(View());
 }
Пример #2
0
        public ActionResult generargrafico(string anio, int alumnoId)
        {
            Kyo.Entidades.Alumno alumno      = db.Alumnos.Find(alumnoId);
            Kyo.Entidades.Dojo   dojo        = db.Dojos.Find(alumno.DojoId);
            AsistenciaGrafico    graficoData = new Models.AsistenciaGrafico();

            graficoData.InitMeses();
            for (int i = 1; i < 13; i++)
            {
                var      asistenciasFechas = db.Asistencias.Where(asis => asis.AlumnoId == alumnoId && asis.Fecha.Year.ToString() == anio && asis.Fecha.Month == i).Select(a => a.Fecha).OrderBy(a => a.Month);
                int      semanas           = 0;
                DateTime mesAnio           = new DateTime(int.Parse(anio), i, 1);
                int      mes = mesAnio.Month;
                //calculo la cantidad de semanas
                while (mes == mesAnio.Month)
                {
                    mesAnio = mesAnio.AddDays(7);
                    semanas++;
                }

                if (asistenciasFechas.Count() > 0)
                {
                    var fechasPorMes = asistenciasFechas.GroupBy(f => f.Month, (key, g) => new { Mes = key, DiasMesAsistio = g.Count() });
                    foreach (var fecha in fechasPorMes)
                    {
                        int diasMes = semanas * dojo.DiasClasesSemanales;
                        graficoData.Detalle.Add(new DetalleMeses {
                            DiasAsistio = fecha.DiasMesAsistio, DiasMes = diasMes
                        });
                    }
                }
                else
                {
                    int diasMes = semanas * dojo.DiasClasesSemanales;
                    graficoData.Detalle.Add(new DetalleMeses {
                        DiasAsistio = 0, DiasMes = diasMes
                    });
                }
            }


            return(Json(graficoData, JsonRequestBehavior.AllowGet));
        }