Exemplo n.º 1
0
        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();
                    }
                }
            }
        }