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);

                }

            }
        }