Ejemplo n.º 1
0
        //[ValidateAntiForgeryToken]
        public PartialViewResult AgregarConformado(Conformado_Item_Sec_Form conformado)
        {
            if (ModelState.IsValid)
            {
                Conformado_For_Sec conf_for_sec = new Conformado_For_Sec();
                conf_for_sec.CodigoFormulario = conformado.CodigoFormulario; conf_for_sec.TituloSeccion = conformado.TituloSeccion;
                List <Conformado_Item_Sec_Form> conf = db.Conformado_Item_Sec_Form.Where(m => m.ItemId == conformado.ItemId && m.TituloSeccion == conformado.TituloSeccion && m.CodigoFormulario == conformado.CodigoFormulario).ToList();
                if (conf.Count == 0)
                {
                    db.Conformado_Item_Sec_Form.Add(conformado);
                    if (db.Conformado_For_Sec.Where(m => m.TituloSeccion == conf_for_sec.TituloSeccion && m.CodigoFormulario == conf_for_sec.CodigoFormulario).Count() == 0)
                    {
                        db.Conformado_For_Sec.Add(conf_for_sec);
                        db.SaveChanges();
                    }
                    db.SaveChanges();
                }
                else
                {
                    return(null);
                }
            }
            //A
            List <Conformado_Item_Sec_Form> conformados =
                db.Conformado_Item_Sec_Form
                .Include("Item")
                .Where(m => m.CodigoFormulario == conformado.CodigoFormulario && m.TituloSeccion == conformado.TituloSeccion)
                .OrderBy(m => m.Orden_Item)
                .ToList();

            return(PartialView("ConformadoVParcial", conformados));
        }
        public ActionResult Create([Bind(Include = "ItemID,TextoPregunta,TieneObservacion,TipoPregunta,NombreCategoria,EtiquetaObservacion")] Item item, string[] DynamicTextBox)
        {
            if (ModelState.IsValid)
            {
                db.Item.Add(item);
                db.SaveChanges();

                if (DynamicTextBox != null && item.TipoPregunta == 2)
                {
                    //Uso del procedimiento almacenado para insertar en una sección.
                    db.SP_Insertar_Seleccion_Unica(item.ItemId, false);

                    //Uso del procedimiento almancenado para insertar todas las opciones de respuesta en la tabla Selección Única.
                    for (short index = 1; index <= DynamicTextBox.Length; ++index)
                    {
                        db.SP_Insertar_Opciones_De_Respuestas_Seleccion_Unica(item.ItemId, index, DynamicTextBox[index - 1]);
                    }
                }

                ViewBag.ItemID = new SelectList(db.Seleccion_Unica, "ItemID", "ItemID", item.ItemId);
                ViewBag.ItemID = new SelectList(db.Texto_Libre, "ItemId", "ItemId", item.ItemId);
                return(RedirectToAction("Index"));
            }

            return(View("Create", item));
        }
        public ActionResult Create([Bind(Include = "CodigoFormulario,Nombre")] Formulario formulario)
        {
            if (ModelState.IsValid)
            {
                db.Formulario.Add(formulario);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(formulario));
        }
        public ActionResult Create([Bind(Include = "NombreCategoria")] Categoria categoria)
        {
            if (ModelState.IsValid)
            {
                db.Categoria.Add(categoria);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View("Create", categoria));
        }
        public ActionResult Create([Bind(Include = "Titulo,Descripcion")] Seccion seccion)
        {
            if (ModelState.IsValid)
            {
                db.Seccion.Add(seccion);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View("Create", seccion));
        }
Ejemplo n.º 6
0
        public ActionResult Create([Bind(Include = "ItemId,CodigoFormulario,TituloSeccion,NombreFormulario,Orden_Item,Orden_Seccion")] Conformado_Item_Sec_Form conformado_Item_Sec_Form)
        {
            if (ModelState.IsValid)
            {
                db.Conformado_Item_Sec_Form.Add(conformado_Item_Sec_Form);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.CodigoFormulario = new SelectList(db.Formulario, "CodigoFormulario", "Nombre", conformado_Item_Sec_Form.CodigoFormulario);
            ViewBag.ItemId           = new SelectList(db.Item, "ItemId", "TextoPregunta", conformado_Item_Sec_Form.ItemId);
            ViewBag.TituloSeccion    = new SelectList(db.Seccion, "Titulo", "Descripcion", conformado_Item_Sec_Form.TituloSeccion);
            return(View(conformado_Item_Sec_Form));
        }
Ejemplo n.º 7
0
        public ActionResult Create([Bind(Include = "Fecha,CodigoFormulario,CedulaPersona,CedulaProfesor,AnnoGrupo,SemestreGrupo,NumeroGrupo,SiglaGrupo,Completado")] Formulario_Respuesta formulario_Respuesta)
        {
            if (ModelState.IsValid)
            {
                db.Formulario_Respuesta.Add(formulario_Respuesta);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.CodigoFormulario = new SelectList(db.Formulario, "CodigoFormulario", "Nombre", formulario_Respuesta.CodigoFormulario);
            ViewBag.SiglaGrupo       = new SelectList(db.Grupo, "SiglaCurso", "SiglaCurso", formulario_Respuesta.SiglaGrupo);
            ViewBag.CedulaPersona    = new SelectList(db.Persona, "Cedula", "Nombre", formulario_Respuesta.CedulaPersona);
            ViewBag.CedulaProfesor   = new SelectList(db.Profesor, "CedulaProfesor", "CedulaProfesor", formulario_Respuesta.CedulaProfesor);
            return(View(formulario_Respuesta));
        }
Ejemplo n.º 8
0
        public ActionResult DeleteConfirmed(Grupo GrupoElim, Formulario FormularioElim, Fecha_Corte PeriodoElim)
        {
            Tiene_Grupo_Formulario tiene_Grupo_Formulario = db.Tiene_Grupo_Formulario.Find(GrupoElim, FormularioElim, PeriodoElim);

            db.Tiene_Grupo_Formulario.Remove(tiene_Grupo_Formulario);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        public ActionResult BorrarConfirmado(string id)
        {
            // No se puede eliminar el perfil administrador.
            if (id != "Administrador")
            {
                Perfil perfil = db.Perfil.Find(id);
                db.Perfil.Remove(perfil);
                db.SaveChanges();

                // Desplegar alert hasta que se cargue la pagina por completo.
                TempData["msg"] = "<script> $(document).ready(function(){ alert('El perfil se ha borrado exitosamente.');}); </script>";
                return(RedirectToAction("Borrar"));
            }
            else
            {
                return(new HttpStatusCodeResult(HttpStatusCode.NotAcceptable));
            }
        }
Ejemplo n.º 10
0
        public void GuardarRespuestas(string CedulaEstudiante, string CedulaProfesor, string Grupo, string CodigoFormulario, string Respuestas)
        {
            //Debug.WriteLine("\n\nGrupo: \"" + Grupo + "\"\n\n");
            var cedulaEst    = JsonConvert.DeserializeObject <string>(CedulaEstudiante);
            var cedulaProf   = JsonConvert.DeserializeObject <string>(CedulaProfesor);
            var grupoParcial = JsonConvert.DeserializeAnonymousType(Grupo, new { Anno = "", Semestre = "", SiglaCurso = "", NumeroGrupo = "" });
            var grupoEval    = new Grupo
            {
                AnnoGrupo     = Convert.ToInt16(grupoParcial.Anno),
                SemestreGrupo = Convert.ToByte(grupoParcial.Semestre),
                SiglaCurso    = grupoParcial.SiglaCurso,
                Numero        = Convert.ToByte(grupoParcial.NumeroGrupo)
            };
            var codigoF         = JsonConvert.DeserializeObject <string>(CodigoFormulario);
            var fecha           = DateTime.Now;
            var listaRespuestas = JsonConvert.DeserializeObject <RespuestaModel[]>(Respuestas);

            // tuplas contiene todas las tuplas por insertar a la base.
            var tuplas = new List <Responde>();

            foreach (RespuestaModel respuesta in listaRespuestas)
            {
                foreach (var hileraRespuesta in respuesta.HilerasDeRespuesta)
                {
                    tuplas.Add(new Responde {
                        ItemId               = respuesta.IdItem,
                        TituloSeccion        = respuesta.TituloSeccion,
                        FechaRespuesta       = fecha,
                        CodigoFormularioResp = codigoF,
                        CedulaPersona        = cedulaEst,
                        CedulaProfesor       = cedulaProf,
                        AnnoGrupoResp        = grupoEval.AnnoGrupo,
                        SemestreGrupoResp    = grupoEval.SemestreGrupo,
                        NumeroGrupoResp      = grupoEval.Numero,
                        SiglaGrupoResp       = grupoEval.SiglaCurso,
                        Observacion          = respuesta.Observacion,
                        Respuesta            = hileraRespuesta,
                        RespuestaProfesor    = null
                    });
                }
            }

            var formResp = new Formulario_Respuesta
            {
                Fecha            = fecha,
                CodigoFormulario = codigoF,
                CedulaPersona    = cedulaEst,
                CedulaProfesor   = cedulaProf,
                AnnoGrupo        = grupoEval.AnnoGrupo,
                SemestreGrupo    = grupoEval.SemestreGrupo,
                NumeroGrupo      = grupoEval.Numero,
                SiglaGrupo       = grupoEval.SiglaCurso,
                Completado       = true
            };

            if (ModelState.IsValid)
            {
                db.Formulario_Respuesta.Add(formResp);
                db.Responde.AddRange(tuplas.AsEnumerable());
                db.SaveChanges();
            }
        }
Ejemplo n.º 11
0
        public string EfectuarAsignaciones(string Grupos, string PeriodosIndicados)
        {
            string   mensajes               = "";
            int      numErrores             = 0;
            var      FormulariosConPeriodos = JsonConvert.DeserializeObject <TipoPeriodosIndicados[]>(PeriodosIndicados);
            var      GruposEnLista          = JsonConvert.DeserializeObject <Grupo[]>(Grupos);
            DateTime ahora = DateTime.Now;

            //Almacena los cursos a los que se le deben enviar los correos.
            List <Curso> CursosCorreos = new List <Curso>();

            List <Tiene_Grupo_Formulario> asignaciones = new List <Tiene_Grupo_Formulario>();

            foreach (var fcp in FormulariosConPeriodos)
            {
                DateTime inicioPeriodo = new DateTime(), finPeriodo = new DateTime();
                bool     fechaIEsCorrecta = DateTime.TryParseExact(fcp.FechaInicio, "yyyy-MM-ddThh:mm", CultureInfo.CurrentCulture, DateTimeStyles.None, out inicioPeriodo);
                bool     fechaFEsCorrecta = DateTime.TryParseExact(fcp.FechaFinal, "yyyy-MM-ddThh:mm", CultureInfo.CurrentCulture, DateTimeStyles.None, out finPeriodo);

                //bool fechaIEsCorrecta = DateTime.TryParse(fcp.FechaInicio, CultureInfo.CurrentCulture, DateTimeStyles.AssumeLocal, out inicioPeriodo);
                //bool fechaFEsCorrecta = DateTime.TryParse(fcp.FechaFinal, CultureInfo.CurrentCulture, DateTimeStyles.AssumeLocal, out finPeriodo);

                if (fechaIEsCorrecta && fechaFEsCorrecta)
                {
                    //Debug.WriteLine("Fecha inicio: {0}\nFecha fin: {1}\n\n", inicioPeriodo.ToString(), finPeriodo.ToString());

                    if (ahora < inicioPeriodo)
                    {
                        if (inicioPeriodo < finPeriodo)
                        {
                            if ((from fc in db.Fecha_Corte
                                 where (fc.FechaInicio == inicioPeriodo && fc.FechaFinal == finPeriodo)
                                 select fc).Count() == 0)
                            {
                                if (ModelState.IsValid)
                                {
                                    db.Fecha_Corte.Add(new Fecha_Corte {
                                        FechaInicio = inicioPeriodo, FechaFinal = finPeriodo
                                    });
                                    db.SaveChanges();
                                }
                            }


                            foreach (var g in GruposEnLista)
                            {
                                asignaciones.Add(new Tiene_Grupo_Formulario
                                {
                                    SiglaCurso  = g.SiglaCurso,
                                    Numero      = g.Numero,
                                    Anno        = g.AnnoGrupo,
                                    Ciclo       = g.SemestreGrupo,
                                    Codigo      = fcp.CodigoForm,
                                    FechaInicio = inicioPeriodo,
                                    FechaFinal  = finPeriodo
                                });
                                //Para enviar los correos a los cursos respectivos
                                Curso curso = db.Curso.Find(g.SiglaCurso);
                                CursosCorreos.Add(curso);
                            }
                        }
                        else // El periodo inicia después de que termina
                        {
                            ++numErrores;
                            mensajes += "- El inicio del periodo para el formulario " + fcp.CodigoForm + " debe corresponder a una fecha anterior al final del mismo periodo.\n";
                        }
                    }
                    else // Inicio del periodo NO es posterior a la fecha actual
                    {
                        ++numErrores;
                        mensajes += "- El periodo para el formulario " + fcp.CodigoForm + " debe comenzar en una fecha posterior a la actual\n";
                    }
                }
                else
                {
                    //Debug.Write("\n\nFecha incorrecta /\n\n");
                    ++numErrores;
                    mensajes += "- Ingrese correctamente el periodo de aplicación para el formulario " + fcp.CodigoForm + "\n";
                }
            }

            if (numErrores > 0)
            {
                mensajes += "\nPor favor corrija lo indicado antes de realizar las asignaciones.\n";
            }
            else
            {
                if (ModelState.IsValid)
                {
                    db.Tiene_Grupo_Formulario.AddRange(asignaciones);
                    db.SaveChanges();

                    //Se envían los correos
                    foreach (var e in CursosCorreos)
                    {
                        EnviarCorreoFormulario(e);
                    }
                }
                else
                {
                    mensajes += "Hubo un error al guardar las asignaciones. Por favor contacte a soporte técnico.\n";
                }
            }

            return(JsonConvert.SerializeObject(mensajes == ""? null : mensajes));
        }
Ejemplo n.º 12
0
        public ActionResult Guardar(SeleccionPermisos mod)
        {
            using (var context = new Opiniometro_DatosEntities())
            {
                SeleccionPermisos model = new SeleccionPermisos();
                model.ListaPerfiles = Perfil.ObtenerPerfilesMenosAdmin();
                model.ListaPermisos = context.Permiso.ToList();
                model.ListaEnfasis  = context.Enfasis.ToList();
                model.ListaPosee    = context.Posee_Enfasis_Perfil_Permiso.ToList();

                foreach (var item in mod.ListaGuardar)
                {
                    if (item.Existe)//Si quedo seleccionado la intenta agregar si ya existe o no
                    {
                        //Si esta checked hay que ver si esta ya en la base o no
                        //Para todos los enfasis se intenta insertar
                        foreach (var enf in model.ListaEnfasis)
                        {
                            //Verificar si NO existe en la tabla para insertarlo
                            if (!model.ListaPosee.Any(tupla => tupla.NombrePerfil == item.Perfil && tupla.IdPermiso == item.Permiso && tupla.SiglaCarrera == enf.SiglaCarrera && tupla.NumeroEnfasis == enf.Numero))
                            {
                                var NumeroEnf    = new SqlParameter("@NumeroEnf", enf.Numero);
                                var Sigla        = new SqlParameter("@Sigla", enf.SiglaCarrera);
                                var NombrePerf   = new SqlParameter("@NombrePerf", item.Perfil);
                                var IdPermiso    = new SqlParameter("@IdPermiso", item.Permiso);
                                var Numero_Error = new SqlParameter("@Numero_Error", 0);
                                Numero_Error.Direction = ParameterDirection.Output;
                                Numero_Error.SqlDbType = SqlDbType.Int;

                                context.Database.ExecuteSqlCommand(TransactionalBehavior.DoNotEnsureTransaction,
                                                                   "EXEC SP_InsertaTablaPosee @NumeroEnf, @Sigla, @NombrePerf, @IdPermiso, @Numero_Error OUT", NumeroEnf, Sigla, NombrePerf, IdPermiso, Numero_Error);

                                if ((int)Numero_Error.Value != 0)//Significa que hubo un error con la transaccion
                                {
                                    ModelState.AddModelError("ErrorInsertaPosee", "Error al insertar en tabla Posee");
                                }
                            }
                        }
                    }
                    else//Si no fue seleccionado o fue deseleccionado intenta borrar la tupla si existe o no en la tabla
                    {
                        //Si esta unchecked se fija para ver si esta en la base para quitarla sino no hace nada pues no estaba previamente
                        //Hay que tratar de hacer borrado para todos los enfasis
                        foreach (var enf in model.ListaEnfasis)
                        {
                            var consulta = (from p in context.Posee_Enfasis_Perfil_Permiso
                                            where p.IdPermiso == item.Permiso &&
                                            p.NombrePerfil == item.Perfil &&
                                            p.NumeroEnfasis == enf.Numero &&
                                            p.SiglaCarrera == enf.SiglaCarrera
                                            select p).FirstOrDefault();
                            //Si no esta vacio significa que existe y por ende hay que quitarla de la tabla
                            if (consulta != null)
                            {
                                context.Posee_Enfasis_Perfil_Permiso.Remove(consulta);
                            }
                        }
                    }
                }

                if (ModelState.IsValid)
                {
                    //Notificacion de que todo sale bien
                    context.SaveChanges();
                    TempData["msg"] = "<script> $(document).ready(function(){ alert('Se han guardado los cambios a los permisos exitosamente.');}); </script>";
                    return(RedirectToAction("SeleccionarPermisos"));
                }

                return(View(model));
            }
        }