private void dgvPublicaciones_MouseClick(object sender, MouseEventArgs e) { if (dgvPublicaciones.SelectedRows.Count == 1) { PublicacionShow publicacion = (PublicacionShow)dgvPublicaciones.SelectedRows[0].DataBoundItem; if (publicacion.Tipo == "Subasta") { lblTextoAccion.Text = "Ofertar por el monto:"; btnAccionar.Text = "OFERTAR"; } else { lblTextoAccion.Text = "Cantidad a comprar:"; btnAccionar.Text = "COMPRAR"; } lblTextoAccion.Enabled = true; txtAccion.Enabled = true; btnAccionar.Enabled = true; rdbEnvio.Enabled = true; } else { MessageBox.Show("No hay una publicación seleccionada."); } }
private void btnAccionar_Click(object sender, EventArgs e) { //Me fijo si tiene mas de 3 compras sin calificar var cliente = DBHelper.ExecuteReader("Cliente_GetByUsername", new Dictionary <string, object>() { { "@username", usuario.Username } }).ToCliente(); var ventasSinClasificar = DBHelper.ExecuteReader("Venta_GetVentasSinCalificarSegunCliente", new Dictionary <string, object>() { { "@clieID", cliente.Id } }).ToVentas(); if (ventasSinClasificar.Count >= 3) { MessageBox.Show(string.Format("Tiene {0} ventas sin calificar. No esta permitido continuar comprando hasta que no sean calificadas", ventasSinClasificar.Count)); return; } if (txtAccion.Text != "") { PublicacionShow publ = (PublicacionShow)dgvPublicaciones.SelectedRows[0].DataBoundItem; if (btnAccionar.Text == "COMPRAR") { int cantidad = Convert.ToInt32(txtAccion.Text); if (cantidad > publ.Stock) { MessageBox.Show("No hay stock disponible"); } else { if (cantidad > 0) { var parametros = new Dictionary <string, object>() { { "@cliente", GetClienteIdByUsername() }, { "@publicacion", publ.Id }, { "@cantidad", cantidad }, { "@fecha", DateTime.Parse(ConfigurationManager.AppSettings["fecha"]) } }; DBHelper.ExecuteNonQuery("Venta_Add", parametros); MessageBox.Show("Se ha concretado la venta!"); lblTextoAccion.Text = btnAccionar.Text = txtAccion.Text = string.Empty; btnAccionar.Enabled = rdbEnvio.Enabled = txtAccion.Enabled = false; btnFiltrar_Click(false, new EventArgs()); //Por trigger bajo el stock y si hace falta finalizar la publicacion, lo hace. GenerarItemsFactura(publ.Id, cantidad); } else { MessageBox.Show("Debe ser minimo una unidad para comprar"); } } } else if (btnAccionar.Text == "OFERTAR") { Oferta oferta = new Oferta() { Monto = Convert.ToInt32(txtAccion.Text), PublicacionId = publ.Id, ClienteId = GetClienteIdByUsername() }; if (oferta.Monto > publ.Precio) { var parametros = new Dictionary <string, object>() { { "@cliente", oferta.ClienteId }, { "@publicacion", oferta.PublicacionId }, { "@monto", oferta.Monto }, { "@fecha", DateTime.Parse(ConfigurationManager.AppSettings["fecha"]) }, { "@envio", rdbEnvio.Checked } }; DBHelper.ExecuteNonQuery("Oferta_Add", parametros); MessageBox.Show("Se ha concretado la oferta!"); lblTextoAccion.Text = btnAccionar.Text = txtAccion.Text = string.Empty; btnAccionar.Enabled = rdbEnvio.Enabled = txtAccion.Enabled = false; btnFiltrar_Click(false, new EventArgs()); } else { MessageBox.Show("El monto debe superar la ultima puja"); } } } else { MessageBox.Show("Ingrese un número"); } }