//Agregar Calificaciones
        public ActionResult AgregarCalificaciones(int id_gpp, double calActual, double calNueva)
        {
            try {
                //primero buscamos a ver si ya existe la calificacion.
                Calificacion c  = _ctx.Calificaciones.Where(x => x.GpPeriodoId == id_gpp).FirstOrDefault();
                GpPeriodo    gp = _ctx.GpPeriodos.Where(x => x.Id == id_gpp)
                                  .Include(x => x.GrupoPersona).FirstOrDefault();
                if (c != null)
                {
                    //Es edicion
                    c.calificacion = calNueva;
                    _ctx.SaveChanges();
                }
                else
                {
                    //Es asignacion nueva
                    c              = new Calificacion();
                    c.GpPeriodo    = gp;
                    c.GpPeriodoId  = id_gpp;
                    c.calificacion = calNueva;

                    _ctx.Calificaciones.Add(c);
                    _ctx.SaveChanges();
                }
                return(Filtrar(gp.GrupoPersonaId, gp.GrupoPersona.CicloId, gp.periodo, gp.GrupoPersona.MateriaId));
            } catch (Exception e) {
                return(View("Index"));
            }
        }
Esempio n. 2
0
        //Crear
        public ActionResult Crear(GrupoPersonaViewModel gpvm)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    //Algo salio mal, de modo que volvemos a la lista, pero
                    //se tienen que llenar los dropdown de nuevo
                    gpvm.grupoList    = _ctx.Grupos.ToList();
                    gpvm.materiaList  = _ctx.Materias.ToList();
                    gpvm.cicloList    = _ctx.Ciclos.ToList();
                    gpvm.personaList  = _ctx.Personas.Where(x => x.TipoPersonaId == TipoPersona.Alumno).ToList();
                    gpvm.profesorList = _ctx.Personas.Where(x => x.TipoPersonaId == TipoPersona.Profesor).ToList();

                    //
                    return(View("FormGrupoPersonas", gpvm));
                }
                GrupoPersona gp = null;
                if (gpvm.Id == 0)
                {
                    gp = new GrupoPersona();
                    //llenamos la informacion
                    gp.GrupoId    = gpvm.GrupoId;
                    gp.MateriaId  = gpvm.MateriaId;
                    gp.CicloId    = gpvm.CicloId;
                    gp.PersonaId  = gpvm.PersonaId;
                    gp.ProfesorId = gpvm.ProfesorId;

                    _ctx.GrupoPersonas.Add(gp);
                }
                else
                {
                    //Estan editando
                    gp = _ctx.GrupoPersonas.SingleOrDefault(x => x.Id == gpvm.Id);

                    if (gp != null)
                    {
                        //es que quieren editar y realmente existe, parseamos valores
                        gp.GrupoId    = gpvm.GrupoId;
                        gp.MateriaId  = gpvm.MateriaId;
                        gp.CicloId    = gpvm.CicloId;
                        gp.PersonaId  = gpvm.PersonaId;
                        gp.ProfesorId = gpvm.ProfesorId;
                    }
                }


                _ctx.SaveChanges();
                //aqui validamos que fue un registro nuevo
                if (gpvm.Id == 0)
                {
                    //es un registro nuevo
                    int id_gp = gp.Id;
                    // comentado por que daba nulo .
                    //int periodos = gp.Ciclo.Modalidad.n_periodos;
                    var ciclo    = _ctx.Ciclos.Include(x => x.Modalidad).SingleOrDefault(x => x.Id == gp.CicloId);
                    int periodos = ciclo.Modalidad.n_periodos;
                    for (int i = 1; i <= periodos; i++)
                    {
                        //realiamos un insert
                        GpPeriodo gpp = new GpPeriodo();

                        gpp.GrupoPersonaId = id_gp;
                        gpp.periodo        = i;
                        _ctx.GpPeriodos.Add(gpp);
                    }
                    _ctx.SaveChanges();
                }
            }
            catch (Exception e)
            {
                return(View("FormGrupoPersona", e));
            }

            return(RedirectToAction("Index"));
        }