private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { if (dataGridView1.Rows[e.RowIndex].Cells[1].Value == null) { MessageBox.Show("Debe introducir una cantidad a canjear."); return; } //Ignora los clicks que no son sobre los elementos de la columna de botones if (e.RowIndex < 0 || e.ColumnIndex != dataGridView1.Columns.IndexOf(dataGridView1.Columns["Seleccionar"]) || dataGridView1.DataSource == null) { return; } RecompensaDTO Recompensa = (RecompensaDTO)dataGridView1.Rows[e.RowIndex].DataBoundItem; int Cantidad = Convert.ToInt32(dataGridView1.Rows[e.RowIndex].Cells[1].Value); if (Cantidad == 0) { MessageBox.Show("La cantidad a canjear debe ser mayor a 0."); return; } if (Recompensa.Stock > 0) { if (Recompensa.Millas * Cantidad < Convert.ToInt32(this.textBox2.Text)) { if (MillasDAO.doCanje(Convert.ToInt32(this.textDNI.Text), Recompensa.Id, Cantidad)) { MessageBox.Show("Canje exitoso, imprima el comprobante y pase a retirar su recompensa por cualquiera de nuestras sucursales."); Reload(); } else { MessageBox.Show("Su canje no se ha efectuado con exito."); } } else { MessageBox.Show("No le alcanzan las millas para lo que intenta canjear."); } } else { MessageBox.Show("No hay stock suficiente del producto seleccionado."); } }
private static List <RecompensaDTO> getRecompensasFromReader(SqlDataReader dataReader) { List <RecompensaDTO> ListaRecompensas = new List <RecompensaDTO>(); if (dataReader.HasRows) { while (dataReader.Read()) { RecompensaDTO Recompensa = new RecompensaDTO(); Recompensa.Id = Convert.ToInt32(dataReader["Id"]); Recompensa.Descripcion = Convert.ToString(dataReader["Descripcion"]); Recompensa.Stock = Convert.ToInt32(dataReader["Stock"]); Recompensa.Millas = Convert.ToInt32(dataReader["Puntos"]); ListaRecompensas.Add(Recompensa); } dataReader.Close(); dataReader.Dispose(); } return(ListaRecompensas); }