public static void actualizarPublicacion(Publicacion unaPubli, int visibilidad, int estado, int tipoPubli) { List<SqlParameter> listaParametros = new List<SqlParameter>(); BDSQL.agregarParametro(listaParametros,"@Cod_Publicacion", unaPubli.Cod_Publicacion); BDSQL.agregarParametro(listaParametros, "@Cod_Visibilidad", visibilidad); BDSQL.agregarParametro(listaParametros, "@ID_Vendedor", unaPubli.ID_Vendedor); BDSQL.agregarParametro(listaParametros, "@Descripcion", unaPubli.Descripcion); BDSQL.agregarParametro(listaParametros, "@Stock", unaPubli.Stock); BDSQL.agregarParametro(listaParametros, "@Fecha_Vto", unaPubli.Fecha_Vto); BDSQL.agregarParametro(listaParametros, "@Fecha_Inic", unaPubli.Fecha_Inicio); BDSQL.agregarParametro(listaParametros, "@Precio", unaPubli.Precio); BDSQL.agregarParametro(listaParametros, "@Estado_Publicacion", estado); BDSQL.agregarParametro(listaParametros, "@Tipo_Publicacion", tipoPubli); BDSQL.agregarParametro(listaParametros, "@Permiso_Preguntas", unaPubli.Permiso_Preguntas); BDSQL.agregarParametro(listaParametros, "@Stock_Inicial", unaPubli.Stock_Inicial); int resultado = BDSQL.ejecutarQuery("UPDATE MERCADONEGRO.Publicaciones " + "SET Cod_Visibilidad=@Cod_Visibilidad, Descripcion=@Descripcion, " + "Stock=@Stock, Fecha_Vencimiento=@Fecha_Vto, Fecha_Inicial=@Fecha_Inic, " + "Precio=@Precio, Cod_EstadoPublicacion=@Estado_Publicacion, " + "Cod_TipoPublicacion=@Tipo_Publicacion, Permisos_Preguntas=@Permiso_Preguntas, " + "Stock_Inicial=@Stock_Inicial WHERE Cod_Publicacion=@Cod_Publicacion", listaParametros, BDSQL.iniciarConexion()); if (resultado == -1) MessageBox.Show("Falló al actualizar Publicación", "Fail!", MessageBoxButtons.OK, MessageBoxIcon.Error); else MessageBox.Show("Éxtio al actualizar Publicación", "Nice!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); BDSQL.cerrarConexion(); }
//Constructor para Modificar publicacion public GenerarPubliForm(string modo, Publicacion unaPubli) { if (modo == "Modificar") { InitializeComponent(); CenterToScreen(); llenarCombos(); llenarCheckedList(unaPubli.Cod_Publicacion); //Completar form con datos traido de BuscarPubliForm codPubli = unaPubli.Cod_Publicacion; Visibilidad_ComboBox.Text = unaPubli.Cod_Visibilidad; Descrip_TextBox.Text = unaPubli.Descripcion; Stock_TextBox.Text = Convert.ToString(unaPubli.Stock); FechaFin_DateTimePicker.Text = Convert.ToString(unaPubli.Fecha_Vto); TipoPubli_ComboBox.Text = unaPubli.Tipo_Publicacion; Estado_ComboBox.Text = unaPubli.Estado_Publicacion; Precio_textBox.Text = Convert.ToString(unaPubli.Precio); PermitirPreguntas_Checkbox.Checked = unaPubli.Permiso_Preguntas; dueñoPublicacion = unaPubli.ID_Vendedor; stockTraido = Convert.ToInt32(unaPubli.Stock); esNueva = false; if (unaPubli.Estado_Publicacion == "Borrador"){ esBorrador = true; } else{ esBorrador = false; } //Si estado=Publicada => permitir modificar el estado a Pausada o Finalizada (Inmediata unicamente) if (esBorrador == false) { Visibilidad_ComboBox.Enabled = false; FechaFin_DateTimePicker.Enabled = false; TipoPubli_ComboBox.Enabled = false; Precio_textBox.Enabled = false; PermitirPreguntas_Checkbox.Enabled = false; Rubro_checkedListBox.Enabled = false; } //Comprueba si el usuario es administrador o no esAdmin = Usuario.controlarRol(usuario.ID_User); } }
public static int agregarPublicacion(Publicacion unaPubli, int visibilidad, int estado, int tipoPubli) { List<SqlParameter> listaParametros = new List<SqlParameter>(); BDSQL.agregarParametro(listaParametros, "@Cod_Visibilidad", visibilidad); BDSQL.agregarParametro(listaParametros, "@ID_Vendedor", unaPubli.ID_Vendedor); BDSQL.agregarParametro(listaParametros, "@Descripcion", unaPubli.Descripcion); BDSQL.agregarParametro(listaParametros, "@Stock", unaPubli.Stock); BDSQL.agregarParametro(listaParametros, "@Fecha_Vto", unaPubli.Fecha_Vto); BDSQL.agregarParametro(listaParametros, "@Fecha_Inic", unaPubli.Fecha_Inicio); BDSQL.agregarParametro(listaParametros, "@Precio", unaPubli.Precio); BDSQL.agregarParametro(listaParametros, "@Estado_Publicacion", estado); BDSQL.agregarParametro(listaParametros, "@Tipo_Publicacion", tipoPubli); BDSQL.agregarParametro(listaParametros, "@Permiso_Preguntas", unaPubli.Permiso_Preguntas); BDSQL.agregarParametro(listaParametros, "@Stock_Inicial", unaPubli.Stock_Inicial); int resultado = BDSQL.ejecutarQuery("INSERT INTO MERCADONEGRO.Publicaciones " + "(Cod_visibilidad,ID_Vendedor, Descripcion, " + "Stock,Fecha_Vencimiento,Fecha_Inicial,Precio, " + "Cod_EstadoPublicacion,Cod_TipoPublicacion, " + "Permisos_Preguntas,Stock_Inicial) " + "VALUES(@Cod_visibilidad,@ID_Vendedor,@Descripcion,@Stock, " + "@Fecha_Vto,@Fecha_Inic,@Precio,@Estado_Publicacion, " + "@Tipo_Publicacion,@Permiso_Preguntas,@Stock_Inicial)", listaParametros, BDSQL.iniciarConexion()); /*if (resultado == -1) { MessageBox.Show("Falló al generar Publicacion", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { MessageBox.Show("Éxito al generar Publicacion", "Felicitaciones", MessageBoxButtons.OK); }*/ BDSQL.cerrarConexion(); return resultado; }
//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); } }
//BOTON FILTRAR private void filtrar_button_Click(object sender, EventArgs e) { //Obtener todos los filtros int cod_publi; if (CodPubli_textBox.Text == ""){ cod_publi = -1; } else{ cod_publi = Convert.ToInt32(CodPubli_textBox.Text); } string visibilidad = Convert.ToString(Visibilidad_ComboBox.SelectedItem); int visibilidadIndex = Visibilidad_ComboBox.SelectedIndex; int idVendedor = usuario.ID_User; string descripcion = Descrip_TextBox.Text; int stock; if (StockInicial_TextBox.Text == ""){ stock = -1; } else { stock = Convert.ToInt32(StockInicial_TextBox.Text); } DateTime fechaFin; bool fechaFinNula; if (dateTimePicker1.Text == " "){ fechaFinNula = true; fechaFin = Convert.ToDateTime(null); } else{ fechaFinNula = false; fechaFin = Convert.ToDateTime(dateTimePicker1.Text); } DateTime fechaInic; bool fechaInicNula; if (dateTimePicker2.Text == " "){ fechaInicNula = true; fechaInic = Convert.ToDateTime(null); } else{ fechaInicNula = false; fechaInic = Convert.ToDateTime(dateTimePicker2.Text); } string estado = Convert.ToString(Estado_ComboBox.SelectedItem); int estadoIndex = Estado_ComboBox.SelectedIndex; string tipoPubli = Convert.ToString(TipoPubli_ComboBox.SelectedItem); int tipoPubliIndex = TipoPubli_ComboBox.SelectedIndex; decimal precio; if (precio_textBox.Text == ""){ precio = -1; } else{ precio = Convert.ToDecimal(precio_textBox.Text); } //Recordar que el filtro de permiso de preguntas fue removido //bool permisoPreg = permisos_checkbox.Checked; bool permisoPreg = false; //Crea una publicacion a partir de los datos seleccionados Publicacion publi = new Publicacion(cod_publi, visibilidad, idVendedor, descripcion, stock, fechaFin, fechaInic, precio, estado, tipoPubli, permisoPreg, stock); //Comprueba que haya por lo menos 1 campo completo if ((cod_publi == -1) && (visibilidadIndex == -1) && (descripcion == "") && (stock == -1) && (precio == -1) && (estadoIndex == -1) && (tipoPubliIndex == -1) && fechaFinNula == true && fechaInicNula == true) { MessageBox.Show("Debe completar algún filtro para poder llevar a cabo esta acción", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { //Filtrar Publicaciones y mostrar en dataGridView1 dataGridView1.DataSource = Publicaciones.filtrarPublicaciones(publi, visibilidad, estadoIndex, tipoPubliIndex, fechaFinNula, fechaInicNula, esAdmin); } }
public static List<Publicacion> obtenerTodaPublicacion() { List<Publicacion> publicaciones = new List<Publicacion>(); SqlDataReader lector = BDSQL.ejecutarReader("SELECT * FROM MERCADONEGRO.Publicaciones p " + "JOIN MERCADONEGRO.Estados_Publicacion ep ON p.Cod_EstadoPublicacion = ep.Cod_EstadoPublicacion " + "WHERE ep.Descripcion != 'Finalizada' ", BDSQL.iniciarConexion()); if (lector.HasRows) { while (lector.Read()) { //Se obtienen las descripciones a partir de los codigos de la BD int cod_visibilidad = Convert.ToInt32(lector["Cod_Visibilidad"]); string desc_visibilidad = Interfaz.getDescripcion(cod_visibilidad, "visibilidad"); int cod_estado = Convert.ToInt32(lector["Cod_EstadoPublicacion"]); string desc_estado = Interfaz.getDescripcion(cod_estado, "estado"); int cod_tipo = Convert.ToInt32(lector["Cod_TipoPublicacion"]); string desc_tipo = Interfaz.getDescripcion(cod_tipo, "tipoPublicacion"); Publicacion unaPublicacion = new Publicacion( (int)(decimal)lector["Cod_Publicacion"], desc_visibilidad, (int)(decimal)lector["ID_Vendedor"], (string)lector["Descripcion"], (int)(decimal)lector["Stock"], (DateTime)lector["Fecha_Vencimiento"], (DateTime)lector["Fecha_Inicial"], (decimal)lector["Precio"], desc_estado, desc_tipo, (bool)lector["Permisos_Preguntas"], (int)(decimal)lector["Stock_Inicial"] ); publicaciones.Add(unaPublicacion); } } BDSQL.cerrarConexion(); return publicaciones; }
public static List<Publicacion> obtenerPublicacionesPaginadas(int desde, int hasta, string filtro, bool filtroRubros) { List<Publicacion> publicaciones = new List<Publicacion>(); List<SqlParameter> listaParametros = new List<SqlParameter>(); BDSQL.agregarParametro(listaParametros, "@desde", desde); BDSQL.agregarParametro(listaParametros, "@hasta", hasta); String commandtext = "WITH tablaNumerada AS " + "(SELECT p.Cod_Publicacion, p.Cod_Visibilidad, ID_Vendedor,p.Descripcion, " + "Stock,Fecha_Vencimiento,Fecha_Inicial,Precio,Cod_EstadoPublicacion, " + "Cod_TipoPublicacion,Permisos_Preguntas,Stock_Inicial, ROW_NUMBER() OVER (ORDER BY v.Jerarquia) AS RowNumber " + "FROM MERCADONEGRO.Publicaciones p " + "JOIN MERCADONEGRO.Visibilidades v ON v.Cod_Visibilidad = p.Cod_Visibilidad "; if (filtroRubros) { commandtext += "JOIN MERCADONEGRO.Rubro_Publicacion rp ON p.Cod_Publicacion=rp.Cod_Publicacion "; } commandtext += "WHERE Cod_EstadoPublicacion = 1 AND Stock > 0"; if (filtro != "") commandtext += " AND " + filtro; commandtext = commandtext + " ) " + "SELECT Cod_Publicacion, Cod_Visibilidad ,ID_Vendedor, Descripcion, " + "Stock, Fecha_Vencimiento, Fecha_Inicial, Precio, Cod_EstadoPublicacion, Cod_TipoPublicacion, Permisos_Preguntas, Stock_Inicial " + "FROM tablaNumerada " + "WHERE RowNumber BETWEEN @desde AND @hasta"; SqlDataReader lector = BDSQL.ejecutarReader(commandtext, listaParametros, BDSQL.iniciarConexion()); if (lector.HasRows) { while (lector.Read()) { Publicacion publi = new Publicacion(); publi.Cod_Publicacion = Convert.ToInt32(lector["Cod_Publicacion"]); publi.Cod_Visibilidad = Interfaz.getDescripcion(Convert.ToInt32(lector["Cod_Visibilidad"]), "visibilidad"); publi.ID_Vendedor = Convert.ToInt32(lector["ID_Vendedor"]); publi.Descripcion = Convert.ToString(lector["Descripcion"]); publi.Stock = Convert.ToInt32(lector["Stock"]); publi.Fecha_Vto = Convert.ToDateTime(lector["Fecha_Vencimiento"]); publi.Fecha_Inicio = Convert.ToDateTime(lector["Fecha_Inicial"]); publi.Precio = Convert.ToDecimal(lector["Precio"]); publi.Estado_Publicacion = Interfaz.getDescripcion(Convert.ToInt32(lector["Cod_EstadoPublicacion"]), "estado" ); publi.Tipo_Publicacion = Interfaz.getDescripcion(Convert.ToInt32(lector["Cod_TipoPublicacion"]), "tipoPublicacion"); publi.Permiso_Preguntas = Convert.ToBoolean(lector["Permisos_Preguntas"]); publi.Stock_Inicial = Convert.ToInt32(lector["Stock_Inicial"]); publicaciones.Add(publi); } } BDSQL.cerrarConexion(); return publicaciones; }
public static int obtenerCodPublicacion(Publicacion unaPubli, int visibilidad, int estado, int tipoPubli) { List<SqlParameter> listaParametros = new List<SqlParameter>(); BDSQL.agregarParametro(listaParametros, "@Cod_Visibilidad", visibilidad); BDSQL.agregarParametro(listaParametros, "@ID_Vendedor", unaPubli.ID_Vendedor); BDSQL.agregarParametro(listaParametros, "@Descripcion", unaPubli.Descripcion); BDSQL.agregarParametro(listaParametros, "@Stock", unaPubli.Stock); BDSQL.agregarParametro(listaParametros, "@Fecha_Vto", unaPubli.Fecha_Vto); BDSQL.agregarParametro(listaParametros, "@Fecha_Inic", unaPubli.Fecha_Inicio); BDSQL.agregarParametro(listaParametros, "@Precio", unaPubli.Precio); BDSQL.agregarParametro(listaParametros, "@Estado_Publicacion", estado); BDSQL.agregarParametro(listaParametros, "@Tipo_Publicacion", tipoPubli); BDSQL.agregarParametro(listaParametros, "@Permiso_Preguntas", unaPubli.Permiso_Preguntas); BDSQL.agregarParametro(listaParametros, "@Stock_Inicial", unaPubli.Stock_Inicial); int codPubli=0; SqlDataReader lector = BDSQL.ejecutarReader("SELECT * FROM MERCADONEGRO.Publicaciones " + "WHERE Cod_visibilidad=@Cod_visibilidad AND " + "ID_Vendedor=@ID_Vendedor AND Descripcion=@Descripcion AND " + "Stock=@Stock AND Fecha_Vencimiento=@Fecha_Vto AND " + "Fecha_Inicial=@Fecha_Inic AND Precio=@Precio AND " + "Cod_EstadoPublicacion=@Estado_Publicacion AND " + "Cod_TipoPublicacion=@Tipo_Publicacion AND " + "Permisos_Preguntas=@Permiso_Preguntas AND Stock_Inicial=@Stock_Inicial", listaParametros, BDSQL.iniciarConexion()); if (lector.HasRows) { while (lector.Read()) { codPubli = (int)(decimal)lector["Cod_Publicacion"]; } } BDSQL.cerrarConexion(); return codPubli; }
public static List<Publicacion> filtrarPublicaciones(Publicacion unaPublicacion, string visibilidad, int indexEstado, int indexTipo, bool fechaFinNula, bool fechaInicNula, bool esAdmin) { List<Publicacion> publicaciones = new List<Publicacion>(); List<SqlParameter> listaParametros = new List<SqlParameter>(); //Checkeo y asignacion de parametros if (unaPublicacion.Cod_Publicacion == -1){ listaParametros.Add(new SqlParameter("@codPubli", DBNull.Value)); } else{ listaParametros.Add(new SqlParameter("@codPubli", unaPublicacion.Cod_Publicacion)); } if (visibilidad == "") { listaParametros.Add(new SqlParameter("@codVisib", DBNull.Value)); } else { int idVisibilidad = Visibilidad.obtenerIDVisibilidad(visibilidad); listaParametros.Add(new SqlParameter("@codVisib", idVisibilidad)); } listaParametros.Add(new SqlParameter("@idUser", unaPublicacion.ID_Vendedor)); listaParametros.Add(new SqlParameter("@descrip", unaPublicacion.Descripcion)); if (unaPublicacion.Stock == -1){ listaParametros.Add(new SqlParameter("@stock", DBNull.Value)); } else{ listaParametros.Add(new SqlParameter("@stock",unaPublicacion.Stock)); } if(fechaFinNula == true) { listaParametros.Add(new SqlParameter("@fechaVto", DBNull.Value)); } else{ listaParametros.Add(new SqlParameter("@fechaVto",unaPublicacion.Fecha_Vto)); } if (fechaInicNula == true) { listaParametros.Add(new SqlParameter("@fechaInic", DBNull.Value)); } else{ listaParametros.Add(new SqlParameter("@fechaInic", unaPublicacion.Fecha_Inicio)); } if (unaPublicacion.Precio == -1){ listaParametros.Add(new SqlParameter("@precio", DBNull.Value)); } else{ listaParametros.Add(new SqlParameter("@precio",unaPublicacion.Precio)); } if (indexEstado == -1) { listaParametros.Add(new SqlParameter("@estado", DBNull.Value)); } else { listaParametros.Add(new SqlParameter("@estado", indexEstado)); } if (indexTipo == -1) { listaParametros.Add(new SqlParameter("@tipo", DBNull.Value)); } else { listaParametros.Add(new SqlParameter("@tipo", indexTipo)); } listaParametros.Add(new SqlParameter("@permiso", unaPublicacion.Permiso_Preguntas)); //Dependiendo si el usuario logueado es o no admin, filtra todas las publicaciones o las del usuario SqlDataReader lector; if (esAdmin == false) { lector = BDSQL.ejecutarReader("SELECT * FROM MERCADONEGRO.Publicaciones WHERE (ID_Vendedor=@idUser) AND " + "((@codVisib is NULL) OR (Cod_Visibilidad = @codVisib)) AND " + "((@codPubli is NULL) OR (Cod_Publicacion = @codPubli)) AND " + "((@descrip is NULL) OR (Descripcion LIKE '%' + @descrip + '%') AND " + "((@stock is NULL) OR (Stock = @stock))) AND " + "((@fechaVto is NULL) OR (Fecha_Vencimiento = @fechaVto)) AND " + "((@fechaInic is NULL) OR (Fecha_Inicial = @fechaInic)) AND " + "((@precio is NULL) OR (Precio = @precio)) AND " + "((@estado is NULL) OR (Cod_EstadoPublicacion = @estado)) AND " + "((@tipo is NULL) OR (Cod_TipoPublicacion = @tipo))", listaParametros, BDSQL.iniciarConexion()); } else { lector = BDSQL.ejecutarReader("SELECT * FROM MERCADONEGRO.Publicaciones " + "WHERE ((@codVisib is NULL) OR (Cod_Visibilidad = @codVisib)) AND " + "((@codPubli is NULL) OR (Cod_Publicacion = @codPubli)) AND " + "((@descrip is NULL) OR (Descripcion LIKE '%' + @descrip + '%') AND " + "((@stock is NULL) OR (Stock = @stock))) AND " + "((@fechaVto is NULL) OR (Fecha_Vencimiento = @fechaVto)) AND " + "((@fechaInic is NULL) OR (Fecha_Inicial = @fechaInic)) AND " + "((@precio is NULL) OR (Precio = @precio)) AND " + "((@estado is NULL) OR (Cod_EstadoPublicacion = @estado)) AND " + "((@tipo is NULL) OR (Cod_TipoPublicacion = @tipo))", listaParametros, BDSQL.iniciarConexion()); } if (lector.HasRows) { while (lector.Read()) { //Se obtienen las descripciones a partir de los codigos de la BD int cod_visibilidad = Convert.ToInt32(lector["Cod_Visibilidad"]); string desc_visibilidad = Interfaz.getDescripcion(cod_visibilidad, "visibilidad"); int cod_estado = Convert.ToInt32(lector["Cod_EstadoPublicacion"]); string desc_estado = Interfaz.getDescripcion(cod_estado, "estado"); int cod_tipo = Convert.ToInt32(lector["Cod_TipoPublicacion"]); string desc_tipo = Interfaz.getDescripcion(cod_tipo, "tipoPublicacion"); //Se obtiene la publicacion de la BD y se agrega a la lista de Publicaciones Publicacion unaPubli = new Publicacion( (int)(decimal)lector["Cod_Publicacion"], desc_visibilidad, (int)(decimal)lector["ID_Vendedor"], (string)lector["Descripcion"], (int)(decimal)lector["Stock"], (DateTime)lector["Fecha_Vencimiento"], (DateTime)lector["Fecha_Inicial"], (decimal)lector["Precio"], desc_estado, desc_tipo, (bool)lector["Permisos_Preguntas"], (int)(decimal)lector["Stock_Inicial"]); publicaciones.Add(unaPubli); } } BDSQL.cerrarConexion(); return publicaciones; }
public static void eliminarPublicacion(Publicacion unaPubli) { List<SqlParameter> listaParametros = new List<SqlParameter>(); listaParametros.Add(new SqlParameter("@idUser", unaPubli.ID_Vendedor)); listaParametros.Add(new SqlParameter("@Cod_Publi", unaPubli.Cod_Publicacion)); int resultado = BDSQL.ejecutarQuery("DELETE FROM MERCADONEGRO.Publicaciones " + "WHERE ID_Vendedor=@idUser AND Cod_Publicacion=@Cod_Publi", listaParametros, BDSQL.iniciarConexion()); if (resultado == -1) MessageBox.Show("Falló al eliminar Publicacion", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); BDSQL.cerrarConexion(); }