Exemplo n.º 1
0
        private void botonTerminar_Click(object sender, EventArgs e)
        {
            if (!usuario.username.Equals(vendedor))
            {
                if (!usuario.Rol.Equals("Administrador"))
                {
                    if (estado.Equals("Pausada"))
                    {
                        String mensaje = "La publicación esta pausada, intentelo más tarde";
                        String caption = "Imposible realizar la compra/oferta";
                        MessageBox.Show(mensaje, caption, MessageBoxButtons.OK);
                    }
                    else
                    {
                        if (!String.IsNullOrEmpty(comboBox1.Text))
                        {
                            cuantasPorCalificar             = new SqlCommand("PERSISTIENDO.cuantasPorCalificar", coneccion);
                            cuantasPorCalificar.CommandType = CommandType.StoredProcedure;
                            cuantasPorCalificar.Parameters.Add("@Usuario", SqlDbType.VarChar).Value = usuario.username;
                            SqlDataAdapter adapter7 = new SqlDataAdapter(cuantasPorCalificar);
                            DataTable      table7   = new DataTable();
                            adapter7.Fill(table7);

                            float cantCali = (float)Double.Parse(table7.Rows[0][0].ToString());

                            if (cantCali < 4)
                            {
                                if (tipo.Equals("Subasta"))
                                {
                                    if (!String.IsNullOrEmpty(textBox2.Text))
                                    {
                                        if (((float)Double.Parse(textBox2.Text)) > oferta)
                                        {
                                            ofertar = new SqlCommand("PERSISTIENDO.ofertar", coneccion);

                                            ofertar.CommandType = CommandType.StoredProcedure;
                                            ofertar.Parameters.Add("@CodigoPublicacion", SqlDbType.Float).Value = (float.Parse(codigo.ToString(), CultureInfo.InvariantCulture.NumberFormat));
                                            ofertar.Parameters.Add("@Fecha", SqlDbType.DateTime).Value          = Properties.Settings.Default.fecha;
                                            ofertar.Parameters.Add("@Monto", SqlDbType.Float).Value             = textBox2.Text;
                                            ofertar.Parameters.Add("@Envio", SqlDbType.Bit).Value         = envia;
                                            ofertar.Parameters.Add("@Ofertante", SqlDbType.VarChar).Value = usuario.username;

                                            ofertar.ExecuteNonQuery();

                                            ComprarOfertar.Form1 form1 = new ComprarOfertar.Form1();
                                            form1.Show();
                                            this.Close();
                                        }
                                        else
                                        {
                                            String mensaje = "La oferta debe ser mayor al ultimo monto ofertado";
                                            String caption = "Imposible realizar la oferta";
                                            MessageBox.Show(mensaje, caption, MessageBoxButtons.OK);
                                        }
                                    }
                                    else
                                    {
                                        String mensaje = "Debe completar el campo oferta";
                                        String caption = "Imposible realizar la oferta";
                                        MessageBox.Show(mensaje, caption, MessageBoxButtons.OK);
                                    }
                                }
                                else
                                {
                                    if (!String.IsNullOrEmpty(textBox1.Text))
                                    {
                                        //Busco cod ultima factura
                                        ultimaFactura = new SqlCommand("PERSISTIENDO.ultimaFactura", coneccion);

                                        ultimaFactura.CommandType = CommandType.StoredProcedure;
                                        var uf = ultimaFactura.Parameters.Add("@Cantidad", SqlDbType.Float);
                                        uf.Direction = ParameterDirection.ReturnValue;
                                        data         = ultimaFactura.ExecuteReader();
                                        var codFactura = uf.Value;
                                        data.Close();

                                        float nFac = ((float)Double.Parse(codFactura.ToString())) + 1;

                                        //Generar factura
                                        facturar = new SqlCommand("PERSISTIENDO.facturarPublicacion", coneccion);

                                        facturar.CommandType = CommandType.StoredProcedure;

                                        facturar.Parameters.Add("@CodigoPublicacion", SqlDbType.Float).Value = codigo;
                                        facturar.Parameters.Add("@CodigoFactura", SqlDbType.Float).Value     = nFac;
                                        facturar.Parameters.Add("@Precio", SqlDbType.Float).Value            = 0;
                                        facturar.Parameters.Add("@Fecha", SqlDbType.DateTime).Value          = Properties.Settings.Default.fecha;
                                        facturar.Parameters.Add("@Pago", SqlDbType.VarChar).Value            = "Efectivo";

                                        facturar.ExecuteNonQuery();


                                        //Obtener % visibilidad
                                        porVisibilidad             = new SqlCommand("PERSISTIENDO.porcentajeVisibilidad", coneccion);
                                        porVisibilidad.CommandType = CommandType.StoredProcedure;
                                        porVisibilidad.Parameters.Add("@Visibilidad", SqlDbType.VarChar).Value = visibilidad;
                                        SqlDataAdapter adapter4 = new SqlDataAdapter(porVisibilidad);
                                        DataTable      table3   = new DataTable();
                                        adapter4.Fill(table3);

                                        float porcentaje  = (float)Double.Parse(table3.Rows[0][0].ToString());
                                        float precioEnvio = (float)Double.Parse(table3.Rows[0][1].ToString());

                                        float total = ((float)Double.Parse(precio) * (Int32.Parse(textBox1.Text))) * porcentaje;


                                        //generar item_factura
                                        itemFactura             = new SqlCommand("PERSISTIENDO.itemFactura", coneccion);
                                        itemFactura.CommandType = CommandType.StoredProcedure;
                                        itemFactura.Parameters.Add("@CodigoFactura", SqlDbType.Float).Value = nFac;
                                        itemFactura.Parameters.Add("@Precio", SqlDbType.Float).Value        = total;
                                        itemFactura.Parameters.Add("@Detalle", SqlDbType.VarChar).Value     = ("Comision por venta: " + visibilidad);
                                        itemFactura.Parameters.Add("@Cantidad", SqlDbType.Int).Value        = (Int32.Parse(textBox1.Text));

                                        itemFactura.ExecuteNonQuery();

                                        modificarMontoFactura             = new SqlCommand("PERSISTIENDO.modificarMontoFactura", coneccion);
                                        modificarMontoFactura.CommandType = CommandType.StoredProcedure;
                                        modificarMontoFactura.Parameters.Add("@Numero", SqlDbType.Float).Value = nFac;
                                        modificarMontoFactura.Parameters.Add("@Monto", SqlDbType.Float).Value  = total;

                                        modificarMontoFactura.ExecuteNonQuery();

                                        if (comboBox1.Text.Equals("Si"))
                                        {
                                            itemFactura             = new SqlCommand("PERSISTIENDO.itemFactura", coneccion);
                                            itemFactura.CommandType = CommandType.StoredProcedure;
                                            itemFactura.Parameters.Add("@CodigoFactura", SqlDbType.Float).Value = nFac;
                                            itemFactura.Parameters.Add("@Precio", SqlDbType.Float).Value        = precioEnvio;
                                            itemFactura.Parameters.Add("@Detalle", SqlDbType.VarChar).Value     = ("Envio: " + visibilidad);
                                            itemFactura.Parameters.Add("@Cantidad", SqlDbType.Int).Value        = 1;

                                            itemFactura.ExecuteNonQuery();

                                            modificarMontoFactura             = new SqlCommand("PERSISTIENDO.modificarMontoFactura", coneccion);
                                            modificarMontoFactura.CommandType = CommandType.StoredProcedure;
                                            modificarMontoFactura.Parameters.Add("@Numero", SqlDbType.Float).Value = nFac;
                                            modificarMontoFactura.Parameters.Add("@Monto", SqlDbType.Float).Value  = precioEnvio;

                                            modificarMontoFactura.ExecuteNonQuery();
                                        }

                                        //actualizar stock
                                        //si el stock queda en 0 finalizar publicacion

                                        modificarStockEstadoPublicacion             = new SqlCommand("PERSISTIENDO.modificarStockEstadoPublicacion", coneccion);
                                        modificarStockEstadoPublicacion.CommandType = CommandType.StoredProcedure;
                                        modificarStockEstadoPublicacion.Parameters.Add("@CodigoPublicacion", SqlDbType.Float).Value = (float.Parse(codigo.ToString(), CultureInfo.InvariantCulture.NumberFormat));

                                        int stockFinal = stock - (Int32.Parse(textBox1.Text));

                                        modificarStockEstadoPublicacion.Parameters.Add("@Stock", SqlDbType.Float).Value = stockFinal;
                                        if (stockFinal == 0)
                                        {
                                            modificarStockEstadoPublicacion.Parameters.Add("@Estado", SqlDbType.Int).Value = 4;
                                        }
                                        else
                                        {
                                            modificarStockEstadoPublicacion.Parameters.Add("@Estado", SqlDbType.Int).Value = 1;
                                        }

                                        modificarStockEstadoPublicacion.ExecuteNonQuery();

                                        //generarCompra
                                        newCompra             = new SqlCommand("PERSISTIENDO.newCompra", coneccion);
                                        newCompra.CommandType = CommandType.StoredProcedure;
                                        newCompra.Parameters.Add("@Codigo", SqlDbType.Float).Value      = codigo;
                                        newCompra.Parameters.Add("@Comprador", SqlDbType.VarChar).Value = usuario.username;
                                        newCompra.Parameters.Add("@Fecha", SqlDbType.DateTime).Value    = Properties.Settings.Default.fecha;
                                        newCompra.Parameters.Add("@Cant", SqlDbType.Float).Value        = (float)Double.Parse(textBox1.Text);

                                        newCompra.ExecuteNonQuery();


                                        ComprarOfertar.Form1 form1 = new ComprarOfertar.Form1();
                                        form1.Show();
                                        this.Close();
                                    }
                                    else
                                    {
                                        String mensaje = "Debe completar el campo cantidad";
                                        String caption = "Imposible realizar la compra";
                                        MessageBox.Show(mensaje, caption, MessageBoxButtons.OK);
                                    }
                                }
                            }
                            else
                            {
                                String mensaje = "Por favor califica antes de comprar/ofertar";
                                String caption = "Imposible realizar la compra/oferta";
                                MessageBox.Show(mensaje, caption, MessageBoxButtons.OK);
                            }
                        }
                        else
                        {
                            String mensaje = "Debe completar el campo envio";
                            String caption = "Imposible realizar la compra/oferta";
                            MessageBox.Show(mensaje, caption, MessageBoxButtons.OK);
                        }
                    }
                }
                else
                {
                    String mensaje = "No tiene permisos para comprar/ofertar";
                    String caption = "Error de permisos";
                    MessageBox.Show(mensaje, caption, MessageBoxButtons.OK);
                }
            }
            else
            {
                String mensaje = "No puede comprar/ofertar por una publicación propia";
                String caption = "Imposible realizar la compra/oferta";
                MessageBox.Show(mensaje, caption, MessageBoxButtons.OK);
            }
        }
Exemplo n.º 2
0
 private void botonVolver_Click(object sender, EventArgs e)
 {
     ComprarOfertar.Form1 form1 = new ComprarOfertar.Form1();
     form1.Show();
     this.Close();
 }