예제 #1
0
        public ActionResult Nueva(int? cursoId, FormCollection collection)
        {
            if (!collection.AllKeys.Contains("asistencia[]"))
            {
                Flash.Instance.Error("Asistencias", "Debe elegir por lo menos un alumno");
                return Redirect(Request.UrlReferrer != null ? Request.UrlReferrer.AbsoluteUri : collection["NEXT"]);
            }

            string[] presentes = collection["asistencia[]"].Split(',');
            var fechaString = collection["FECHA"];

            //var curso = db.Materias_X_Cursos.Find(cursoId);
            //var url = "/Curso/" + curso.MATERIA_X_CURSO_CICLO.CICLO_ANIO + "/" + curso.

            var fecha = DateTime.ParseExact(fechaString, "dd/MM/yyyy", CultureInfo.InvariantCulture);

            if (db.Asistencias.Any(a => a.ASISTENCIA_FECHA == fecha && a.MATERIA_X_CURSOS_ID == cursoId))
            {
                Flash.Instance.Error("Asistencias", "Ya se tomó asistencia para este curso");
                return Redirect(collection["NEXT"]);
            }
            IEnumerable<Cursada> cursadas = db.Cursadas
                .Include("CURSADA_ALUMNO")
                .OrderBy(c => c.CURSADA_ALUMNO.PERSONA_APELLIDO)
                .Where(c => c.CURSADA_MATERIAS_X_CURSOS_ID == cursoId).ToList();

            foreach (Cursada cursada in cursadas)
            {
                Persona alumno = cursada.CURSADA_ALUMNO;
                var asistencia = new Asistencia();
                asistencia.ASISTENCIA_FECHA = fecha;
                asistencia.ASISTENCIA_ALUMNO_ID = cursada.CURSADA_ALUMNOS_ID;
                asistencia.MATERIA_X_CURSOS_ID = cursoId;
                bool presente = presentes.Contains(cursada.CURSADA_ALUMNOS_ID.ToString());
                if (presente)
                {
                    asistencia.ASISTENCIA_PRESENTE = true;
                }

                db.Asistencias.Add(asistencia);
                db.SaveChanges();
            }

            Flash.Instance.Success("Asistencias", "Se guardaron correctamente las Asistencias");
            return Redirect(collection["NEXT"]);
        }
예제 #2
0
        public IHttpActionResult GuardarAsistencias(int? id, string FECHA, [FromBody]List<GuardarAsistenciasVM> collection)
        {
            var fecha = DateTime.ParseExact(FECHA, "dd/MM/yyyy", CultureInfo.InvariantCulture);

            IEnumerable<Cursada> cursadas = _db.Cursadas
                .Include("CURSADA_ALUMNO")
                .OrderBy(c => c.CURSADA_ALUMNO.PERSONA_APELLIDO)
                .Where(c => c.CURSADA_MATERIAS_X_CURSOS_ID == id && c.CURSADA_ALUMNO != null).ToList();

            // SI ESTAMOS EDITANDO UNA ASISTENCIA
            if (_db.Asistencias.Any(a => a.ASISTENCIA_FECHA == fecha && a.MATERIA_X_CURSOS_ID == id))
            {
                //return BadRequest("Ya se tomó asistencia para este curso");
                var asistencias = _db.Asistencias.Include("ALUMNO").Where(a => a.ASISTENCIA_FECHA == fecha && a.MATERIA_X_CURSOS_ID == id && a.ALUMNO != null)
                                    .ToList();
                foreach (var asistencia in asistencias)
                {
                    var asist = collection.SingleOrDefault(a => a.DNI == asistencia.ALUMNO.PERSONA_DOCUMENTO_NUMERO);

                    asistencia.ASISTENCIA_PRESENTE = asist.PRESENTE;

                }
                _db.SaveChanges();

                return Ok();
            }

            foreach (Cursada cursada in cursadas)
            {
                Persona alumno = cursada.CURSADA_ALUMNO;
                var asistencia = new Asistencia();
                 asistencia.ASISTENCIA_FECHA = fecha;
                asistencia.ASISTENCIA_ALUMNO_ID = cursada.CURSADA_ALUMNOS_ID;
                asistencia.MATERIA_X_CURSOS_ID = id;

                var asiste = collection.SingleOrDefault(c => c.DNI == cursada.CURSADA_ALUMNO.PERSONA_DOCUMENTO_NUMERO);
                if (asiste != null)
                {
                    asistencia.ASISTENCIA_PRESENTE = asiste.PRESENTE;
                }

                _db.Asistencias.Add(asistencia);
                _db.SaveChanges();
            }

            return Ok();
        }