public FrmModificarGrupo(grupos grupo, semestres semestreDefault)
        {
            InitializeComponent();

            this.grupo           = grupo;
            this.semestreDefault = semestreDefault;
        }
        // SELECTS
        public static List <grupos> seleccionarGrupos(
            semestres periodo,
            string turno,
            int semestre,
            carreras carrera
            )
        {
            // Código necesario para los métodos que
            // utilicen la base de datos
            CBTis123_Entities dbContext = Vinculo_DB.generarContexto();

            List <grupos> listaGrupos = new List <grupos>();

            try
            {
                turno = turno.ToUpper()[0].ToString();

                listaGrupos = dbContext.grupos.Where(
                    g =>
                    g.idSemestre == periodo.idSemestre &&
                    g.turno == turno &&
                    g.semestre == semestre &&
                    g.idCarrera == carrera.idCarrera
                    ).ToList();
            }
            catch (Exception e)
            {
                ControladorVisual.mostrarMensaje(ControladorExcepciones.crearResultadoOperacionException(e));
            }

            return(listaGrupos);
        }
        public List <grupos> seleccionarGrupos(semestres s)
        {
            // Creamos lista vacía en caso de Excepcion
            List <grupos> listaGrupos = new List <grupos>();

            // Intentamos realizar la operación. Si hubo algún error,
            // el controlador visual mostrará el mensaje correspondiente.
            try
            {
                CBTis123_Entities db = Vinculo_DB.generarContexto();

                listaGrupos =
                    db.grupos.Where(g => g.idSemestre == s.idSemestre).
                    OrderBy(g => g.semestre).
                    ThenBy(g => g.turno).
                    ThenBy(g => g.especialidad).
                    ThenBy(g => g.letra).
                    ToList();
            }
            catch (MySqlException e)
            {
                ControladorVisual.mostrarMensaje(ControladorExcepciones.crearResultadoOperacionMySqlException(e));
            }
            catch (Exception e)
            {
                ControladorVisual.mostrarMensaje(ControladorExcepciones.crearResultadoOperacionException(e));
            }

            // Devolvemos resultado
            return(listaGrupos);
        }
        public ResultadoOperacion eliminarSemestre(semestres s)
        {
            CBTis123_Entities db = Vinculo_DB.generarContexto();

            // Validamos que no tenga grupos dependientes
            if (db.grupos.Where(g => g.idSemestre == s.idSemestre).Count() > 0)
            {
                return
                    (new ResultadoOperacion(
                         EstadoOperacion.ErrorDependenciaDeDatos,
                         "El semestre contiene grupos"));
            }

            ResultadoOperacion innerRO = null;

            int eliminado = 0;

            // Si hay algún error durante la ejecución de la operación
            // se devolverá el respectivo resultado de operación.
            try
            {
                s = db.semestres.Single(s1 => s1.idSemestre == s.idSemestre);
                db.semestres.Remove(s);

                eliminado = db.SaveChanges();
            }
            catch (MySqlException e)
            {
                innerRO = ControladorExcepciones.crearResultadoOperacionMySqlException(e);
            }
            catch (Exception e)
            {
                innerRO = ControladorExcepciones.crearResultadoOperacionException(e);
            }

            // Si no hubo problema, se devolverá el resultado correspondiente.
            return
                (eliminado > 0 ?
                 new ResultadoOperacion(
                     EstadoOperacion.Correcto,
                     "Semestre eliminado")
                :
                 new ResultadoOperacion(
                     EstadoOperacion.NingunResultado,
                     "Semestre no eliminado",
                     null,
                     innerRO));
        }
Beispiel #5
0
        // Métodos de evento
        public void cargarGrupos(object sender, EventArgs e)
        {
            semestres periodo  = periodoSeleccionado;
            string    turno    = turnoSeleccionado;
            int       semestre = semestreSeleccionado;
            carreras  carrera  = carreraSeleccionada;

            if (
                periodo != null &&
                turno != "" &&
                semestre > 0 &&
                carrera != null
                )
            {
                List <grupos> listaGrupos =
                    ControladorAcreditacion.
                    seleccionarGrupos(
                        periodo,
                        turno,
                        semestre,
                        carrera);

                comboGrupo.DataSource = listaGrupos;

                if (listaGrupos.Count == 0)
                {
                    comboGrupo.DataSource      = null;
                    comboAsignatura.DataSource = null;
                    cmdImportar.Enabled        = false;
                    configurarDGVCalificaciones(null);
                }
            }
            else
            {
                comboGrupo.DataSource      = null;
                comboAsignatura.DataSource = null;
                cmdImportar.Enabled        = false;
                configurarDGVCalificaciones(null);
            }
        }
Beispiel #6
0
        public FrmModificarSemestre(semestres semestre)
        {
            InitializeComponent();

            this.semestre = semestre;
        }
Beispiel #7
0
        public static string[][] matricularSemestre(semestres s)
        {
            // Preparamos el contexto
            CBTis123_Entities db = Vinculo_DB.generarContexto();

            // Lista que contendrá todos los grupos.
            List <grupos> listaGruposOriginal = new List <grupos>();

            // Arreglo de listas que contendrán
            // los grupos clasificados por grado
            List <grupos>[] arrGruposPorGrado = new List <grupos> [8];

            for (int i = 0; i < arrGruposPorGrado.Length; i++)
            {
                arrGruposPorGrado[i] = new List <grupos>();
            }

            // Arreglo de la matrícula de todos los grupos.
            string[][] matriculaSemestral = null;

            int totalHombresM = 0;
            int totalHombresV = 0;

            int totalMujeresM = 0;
            int totalMujeresV = 0;

            int totalGruposM = 0;
            int totalGruposV = 0;

            try
            {
                // Obtenemos todos los grupos
                listaGruposOriginal = db.grupos.Where(
                    g => g.idSemestre == s.idSemestre
                    ).ToList();

                // El 13 es por los 4 posibles grados que puede
                // haber simultáneamente en un semestre.
                // Uno es una línea de espacio. El otro es una
                // línea para información general del grado
                // También, por las 4 líneas finales de totales.
                matriculaSemestral = new string[listaGruposOriginal.Count + 13][];

                // Los clasificamos según el grado, a la posición del arreglo
                foreach (grupos g in listaGruposOriginal)
                {
                    arrGruposPorGrado[g.semestre - 1].Add(g);
                }

                // Contador de posición en la matrícula [i][]
                int i = 0;

                // Iteramos sobre todos los grados.
                foreach (List <grupos> lista in arrGruposPorGrado)
                {
                    if (lista.Count == 0)
                    {
                        continue;
                    }

                    // Primero, los ordenamos según la matrícula oficial
                    List <grupos> listaAux = lista.OrderBy(
                        g => g.especialidad
                        ).ThenBy(
                        g => g.turno
                        ).ThenBy(
                        g => g.letra
                        ).ToList();

                    // Luego declaramos los datos extra
                    int gruposM = 0;
                    int gruposV = 0;

                    int hombresM = 0;
                    int hombresV = 0;

                    int mujeresM = 0;
                    int mujeresV = 0;

                    int totalM = 0;
                    int totalV = 0;

                    // Iteramos sobre todos los grupos de un grado específico.
                    // El resultado de la matriculación de ese grupo será añadido
                    // al arreglo de la matrícula semestral.
                    foreach (grupos g in listaAux)
                    {
                        string[] matriculaGrupo = matricularGrupo(g);
                        matriculaSemestral[i] = matriculaGrupo;
                        i++;

                        // Se realizan cálculos extra para los datos extra
                        if (g.turno.ToUpper() == "M")
                        {
                            gruposM++;
                            hombresM += Convert.ToInt32(matriculaGrupo[4]);
                            mujeresM += Convert.ToInt32(matriculaGrupo[5]);
                            totalM   += Convert.ToInt32(matriculaGrupo[6]);
                        }

                        if (g.turno.ToUpper() == "V")
                        {
                            gruposV++;
                            hombresV += Convert.ToInt32(matriculaGrupo[4]);
                            mujeresV += Convert.ToInt32(matriculaGrupo[5]);
                            totalV   += Convert.ToInt32(matriculaGrupo[6]);
                        }
                    }

                    // Se deja un espacio al final de todos los grupos de tal grado.
                    // Se rellena con datos extras.

                    matriculaSemestral[i] = new string[7];

                    matriculaSemestral[i][2] = listaAux.Count.ToString() + " grupos";
                    matriculaSemestral[i][3] = gruposM.ToString();
                    matriculaSemestral[i][4] = hombresM.ToString();
                    matriculaSemestral[i][5] = mujeresM.ToString();
                    matriculaSemestral[i][6] = totalM.ToString();

                    i++;


                    matriculaSemestral[i] = new string[8];

                    matriculaSemestral[i][3] = gruposV.ToString();
                    matriculaSemestral[i][4] = hombresV.ToString();
                    matriculaSemestral[i][5] = mujeresV.ToString();
                    matriculaSemestral[i][6] = totalV.ToString();
                    matriculaSemestral[i][7] = (totalM + totalV).ToString();

                    i++;

                    matriculaSemestral[i] = new string[1];
                    i++;

                    totalHombresM += hombresM;
                    totalHombresV += hombresV;

                    totalMujeresM += mujeresM;
                    totalMujeresV += mujeresV;

                    totalGruposM += gruposM;
                    totalGruposV += gruposV;
                }

                int totalAlumnosM = totalHombresM + totalMujeresM;
                int totalAlumnosV = totalHombresV + totalMujeresV;

                string[] lineaTotal1 = new string[8];
                string[] lineaTotal2 = new string[8];
                string[] lineaTotal3 = new string[8];

                lineaTotal1[1] = "Totales";
                lineaTotal1[2] = "TM";
                lineaTotal1[3] = totalGruposM.ToString();
                lineaTotal1[4] = totalHombresM.ToString();
                lineaTotal1[5] = totalMujeresM.ToString();
                lineaTotal1[6] = totalAlumnosM.ToString();
                lineaTotal2[7] = (totalAlumnosM + totalAlumnosV).ToString();

                lineaTotal2[2] = "TV";
                lineaTotal2[3] = totalGruposV.ToString();
                lineaTotal2[4] = totalHombresV.ToString();
                lineaTotal2[5] = totalMujeresV.ToString();
                lineaTotal2[6] = totalAlumnosV.ToString();

                lineaTotal3[3] = (totalGruposM + totalGruposV).ToString();
                lineaTotal3[4] = (totalHombresM + totalHombresV).ToString();
                lineaTotal3[5] = (totalMujeresM + totalMujeresV).ToString();
                lineaTotal3[6] = (totalAlumnosM + totalAlumnosV).ToString();

                int pos = matriculaSemestral.Length - 1;

                matriculaSemestral[pos - 3] = new string[0];
                matriculaSemestral[pos - 2] = lineaTotal1;
                matriculaSemestral[pos - 1] = lineaTotal2;
                matriculaSemestral[pos]     = lineaTotal3;
            }
            catch (Exception e)
            {
                ControladorVisual.mostrarMensaje(
                    ControladorExcepciones.crearResultadoOperacionException(e)
                    );
            }

            return(matriculaSemestral);
        }
        public FrmNuevoGrupo(semestres semestreDefault)
        {
            InitializeComponent();

            this.semestreDefault = semestreDefault;
        }
        public ResultadoOperacion modificarGrupo(
            int idGrupo,
            int idSemestre,
            int semestre,
            string letra,
            string turno,
            string especialidad,
            semestres semestreObj,
            carreras especialidadObj
            )
        {
            // Verificamos que los datos introducidos
            // sean válidos para la base de datos.
            if (
                !ValidadorDeTexto.esValido(letra) ||
                !ValidadorDeTexto.esValido(turno) ||
                !ValidadorDeTexto.esValido(especialidad)
                )
            {
                // Devolvemos un error si es que no son válidos.
                return(new ResultadoOperacion(
                           EstadoOperacion.ErrorDatosIncorrectos,
                           "No utilice caracteres especiales o inválidos"));
            }

            ResultadoOperacion innerRO = null;

            int modificado = 0;

            // Si hay algún error durante la ejecución de la operación
            // se devolverá el respectivo resultado de operación.
            try
            {
                CBTis123_Entities db = Vinculo_DB.generarContexto();

                grupos g = db.grupos.Single(g1 => g1.idGrupo == idGrupo);

                g.especialidad = especialidadObj.abreviatura;
                g.idCarrera    = especialidadObj.idCarrera;
                g.idSemestre   = semestreObj.idSemestre;
                g.letra        = letra;
                g.semestre     = semestre;
                g.turno        = turno[0].ToString().ToUpper();

                modificado = db.SaveChanges();
            }
            catch (MySqlException e)
            {
                innerRO = ControladorExcepciones.crearResultadoOperacionMySqlException(e);
            }
            catch (Exception e)
            {
                innerRO = ControladorExcepciones.crearResultadoOperacionException(e);
            }

            // Si no hubo problema, se devolverá el resultado correspondiente.
            return
                (modificado > 0 ?
                 new ResultadoOperacion(
                     EstadoOperacion.Correcto,
                     "Grupo modificado")
                :
                 new ResultadoOperacion(
                     EstadoOperacion.ErrorAplicacion,
                     "Grupo no modificado",
                     null,
                     innerRO));
        }
        // Modificación
        public ResultadoOperacion modificarSemestre(
            int idSemestre,
            string nombre,
            string nombreCorto,
            string nombreCorto2,
            string nombreCorto3,
            DateTime fechai_p1,
            DateTime fechaf_p1,
            DateTime fechai_p2,
            DateTime fechaf_p2,
            DateTime fechai_p3,
            DateTime fechaf_p3
            )
        {
            // Verificamos que los datos introducidos
            // sean válidos para la base de datos.
            if (
                !ValidadorDeTexto.esValido(nombre) ||
                !ValidadorDeTexto.esValido(nombreCorto) ||
                !ValidadorDeTexto.esValido(nombreCorto2) ||
                !ValidadorDeTexto.esValido(nombreCorto3) ||
                fechaf_p1 < fechai_p1 ||
                fechai_p2 <= fechaf_p1 ||
                fechaf_p2 < fechai_p2 ||
                fechai_p3 <= fechaf_p2 ||
                fechaf_p3 < fechai_p3
                )
            {
                // Devolvemos un error si es que no son válidos.
                return(new ResultadoOperacion(
                           EstadoOperacion.ErrorDatosIncorrectos,
                           "No utilice caracteres especiales o inválidos. Verifique sus fechas."));
            }

            CBTis123_Entities  dbContext = Vinculo_DB.generarContexto();
            ResultadoOperacion innerRO   = null;

            int modificado = 0;

            // Si hay algún error durante la ejecución de la operación
            // se devolverá el respectivo resultado de operación.
            try
            {
                semestres s = dbContext.semestres.Single(s1 => s1.idSemestre == idSemestre);

                s.nombre       = nombre;
                s.nombrecorto  = nombreCorto;
                s.nombrecorto2 = nombreCorto2;
                s.nombrecorto3 = nombreCorto3;
                s.fechaf_p1    = fechaf_p1;
                s.fechaf_p2    = fechaf_p2;
                s.fechaf_p3    = fechaf_p3;
                s.fechai_p1    = fechai_p1;
                s.fechai_p2    = fechai_p2;
                s.fechai_p3    = fechai_p3;

                modificado = dbContext.SaveChanges();
            }
            catch (MySqlException e)
            {
                innerRO = ControladorExcepciones.crearResultadoOperacionMySqlException(e);
            }
            catch (Exception e)
            {
                innerRO = ControladorExcepciones.crearResultadoOperacionException(e);
            }

            // Si no hubo problema, se devolverá el resultado correspondiente.
            return
                (modificado > 0 ?
                 new ResultadoOperacion(
                     EstadoOperacion.Correcto,
                     "Semestre modificado")
                :
                 new ResultadoOperacion(
                     EstadoOperacion.NingunResultado,
                     "Semestre no modificado",
                     null,
                     innerRO));
        }