private void actualizarJerarquia(Visibilidad visibilidad, string descripcionVieja) { List<SqlParameter> parametros = new List<SqlParameter>(); BDSQL.agregarParametro(parametros, "@jerarquia", visibilidad.jerarquia); BDSQL.agregarParametro(parametros, "@descripcionVieja", descripcionVieja); BDSQL.ExecStoredProcedureSinRet("MERCADONEGRO.EditarJerarquia", parametros); BDSQL.cerrarConexion(); }
private void editarVisibilidad(Visibilidad visibilidadNueva, Visibilidad visibilidadVieja) { List<SqlParameter> parametros = new List<SqlParameter>(); BDSQL.agregarParametro(parametros, "@descripcion", visibilidadNueva.Descripcion); BDSQL.agregarParametro(parametros, "@costoPublicacion", visibilidadNueva.Costo_Publicacion); BDSQL.agregarParametro(parametros, "@porcentajeVenta", visibilidadNueva.Porcentaje_Venta); BDSQL.agregarParametro(parametros, "@habilitada", visibilidadNueva.habilitada); //nombre viejo, para usarlo en el string String nombreViejo = visibilidadVieja.Descripcion; BDSQL.agregarParametro(parametros, "@descripcionVieja", nombreViejo); //Exec storedProcedure BDSQL.ExecStoredProcedureSinRet("MERCADONEGRO.EditarVisibilidad", parametros); BDSQL.cerrarConexion(); MessageBox.Show("¡Visibilidad Modificada!", "Exito", MessageBoxButtons.OK, MessageBoxIcon.Information); }
private void ConfirmarButton_Click(object sender, EventArgs e) { //si la visibilidad es nueva if (this.botonSeleccionado.Text == "Nueva") { bool chequeado = this.chequearCampos(); if (chequeado) { if (!BDSQL.existeString(nombreTextBox.Text, "MERCADONEGRO.VISIBILIDADES", "DESCRIPCION")) { //Datos de la form string nombre = this.nombreTextBox.Text; decimal costo = Convert.ToDecimal(this.costoTextBox.Text); decimal porcentajeVenta = Convert.ToDecimal(this.porcentajeTextBox.Text) / 100; int jerarquia = Convert.ToInt32(this.codigoComboBox.SelectedItem); int habilitada = 0; if (this.checkBox.Checked) habilitada = 1; List<SqlParameter> parametros = new List<SqlParameter>(); BDSQL.agregarParametro(parametros, "@descripcion", nombre); BDSQL.agregarParametro(parametros, "@costoPublicacion", costo); BDSQL.agregarParametro(parametros, "@porcentajeVenta", porcentajeVenta); BDSQL.agregarParametro(parametros, "@habilitada", habilitada); SqlParameter paramRet = new SqlParameter("@ret", System.Data.SqlDbType.Decimal); paramRet.Direction = System.Data.ParameterDirection.Output; parametros.Add(paramRet); int idInsertada = (int)BDSQL.ExecStoredProcedure("MERCADONEGRO.AgregarVisibilidad", parametros); BDSQL.cerrarConexion(); MessageBox.Show("¡Visibilidad Agregada!", "Exito", MessageBoxButtons.OK, MessageBoxIcon.Information); this.Close(); //Interfaz.diccionarioVisibilidades.Add(idInsertada, this.nombreTextBox.Text); } else MessageBox.Show("Ya existe una visibilidad con ese nombre.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } }//si se quiere modificar else if (this.botonSeleccionado.Text == "Modificar") { bool chequeado = this.chequearCampos(); if (chequeado) { //Datos de la form string nombre = this.nombreTextBox.Text; decimal costo = Convert.ToDecimal(this.costoTextBox.Text); decimal porcentajeVenta = Convert.ToDecimal(this.porcentajeTextBox.Text) / 100; int jerarquia = Convert.ToInt32(this.codigoComboBox.SelectedItem); bool habilitada = this.checkBox.Checked; Visibilidad visibilidadNueva = new Visibilidad(jerarquia, nombre, costo, porcentajeVenta, habilitada); //me fijo si tengo que updatear la jeraquia if (visibilidadNueva.hayQueCambiarLaJerarquia(visibilidadVieja)) { //Update unico de la jerarquia a la nueva visibilidad this.actualizarJerarquia(visibilidadNueva, visibilidadVieja.Descripcion); //updatear todas las demas jerarquias if (visibilidadNueva.jerarquia > this.visibilidadVieja.jerarquia) { int primerIndice = visibilidadVieja.jerarquia; int iteraciones = visibilidadNueva.jerarquia - this.visibilidadVieja.jerarquia; int i = 0; while (i < iteraciones) { Visibilidad visibilidadTemp = this.listaVisibilidadesBD.ElementAt(primerIndice+1); visibilidadTemp.jerarquia--; this.actualizarJerarquia(visibilidadTemp, visibilidadTemp.Descripcion); i++; primerIndice++; } } else if (visibilidadNueva.jerarquia < this.visibilidadVieja.jerarquia) { int ultimoIndice = visibilidadVieja.jerarquia; int iteraciones = this.visibilidadVieja.jerarquia - visibilidadNueva.jerarquia; int i = 0; while (i < iteraciones) { Visibilidad visibilidadTemp = this.listaVisibilidadesBD.ElementAt(ultimoIndice - 1); visibilidadTemp.jerarquia++; this.actualizarJerarquia(visibilidadTemp, visibilidadTemp.Descripcion); i++; ultimoIndice--; } } //updateando la nueva Visibilidad this.editarVisibilidad(visibilidadNueva, this.visibilidadVieja); this.Close(); } else { //updatear solo la visibilidad nueva this.editarVisibilidad(visibilidadNueva, this.visibilidadVieja); this.Close(); } //updateando diccionario visibilidades //Interfaz.actualizarDiccionarioVisibilidades(visibilidadNueva.Descripcion, this.visibilidadVieja.Descripcion); } } }
private void cargarForm(Visibilidad visibilidad) { this.nombreTextBox.Text = visibilidad.Descripcion; this.costoTextBox.Text = Convert.ToString(visibilidad.Costo_Publicacion); this.porcentajeTextBox.Text = Convert.ToString(visibilidad.Porcentaje_Venta); this.checkBox.Checked = visibilidad.habilitada; this.codigoComboBox.SelectedItem = visibilidad.jerarquia; this.porcentajeTextBox.MaxLength = 3; ; }
public bool hayQueCambiarLaJerarquia(Visibilidad visibilidadVieja) { if (this.jerarquia == visibilidadVieja.jerarquia) return false; else return true; }
public static List<Visibilidad> ObtenerVisibilidades() { List<Visibilidad> visibilidades = new List<Visibilidad>(); string commandText = "SELECT * FROM MERCADONEGRO.VISIBILIDADES WHERE HABILITADA = 1 ORDER BY JERARQUIA"; SqlDataReader lector = BDSQL.ejecutarReader(commandText, BDSQL.iniciarConexion()); if (lector.HasRows) { while (lector.Read()) { Visibilidad unaVisibilidad = new Visibilidad((int)(decimal)lector["Jerarquia"], (string)lector["Descripcion"], (decimal) lector["Costo_Publicacion"], Convert.ToInt32(((decimal) lector["Porcentaje_Venta"]) * 100), (bool) lector["Habilitada"]); visibilidades.Add(unaVisibilidad); } } BDSQL.cerrarConexion(); return visibilidades; }