private void txtTelefono_TextChanged(object sender, EventArgs e)
        {
            if (!Validar.Validate(txtTelefono.Text, numeros: true))
            {
                lblErrorTelefono.Text    = "Solo números";
                lblErrorTelefono.Visible = true;
            }
            else
            {
                lblErrorTelefono.Visible = false;
            }

            if (Validar.Validate(txtTelefono.Text, numeros: true) && txtTelefono.Text.Length == 10)
            {
                ds = Conexion.MySQL("SELECT id FROM alumnos WHERE telefono = " + txtTelefono.Text + " AND id != " + id + ";");
                if (ds.Tables["tabla"].Rows.Count > 0)
                {
                    lblErrorTelefono.Text    = "Teléfono en uso";
                    lblErrorTelefono.Visible = true;
                }
                else
                {
                    lblErrorTelefono.Visible = false;
                }
            }
        }
        //Método TableToCombo: Se trae consigo todos los registros de una tabla y a su vez sus llaves primarias.
        public static void TableToCombo(ComboBox cmb, List <int> llaves, string tabla, int status = 1)
        {
            cmb.Items.Clear();
            llaves.Clear();

            DataSet ds;

            try
            {
                ds = Conexion.MySQL(GetQuery(tabla, status: status));
            }
            catch (MySqlException ex)
            {
                MessageBox.Show(ex.Message, "Error No. " + ex.ErrorCode, MessageBoxButtons.OK, MessageBoxIcon.Error);
                throw;
            }

            if (ds == null)
            {
                return;
            }

            for (int i = 0; i < ds.Tables["tabla"].Rows.Count; i++)
            {
                llaves.Add(int.Parse(ds.Tables["tabla"].Rows[i][0].ToString()));
                cmb.Items.Add(ds.Tables["tabla"].Rows[i][1].ToString());
            }
        }
Example #3
0
        private void btnReparar_Click(object sender, EventArgs e)
        {
            if (btnReparar.BackColor == Color.Crimson)
            {
                var respuesta = MessageBox.Show("¿Está seguro de mandar a reparación este artículo?", "Información", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
                if (respuesta == DialogResult.Yes)
                {
                    ds = Conexion.MySQL("SELECT * FROM articulos WHERE id = " + id + ";");

                    if (ds.Tables["tabla"].Rows[0]["disponible"].ToString() == "False")
                    {
                        MessageBox.Show("El artículo se encuentra en un préstamo activo.\nPara ser marcado como mandado a reparación debe no estar en un préstamo activo.");
                        return;
                    }

                    Conexion.MySQL("UPDATE articulos SET disponible = 0, status = 0 WHERE id = " + id + ";");
                    btnEliminar.Visible  = false;
                    btnReparar.BackColor = Color.SeaGreen;

                    movimiento.Clear();
                    movimiento.Add("0");
                    movimiento.Add(FrmMenu.usuarioID.ToString());
                    movimiento.Add(id.ToString());
                    movimiento.Add("'Articulos'");
                    movimiento.Add("'Reparación'");
                    movimiento.Add("NULL");
                    movimiento.Add("NULL");
                    movimiento.Add("'Enviado'");
                    movimiento.Add("NOW()");
                    movimiento.Add("NOW()");
                    movimiento.Add("1");
                    Funciones.Insert("movimientos", movimiento);
                }
            }
            else
            {
                var respuesta = MessageBox.Show("¿Está seguro de marcar como reparado este artículo?", "Información", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
                if (respuesta == DialogResult.Yes)
                {
                    Conexion.MySQL("UPDATE articulos SET disponible = 1, status = 1 WHERE id = " + id + ";");
                    btnEliminar.Visible  = true;
                    btnReparar.BackColor = Color.Crimson;

                    movimiento.Clear();
                    movimiento.Add("0");
                    movimiento.Add(FrmMenu.usuarioID.ToString());
                    movimiento.Add(id.ToString());
                    movimiento.Add("'Articulos'");
                    movimiento.Add("'Reparación'");
                    movimiento.Add("NULL");
                    movimiento.Add("NULL");
                    movimiento.Add("'Recibido'");
                    movimiento.Add("NOW()");
                    movimiento.Add("NOW()");
                    movimiento.Add("1");
                    Funciones.Insert("movimientos", movimiento);
                }
            }
        }
        //Método Insert: Inserta o actualiza los registros de una tabla dependiendo de qué tabla se le cargue al ser llamado.
        // - tabla      : Nombre de la tabla
        // - valores    : Lista de valores del registro que se desea agregar o modificar que se agregan a la lista en el orden que está en la tabla.
        //                Si se envía el ID correspondiente al registro se modificará, si se envía ID = 0 se creará un nuevo registro.
        public static bool Insert(string tabla, List <string> valores)
        {
            List <string> columnas;

            columnas = GetColumns(tabla);

            string query;

            if (valores[0] != "0")
            {
                query = "UPDATE " + tabla + " SET ";
                for (int i = 1; i < columnas.Count; i++)
                {
                    if (columnas[i].ToLower() == "created_at" || (columnas[i].ToLower() == "password" && valores[i].Length <= 7))
                    {
                        continue;
                    }

                    query += columnas[i] + "=" + valores[i];

                    if (i < columnas.Count - 1)
                    {
                        query += ",";
                    }
                }

                query += " WHERE id=" + valores[0] + ";";
            }
            else
            {
                query = "INSERT INTO " + tabla + " VALUES(NULL,";
                for (int i = 1; i < columnas.Count; i++)
                {
                    query += valores[i];

                    if (i < columnas.Count - 1)
                    {
                        query += ",";
                    }
                }
                query += ");";
            }

            try
            {
                Conexion.MySQL(query);
            }
            catch (Exception)
            {
                return(false);
            }
            return(true);
        }
 public void NotificationsUpdate()
 {
     ds = Conexion.MySQL("SELECT COUNT(ID) FROM (SELECT prestamos.id ID FROM prestamos INNER JOIN alumnos ON prestamos.alumno = alumnos.id WHERE prestamos.fecha_fin < NOW() AND prestamos.status = 1 AND prestamos.fecha_fin != prestamos.created_at) as Tabla;");
     if (ds.Tables["tabla"].Rows[0][0].ToString() != "0")
     {
         picNotificacion.Image = Properties.Resources.campana_ciruclo_roojo;
     }
     else
     {
         picNotificacion.Image = Properties.Resources.campana;
     }
 }
 //Método SetStatus: Modifica el campo Status de un registo en la base de datos:
 // - tabla  : Nombre de la tabla en la base de datos
 // - id     : ID del registro
 // - status : valor del status que se desea colocar
 public static bool SetStatus(string tabla, int id, int status)
 {
     try
     {
         Conexion.MySQL("UPDATE " + tabla + " SET status = '" + status + "' WHERE " + tabla + ".id = " + id + ";");
     }
     catch (MySqlException ex)
     {
         MessageBox.Show(ex.Message, "Error No. " + ex.ErrorCode, MessageBoxButtons.OK, MessageBoxIcon.Error);
         return(false);
     }
     return(true);
 }
        public void ReportView()
        {
            switch (tabla)
            {
            case "Alumnos":         query = "SELECT ID,Matrícula,Nombre,Paterno,Materno,Carrera,Correo,Teléfono,Creado,Actualizado, IF(status = 1,'Alta','Baja') status FROM (" + sql.Substring(0, sql.Length - 1) + ") Tabla2"; break;

            case "Articulos":       query = "SELECT ID,Artículo,Comentario,IF(Disponible = 1,'Inventario','Prestado') Disponible,Creado,Actualizado, IF(status = 1,'Alta','Baja') status FROM (" + sql.Substring(0, sql.Length - 1) + ") Tabla2"; break;

            case "Asignaturas":     query = "SELECT ID,Asignatura,Creado,Actualizado, IF(status = 1,'Alta','Baja') status FROM (" + sql.Substring(0, sql.Length - 1) + ") Tabla2"; break;

            case "Carreras":        query = "SELECT ID,Carrera,Creado,Actualizado, IF(status = 1,'Alta','Baja') status FROM (" + sql.Substring(0, sql.Length - 1) + ") Tabla2"; break;

            case "Laboratorios":    query = "SELECT ID,Laboratorio,Creado,Actualizado, IF(status = 1,'Alta','Baja') status FROM (" + sql.Substring(0, sql.Length - 1) + ") Tabla2"; break;

            case "Maestros":        query = "SELECT ID,Maestro,Creado,Actualizado, IF(status = 1,'Alta','Baja') status FROM (" + sql.Substring(0, sql.Length - 1) + ") Tabla2"; break;

            case "Movimientos":     query = "SELECT ID,Usuario,Registro,Tabla,Campo,Nuevo,Viejo,Descripción,Creado, IF(status = 1,'Alta','Baja') status FROM (" + sql.Substring(0, sql.Length - 1) + ") Tabla2"; break;

            case "Prestamos":       query = "SELECT ID,Alumno,Maestro,Laboratorio,Asignatura,Usuario,Entrega,Creado,Actualizado, IF(status = 1,'Activo','Terminado') status FROM (" + sql.Substring(0, sql.Length - 1) + ") Tabla2"; break;

            case "Usuarios":        query = "SELECT ID,Usuario,Creado,Actualizado, IF(status = 1,'Alta','Baja') status FROM (" + sql.Substring(0, sql.Length - 1) + ") Tabla2"; break;
            }

            if (chkPeriodo.Checked)
            {
                inicio = dtpInicio.Value.ToString().Substring(6, 4) + "-" + dtpInicio.Value.ToString().Substring(3, 2) + "-" + dtpInicio.Value.ToString().Substring(0, 2);
                fin    = dtpFin.Value.ToString().Substring(6, 4) + "-" + dtpFin.Value.ToString().Substring(3, 2) + "-" + dtpFin.Value.ToString().Substring(0, 2);
                query += " WHERE Creado BETWEEN '" + inicio + " 00:00:00' AND '" + fin + " 23:59:59'";
            }

            query += ";";

            ds = Conexion.MySQL(query);

            columnas.Clear();
            for (int i = 0; i < ds.Tables["tabla"].Columns.Count; i++)
            {
                columnas.Add(i);
            }

            dtgColumnas.Rows.Clear();
            dtgColumnas.Rows.Add(ds.Tables["tabla"].Columns.Count);

            for (int i = 0; i < ds.Tables["tabla"].Columns.Count; i++)
            {
                dtgColumnas.Rows[i].Cells[0].Value             = ds.Tables["tabla"].Columns[i].ToString();
                dtgColumnas.Rows[i].DefaultCellStyle.ForeColor = Color.Black;
            }

            webBrowser1.DocumentText = dtgTohtml(ds);
        }
        private void FrmNotificaciones_Load(object sender, EventArgs e)
        {
            ds = Conexion.MySQL("SELECT prestamos.id ID, alumnos.matricula Matrícula, CONCAT(alumnos.nombre, ' ', alumnos.apellidop, ' ', alumnos.apellidom) AS Nombre FROM prestamos INNER JOIN alumnos ON prestamos.alumno = alumnos.id WHERE prestamos.fecha_fin < NOW() AND prestamos.status = 1 AND prestamos.fecha_fin != prestamos.created_at;");
            dataGridView1.DataSource = ds.Tables["tabla"];

            for (int i = 0; i < dataGridView1.Columns.Count; i++)
            {
                switch (dataGridView1.Columns[i].Name)
                {
                case "ID": dataGridView1.Columns[i].Width = TextRenderer.MeasureText("0000", dataGridView1.Columns[i].DefaultCellStyle.Font).Width; break;

                case "Matrícula": dataGridView1.Columns[i].Width = TextRenderer.MeasureText("000000000", dataGridView1.Columns[i].DefaultCellStyle.Font).Width; break;
                }
            }

            dataGridView1.ClearSelection();
        }
        private void FrmCarreraRegistro_Load(object sender, EventArgs e)
        {
            if (id != 0)
            {
                ds = Conexion.MySQL("select * from carreras where id=" + id + ";");
                if (ds.Tables["tabla"].Rows[0]["status"].ToString() == "False")
                {
                    btnEliminar.Text = "Habilitar";
                }
                btnEliminar.Visible = true;
                btnActualizar.Text  = "Actualizar";
                status     = ds.Tables["tabla"].Rows[0]["status"].ToString();
                txtId.Text = ds.Tables["tabla"].Rows[0][0].ToString();

                original.Add(ds.Tables["tabla"].Rows[0][1].ToString());

                txtNombre.Text = original[0];
            }
        }
Example #10
0
 private void dataGridView1_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
 {
     try
     {
         ds = Conexion.MySQL("SELECT id FROM alumnos WHERE matricula = " + dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString() + ";");
         ds = Conexion.MySQL("SELECT id FROM prestamos WHERE alumno = " + ds.Tables["tabla"].Rows[0][0].ToString() + " AND status = 1;");
         if (ds.Tables["tabla"].Rows.Count > 0)
         {
             MessageBox.Show("El alumno ya cuenta con un préstamo activo.");
             return;
         }
         FrmMenu.frmPrincipal.txtMatricula.Clear();
         FrmMenu.frmPrincipal.txtMatricula.Text = dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString();
     }
     catch (Exception)
     {
         return;
     }
     this.Close();
 }
Example #11
0
        //Método GetColums: Obtener los nombres de cada columna de la tabla asignada en el constructor de la clase.
        public static List <string> GetColumns(string tabla)
        {
            List <string> Columns = new List <string>();
            DataSet       ds      = Conexion.MySQL("describe " + tabla + ";");

            try
            {
                for (int i = 0; i < ds.Tables["tabla"].Rows.Count; i++)
                {
                    Columns.Add(Convert.ToString(ds.Tables["tabla"].Rows[i][0]));
                }
            }
            catch (Exception e)
            {
                MessageBox.Show("Error de MySQL: " + e);
                throw;
            }

            return(Columns);
        }
Example #12
0
        private void FrmArticuloRegistro_Load(object sender, EventArgs e)
        {
            ds = Conexion.MySQL("SELECT DISTINCT articulo FROM articulos");

            for (int i = 0; i < ds.Tables["tabla"].Rows.Count; i++)
            {
                cmbArticulo.Items.Add(ds.Tables["tabla"].Rows[i][0].ToString());
            }

            if (id != 0)
            {
                ds = Conexion.MySQL("select * from articulos where id =" + id + ";");

                btnEliminar.Visible = true;

                if (ds.Tables["tabla"].Rows[0]["status"].ToString() == "False" && ds.Tables["tabla"].Rows[0]["disponible"].ToString() == "False")
                {
                    btnReparar.BackColor = Color.SeaGreen;
                    btnEliminar.Visible  = false;
                }
                else if (ds.Tables["tabla"].Rows[0]["status"].ToString() == "False")
                {
                    btnEliminar.Text = "Habilitar";
                }
                btnReparar.Visible = true;

                btnActualizar.Text = "Actualizar";
                status             = ds.Tables["tabla"].Rows[0]["status"].ToString();
                txtId.Text         = ds.Tables["tabla"].Rows[0][0].ToString();

                original.Add(ds.Tables["tabla"].Rows[0][1].ToString());
                original.Add(ds.Tables["tabla"].Rows[0][2].ToString());

                cmbArticulo.Text   = original[0];
                txtComentario.Text = original[1];

                btnImprimir.Visible = true;
                btnGuardar.Visible  = true;
            }
        }
Example #13
0
        public void RowsToRed()
        {
            if (dataGridView1.Rows.Count > 0)
            {
                ds = Conexion.MySQL("SELECT DISTINCT(prestamos.id), prestamos.status, detalles.status FROM prestamos INNER JOIN detalles ON detalles.prestamo = prestamos.id WHERE prestamos.status = 0 AND detalles.status = 1;");
                prestamosNoCompletos.Clear();

                for (int i = 0; i < ds.Tables["tabla"].Rows.Count; i++)
                {
                    prestamosNoCompletos.Add(Convert.ToInt32(ds.Tables["tabla"].Rows[i][0].ToString()));
                }

                for (int i = 0; i < dataGridView1.Rows.Count; i++)
                {
                    if (prestamosNoCompletos.Contains(Convert.ToInt32(dataGridView1.Rows[i].Cells[0].Value.ToString())))
                    {
                        dataGridView1.Rows[i].DefaultCellStyle.ForeColor          = Color.Red;
                        dataGridView1.Rows[i].DefaultCellStyle.SelectionForeColor = Color.Red;
                    }
                }
            }
        }
Example #14
0
        //Variables Publicas y Privadas
        //Carga o cierra Formulario
        private void FrmUsuarioRegistro_Load(object sender, EventArgs e)
        {
            DataSet ds;

            if (id != 0)
            {
                ds = Conexion.MySQL("select id,usuario,nivel,status from usuarios where id=" + id + ";");
                if (ds.Tables["tabla"].Rows[0]["status"].ToString() == "False")
                {
                    btnEliminar.Text = "Habilitar";
                }
                btnEliminar.Visible = true;
                btnActualizar.Text  = "Actualizar";
                status     = ds.Tables["tabla"].Rows[0]["status"].ToString();
                txtId.Text = ds.Tables["tabla"].Rows[0][0].ToString();
                original.Add(ds.Tables["tabla"].Rows[0][1].ToString());
                original.Add(ds.Tables["tabla"].Rows[0][2].ToString());

                txtUsuario.Text = original[0];
                cmbNivel.Text   = original[1];
            }
        }
        private void lblRegistro_Click(object sender, EventArgs e)
        {
            if (lblRegistro.Text == "X")
            {
                frmAlumnoRegistro = new FrmAlumnoRegistro();
                frmAlumnoRegistro.txtMatricula.Text = txtMatricula.Text;
                DialogResult res = frmAlumnoRegistro.ShowDialog();

                if (res == DialogResult.OK)
                {
                    ds                    = Conexion.MySQL("SELECT LAST_INSERT_ID();");
                    alumnoID              = Convert.ToInt32(ds.Tables["tabla"].Rows[0][0].ToString());
                    ds                    = Conexion.MySQL("SELECT CONCAT(nombre,' ',apellidop,' ',apellidom),status FROM alumnos WHERE id = " + alumnoID + ";");
                    alumno                = ds.Tables["tabla"].Rows[0][0].ToString();
                    txtAlumno.Text        = alumno;
                    lblRegistro.Text      = "✓";
                    lblRegistro.ForeColor = Color.Green;
                    lblRegistro.Visible   = true;
                    MessageBox.Show("El alumno ha sido registrado con éxito.");
                }
            }
        }
        //Variables Publicas y Privadas
        //Formulario Carga o Cierra
        //Desarrollo
        private void FrmAlumnoRegistro_Load(object sender, EventArgs e)
        {
            if (id != 0)
            {
                ds = Conexion.MySQL("SELECT alumnos.id, alumnos.matricula, alumnos.nombre, alumnos.apellidop, alumnos.apellidom, carreras.carrera, alumnos.correo, alumnos.telefono,alumnos.created_at,alumnos.updated_at, alumnos.status as status FROM alumnos INNER JOIN carreras ON alumnos.carrera = carreras.id where alumnos.id=" + id + ";");
                if (ds.Tables["tabla"].Rows[0]["status"].ToString() == "False")
                {
                    btnEliminar.Text = "Habilitar";
                }
                btnEliminar.Visible = true;
                btnActualizar.Text  = "Actualizar";
                status = ds.Tables["tabla"].Rows[0]["status"].ToString();
                //txtId.Text = ds.Tables["tabla"].Rows[0][0].ToString();
                //txtMatricula.Text = ds.Tables["tabla"].Rows[0][1].ToString();
                //txtNombre.Text = ds.Tables["tabla"].Rows[0][2].ToString();
                //txtPaterno.Text = ds.Tables["tabla"].Rows[0][3].ToString();
                //txtMaterno.Text = ds.Tables["tabla"].Rows[0][4].ToString();
                //cmbCarrera.Text = ds.Tables["tabla"].Rows[0][5].ToString();
                //txtCorreo.Text = ds.Tables["tabla"].Rows[0][6].ToString();
                //txtTelefono.Text = ds.Tables["tabla"].Rows[0][7].ToString();

                original.Add(ds.Tables["tabla"].Rows[0][1].ToString());     //Matrícula
                original.Add(ds.Tables["tabla"].Rows[0][2].ToString());     //Nombre
                original.Add(ds.Tables["tabla"].Rows[0][3].ToString());     //Paterno
                original.Add(ds.Tables["tabla"].Rows[0][4].ToString());     //Materno
                original.Add(ds.Tables["tabla"].Rows[0][5].ToString());     //Carrera (texto)
                original.Add(ds.Tables["tabla"].Rows[0][6].ToString());     //Correo
                original.Add(ds.Tables["tabla"].Rows[0][7].ToString());     //Teléfono

                txtMatricula.Text = original[0];
                txtNombre.Text    = original[1];
                txtPaterno.Text   = original[2];
                txtMaterno.Text   = original[3];
                cmbCarrera.Text   = original[4];
                txtCorreo.Text    = original[5];
                txtTelefono.Text  = original[6];
            }
        }
Example #17
0
        private void btnBuscar_Click(object sender, EventArgs e)
        {
            if (Validar.Validate(txtBuscar.Text, letras: true))
            {
                lblError.Visible = false;
            }
            else
            {
                lblError.Visible = true; lblError.Text = "¡Error! Solo letras en el campo de texto."; return;
            }
            ds = Conexion.MySQL("SELECT Matrícula, Alumno FROM (SELECT matricula as Matrícula, CONCAT(nombre, ' ', apellidop, ' ', apellidom) AS Alumno, status FROM alumnos) AS Tabla WHERE status = 1 AND Alumno LIKE '%" + txtBuscar.Text + "%';");
            dataGridView1.DataSource = ds.Tables["tabla"];

            for (int i = 0; i < dataGridView1.Columns.Count; i++)
            {
                switch (dataGridView1.Columns[i].Name)
                {
                case "Matrícula": dataGridView1.Columns[i].Width = TextRenderer.MeasureText("000000000", dataGridView1.Columns[i].DefaultCellStyle.Font).Width; break;
                }
            }

            dataGridView1.ClearSelection();
        }
Example #18
0
        //Variables Publicas y Privadas


        //Formulario carga o cierra
        //Desarrollo
        private void btnlogin_Click(object sender, EventArgs e)
        {
            DataSet ds;

            if (textBox1.Text == "")
            {
                MessageBox.Show("Ingrese el usuario", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); textBox1.Focus(); return;
            }
            if (textBox2.Text == "")
            {
                MessageBox.Show("Ingrese la contraseña", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); textBox2.Focus(); return;
            }

            ds = Conexion.MySQL("SELECT id, nivel FROM usuarios WHERE usuario='" + textBox1.Text + "' AND password=md5('" + textBox2.Text + "') AND status=1;");

            int count = ds.Tables["tabla"].Rows.Count;

            if (count == 0)
            {
                MessageBox.Show("El usuario o la contraseña son incorrectos.", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); textBox2.Focus();
                FrmMenu.intentos++;
                if (FrmMenu.intentos == 3)
                {
                    Application.Exit();
                }
                return;
            }

            FrmMenu.usuarioID    = int.Parse(ds.Tables["tabla"].Rows[0][0].ToString());
            FrmMenu.usuario      = textBox1.Text;
            FrmMenu.usuarioNivel = int.Parse(ds.Tables["tabla"].Rows[0][1].ToString());
            FrmMenu.frmPrincipal.NotificationsUpdate();

            FrmMenu.showed = true;

            this.Close();
        }
Example #19
0
        private void btnEliminar_Click(object sender, EventArgs e)
        {
            ds = Conexion.MySQL("SELECT * FROM articulos WHERE id = " + id + ";");

            if (ds.Tables["tabla"].Rows[0]["disponible"].ToString() == "False" && status == "True")
            {
                MessageBox.Show("El artículo se encuentra en un préstamo activo.\nPara ser dado de baja debe no estar en un préstamo activo.");
                return;
            }

            if (status == "True")
            {
                descripcion = "Baja";
            }
            else
            {
                descripcion = "Alta";
            }
            if (Funciones.StatusUpdate("articulos", btnEliminar.Text, id))
            {
                movimiento.Clear();
                movimiento.Add("0");
                movimiento.Add(FrmMenu.usuarioID.ToString());
                movimiento.Add(id.ToString());
                movimiento.Add("'Articulos'");
                movimiento.Add("'status'");
                movimiento.Add("NULL");
                movimiento.Add("NULL");
                movimiento.Add("'" + descripcion + "'");
                movimiento.Add("NOW()");
                movimiento.Add("NOW()");
                movimiento.Add("1");
                Funciones.Insert("movimientos", movimiento);
                this.DialogResult = DialogResult.OK;
                this.Close();
            }
        }
Example #20
0
 private void dataGridView1_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
 {
     if (FrmMenu.usuarioNivel != 1 && tabla != "Prestamos")
     {
         MessageBox.Show("Solo un usuario con nivel de administrador puede agregar o alterar registros.");
         return;
     }
     try
     {
         if (tabla != "Movimientos")
         {
             id = int.Parse(dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString());
             btnRegistroForm = Rutas.GetForm(tabla, id);
         }
         else if (dataGridView1.Rows[e.RowIndex].Cells[3].Value.ToString() == "Detalles")
         {
             id = int.Parse(dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString());
             ds = Conexion.MySQL("SELECT prestamo FROM detalles WHERE id = " + id + ";");
             id = int.Parse(ds.Tables["tabla"].Rows[0][0].ToString());
             btnRegistroForm = Rutas.GetForm("Prestamos", id);
         }
         else
         {
             id = int.Parse(dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString());
             btnRegistroForm = Rutas.GetForm(dataGridView1.Rows[e.RowIndex].Cells[3].Value.ToString(), id);
         }
         DialogResult res = btnRegistroForm.ShowDialog();
         if (res == DialogResult.OK)
         {
             dataGridView1.DataSource = Conexion.MySQL(query).Tables["tabla"];
         }
     }
     catch (Exception)
     {
         return;
     }
 }
        private void btnActualizar_Click(object sender, EventArgs e)
        {
            //if (txtMatricula.Text == "") { MessageBox.Show("Ingrese la matricula", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Warning); txtMatricula.Focus(); return; }
            //if (txtNombre.Text == "") { MessageBox.Show("Ingrese el nombre", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Warning); txtNombre.Focus(); return; }
            //if (txtPaterno.Text == "") { MessageBox.Show("Ingrese el apellido paterno", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Warning); txtPaterno.Focus(); return; }
            //if (txtMaterno.Text == "") { MessageBox.Show("Ingrese el apellido materno", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Warning); txtMaterno.Focus(); return; }
            if (cmbCarrera.Text == "")
            {
                MessageBox.Show("Seleccione una carrera", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Warning); cmbCarrera.Focus(); return;
            }
            //if (txtCorreo.Text == "") { MessageBox.Show("Ingrese el correo", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Warning); txtCorreo.Focus(); return; }
            //if (txtTelefono.Text == "") { MessageBox.Show("Ingrese el telefono", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Warning); txtTelefono.Focus(); return; }

            if (!DatosCompletos())
            {
                MessageBox.Show("Debe de llenar los datos con el formato correcto.");
                return;
            }

            string status = "1";

            if (id != 0)
            {
                ds     = Conexion.MySQL("SELECT status FROM alumnos WHERE id = " + id + ";");
                status = ds.Tables["tabla"].Rows[0][0].ToString();
            }

            valores.Add(id.ToString());
            valores.Add("'" + txtMatricula.Text + "'");
            valores.Add("'" + txtNombre.Text + "'");
            valores.Add("'" + txtPaterno.Text + "'");
            valores.Add("'" + txtMaterno.Text + "'");
            valores.Add(llaves[cmbCarrera.SelectedIndex].ToString());
            valores.Add("'" + txtCorreo.Text + "'");
            valores.Add("'" + txtTelefono.Text + "'");
            valores.Add("NOW()");
            valores.Add("NOW()");
            valores.Add(status);

            nuevo.Add(txtMatricula.Text);
            nuevo.Add(txtNombre.Text);
            nuevo.Add(txtPaterno.Text);
            nuevo.Add(txtMaterno.Text);
            nuevo.Add(cmbCarrera.Text);
            nuevo.Add(txtCorreo.Text);
            nuevo.Add(txtTelefono.Text);

            if (id != 0)
            {
                var respuesta = MessageBox.Show("¿Esta seguro de actualizar este registro?", "Informacion", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
                if (respuesta == DialogResult.Yes)
                {
                    if (Funciones.Insert("alumnos", valores))
                    {
                        for (int i = 0; i < original.Count; i++)
                        {
                            if (original[i] != nuevo[i])
                            {
                                movimiento.Clear();
                                movimiento.Add("0");
                                movimiento.Add(FrmMenu.usuarioID.ToString());
                                movimiento.Add(id.ToString());
                                movimiento.Add("'Alumnos'");
                                movimiento.Add("'" + columnas[i] + "'");
                                movimiento.Add("'" + nuevo[i] + "'");
                                movimiento.Add("'" + original[i] + "'");
                                movimiento.Add("'Modificó'");
                                movimiento.Add("NOW()");
                                movimiento.Add("NOW()");
                                movimiento.Add("1");
                                Funciones.Insert("movimientos", movimiento);
                            }
                        }
                    }
                    this.DialogResult = DialogResult.OK;
                    this.Close();
                }
            }
            else
            {
                if (Funciones.Insert("alumnos", valores))
                {
                    ds = Conexion.MySQL("SELECT Last_Insert_ID();");
                    movimiento.Clear();
                    movimiento.Add("0");
                    movimiento.Add(FrmMenu.usuarioID.ToString());
                    movimiento.Add(ds.Tables["tabla"].Rows[0][0].ToString());
                    movimiento.Add("'Alumnos'");
                    movimiento.Add("NULL");
                    movimiento.Add("NULL");
                    movimiento.Add("NULL");
                    movimiento.Add("'Agregó'");
                    movimiento.Add("NOW()");
                    movimiento.Add("NOW()");
                    movimiento.Add("1");
                    Funciones.Insert("movimientos", movimiento);
                }
                this.DialogResult = DialogResult.OK;
                this.Close();
            }
        }
        public bool DatosCompletos()
        {
            //Matrícula
            if (!Validar.Validate(txtMatricula.Text, numeros: true))
            {
                return(false);
            }
            if (txtMatricula.Text.Length < 8 || txtMatricula.Text.Length > 8)
            {
                return(false);
            }
            ds = Conexion.MySQL("SELECT id FROM alumnos WHERE matricula = " + txtMatricula.Text + " AND id != " + id + ";");
            if (ds.Tables["tabla"].Rows.Count > 0)
            {
                return(false);
            }

            //Nombre
            if (!Validar.Validate(txtNombre.Text, letras: true, caracteres: " "))
            {
                return(false);
            }
            if (txtNombre.Text.Length == 0)
            {
                return(false);
            }
            if (txtNombre.Text.Length > 60)
            {
                return(false);
            }

            //Paterno
            if (!Validar.Validate(txtPaterno.Text, letras: true))
            {
                return(false);
            }
            if (txtPaterno.Text.Length == 0)
            {
                return(false);
            }
            if (txtPaterno.Text.Length > 60)
            {
                return(false);
            }

            //Materno
            if (!Validar.Validate(txtMaterno.Text, letras: true))
            {
                return(false);
            }
            if (txtMaterno.Text.Length == 0)
            {
                return(false);
            }
            if (txtMaterno.Text.Length > 60)
            {
                return(false);
            }

            //Correo
            //if (!Validar.Validate(txtCorreo.Text, letras: true, numeros: true, " _-@.!¡¿?/") && !Validar.CorreoValidate(txtCorreo.Text) && txtCorreo.Text != "") return false;
            //if (txtCorreo.Text.Length > 255) return false;

            //Telefono
            if (!Validar.Validate(txtTelefono.Text, numeros: true))
            {
                return(false);
            }
            if (txtTelefono.Text.Length < 10 || txtTelefono.Text.Length > 10)
            {
                return(false);
            }
            ds = Conexion.MySQL("SELECT id FROM alumnos WHERE telefono = " + txtTelefono.Text + " AND id != " + id + ";");
            if (ds.Tables["tabla"].Rows.Count > 0)
            {
                return(false);
            }

            return(true);
        }
        private void btnActualizar_Click(object sender, EventArgs e)
        {
            var respuesta = MessageBox.Show("¿Desea actualizar el préstamo?", "Información", MessageBoxButtons.YesNo, MessageBoxIcon.Information);

            if (respuesta == DialogResult.Yes)
            {
                foreach (DataGridViewRow row in dataGridView1.Rows)
                {
                    if (row.DefaultCellStyle.ForeColor == Color.Red && !noEntregadoID.Contains(int.Parse(row.Cells[0].Value.ToString())))
                    {
                        ds = Conexion.MySQL("SELECT * FROM articulos WHERE id = " + row.Cells[0].Value.ToString() + " AND disponible = 1;");

                        if (ds.Tables["tabla"].Rows.Count == 0)
                        {
                            MessageBox.Show("El artículo con el ID " + row.Cells[0].Value.ToString() + " se encuentra en otro préstamo activo.");
                            return;
                        }
                    }
                }

                foreach (DataGridViewRow row in dataGridView1.Rows)
                {
                    if (row.DefaultCellStyle.ForeColor == Color.LimeGreen)
                    {
                        detalles.Clear();
                        detalles.Add("0");
                        detalles.Add(id.ToString());
                        detalles.Add(row.Cells[0].Value.ToString());
                        detalles.Add("NOW()");
                        detalles.Add("NOW()");
                        detalles.Add("1");

                        Funciones.Insert("detalles", detalles);

                        ds = Conexion.MySQL("SELECT LAST_INSERT_ID();");

                        movimiento.Clear();
                        movimiento.Add("0");
                        movimiento.Add(FrmMenu.usuarioID.ToString());
                        movimiento.Add(ds.Tables["tabla"].Rows[0][0].ToString());
                        movimiento.Add("'Detalles'");
                        movimiento.Add("'Artículo'");
                        movimiento.Add("'" + row.Cells[1].Value.ToString() + "'");
                        movimiento.Add("NULL");
                        movimiento.Add("'Prestó'");
                        movimiento.Add("NOW()");
                        movimiento.Add("NOW()");
                        movimiento.Add("1");
                        Funciones.Insert("movimientos", movimiento);
                    }

                    if (row.DefaultCellStyle.ForeColor == Color.Black && noEntregadoID.Contains(int.Parse(row.Cells[0].Value.ToString())))
                    {
                        Conexion.MySQL("UPDATE detalles SET status = 0, updated_at = NOW() WHERE articulo = " + row.Cells[0].Value.ToString() + " AND prestamo = " + id + ";");

                        ds = Conexion.MySQL("SELECT id FROM detalles WHERE articulo = " + row.Cells[0].Value.ToString() + " AND prestamo = " + id + ";");

                        movimiento.Clear();
                        movimiento.Add("0");
                        movimiento.Add(FrmMenu.usuarioID.ToString());
                        movimiento.Add(ds.Tables["tabla"].Rows[0][0].ToString());
                        movimiento.Add("'Detalles'");
                        movimiento.Add("'Artículo'");
                        movimiento.Add("'" + row.Cells[1].Value.ToString() + "'");
                        movimiento.Add("NULL");
                        movimiento.Add("'Devolvió'");
                        movimiento.Add("NOW()");
                        movimiento.Add("NOW()");
                        movimiento.Add("1");
                        Funciones.Insert("movimientos", movimiento);

                        Conexion.MySQL("UPDATE articulos SET disponible = 1, updated_at = NOW() WHERE id = " + row.Cells[0].Value.ToString() + ";");

                        movimiento.Clear();
                        movimiento.Add("0");
                        movimiento.Add(FrmMenu.usuarioID.ToString());
                        movimiento.Add(row.Cells[0].Value.ToString());
                        movimiento.Add("'Articulos'");
                        movimiento.Add("'Disponible'");
                        movimiento.Add("'1'");
                        movimiento.Add("'0'");
                        movimiento.Add("'Modificó'");
                        movimiento.Add("NOW()");
                        movimiento.Add("NOW()");
                        movimiento.Add("1");
                        Funciones.Insert("movimientos", movimiento);
                    }

                    if (row.DefaultCellStyle.ForeColor == Color.Red && !noEntregadoID.Contains(int.Parse(row.Cells[0].Value.ToString())))
                    {
                        Conexion.MySQL("UPDATE detalles SET status = 1, updated_at = NOW() WHERE articulo = " + row.Cells[0].Value.ToString() + " AND prestamo = " + id + ";");

                        ds = Conexion.MySQL("SELECT id FROM detalles WHERE articulo = " + row.Cells[0].Value.ToString() + " AND prestamo = " + id + ";");

                        movimiento.Clear();
                        movimiento.Add("0");
                        movimiento.Add(FrmMenu.usuarioID.ToString());
                        movimiento.Add(ds.Tables["tabla"].Rows[0][0].ToString());
                        movimiento.Add("'Detalles'");
                        movimiento.Add("'Artículo'");
                        movimiento.Add("'" + row.Cells[1].Value.ToString() + "'");
                        movimiento.Add("NULL");
                        movimiento.Add("'Prestó'");
                        movimiento.Add("NOW()");
                        movimiento.Add("NOW()");
                        movimiento.Add("1");
                        Funciones.Insert("movimientos", movimiento);

                        Conexion.MySQL("UPDATE articulos SET disponible = 0, updated_at = NOW() WHERE id = " + row.Cells[0].Value.ToString() + ";");

                        movimiento.Clear();
                        movimiento.Add("0");
                        movimiento.Add(FrmMenu.usuarioID.ToString());
                        movimiento.Add(row.Cells[0].Value.ToString());
                        movimiento.Add("'Articulos'");
                        movimiento.Add("'Disponible'");
                        movimiento.Add("'0'");
                        movimiento.Add("'1'");
                        movimiento.Add("'Modificó'");
                        movimiento.Add("NOW()");
                        movimiento.Add("NOW()");
                        movimiento.Add("1");
                        Funciones.Insert("movimientos", movimiento);
                    }
                }

                for (int i = 0; i < dataGridView1.Rows.Count; i++)
                {
                    if (dataGridView1.Rows[i].DefaultCellStyle.ForeColor == Color.LimeGreen)
                    {
                        dataGridView1.Rows[i].DefaultCellStyle.ForeColor          = Color.Red;
                        dataGridView1.Rows[i].DefaultCellStyle.SelectionForeColor = Color.Red;
                    }
                }

                noEntregadoID.Clear();
                foreach (DataGridViewRow row in dataGridView1.Rows)
                {
                    if (row.DefaultCellStyle.ForeColor == Color.Red)
                    {
                        noEntregadoID.Add(int.Parse(row.Cells[0].Value.ToString()));
                    }
                }

                if (noEntregadoID.Count == 0)
                {
                    Conexion.MySQL("UPDATE prestamos SET status = 0, updated_at = NOW() WHERE id = " + id + ";");

                    movimiento.Clear();
                    movimiento.Add("0");
                    movimiento.Add(FrmMenu.usuarioID.ToString());
                    movimiento.Add(id.ToString());
                    movimiento.Add("'Prestamos'");
                    movimiento.Add("NULL");
                    movimiento.Add("NULL");
                    movimiento.Add("NULL");
                    movimiento.Add("'Devolvió'");
                    movimiento.Add("NOW()");
                    movimiento.Add("NOW()");
                    movimiento.Add("1");
                    Funciones.Insert("movimientos", movimiento);

                    txtCodigo.Enabled     = false;
                    btnActualizar.Visible = false;
                }
            }
        }
        private void FrmPrestamoDetalles_Load(object sender, EventArgs e)
        {
            dataGridView1.DefaultCellStyle.BackColor = Color.WhiteSmoke;
            dataGridView1.AlternatingRowsDefaultCellStyle.BackColor        = Color.FromArgb(223, 223, 223);
            dataGridView1.ColumnHeadersDefaultCellStyle.BackColor          = Color.SteelBlue;
            dataGridView1.ColumnHeadersDefaultCellStyle.SelectionBackColor = Color.SteelBlue;

            dataGridView1.DefaultCellStyle.SelectionBackColor = Color.FromArgb(196, 208, 220);

            dataGridView1.Columns.Add("ID", "ID");
            dataGridView1.Columns.Add("Artículo", "Articulo");
            dataGridView1.Columns.Add("Comentario", "Comentario");

            if (id != 0)
            {
                ds = Conexion.MySQL(Funciones.GetQuery("Prestamos", id, 2));

                txtAlumno.Text      = ds.Tables["tabla"].Rows[0][1].ToString();
                txtMaestro.Text     = ds.Tables["tabla"].Rows[0][2].ToString();
                txtLaboratorio.Text = ds.Tables["tabla"].Rows[0][3].ToString();
                txtAsignatura.Text  = ds.Tables["tabla"].Rows[0][4].ToString();
                txtUsuario.Text     = ds.Tables["tabla"].Rows[0][5].ToString();
                txtEntrega.Text     = ds.Tables["tabla"].Rows[0][6].ToString().Substring(0, 10);
                txtCreado.Text      = ds.Tables["tabla"].Rows[0][7].ToString();
                txtActualizado.Text = ds.Tables["tabla"].Rows[0][8].ToString();

                ds = Conexion.MySQL("SELECT detalles.articulo ID, articulos.articulo Artículo, articulos.comentario Comentario, detalles.status status FROM detalles INNER JOIN articulos ON articulos.id = detalles.articulo WHERE detalles.prestamo = " + id + ";");
                //dataGridView1.DataSource = ds.Tables["tabla"];

                for (int i = 0; i < ds.Tables["tabla"].Rows.Count; i++)
                {
                    dataGridView1.Rows.Add();
                    dataGridView1.Rows[i].Cells[0].Value = ds.Tables["tabla"].Rows[i][0].ToString();
                    dataGridView1.Rows[i].Cells[1].Value = ds.Tables["tabla"].Rows[i][1].ToString();
                    dataGridView1.Rows[i].Cells[2].Value = ds.Tables["tabla"].Rows[i][2].ToString();

                    if (ds.Tables["tabla"].Rows[i][3].ToString() == "True")
                    {
                        dataGridView1.Rows[i].DefaultCellStyle.ForeColor = Color.Red; dataGridView1.Rows[i].DefaultCellStyle.SelectionForeColor = Color.Red;
                    }
                    else
                    {
                        dataGridView1.Rows[i].DefaultCellStyle.ForeColor = Color.Black; dataGridView1.Rows[i].DefaultCellStyle.SelectionForeColor = Color.Black;
                    }
                }

                dataGridView1.ClearSelection();

                ds = Conexion.MySQL("SELECT articulos.id FROM detalles INNER JOIN articulos ON detalles.articulo = articulos.id WHERE detalles.prestamo = " + id + " AND detalles.status = 1;");

                if (ds.Tables["tabla"].Rows.Count != 0)
                {
                    for (int i = 0; i < ds.Tables["tabla"].Rows.Count; i++)
                    {
                        noEntregadoID.Add(int.Parse(ds.Tables["tabla"].Rows[i][0].ToString()));
                    }
                }

                ds     = Conexion.MySQL("SELECT status FROM prestamos WHERE id = " + id + ";");
                status = ds.Tables["tabla"].Rows[0][0].ToString();

                if (status == "True")
                {
                    txtCodigo.Enabled     = true;
                    btnActualizar.Visible = true;
                    txtEstado.Text        = "Activo";
                }
                else
                {
                    txtEstado.Text = "Terminado";
                }
            }
        }
Example #25
0
        public void btnBuscar_Click(object sender, EventArgs e)
        {
            if (txtBuscar.Text != "" && (txtBuscar.Text.Contains("=") || txtBuscar.Text.Contains("+") || txtBuscar.Text.Contains("-") || txtBuscar.Text.Contains(",")))
            {
                bool   contiene = false;
                string columna  = "";
                operadores = 0;
                parametros = txtBuscar.Text.Trim().Split(',').ToList <string>();

                foreach (string parametro in parametros)
                {
                    foreach (char operador in parametro)
                    {
                        if (operador == '+' || operador == '-' || operador == '=')
                        {
                            operadores++;
                        }
                    }
                }

                if (parametros.Count != operadores)
                {
                    lblError.Text    = "¡Error! Cantidad no válida de operadores.";
                    lblError.Visible = true;
                    return;
                }

                foreach (string parametro in parametros)
                {
                    contiene = false;
                    valores  = parametro.Split(separadores).ToList <string>();
                    columna  = valores[0];
                    for (int i = 0; i < dataGridView1.Columns.Count; i++)
                    {
                        if (dataGridView1.Columns[i].Name == valores[0])
                        {
                            contiene = true;
                            break;
                        }
                    }

                    if (!contiene)
                    {
                        break;
                    }
                    contiene = false;
                }

                if (contiene)
                {
                    lblError.Text    = "¡Error! La columna " + columna + " no existe.";
                    lblError.Visible = true;
                    return;
                }
            }
            lblError.Visible = false;
            status           = cmbMostrar.SelectedIndex;
            if (txtBuscar.Text.ToLower() == "!nocompletos" && tabla == "Prestamos")
            {
                ds = Conexion.MySQL(@"SELECT Tabla.ID,Tabla.Alumno,Tabla.Maestro,Tabla.Laboratorio,Tabla.Asignatura,Tabla.Usuario,Tabla.Entrega,Tabla.Creado,Tabla.Actualizado FROM 
                                    (SELECT 
                                    prestamos.id ID, 
                                    CONCAT(alumnos.nombre,' ',alumnos.apellidop,' ', alumnos.apellidom) Alumno, 
                                    CONCAT(maestros.nombre,' ',maestros.apellidop,' ', maestros.apellidom) Maestro, 
                                    laboratorios.laboratorio Laboratorio,
                                    asignaturas.asignatura Asignatura,
                                    usuarios.usuario Usuario,
                                    prestamos.fecha_fin Entrega,
                                    prestamos.created_at Creado,
                                    prestamos.updated_at Actualizado, 
                                    prestamos.status
                                    FROM 
                                    prestamos
                                    INNER JOIN alumnos ON prestamos.alumno = alumnos.id 
                                    INNER JOIN maestros ON prestamos.maestro = maestros.id 
                                    INNER JOIN laboratorios ON prestamos.laboratorio = laboratorios.id
                                    INNER JOIN asignaturas ON prestamos.asignatura = asignaturas.id 
                                    INNER JOIN usuarios ON prestamos.usuario = usuarios.id) as Tabla
                                    INNER JOIN
                                    (
                                    SELECT 
                                    DISTINCT(prestamos.id), 
                                    prestamos.status AS statusPrestamos, 
                                    detalles.status AS statusDetalles
                                    FROM 
                                    prestamos 
                                    INNER JOIN 
                                    detalles 
                                    ON 
                                    detalles.prestamo = prestamos.id 
                                    WHERE prestamos.status = 0 AND detalles.status = 1   
                                    ) AS Tabla2
                                    ON
                                    Tabla.ID = Tabla2.ID");

                dataGridView1.DataSource = ds.Tables["tabla"];
                RowsToRed();
                dataGridView1.ClearSelection();
                return;
            }

            string prequery = "";

            if (FrmMenu.usuarioNivel != 1 && tabla != "Prestamos" && tabla != "Articulos" && tabla != "Alumnos")
            {
                MessageBox.Show("Solo un usuario con nivel de administrador puede agregar o alterar registros.");
                return;
            }

            pageLimit = int.Parse(numericUpDown2.Value.ToString());

            if (checkBoxFecha.Checked)
            {
                inicio = dateTimePickerInicio.Value.ToString().Substring(6, 4) + "-" + dateTimePickerInicio.Value.ToString().Substring(3, 2) + "-" + dateTimePickerInicio.Value.ToString().Substring(0, 2);
                fin    = dateTimePickerFin.Value.ToString().Substring(6, 4) + "-" + dateTimePickerFin.Value.ToString().Substring(3, 2) + "-" + dateTimePickerFin.Value.ToString().Substring(0, 2);
            }
            else
            {
                inicio = "";
                fin    = "";
            }

            prequery = Funciones.GetQuery(tabla, 0, cmbMostrar.SelectedIndex, txtBuscar.Text, inicio: inicio, fin: fin).Replace(';', ' ');
            if (prequery[0] == '¡')
            {
                lblError.Text    = prequery;
                lblError.Visible = true;
                return;
            }

            ds = Conexion.MySQL("SELECT COUNT(ID) FROM (" + prequery + ") as TablaCount;");

            count = int.Parse(ds.Tables["tabla"].Rows[0][0].ToString());

            if (count > pageLimit)
            {
                residuo = count % pageLimit;

                paginas = (count - residuo) / pageLimit;

                if (residuo != 0)
                {
                    paginas++;
                }

                lblPaginas.Text        = Convert.ToString(paginas);
                numericUpDown1.Maximum = paginas;
                status = cmbMostrar.SelectedIndex;

                label3.Visible         = true;
                label4.Visible         = true;
                numericUpDown1.Visible = true;
                lblPaginas.Visible     = true;
            }
            else
            {
                label3.Visible         = false;
                label4.Visible         = false;
                numericUpDown1.Visible = false;
                lblPaginas.Visible     = false;
            }

            like  = txtBuscar.Text;
            query = Funciones.GetQuery(tabla, 0, cmbMostrar.SelectedIndex, like, pageLimit, 0, inicio: inicio, fin: fin);
            dataGridView1.AutoGenerateColumns = true;
            dataGridView1.DataSource          = Conexion.MySQL(query).Tables["tabla"];
            lblError.Visible = false;
            dataGridView1.ClearSelection();

            if (tabla == "Prestamos")
            {
                RowsToRed();
            }

            if (columnsLoad)
            {
                dtgColumnas.Rows.Add(dataGridView1.Columns.Count);
                for (int i = 0; i < dataGridView1.Columns.Count; i++)
                {
                    dtgColumnas.Rows[i].Cells[0].Value             = dataGridView1.Columns[i].Name;
                    dtgColumnas.Rows[i].DefaultCellStyle.ForeColor = Color.Black;
                }
                columnsLoad = false;
                dtgColumnas.ClearSelection();
            }
        }
Example #26
0
        //Rutas
        private void btnPrincipal_Click(object sender, EventArgs e)
        {
            pnlLado2.Visible = false;
            panelPosicion(pnlLado, btnPrincipal, true);
            ocultarSubMenu(pnlSubMenuDatos);
            ocultarSubMenu(pnlSubMenuDatos2);
            viejaPosicion(btnConsultas, 31, 459);
            AbrirFormEnPanel(frmPrincipal);
            frmPrincipal.txtCodigo.Focus();

            if (!FrmPrincipal.devolver)
            {
                ds = Conexion.MySQL("SELECT COUNT(id) FROM maestros WHERE status = 1;");
                if (ds.Tables["tabla"].Rows[0][0].ToString() != frmPrincipal.cmbMaestro.Items.Count.ToString())
                {
                    Funciones.TableToCombo(frmPrincipal.cmbMaestro, FrmPrincipal.maestros, "maestros");
                }
                else
                {
                    ds = Conexion.MySQL("SELECT id FROM maestros WHERE status = 1;");
                    for (int i = 0; i < FrmPrincipal.maestros.Count; i++)
                    {
                        if (ds.Tables["tabla"].Rows[i][0].ToString() != FrmPrincipal.maestros[i].ToString())
                        {
                            Funciones.TableToCombo(frmPrincipal.cmbMaestro, FrmPrincipal.maestros, "maestros");
                            return;
                        }
                    }
                }

                ds = Conexion.MySQL("SELECT COUNT(id) FROM asignaturas WHERE status = 1;");
                if (ds.Tables["tabla"].Rows[0][0].ToString() != frmPrincipal.cmbAsignatura.Items.Count.ToString())
                {
                    Funciones.TableToCombo(frmPrincipal.cmbAsignatura, FrmPrincipal.asignaturas, "asignaturas");
                }
                else
                {
                    ds = Conexion.MySQL("SELECT id FROM asignaturas WHERE status = 1;");
                    for (int i = 0; i < FrmPrincipal.asignaturas.Count; i++)
                    {
                        if (ds.Tables["tabla"].Rows[i][0].ToString() != FrmPrincipal.asignaturas[i].ToString())
                        {
                            Funciones.TableToCombo(frmPrincipal.cmbAsignatura, FrmPrincipal.asignaturas, "asignaturas");
                            return;
                        }
                    }
                }

                ds = Conexion.MySQL("SELECT COUNT(id) FROM laboratorios WHERE status = 1;");
                if (ds.Tables["tabla"].Rows[0][0].ToString() != frmPrincipal.cmbLaboratorio.Items.Count.ToString())
                {
                    Funciones.TableToCombo(frmPrincipal.cmbLaboratorio, FrmPrincipal.laboratorios, "laboratorios");
                }
                else
                {
                    ds = Conexion.MySQL("SELECT id FROM laboratorios WHERE status = 1;");
                    for (int i = 0; i < FrmPrincipal.laboratorios.Count; i++)
                    {
                        if (ds.Tables["tabla"].Rows[i][0].ToString() != FrmPrincipal.laboratorios[i].ToString())
                        {
                            Funciones.TableToCombo(frmPrincipal.cmbLaboratorio, FrmPrincipal.laboratorios, "laboratorios");
                            return;
                        }
                    }
                }
            }
        }
Example #27
0
 private void numericUpDown1_ValueChanged(object sender, EventArgs e)
 {
     query = Funciones.GetQuery(tabla, 0, status, like, pageLimit, (int.Parse(numericUpDown1.Value.ToString()) * pageLimit) - pageLimit);
     dataGridView1.AutoGenerateColumns = true;
     dataGridView1.DataSource          = Conexion.MySQL(query).Tables["tabla"];
 }
Example #28
0
        private void ReportView()
        {
            switch (cmbReportes.SelectedIndex)
            {
            case 0:
                query = "SELECT * FROM (SELECT movimientos.id_registro ID, articulos.articulo Artículo, movimientos.descripcion Descripción, movimientos.created_at Fecha FROM movimientos INNER JOIN articulos ON movimientos.id_registro = articulos.id WHERE movimientos.descripcion = 'Alta' OR movimientos.descripcion = 'Baja') Tabla";
                break;

            case 1:
                query = "SELECT * FROM (SELECT id ID, articulo Artículo, comentario Comentario, IF(disponible=1,'Inventario','Prestado') Disponibilidad, created_at Fecha,if (status=1,'Alta','Baja') as status FROM articulos) Tabla";
                break;

            case 2:
                query = @"SELECT * FROM (SELECT prestamos.id ID, CONCAT(alumnos.nombre,' ',alumnos.apellidop,' ', alumnos.apellidom) Alumno, CONCAT(maestros.nombre,' ',maestros.apellidop,' ', maestros.apellidom) Maestro, laboratorios.laboratorio Laboratorio,
                                                asignaturas.asignatura Asignatura,usuarios.usuario Usuario,prestamos.fecha_fin Entrega,prestamos.created_at Fecha,prestamos.updated_at Entregado, IF(prestamos.status = 1,'Activo','Terminado') status FROM prestamos
                                                INNER JOIN alumnos ON prestamos.alumno = alumnos.id INNER JOIN maestros ON prestamos.maestro = maestros.id INNER JOIN laboratorios ON prestamos.laboratorio = laboratorios.id
                                                INNER JOIN asignaturas ON prestamos.asignatura = asignaturas.id INNER JOIN usuarios ON prestamos.usuario = usuarios.id) as Tabla";
                if (chkPrestamo.Checked)
                {
                    query_detalles = "SELECT Artículos FROM (SELECT detalles.prestamo ID, GROUP_CONCAT(articulos.articulo,' - ',articulos.id) Artículos, detalles.created_at Fecha FROM detalles INNER JOIN articulos ON detalles.articulo = articulos.id GROUP BY ID) Tabla";
                }
                break;
            }

            if (chkPeriodo.Checked)
            {
                inicio = dtpInicio.Value.ToString().Substring(6, 4) + "-" + dtpInicio.Value.ToString().Substring(3, 2) + "-" + dtpInicio.Value.ToString().Substring(0, 2);
                fin    = dtpFin.Value.ToString().Substring(6, 4) + "-" + dtpFin.Value.ToString().Substring(3, 2) + "-" + dtpFin.Value.ToString().Substring(0, 2);

                query += " WHERE Fecha BETWEEN '" + inicio + " 00:00:00' AND '" + fin + " 23:59:59'";
                if (cmbReportes.SelectedIndex == 2 && chkPrestamo.Checked)
                {
                    query_detalles += " WHERE Fecha BETWEEN '" + inicio + " 00:00:00' AND '" + fin + " 23:59:59'";
                }
            }

            query += ";";

            ds = Conexion.MySQL(query);
            if (cmbReportes.SelectedIndex == 2 && chkPrestamo.Checked)
            {
                ds_detalles = Conexion.MySQL(query_detalles);
            }

            columnas.Clear();
            for (int i = 0; i < ds.Tables["tabla"].Columns.Count; i++)
            {
                columnas.Add(i);
            }

            html = dtgTohtml(ds);

            webBrowser1.DocumentText = html;

            dataGridView1.Rows.Clear();
            dataGridView1.Rows.Add(ds.Tables["tabla"].Columns.Count);

            for (int i = 0; i < ds.Tables["tabla"].Columns.Count; i++)
            {
                dataGridView1.Rows[i].Cells[0].Value             = ds.Tables["tabla"].Columns[i].ToString();
                dataGridView1.Rows[i].DefaultCellStyle.ForeColor = Color.Black;
            }

            dataGridView1.ClearSelection();
        }
        //Variables Publicas y Privadas
        //Formulario Carga o Cierra
        //Desarrollo
        private void btnActualizar_Click(object sender, EventArgs e)
        {
            List <string> valores = new List <string>();

            if (txtNombre.Text == "")
            {
                MessageBox.Show("Ingrese el nombre de la asignatura", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); txtNombre.Focus(); return;
            }

            string status = "1";

            if (id != 0)
            {
                ds     = Conexion.MySQL("SELECT status FROM carreras WHERE id = " + id + ";");
                status = ds.Tables["tabla"].Rows[0][0].ToString();
            }

            valores.Add(id.ToString());
            valores.Add("'" + txtNombre.Text + "'");
            valores.Add("NOW()");
            valores.Add("NOW()");
            valores.Add(status);

            nuevo.Add(txtNombre.Text);

            if (id != 0)
            {
                var respuesta = MessageBox.Show("¿Esta seguro de actualizar este registro?", "Informacion", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
                if (respuesta == DialogResult.Yes)
                {
                    if (Funciones.Insert("carreras", valores))
                    {
                        for (int i = 0; i < original.Count; i++)
                        {
                            if (original[i] != nuevo[i])
                            {
                                movimiento.Clear();
                                movimiento.Add("0");
                                movimiento.Add(FrmMenu.usuarioID.ToString());
                                movimiento.Add(id.ToString());
                                movimiento.Add("'Carreras'");
                                movimiento.Add("'" + columnas[i] + "'");
                                movimiento.Add("'" + nuevo[i] + "'");
                                movimiento.Add("'" + original[i] + "'");
                                movimiento.Add("'Modificó'");
                                movimiento.Add("NOW()");
                                movimiento.Add("NOW()");
                                movimiento.Add("1");
                                Funciones.Insert("movimientos", movimiento);
                            }
                        }
                    }
                    this.Close();
                }
            }
            else
            {
                if (Funciones.Insert("carreras", valores))
                {
                    ds = Conexion.MySQL("SELECT Last_Insert_ID();");
                    movimiento.Clear();
                    movimiento.Add("0");
                    movimiento.Add(FrmMenu.usuarioID.ToString());
                    movimiento.Add(ds.Tables["tabla"].Rows[0][0].ToString());
                    movimiento.Add("'Carreras'");
                    movimiento.Add("NULL");
                    movimiento.Add("NULL");
                    movimiento.Add("NULL");
                    movimiento.Add("'Agregó'");
                    movimiento.Add("NOW()");
                    movimiento.Add("NOW()");
                    movimiento.Add("1");
                    Funciones.Insert("movimientos", movimiento);
                }
                this.Close();
            }
        }
Example #30
0
        //Método GetQuery: Devuelve la consulta correspondiente dependiendo del nombre de la tabla que se envíe al ser llamado el método.
        public static string GetQuery(string tabla, int id = 0, int status = 1, string like = "", int limite = 0, int indice = 1, string inicio = "", string fin = "")
        {
            int    result = 0;
            string query  = "";

            tabla = tabla.ToLower();
            List <string> columnas = new List <string>();

            //Base de la consulta
            switch (tabla)
            {
            case "alumnos":         query = "SELECT * FROM (SELECT alumnos.id as ID, alumnos.matricula as Matrícula, alumnos.nombre as Nombre, alumnos.apellidop as Paterno, alumnos.apellidom as Materno, carreras.carrera as Carrera, alumnos.correo as Correo, alumnos.telefono as Teléfono, alumnos.created_at as Creado, alumnos.updated_at as Actualizado, alumnos.status as status FROM alumnos INNER JOIN carreras ON alumnos.carrera = carreras.id) as Tabla"; break;

            case "articulos":       query = "SELECT * FROM (SELECT id as ID, articulo as Artículo, comentario as Comentario, disponible as Disponible, created_at as Creado, updated_at as Actualizado, status FROM articulos) as Tabla"; break;

            case "asignaturas":     query = "SELECT * FROM (SELECT id as ID, asignatura as Asignatura, created_at as Creado, updated_at as Actualizado, status FROM asignaturas) as Tabla"; break;

            case "carreras":        query = "SELECT * FROM (SELECT id as ID, carrera as Carrera, created_at as Creado, updated_at as Actualizado, status FROM carreras) as Tabla";  break;

            case "laboratorios":    query = "SELECT * FROM (SELECT id as ID, laboratorio as Laboratorio, created_at as Creado, updated_at as Actualizado, status FROM laboratorios) as Tabla"; break;

            case "maestros":        query = "SELECT * FROM (SELECT id ID, CONCAT(nombre,' ', apellidop,' ', apellidom) Maestro, created_at Creado, updated_at Actualizado, status FROM maestros) as Tabla"; break;

            case "movimientos":     query = "SELECT * FROM (SELECT movimientos.id ID,usuarios.usuario Usuario,movimientos.id_registro Registro,movimientos.tabla Tabla,movimientos.campo Campo,movimientos.nuevo Nuevo,movimientos.viejo Viejo,movimientos.descripcion Descripción,movimientos.created_at Creado, movimientos.status status FROM `movimientos` INNER JOIN usuarios ON movimientos.usuario = usuarios.id) as TablaVirtual"; break;

            case "prestamos":       query = @"SELECT * FROM (SELECT prestamos.id ID, CONCAT(alumnos.nombre,' ',alumnos.apellidop,' ', alumnos.apellidom) Alumno, CONCAT(maestros.nombre,' ',maestros.apellidop,' ', maestros.apellidom) Maestro, laboratorios.laboratorio Laboratorio,
                                                asignaturas.asignatura Asignatura,usuarios.usuario Usuario,prestamos.fecha_fin Entrega,prestamos.created_at Creado,prestamos.updated_at Actualizado, prestamos.status status FROM prestamos
                                                INNER JOIN alumnos ON prestamos.alumno = alumnos.id INNER JOIN maestros ON prestamos.maestro = maestros.id INNER JOIN laboratorios ON prestamos.laboratorio = laboratorios.id
                                                INNER JOIN asignaturas ON prestamos.asignatura = asignaturas.id INNER JOIN usuarios ON prestamos.usuario = usuarios.id) as Tabla"; break;

            case "usuarios":        query = "SELECT * FROM (SELECT id as ID, usuario as Usuario, nivel as Nivel, created_at as Creado, updated_at as Actualizado, status from usuarios) as Tabla"; break;
            }

            //Validaciones avanzadas
            if (id != 0)
            {
                query += " WHERE ID = " + id;
                if (status == 1 || status == 0)
                {
                    query += " AND status = " + status;
                }
            }

            if (id == 0 && (status == 1 || status == 0))
            {
                query += " WHERE status = " + status;
            }

            //Validación optimizada para búsqueda
            if (like != "" && !(like.Contains('=') || like.Contains('+') || like.Contains('-')))
            {
                if (id != 0 || status == 1 || status == 0)
                {
                    query += " AND ";
                }
                else
                {
                    query += " WHERE ";
                }

                query += "(";

                switch (tabla)
                {
                case "alumnos":
                    if (int.TryParse(like, out result) && like.Length <= 4 && result > 0)
                    {
                        query += " ID = " + result + "";
                    }
                    else if (int.TryParse(like, out result))
                    {
                        query += " (Matrícula LIKE '%" + like + "%' OR Teléfono LIKE '%" + like + "%')";
                    }
                    else if (like.Contains("@"))
                    {
                        query += " Correo LIKE '%" + like + "%'";
                    }
                    else
                    {
                        query += " (Nombre LIKE '%" + like + "%' OR Paterno LIKE '%" + like + "%' OR Materno LIKE '%" + like + "%')";
                    }
                    break;

                case "articulos":
                    if (int.TryParse(like, out result) && like.Length <= 4 && result > 0)
                    {
                        query += " ID = " + result + "";
                    }
                    else
                    {
                        query += " Artículo LIKE '%" + like + "%'";
                    }
                    break;

                case "asignaturas":
                    if (int.TryParse(like, out result) && like.Length <= 4 && result > 0)
                    {
                        query += " ID = " + result + "";
                    }
                    else
                    {
                        query += " Asignatura LIKE '%" + like + "%'";
                    }
                    break;

                case "carreras":
                    if (int.TryParse(like, out result) && like.Length <= 4 && result > 0)
                    {
                        query += " ID = " + result + "";
                    }
                    else
                    {
                        query += " Carrera LIKE '%" + like + "%'";
                    }
                    break;

                case "laboratorios":
                    if (int.TryParse(like, out result) && like.Length <= 4 && result > 0)
                    {
                        query += " ID = " + result + "";
                    }
                    else
                    {
                        query += " Laboratorio LIKE '%" + like + "%'";
                    }
                    break;

                case "maestros":
                    if (int.TryParse(like, out result) && like.Length <= 4 && result > 0)
                    {
                        query += " ID = " + result + "";
                    }
                    else
                    {
                        query += " Maestro LIKE '%" + like + "%'";
                    }
                    break;

                case "movimientos":
                    if (int.TryParse(like, out result) && like.Length <= 4 && result > 0)
                    {
                        query += " ID = " + result + "";
                    }
                    else
                    {
                        query += " (Usuario LIKE '%" + like + "%' OR Tabla LIKE '%" + like + "%' OR Campo LIKE '%" + like + "%' OR Nuevo LIKE '%" + like + "%' OR Viejo LIKE '%" + like + "%' OR Descripción LIKE '%" + like + "%')";
                    }
                    break;

                case "prestamos":
                    DataSet ds;
                    if (int.TryParse(like, out result) && result > 0)
                    {
                        ds = Conexion.MySQL("SELECT CONCAT(nombre, ' ', apellidop, ' ', apellidom) as Alumno FROM alumnos WHERE matricula LIKE '%" + result + "%';");
                        if (ds.Tables["tabla"].Rows.Count != 0)
                        {
                            query += " Alumno LIKE '%" + ds.Tables["tabla"].Rows[0][0].ToString() + "%'";
                        }
                    }
                    else
                    {
                        query += "Alumno LIKE '%" + like + "%' OR Maestro LIKE '%" + like + "%' OR Laboratorio LIKE '%" + like + "%' OR Asignatura LIKE '%" + like + "%' OR Usuario LIKE '%" + like + "%'";
                    }
                    break;

                case "usuarios":
                    if (int.TryParse(like, out result) && like.Length <= 4 && result > 0)
                    {
                        query += " ID = " + result + "";
                    }
                    else
                    {
                        query += " Usuario LIKE '%" + like + "%'";
                    }
                    break;
                }
                query += ") ";
            }
            //Búsqueda avanzada parametrizada
            else if (like.Contains('=') || like.Contains('+') || like.Contains('-'))
            {
                bool where = true;
                bool          first      = true;
                int           operadores = 0;
                List <string> parametros = new List <string>();
                List <string> valores    = new List <string>();

                switch (tabla)
                {
                case "alumnos":         columnas = ("ID,Matrícula,Nombre,Paterno,Materno,Carrera,Correo,Teléfono,Creado,Actualizado,status").Trim().Split(',').ToList <string>(); break;

                case "articulos":       columnas = ("ID,Artículo,Comentario,Disponible,Creado,Actualizado,status").Trim().Split(',').ToList <string>(); break;

                case "asignaturas":     columnas = ("ID,Asignatura,Creado,Actualizado,status").Trim().Split(',').ToList <string>(); break;

                case "carreras":        columnas = ("ID,Carrera,Creado,Actualizado,status").Trim().Split(',').ToList <string>(); break;

                case "laboratorios":    columnas = ("ID,Asignatura,Creado,Actualizado,status").Trim().Split(',').ToList <string>(); break;

                case "maestros":        columnas = ("ID,Maestro,Creado,Actualizado,status").Trim().Split(',').ToList <string>(); break;

                case "movimientos":     columnas = ("ID,Usuario,Registro,Tabla,Campo,Nuevo,Viejo,Descripción,Creado,Actualizado,status").Trim().Split(',').ToList <string>(); break;

                case "prestamos":       columnas = ("ID,Alumno,Maestro,Laboratorio,Asignatura,Usuario,Entrega,Creado,Actualizado,status").Trim().Split(',').ToList <string>(); break;

                case "usuarios":        columnas = ("ID,Usuario,Creado,Actualizado,status").Trim().Split(',').ToList <string>(); break;
                }

                if (id != 0 || status == 1 || status == 0)
                {
                    where = false;
                }

                parametros = like.Trim().Split(',').ToList <string>();

                foreach (string parametro in parametros)
                {
                    foreach (char operador in parametro)
                    {
                        if (operador == '+' || operador == '-' || operador == '=')
                        {
                            operadores++;
                        }
                    }
                }

                if (parametros.Count != operadores)
                {
                    return("¡Error! Cantidad no válida de operadores.");
                }

                foreach (string parametro in parametros)
                {
                    if (where)
                    {
                        query += " WHERE "; where = false;
                    }
                    else
                    {
                        query += " AND ";
                    }

                    if (first)
                    {
                        query += "(";
                        first  = false;
                    }

                    if (parametro.Contains('='))
                    {
                        valores = parametro.Split('=').ToList <string>();
                        if (!columnas.Contains(valores[0].Trim()))
                        {
                            return("¡Error¡ La columna '" + valores[0] + "' no existe.");
                        }

                        if (columnas.Contains(valores[1].Trim()))
                        {
                            query += " " + valores[0].Trim() + "= " + valores[1].Trim();
                        }
                        else
                        {
                            query += " " + valores[0].Trim() + "= '" + valores[1].Trim() + "'";
                        }
                    }
                    if (parametro.Contains('+'))
                    {
                        valores = parametro.Split('+').ToList <string>();
                        if (!columnas.Contains(valores[0].Trim()))
                        {
                            return("¡Error¡ La columna " + valores[0] + " no existe.");
                        }
                        query += " " + valores[0].Trim() + " LIKE '%" + valores[1].Trim() + "%'";
                    }
                    if (parametro.Contains('-'))
                    {
                        valores = parametro.Split('-').ToList <string>();
                        if (!columnas.Contains(valores[0].Trim()))
                        {
                            return("¡Error¡ La columna " + valores[0] + " no existe.");
                        }
                        query += " " + valores[0].Trim() + " NOT LIKE '%" + valores[1].Trim() + "%'";
                    }
                }
                query += ") ";
            }


            //Búsqueda por fecha
            if (inicio != "")
            {
                if (id != 0 || status == 1 || status == 0 || like != "")
                {
                    query += " AND ";
                }
                else
                {
                    query += " WHERE ";
                }
                query += " Creado BETWEEN '" + inicio + " 00:00:00' AND '" + fin + " 23:59:59'";
            }

            //Orden descendiente para Movimientos
            if (tabla == "movimientos")
            {
                query += " ORDER BY Creado DESC";
            }

            //Límite para la paginación
            if (limite != 0)
            {
                query += " LIMIT " + indice + "," + limite;
            }


            query += ";";

            return(query);
        }