private void butAceptar_Click(object sender, EventArgs e) { if (textNombreSol.Text == "" || textCorreo.Text == "" || textUnidad.Text == "") { MessageBox.Show("Falta algún dato obligatorio", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { //Se revisa que las cantidades solicitadas esten disponibles bool error = false; for (int i = 0; i < formulario.dgvReactivos.Rows.Count; ++i) { if (Convert.ToInt32(formulario.dgvReactivos.Rows[i].Cells[3].Value) > bd.obtenerCantidadReactivos(formulario.dgvReactivos.Rows[i].Cells[0].Value.ToString(), formulario.dgvReactivos.Rows[i].Cells[1].Value.ToString())) { MessageBox.Show("La cantidad de " + formulario.dgvReactivos.Rows[i].Cells[0].Value.ToString() + " no está disponible", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); error = true; } } for (int i = 0; i < formulario.dgvCristaleria.Rows.Count; ++i) { if (Convert.ToInt32(formulario.dgvCristaleria.Rows[i].Cells[3].Value) > bd.obtenerCantidadcristaleria(formulario.dgvCristaleria.Rows[i].Cells[0].Value.ToString(), formulario.dgvCristaleria.Rows[i].Cells[1].Value.ToString(), formulario.dgvCristaleria.Rows[i].Cells[2].Value.ToString())) { MessageBox.Show("La cantidad de " + formulario.dgvCristaleria.Rows[i].Cells[0].Value.ToString() + " no está disponible", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); error = true; } } if (!error) { //Como están disponobles se genera el id y se hace la solicitud string id = generarId(bd.obtenerUltimoIdSolicitud()); if (bd.agregarSolicitud(id, dtpFechaSol.Value.ToShortDateString(), textNombreSol.Text, textNombreEnc.Text, textCorreo.Text, textUnidad.Text, textObservaciones.Text, Globals.usuario) != 1) { MessageBox.Show("Error al crear la solicitud", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); error = true; } if (!error) { //Se agregan los reactivos for (int i = 0; i < formulario.dgvReactivos.Rows.Count; ++i) { string nombre = formulario.dgvReactivos.Rows[i].Cells[0].Value.ToString(); string pureza = formulario.dgvReactivos.Rows[i].Cells[1].Value.ToString(); float cantidad = (float)Convert.ToDouble(formulario.dgvReactivos.Rows[i].Cells[3].Value.ToString()); bd.agregarSolicitudReactivo(id, nombre, pureza, cantidad); } //Se agregan las critalerias for (int i = 0; i < formulario.dgvCristaleria.Rows.Count; ++i) { string nombre = formulario.dgvCristaleria.Rows[i].Cells[0].Value.ToString(); string material = formulario.dgvCristaleria.Rows[i].Cells[1].Value.ToString(); string capacidad = formulario.dgvCristaleria.Rows[i].Cells[2].Value.ToString(); int cantidad = Convert.ToInt32(formulario.dgvCristaleria.Rows[i].Cells[3].Value.ToString()); bd.agregarSolicitudCristaleria(id, nombre, material, capacidad, cantidad); } MessageBox.Show("Se realizó la solicitud correctamente", "Solicitud realizada", MessageBoxButtons.OK, MessageBoxIcon.None); //Se genera el pdf saveFilePdf.Filter = "PDF File|*.pdf"; saveFilePdf.FileName = "Comprobante " + id; if (saveFilePdf.ShowDialog() == DialogResult.Cancel) { saveFilePdf.FileName = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); saveFilePdf.FileName += "/Comprobante " + id + ".pdf"; } pdf.imprimirSolicitud(saveFilePdf.FileName, generarMatriz(0), generarMatriz(1), id, textNombreSol.Text, textUnidad.Text, dtpFechaSol.Value.ToShortDateString(), textCorreo.Text, textObservaciones.Text); formulario.dgvReactivos.DataSource = null; formulario.dgvCristaleria.DataSource = null; formulario.Close(); this.Close(); } } } }