示例#1
0
 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.");
     }
 }
示例#2
0
        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");
            }
        }