private void cargaComboGrupos()
        {
            CBaseDatos bd = new CBaseDatos();
            DataSet    ds = bd.consulta("SELECT Id_Grupo, Ciclo_Escolar + '/' + cast(Semestre AS VARCHAR(2))  + Grupo AS nombreGrupo FROM Horarios.Grupo");

            cbGrupos.DataSource    = ds.Tables[0];
            cbGrupos.ValueMember   = "Id_Grupo";
            cbGrupos.DisplayMember = "nombreGrupo";
            bd.Dispose();
        }
        private void wdwReporte_Load(object sender, EventArgs e)
        {
            CBaseDatos bd         = new CBaseDatos();
            DataSet    dataCiclos = bd.consulta("SELECT DISTINCT(Ciclo_Escolar) FROM Horarios.Grupo");

            this.cbciclos.DataSource    = dataCiclos.Tables[0];
            this.cbciclos.DisplayMember = "Ciclo_Escolar";
            this.cbciclos.ValueMember   = "Ciclo_Escolar";
            bd.Dispose();
        }
        private void btnReporte_Click(object sender, EventArgs e)
        {
            CBaseDatos bd    = new CBaseDatos();
            String     query = "SELECT * FROM Horarios.Materia ";

            query += "WHERE Id_Materia IN(";
            query += "SELECT DISTINCT (M.Id_Materia) ";
            query += "FROM Horarios.Materia M ";
            query += "INNER JOIN Horarios.Horario H ON H.Id_Materia = M.Id_Materia ";
            query += "INNER JOIN Horarios.Grupo G On H.Id_Grupo = G.Id_Grupo ";
            query += "WHERE G.Ciclo_Escolar = '" + this.cbciclos.SelectedValue.ToString() + "')";
            DataSet dataMaterias = bd.consulta(query);

            this.gridMaterias.DataSource = dataMaterias.Tables[0];
        }
        public void baja_Materia(int idMateria)
        {
            CBaseDatos db = new CBaseDatos();
            DataSet    ds = db.consulta("SELECT * FROM Horarios.Horario WHERE Id_Materia = " + idMateria);

            if (ds.Tables[0].Rows.Count > 0)
            {
                MessageBox.Show("No se puede eliminar la materia por que esta asignada a un horario", "Eliminación Materia", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                db.sql("DELETE FROM Horarios.Materia WHERE Id_Materia = " + idMateria);
            }
            inicializaControles();

            db.Dispose();
        }
示例#5
0
        public void baja_HoraClase(int idHoraClase)
        {
            CBaseDatos db = new CBaseDatos();
            DataSet    ds = db.consulta("SELECT * FROM Horarios.Horario WHERE Id_Hora_Clase = " + idHoraClase);

            if (ds.Tables[0].Rows.Count > 0)
            {
                MessageBox.Show("No se puede eliminar la hora-clase porque está asignada a un horario", "Eliminación Hora-Clase", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                db.sql("DELETE FROM Horarios.Hora_Clase WHERE Id_Hora_Clase = " + idHoraClase);
                inicializaControles();
            }

            db.Dispose();
        }
示例#6
0
        public void baja_Grupo(int idGrupo)
        {
            CBaseDatos db = new CBaseDatos();
            DataSet    ds = db.consulta("SELECT * FROM Horarios.Horario WHERE Id_Grupo = " + idGrupo);

            if (ds.Tables[0].Rows.Count > 0)
            {
                MessageBox.Show("No se puede eliminar el grupo porque está asignado a un horario", "Eliminación Grupo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                db.sql("DELETE FROM Horarios.Grupo WHERE Id_Grupo = " + idGrupo);
                inicializaControles();
            }

            db.Dispose();
        }
        public void baja_Profesor(int idProfesor)
        {
            CBaseDatos db = new CBaseDatos();
            DataSet    ds = db.consulta("SELECT * FROM Horarios.Horario WHERE Id_Profesor = " + idProfesor);

            if (ds.Tables[0].Rows.Count > 0)
            {
                MessageBox.Show("No se puede eliminar el profesor ya que esta asignado a un horario", "Eliminación Profesor", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                db.sql("DELETE FROM Horarios.Profesor WHERE Id_Profesor = " + idProfesor);
                inicializaControles();
            }

            db.Dispose();
        }
示例#8
0
        private void agregaHorasTabla()
        {
            CBaseDatos db    = new CBaseDatos();
            String     query = "SELECT CONVERT(varchar(10), HC.Hora_Inicio, 100) AS Hora ";

            query += "FROM Horarios.Hora_Clase HC";

            DataSet ds = db.consulta(query);
            int     i  = 0;

            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                gridHorario.Rows.Add();
                gridHorario.Rows[i].HeaderCell.Value = dr["Hora"];
                i++;
            }

            db.Dispose();
        }
        private bool validaDatosUnicosProfesor(int idModifica)
        {
            int        idHoraClase = Convert.ToInt32(cbHoraClase.SelectedValue);
            int        idProfesor  = Convert.ToInt32(cbProfesor.SelectedValue);
            string     cadenaDias  = generaCadenaDias();
            CBaseDatos db          = new CBaseDatos();

            DataSet ds = db.consulta("SELECT * FROM Horarios.Horario WHERE Id_Hora_Clase = " + idHoraClase + " AND Id_Profesor = " + idProfesor + " AND Id_Horario != " + idModifica);

            if (ds.Tables[0].Rows.Count > 0)
            {
                foreach (DataRow r in ds.Tables[0].Rows)
                {
                    if (!comparaDiasHoraClase(r["Dia_Semana"].ToString(), cadenaDias, false))
                    {
                        db.Dispose();
                        return(false);
                    }
                }
            }

            db.Dispose();
            return(true);
        }
示例#10
0
        private bool validaDatos()
        {
            if (cbProfesor.SelectedValue == null)
            {
                MessageBox.Show("Debe seleccionar un profesor para registrar su asistencia", "Registro de asistenacia", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return(false);
            }

            if (String.IsNullOrEmpty(txtFirma.Text) || String.IsNullOrWhiteSpace(txtFirma.Text))
            {
                MessageBox.Show("Debe ingresar la firma del profesor para registrar su asistencia", "Registro de asistencia", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return(false);
            }

            CBaseDatos db         = new CBaseDatos();
            long       idProfesor = Convert.ToInt64(cbProfesor.SelectedValue);
            String     hora       = DateTime.Now.TimeOfDay.ToString();
            String     dia        = obtenDiaActual();
            String     semestres  = obtenSemestresActuales();
            String     anio       = DateTime.Now.Year.ToString();
            String     query      = "SELECT * FROM Horarios.Horario H ";

            query += "INNER JOIN Horarios.Grupo G ON G.Id_Grupo = H.Id_Grupo ";
            query += "INNER JOIN Horarios.Profesor P ON P.Id_Profesor = H.Id_Profesor ";
            query += "INNER JOIN Horarios.Hora_Clase HC ON HC.Id_Hora_Clase = H.Id_Hora_Clase ";
            query += "WHERE G.Ciclo_Escolar LIKE '%" + anio + "%' AND H.Dia_Semana LIKE '%" + dia + "%' AND G.Semestre IN (" + semestres + ") ";
            query += "AND P.Id_Profesor = " + idProfesor + " AND DATEADD(minute, -15, HC.Hora_Inicio)  <= '" + hora + "' AND DATEADD(minute, -15, HC.Hora_Fin) >= '" + hora + "'";

            DataSet ds = db.consulta(query);

            if (ds.Tables[0].Rows.Count == 0)
            {
                db.Dispose();
                MessageBox.Show("El profesor no tiene una clase en esta hora, no se puede registrar su asistencia", "Registro de asistenacia", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return(false);
            }
            else
            {
                if (ds.Tables[0].Rows[0]["Firma"].ToString() != this.txtFirma.Text)
                {
                    db.Dispose();
                    MessageBox.Show("La firma del profesor no es correcta, por favor ingrese la firma correcta", "Registro de asistencia", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return(false);
                }
                if (ds.Tables[0].Rows.Count > 1)
                {
                    db.Dispose();
                    MessageBox.Show("Incongruencia en la información, existen mas de una clase asignadas al profesor", "Registro de asistencia", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return(false);
                }
                else
                {
                    //db.Dispose();
                    //CBaseDatos db2 = new CBaseDatos();
                    idHorario = Convert.ToInt32(ds.Tables[0].Rows[0]["Id_Horario"]);
                    String  hoy    = DateTime.Now.ToString("dd/MM/yyyy");
                    String  query2 = "SELECT * FROM ControlPagos.Registro_Asistencia WHERE Id_Horario = " + idHorario + " AND Fecha = '" + hoy + "' AND Hora BETWEEN CONVERT(VARCHAR(5), DATEADD(minute, -15, '" + ds.Tables[0].Rows[0]["Hora_Inicio"].ToString() + "'), 108) AND CONVERT(VARCHAR(5), DATEADD(minute, -15, '" + ds.Tables[0].Rows[0]["Hora_Fin"].ToString() + "'), 108)";
                    DataSet ds2    = db.consulta(query2);
                    if (ds2.Tables[0].Rows.Count > 0)
                    {
                        db.Dispose();
                        MessageBox.Show("Ya se registró una asistencia en esta clase para el profesor", "Registro asistencia", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        return(false);
                    }
                    db.Dispose();
                }
            }

            return(true);
        }
        private void actualizaDatosGrid()
        {
            DataSet    ds;
            CBaseDatos bd = new CBaseDatos();

            switch (opcion)
            {
            case 1:
                gbTituloDatos.Text = "Profesores";
                ds = bd.consulta("SELECT * FROM Horarios.Profesor");
                if (ds != null)
                {
                    gridViewDatos.DataSource = ds.Tables[0];
                    gridViewDatos.Columns["id_Profesor"].HeaderText      = "Id Profesor";
                    gridViewDatos.Columns["Direccion"].HeaderText        = "Dirección";
                    gridViewDatos.Columns["Fecha_Nacimiento"].HeaderText = "Fecha de Nacimiento";
                    gridViewDatos.Columns["Horas_Semanales"].HeaderText  = "Horas Semanales";
                }
                else
                {
                    muestraMensajeErrConexion();
                }
                break;

            case 2:
                gbTituloDatos.Text = "Materias";
                ds = bd.consulta("SELECT * FROM Horarios.Materia");
                if (ds != null)
                {
                    gridViewDatos.DataSource = ds.Tables[0];
                    gridViewDatos.Columns["Id_Materia"].HeaderText      = "Id Materia";
                    gridViewDatos.Columns["Num_Horas_Clase"].HeaderText = "Numero de Horas Clase";
                }
                else
                {
                    muestraMensajeErrConexion();
                }
                break;

            case 3:
                gbTituloDatos.Text = "Grupos";
                ds = bd.consulta("SELECT * FROM Horarios.Grupo");
                if (ds != null)
                {
                    gridViewDatos.DataSource = ds.Tables[0];
                    gridViewDatos.Columns["Id_Grupo"].HeaderText      = "Id Grupo";
                    gridViewDatos.Columns["Ciclo_Escolar"].HeaderText = "Ciclo Escolar";
                }
                else
                {
                    muestraMensajeErrConexion();
                }
                break;

            case 4:
                gbTituloDatos.Text = "Horas Clase";
                ds = bd.consulta("SELECT Id_Hora_Clase, CONVERT(varchar(10), Hora_Inicio, 100) AS Hini, CONVERT(varchar(10), Hora_Fin, 100) AS Hfin FROM Horarios.Hora_Clase");
                if (ds != null)
                {
                    gridViewDatos.DataSource = ds.Tables[0];
                    gridViewDatos.Columns["Id_Hora_Clase"].HeaderText = "Id Hora Clase";
                    gridViewDatos.Columns["Hini"].HeaderText          = "Hora Inicio";
                    gridViewDatos.Columns["Hfin"].HeaderText          = "Hora Fin";
                }
                else
                {
                    muestraMensajeErrConexion();
                }
                break;

            case 5:
                gbTituloDatos.Text = "Horarios";
                String query = "SELECT H.Id_Horario, CONVERT(varchar(10), Hora_Inicio, 100) + ' - ' + CONVERT(VARCHAR(10), Hora_Fin, 100) AS HoraClase, G.Ciclo_Escolar + '/' + CAST(G.Semestre AS VARCHAR(2)) + G.Grupo AS Grupo, M.Nombre AS Materia, P.Nombre AS Profesor, H.Dia_Semana ";
                query += "FROM Horarios.Horario H INNER JOIN Horarios.Hora_Clase HC ON HC.Id_Hora_Clase = H.Id_Hora_Clase INNER JOIN Horarios.Grupo G ON G.Id_Grupo = H.Id_Grupo INNER JOIN Horarios.Materia M ON M.Id_Materia = H.Id_Materia INNER JOIN Horarios.Profesor P ON P.Id_Profesor = H.Id_Profesor";
                ds     = bd.consulta(query);
                if (ds != null)
                {
                    gridViewDatos.DataSource = ds.Tables[0];
                    gridViewDatos.Columns["Id_Horario"].HeaderText = "Id Horario";
                    gridViewDatos.Columns["HoraClase"].HeaderText  = "Hora-Clase";
                    gridViewDatos.Columns["Dia_Semana"].HeaderText = "Dia Semana";
                }
                else
                {
                    muestraMensajeErrConexion();
                }
                break;
            }
            bd.Dispose();
            if (gridViewDatos.SelectedRows.Count > 0)
            {
                gridViewDatos.SelectedRows[0].Selected = false;
            }
        }
        private bool validaDatosUnicosGrupo(int idModifica)
        {
            CBaseDatos db          = new CBaseDatos();
            int        idGrupo     = Convert.ToInt32(cbGrupos.SelectedValue);
            int        idMateria   = Convert.ToInt32(cbMateria.SelectedValue);
            int        idHoraClase = Convert.ToInt32(cbHoraClase.SelectedValue);
            string     cadenaDias  = generaCadenaDias();

            DataSet ds = db.consulta("SELECT * FROM Horarios.Horario WHERE Id_Grupo = " + idGrupo + "AND Id_Materia = " + idMateria + " AND Id_Horario != " + idModifica);

            if (ds.Tables[0].Rows.Count > 0)
            {
                DataSet ds2          = db.consulta("SELECT Num_Horas_Clase FROM Horarios.Materia WHERE Id_Materia = " + idMateria);
                int     numHoras     = Convert.ToInt32(ds2.Tables[0].Rows[0][0]);
                int     auxHoras     = 0;
                int     horasAsignar = cuentaDiasSemana(cadenaDias);
                foreach (DataRow r in ds.Tables[0].Rows)
                {
                    auxHoras += cuentaDiasSemana(r["Dia_Semana"].ToString());
                }
                if ((auxHoras + horasAsignar) > numHoras)
                {
                    if (auxHoras == numHoras)
                    {
                        MessageBox.Show("El grupo ya tiene asignadas todas las horas de la materia, no se puede registrar", "Alta horario", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                    else
                    {
                        MessageBox.Show("El grupo se pasa con " + ((auxHoras + horasAsignar) - numHoras) + " horas para esta materia, no se puede registrar", "Alta horario", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                    db.Dispose();
                    return(false);
                }
            }
            else
            {
                DataSet ds2          = db.consulta("SELECT Num_Horas_Clase FROM Horarios.Materia WHERE Id_Materia = " + idMateria);
                int     numHoras     = Convert.ToInt32(ds2.Tables[0].Rows[0][0]);
                int     horasAsignar = cuentaDiasSemana(cadenaDias);
                if (horasAsignar > numHoras)
                {
                    MessageBox.Show("El grupo se pasa con " + (horasAsignar - numHoras) + " horas para esta materia, no se puede registrar", "Alta horario", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    db.Dispose();
                    return(false);
                }
            }

            ds = db.consulta("SELECT * FROM Horarios.Horario WHERE Id_Grupo = " + idGrupo + " AND Id_Hora_Clase = " + idHoraClase + " AND Id_Horario != " + idModifica);
            if (ds.Tables[0].Rows.Count > 0)
            {
                foreach (DataRow r in ds.Tables[0].Rows)
                {
                    if (!comparaDiasHoraClase(r["Dia_Semana"].ToString(), cadenaDias, true))
                    {
                        db.Dispose();
                        return(false);
                    }
                }
            }

            db.Dispose();
            return(true);
        }