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)); }
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")); }
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")); }