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()); } }
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]; } }
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(); }
//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); }
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; } }
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; } } } }
//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]; } }
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(); }
//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(); }
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(); } }
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"; } } }
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(); } }
//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; } } } } }
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"]; }
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(); } }
//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); }