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); } }
private void botonVolver_Click(object sender, EventArgs e) { ComprarOfertar.Form1 form1 = new ComprarOfertar.Form1(); form1.Show(); this.Close(); }