public static void updateVentasSinRendir(Compra compra) { int idUser = compra.Vendedor; List<SqlParameter> listaParametros = new List<SqlParameter>(); BDSQL.agregarParametro(listaParametros, "@idUser", idUser); string commandText = "UPDATE MERCADONEGRO.Usuarios SET Ventas_Sin_Rendir = Ventas_Sin_Rendir + 1 WHERE ID_USER = @idUser"; BDSQL.ejecutarQuery(commandText, listaParametros, BDSQL.iniciarConexion()); BDSQL.cerrarConexion(); //verifico que haya llegado a las 10 bool puedeComprarLaProxPorVentas = Usuario.verificarCantidadVentasSinRendir(compra.Vendedor); if (!puedeComprarLaProxPorVentas) { //inhabilita al usuario Usuario usuario = new Usuario(); usuario.ID_User = compra.Vendedor; usuario.inhabilitarUsuario(); //updatea todas sus publicaciones a Pausadas Publicacion.pausarPublicaciones(compra.Vendedor); } }
public static void insertarCompra(Compra compra) { List<SqlParameter> ListaParametros = new List<SqlParameter>(); ListaParametros.Add(new SqlParameter("@idVendedor", compra.Vendedor)); ListaParametros.Add(new SqlParameter("@idComprador", compra.Comprador)); ListaParametros.Add(new SqlParameter("@codPublicacion", compra.Cod_Publicacion)); ListaParametros.Add(new SqlParameter("@tipoOperacion", compra.Tipo_Operacion)); ListaParametros.Add(new SqlParameter("@montoCompra", compra.Monto_Compra)); ListaParametros.Add(new SqlParameter("@operacionFacturada", compra.Operacion_Facturada)); ListaParametros.Add(new SqlParameter("@fechaCompra", Interfaz.obtenerFecha())); BDSQL.ejecutarQuery("INSERT INTO MERCADONEGRO.Compras (ID_Vendedor, ID_Comprador, Cod_Publicacion, Cod_TipoOperacion, " + "Fecha_Operacion, Monto_Compra, Operacion_Facturada) " + "VALUES ( @idVendedor , @idComprador , @codPublicacion , @tipoOperacion , " + "@fechaCompra, @montoCompra , @operacionFacturada )", ListaParametros, BDSQL.iniciarConexion()); BDSQL.cerrarConexion(); }
//BOTON GUARDAR private void Guardar_button_Click(object sender, EventArgs e) { int cantRubrosSelecc = Rubro_checkedListBox.CheckedItems.Count; //Controlar que se completen todos los datos y asignar if (!Visibilidad_ComboBox.Text.Equals("") && !Descrip_TextBox.Text.Equals("") && !Stock_TextBox.Text.Equals("") && !FechaFin_DateTimePicker.Text.Equals("") && !Estado_ComboBox.Text.Equals("") && !TipoPubli_ComboBox.Text.Equals("") && !Precio_textBox.Text.Equals("") && (cantRubrosSelecc >= 1)) { //Asigna los valores a la publicacion if(esNueva == true) { codPubli = 0; } string visibilidad = Visibilidad_ComboBox.SelectedItem.ToString(); int visibilidadIndex = Visibilidad_ComboBox.SelectedIndex; int idVendedor; if (esAdmin == true) { idVendedor = dueñoPublicacion; } else { idVendedor = usuario.ID_User; } string descripcion = Descrip_TextBox.Text; int stock = Convert.ToInt32(Stock_TextBox.Text); DateTime fechaFin = Convert.ToDateTime(FechaFin_DateTimePicker.Text); DateTime fechaInicio = Interfaz.obtenerFecha(); string estado = Convert.ToString(Estado_ComboBox.SelectedItem); int estadoIndex = Estado_ComboBox.SelectedIndex; string tipoPubli = Convert.ToString(TipoPubli_ComboBox.SelectedItem); int tipoPubliIndex = TipoPubli_ComboBox.SelectedIndex; string rubro = Convert.ToString(Rubro_checkedListBox.SelectedItem); int rubroIndex = Rubro_checkedListBox.SelectedIndex; decimal precio = Convert.ToDecimal(Precio_textBox.Text); bool permisoPreg = PermitirPreguntas_Checkbox.Checked; List<Rubro> listaRubrosSeleccionados = filtrarRubrosSeleccionados(); //Crear la publicacion con los parametros asignados Publicacion publi = new Publicacion(codPubli, visibilidad, idVendedor, descripcion, stock, fechaFin, fechaInicio, precio, estado, tipoPubli, permisoPreg, stock); //Nueva if ((esNueva == true)) { if (fechaFin > Interfaz.obtenerFecha()) { //Nueva + (Stock<=0) if (stock < 1) { MessageBox.Show("El Stock no puede ser menor a 1", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { //Nueva + Gratis + Publicada if ((visibilidad == "Gratis") && (estadoIndex == 1)) { //Obtiene la cantidad de publicaciones gratuitas del usuario int idUser = Convert.ToInt32(usuario.ID_User); int cantidadPubliGratuitas = Usuario.obtenerPublisGratuitas(idUser); //Nueva + Gratis + Publicada + (CantGratis<3) if (cantidadPubliGratuitas < 3) { //Sumar 1 a Cant_Publi_Gratuitas usuario.sumarPubliGratuita(); //Inserta publicacion en la tabla Publicaciones int publiExitosa = Publicaciones.agregarPublicacion(publi, visibilidadIndex, estadoIndex, tipoPubliIndex); if (publiExitosa == -1) { MessageBox.Show("Falló al generar Publicacion", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { int nuevoCodPbli = Publicaciones.obtenerCodPublicacion(publi, visibilidadIndex, estadoIndex, tipoPubliIndex); MessageBox.Show(string.Format("La publicación creada tendrá el Código {0}", nuevoCodPbli), "Codigo de Publicación", MessageBoxButtons.OK); Rubro.agregarRubroPublicacion(listaRubrosSeleccionados, nuevoCodPbli); } } //Nueva + Gratis + Publicada + (CantGratis>=3) else { MessageBox.Show("Ya posee 3 publicaciones gratuitas publicadas", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } //Nueva + No (Gratis + Publicada) + No (Subasta + Publicada) else { //Inserta publicacion en la tabla Publicaciones int publiExitosa = Publicaciones.agregarPublicacion(publi, visibilidadIndex, estadoIndex, tipoPubliIndex); if (publiExitosa == -1) { MessageBox.Show("Falló al generar Publicacion", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { int nuevoCodPbli = Publicaciones.obtenerCodPublicacion(publi, visibilidadIndex, estadoIndex, tipoPubliIndex); MessageBox.Show(string.Format("La publicación creada tendrá el Código {0}", nuevoCodPbli), "Codigo de Publicación", MessageBoxButtons.OK); Rubro.agregarRubroPublicacion(listaRubrosSeleccionados, nuevoCodPbli); } } this.Close(); } } else { MessageBox.Show("La fecha de vencimiento no puede ser menor a la actual", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } //Modificar else { //Modificar + StockBien if (stockTraido > stock) { MessageBox.Show("No es posible decrementar el stock", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } else { // Modificar + StockBien + No(Publicada-->Borrador) if ((esBorrador == false) && (estado == "Borrador")) { MessageBox.Show("No es posible pasar de Publicada a Borrador", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } // Nueva + Subasta + Publicada + (NuevoEstado = Finalizada) else if ((tipoPubli == "Subasta") && (esBorrador == false) && (estado == "Finalizada")) { //Incluir última Subasta en Operaciones decimal montoOferta = Oferta.cargarOfertaMasAlta(codPubli); int idGanador = Oferta.getIdGanador(codPubli, montoOferta); if (idGanador == -1) { DialogResult dlg = MessageBox.Show("Nadie ofertó por esta subasta, ¿Desea cerrarla de todos modos?", "Atención!", MessageBoxButtons.YesNo); if (dlg == DialogResult.No) { return; } else { //updateo el estado de la publicacion Publicaciones.updateEstado(publi.Cod_Publicacion, "Finalizada"); MessageBox.Show("Subasta finalizada, no hubo ofertas.", "Atención!", MessageBoxButtons.OK); this.Close(); } } else { Compra compra = new Compra(idVendedor, idGanador, codPubli, 0, montoOferta, false); //inserto la compra a operaciones y Compra.insertarCompra(compra); //updateo el campo ventas_sin_rendir al id_vendedor Usuario.updateVentasSinRendir(compra); //updateo el estado de la publicacion Publicaciones.updateEstado(publi.Cod_Publicacion, "Finalizada"); MessageBox.Show("Subasta finalizada! Avisar al ganador.", "Succes!", MessageBoxButtons.OK); this.Close(); } } else { // Modificar + StockBien + No(Publicada-->Borrador) + (Gratis + NoBorrador) if (visibilidad == "Gratis" && estado == "Publicada") { //Obtiene la cantidad de publicaciones gratuitas del usuario int idUser = Convert.ToInt32(usuario.ID_User); int cantidadPubliGratuitas = Usuario.obtenerPublisGratuitas(idUser); MessageBox.Show(string.Format("Tiene {0}", cantidadPubliGratuitas), "CantPubliGratuitas", MessageBoxButtons.OK); if (cantidadPubliGratuitas < 3) { //Si no tiene Cant_Publi_Gratuitas en numero limite, sumar 1 a Cant_Publi_Gratuitas usuario.sumarPubliGratuita(); //Actualiza los rubros List<int> listaRubrosDePublicacion = Rubro.obtenerRubrosDePublicacion(publi.Cod_Publicacion); Rubro.eliminarRubroPublicacion(listaRubrosDePublicacion, publi.Cod_Publicacion); //Publicaciones.eliminarPublicacion(publi); Rubro.agregarRubroPublicacion(listaRubrosSeleccionados, codPubli); //Actualiza la publicacion en la tabla Publicaciones Publicaciones.actualizarPublicacion(publi, visibilidadIndex, estadoIndex, tipoPubliIndex); this.Close(); } else { //Si tiene Cant_Publi_Gratuitas en numero limite, mostrar error MessageBox.Show("Ya posee 3 publicaciones gratuitas publicadas", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } // Modificar + StockBien + No(Publicada-->Borrador) else { //Actualiza la publicacion en la tabla Publicaciones Publicaciones.actualizarPublicacion(publi, visibilidadIndex, estadoIndex, tipoPubliIndex); Rubro.actualizarRubroPublicacion(listaRubrosSeleccionados, codPubli); this.Close(); } } } } } //Caso que no haya completado todos los datos para generar la publi else { MessageBox.Show("Para continuar, ingrese todos los datos solicitados", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } }
private void btnComprar_Click(object sender, EventArgs e) { if (!Usuario.habilitadoCompra(Interfaz.usuario.ID_User)) { MessageBox.Show("Usted se encuentra actualmente inhabilitado para comprar.", "Importante", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } int stock = int.Parse(txtStockDisponible.Text); if (stock == 0) { MessageBox.Show("No hay mas stock disponibles!", "ATENCIÓN", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (publi.Tipo_Publicacion == "Compra Inmediata") { DialogResult res = MessageBox.Show("¿Esta seguro que desea realizar la compra?", "Importante", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation); if (res == DialogResult.Yes) { stock = stock - 1; txtStockDisponible.Text = Convert.ToString(stock); Compra compra = new Compra(publi.ID_Vendedor, Interfaz.usuario.ID_User, publi.Cod_Publicacion, 0 , publi.Precio, false); //inserto la compra a operaciones y updateo el campo ventas_sin_rendir al id_vendedor Compra.insertarCompra(compra); Usuario.updateVentasSinRendir(compra); //Visibilidad.insertBonificacion(publi.ID_Vendedor, publi.Cod_Visibilidad); bool puedeComprarLaProxPorCalific = Calificacion.verificarCantidadCalificaciones(Interfaz.usuarioActual().ID_User); if (!puedeComprarLaProxPorCalific) { //TODO: deshabilitar funcioanlidad compra MessageBox.Show("Usted ha llegado a 5 compras (inmediata o subasta ganada) sin calificar, " + "no podrá seguir comprando hasta que no se ponga al día.", "Importante", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); Usuario.updateHabilitadoCompra(Interfaz.usuarioActual().ID_User, false); } if (publi.ID_Vendedor == 0) { MessageBox.Show("Publicacion creada por el Administrador General, no puede ver sus datos.", "Atención", MessageBoxButtons.OK); return; } DatosVendedor datosVendedorForm = new DatosVendedor(publi.ID_Vendedor); datosVendedorForm.ShowDialog(); } } else if (publi.Tipo_Publicacion == "Subasta") { OfertaDlg ofertaDlg = new OfertaDlg(publi); ofertaDlg.ShowDialog(); actualizarOfertaDetallePublicacion(); } }