function conf__pant_inicial() { $hay_datos = false; list($proyecto, $id_cuadro) = $this->dep('cuadro')->get_id(); if ($this->s__filtrar && !is_null($this->s__filtro['tablas'])) { $db = $this->get_db(); $auditoria = $db->get_manejador_auditoria(); if (is_null($auditoria)) { throw toba_error_db('No existe manejador de auditoria para este motor de bd'); } $clase = get_class($auditoria); $campos_propios = call_user_func(array($clase, 'get_campos_propios')); $schema = $db->get_schema(); if (!isset($schema)) { $schema = 'public'; } $auditoria->set_esquema_origen($schema); $schema_toba = toba::instancia()->get_schema_db(); if (isset($schema_toba)) { $auditoria->set_esquema_toba($schema_toba); } $auditoria->set_esquema_logs($this->get_esquema()); //--- Se recorre cada tabla buscada y se crea dinamicamente un cuadro foreach ($this->s__filtro['tablas'] as $tabla) { $datos = $auditoria->get_datos($tabla, $this->s__filtro); if (!empty($datos)) { $hay_datos = true; } $claves = $auditoria->get_campos_claves($tabla); $this->analizar_diferencias($datos, $claves, $campos_propios); $definicion = $this->get_db()->get_definicion_columnas($tabla, $this->get_esquema()); foreach ($definicion as $id => $campo) { $definicion[$id]['clave'] = $campo['nombre']; $definicion[$id]['titulo'] = ucwords(str_replace(array('_', '_'), ' ', $campo['nombre'])); $definicion[$id]['usar_vinculo'] = false; //Esto permite sacar el HTML para los estilos de campo modificado $definicion[$id]['permitir_html'] = '1'; /*$opciones = toba_catalogo_asistentes::get_campo_opciones_para_cuadro($campo['tipo']); $definicion[$id] = array_merge($definicion[$id], $opciones);*/ if (in_array($campo['nombre'], $campos_propios)) { unset($definicion[$id]); } } $this->agregar_dependencia('cuadro_' . $tabla, $proyecto, $id_cuadro); $cuadro = $this->dep('cuadro_' . $tabla); $cuadro->agregar_columnas($definicion); $cuadro->set_datos($datos); $cuadro->set_titulo($tabla . ' (' . count($datos) . ' Movimientos)'); //$cuadro->colapsar(); $this->pantalla()->agregar_dep('cuadro_' . $tabla); } if (!$hay_datos) { $this->pantalla()->set_descripcion('No se encontraron movimientos según el filtro definido'); } else { $this->dep('filtro')->colapsar(); } } }
function evt__form_auditoria__crear_auditoria() { $instalacion = toba_modelo_catalogo::instanciacion()->get_instalacion(); $instancia = toba_editor::get_id_instancia_activa(); $proyecto_cargado = toba_editor::get_proyecto_cargado(); $id_base = "{$instancia} {$proyecto_cargado} {$this->s__nombre_fuente}"; if (!$instalacion->existe_base_datos_definida($id_base)) { throw new toba_error('Debe definir los parámetros de conexión'); } $parametros = $instalacion->get_parametros_base($id_base); if (!isset($parametros['schema'])) { $schema = 'public'; } else { $schema = $parametros['schema']; } $schema_auditoria = $schema . '_auditoria'; //Creo el objeto para asignar los roles correctos a las tablas de auditoria $modelo_proyecto = toba_modelo_catalogo::instanciacion()->get_proyecto($instancia, $proyecto_cargado); $db = toba_editor::db_proyecto_cargado($this->s__nombre_fuente); //, $proyecto_cargado); try { $auditoria = $db->get_manejador_auditoria($schema, $schema_auditoria); if (is_null($auditoria)) { throw toba_error_db('No existe manejador de auditoria para este motor de bd'); } $auditoria->agregar_tablas(); ///Agrego todas las tablas if (!$auditoria->existe()) { $auditoria->crear(); } else { $auditoria->migrar(); } $modelo_proyecto->generar_roles_db(); } catch (toba_error $e) { throw $e; } toba::notificacion()->agregar('Esquema creado satisfactoriamente', 'info'); $this->dependencia('datos')->tabla('fuente')->set_columna_valor('tiene_auditoria', '1'); return true; }