Beispiel #1
0
        public ActionResult TomarAsistencia(int idCurso)
        {
            List <Persona> alumnos = db.Database.SqlQuery <Persona>("SELECT * " +
                                                                    "FROM Persona " +
                                                                    "WHERE Persona.Dni IN " +
                                                                    "(SELECT DniAlumno FROM Asiste WHERE Asiste.IdCurso= @p0 AND Asiste.año = @p1)", idCurso, "01/01/" + DateTime.Now.Year.ToString()).ToList();

            List <Inasistencia> inasistenciasCompletas = new List <Inasistencia>();
            List <Inasistencia> inasistenciasMedias    = new List <Inasistencia>();

            foreach (Persona p in alumnos)
            {
                Inasistencia i = db.Inasistencia.Find(p.Dni, DateTime.Today);

                if (i != null)
                {
                    if (i.Completa == true)
                    {
                        inasistenciasCompletas.Add(i);
                    }

                    if (i.EsMedia == true)
                    {
                        inasistenciasMedias.Add(i);
                    }
                }
            }

            ViewBag.inasistenciasCompletas = inasistenciasCompletas;
            ViewBag.inasistenciasMedias    = inasistenciasMedias;
            ViewBag.idCurso = idCurso;

            Curso curso = db.Curso.Find(idCurso);

            ViewBag.nroyDivision = curso.Nro.ToString() + "° " + curso.Division;

            alumnos.Sort();

            if (HttpContext.Session["Role"] != null && HttpContext.Session["Role"].ToString() == "Profesor")
            {
                ViewBag.Role = "Profesor";
            }


            return(View(alumnos));
        }
Beispiel #2
0
        public ActionResult ConfirmarInasistencia(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var empleado = db.Empleados.Find(id);

            if (empleado == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var fechaInasistencia = DateTime.Today;
            var inasistencia      = new Inasistencia();

            inasistencia.Empleado = empleado;
            inasistencia.Fecha    = fechaInasistencia;
            empleado.Inasistencias.Add(inasistencia);
            db.Inasistencias.Add(inasistencia);
            db.Entry(empleado).State = EntityState.Modified;
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Beispiel #3
0
        public ActionResult AñadirInasistencias(int idCurso, List <int> dnisFaltaCompleta, List <int> dnisMediaFalta)
        {
            //se obtienen de nuevo todos los alumnos para ese curso
            List <Persona> alumnos = db.Database.SqlQuery <Persona>("SELECT * " +
                                                                    "FROM Persona " +
                                                                    "WHERE Persona.Dni IN " +
                                                                    "(SELECT DniAlumno FROM Asiste WHERE Asiste.IdCurso= @p0 AND Asiste.año = @p1)", idCurso, "01/01/" + DateTime.Today.Year.ToString()).ToList();


            //se eliminan las inasistencias si ya las hubo, para realizar nuevas actualizadas
            foreach (Persona a in alumnos)
            {
                Inasistencia i = db.Inasistencia.Find(a.Dni, DateTime.Today);

                if (i != null)
                {
                    db.Inasistencia.Remove(i);
                }
            }


            db.SaveChanges();


            if (dnisFaltaCompleta == null)
            {
                dnisFaltaCompleta = new List <int>();
            }

            if (dnisMediaFalta == null)
            {
                dnisMediaFalta = new List <int>();
            }

            List <int> faltaymedia = dnisFaltaCompleta.Intersect(dnisMediaFalta).ToList();

            List <int> faltaCompleta = dnisFaltaCompleta.Except(faltaymedia).ToList().Except(dnisMediaFalta).ToList();

            List <int> mediaFalta = dnisMediaFalta.Except(faltaymedia).ToList().Except(dnisFaltaCompleta).ToList();

            foreach (int dni in faltaymedia)
            {
                Inasistencia i = new Inasistencia();

                i.DniAlumno = dni;
                i.Fecha     = DateTime.Today;
                i.Completa  = true;
                i.EsMedia   = true;

                db.Inasistencia.Add(i);
            }

            foreach (int dni in faltaCompleta)
            {
                Inasistencia i = new Inasistencia();
                i.DniAlumno = dni;
                i.Fecha     = DateTime.Today;
                i.Completa  = true;
                i.EsMedia   = false;

                db.Inasistencia.Add(i);
            }

            foreach (int dni in mediaFalta)
            {
                Inasistencia i = new Inasistencia();
                i.DniAlumno = dni;
                i.Fecha     = DateTime.Today;
                i.Completa  = false;
                i.EsMedia   = true;

                db.Inasistencia.Add(i);
            }


            db.SaveChanges();


            if (HttpContext.Session["Role"].ToString() == "Profesor")
            {
                return(RedirectToAction("CursosPorProfe"));
            }

            return(RedirectToAction("Index", "Curso"));
        }