Example #1
0
 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();
         }
     }
 }
Example #2
0
 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;
 }