Exemple #1
0
 /**
  *	Retorna los metadatos de un componente, tal cual existen en las tablas
  *	del mismo. Este metodo es utilizado por el exportador de componentes
  *	El parametro DB tiene como objetivo brindar este servicio a la consola 
  */
 function get_metadatos_simples($componente, $tipo = null, $db = null)
 {
     $metadatos = array();
     if (!isset($tipo)) {
         $tipo = self::get_tipo($componente);
     }
     if (!isset($db)) {
         //Estoy entrando por el nucleo
         $db = toba::instancia()->get_db();
     }
     $clase_def = $tipo . '_def';
     $estructura = call_user_func(array($clase_def, 'get_estructura'));
     if (isset($this->cache_metadatos_simples)) {
         // Con CACHE!
         //Saco el componente del CACHE
         foreach ($estructura as $seccion) {
             $tabla = $seccion['tabla'];
             $id = $componente['componente'];
             $datos = $this->cache_metadatos_simples->get_datos_tabla($tabla, $id);
             if (count($datos) > 1) {
                 //SI los registros de la tabla son mas de 1, ordeno.
                 $definicion = toba_db_tablas_componente::$tabla();
                 $columnas_orden = array_map('trim', explode(',', $definicion['dump_order_by']));
                 $datos = rs_ordenar_por_columnas($datos, $columnas_orden);
             }
             $metadatos[$tabla] = $datos;
         }
     } else {
         // Sin CACHE!
         foreach ($estructura as $seccion) {
             $tabla = $seccion['tabla'];
             $id = $db->quote($componente['componente']);
             $proyecto = $db->quote($componente['proyecto']);
             $definicion = toba_db_tablas_componente::$tabla();
             //Genero el SQL
             $sql = 'SELECT ' . implode(', ', $definicion['columnas']) . " FROM {$tabla} " . " WHERE {$definicion['dump_clave_proyecto']} = {$proyecto} " . " AND {$definicion['dump_clave_componente']} = {$id} " . " ORDER BY {$definicion['dump_order_by']} ;\n";
             $metadatos[$tabla] = $db->consultar($sql);
         }
     }
     return $metadatos;
 }
 /**
  * Ordena el conjunto de datos recibido segun lo especificado en $this->_info_orden_col
  * @param recordset $datos_orig		Conjunto de datos a ordenar
  * @return recordset $datos_destino Conjunto de datos ordenados
  * @ignore
  */
 function ordenar_datos_x_columnas($datos_orig)
 {
     if (!empty($this->_info_orden_col) && !empty($datos_orig)) {
         $columnas = array_keys($this->_info_orden_col);
         $datos_destino = rs_ordenar_por_columnas($datos_orig, $columnas, $this->_info_orden_col);
     } else {
         $datos_destino = $datos_orig;
     }
     return $datos_destino;
 }
 private function exportar_tablas_global($metodo_lista_tablas, $path, $texto)
 {
     $contenido = "";
     foreach (toba_db_tablas_instancia::$metodo_lista_tablas() as $tabla) {
         $definicion = toba_db_tablas_instancia::$tabla();
         //Genero el SQL
         $sql = 'SELECT ' . implode(', ', $definicion['columnas']) . " FROM {$tabla} " . " ORDER BY {$definicion['dump_order_by']} ;\n";
         //$this->manejador_interface->mensaje( $sql );
         $datos = $this->get_db()->consultar($sql);
         toba_logger::instancia()->debug("Tabla {$texto}  --  {$tabla} (" . count($datos) . ' reg.)');
         if (count($datos) > 1) {
             //SI los registros de la tabla son mas de 1, ordeno.
             $columnas_orden = array_map('trim', explode(',', $definicion['dump_order_by']));
             $datos = rs_ordenar_por_columnas($datos, $columnas_orden);
         }
         for ($a = 0; $a < count($datos); $a++) {
             if ($tabla != 'apex_checksum_proyectos') {
                 $contenido .= sql_array_a_insert($tabla, $datos[$a], $this->get_db()) . "\n";
             } else {
                 $contenido .= sql_array_a_insert_condicional($tabla, $datos[$a], $this->get_db()) . "\n";
             }
         }
         $this->manejador_interface->progreso_avanzar();
     }
     if (trim($contenido) != '') {
         $this->guardar_archivo($path, $contenido);
     }
 }
 private function get_contenido_tabla_datos($tabla, $where_extra = null)
 {
     $definicion = toba_db_tablas_proyecto::$tabla();
     //Genero el SQL
     if (isset($definicion['dump_where']) && trim($definicion['dump_where']) != '') {
         $w = stripslashes($definicion['dump_where']);
         $where = str_replace("%%", $this->get_id(), $w);
     } else {
         $where = " ( proyecto = '" . $this->get_id() . "')";
     }
     if (isset($where_extra)) {
         $where = $where . ' AND (' . $where_extra . ')';
     }
     $sql = 'SELECT ' . implode(', ', $definicion['columnas']) . " FROM {$tabla} " . " WHERE {$where} " . " ORDER BY {$definicion['dump_order_by']} ;\n";
     $datos = $this->db->consultar($sql);
     $regs = count($datos);
     if ($regs > 1) {
         $columnas_orden = array_map('trim', explode(',', $definicion['dump_order_by']));
         $datos = rs_ordenar_por_columnas($datos, $columnas_orden);
     }
     toba_logger::instancia()->debug("TABLA  {$tabla}  ({$regs} reg.)");
     return $datos;
 }
Exemple #5
0
 private function exportar_tablas_nucleo_multiproyecto(toba_modelo_instancia $instancia)
 {
     $this->manejador_interface->titulo("Tablas NUCLEO - PROYECTO");
     foreach (toba_db_tablas_nucleo::get_lista_nucleo_multiproyecto() as $tabla) {
         $definicion = toba_db_tablas_nucleo::$tabla();
         //Genero el SQL
         if (isset($definicion['dump_where']) && trim($definicion['dump_where']) != '') {
             $w = stripslashes($definicion['dump_where']);
             $where = str_replace("%%", 'toba', $w);
         } else {
             $where = " ( proyecto = 'toba')";
         }
         $sql = 'SELECT ' . implode(', ', $definicion['columnas']) . " FROM {$tabla} " . " WHERE {$where} " . " ORDER BY {$definicion['dump_order_by']} ;\n";
         //$this->manejador_interface->mensaje( $sql );
         $contenido = "";
         $datos = $instancia->get_db()->consultar($sql);
         $regs = count($datos);
         if ($regs > 1) {
             $columnas_orden = array_map('trim', explode(',', $definicion['dump_order_by']));
             $datos = rs_ordenar_por_columnas($datos, $columnas_orden);
         }
         $this->manejador_interface->mensaje("TABLA  {$tabla}  --  {$regs}");
         for ($a = 0; $a < $regs; $a++) {
             $contenido .= sql_array_a_insert($tabla, $datos[$a], $instancia->get_db()) . "\n";
         }
         if (trim($contenido) != '') {
             $this->guardar_tabla_archivo($tabla, $contenido);
         }
     }
 }
Exemple #6
0
 function recuperar_datos_compilados_grupo($prefijo_clase, $grupos, $metodo, $reindexar = true, $orden = null)
 {
     $temp = array();
     foreach ($grupos as $grupo) {
         $clase = $prefijo_clase . $grupo;
         $temp = array_merge($temp, call_user_func(array($clase, $metodo)));
     }
     if ($reindexar) {
         $temp = array_values($temp);
     }
     if (isset($orden)) {
         $temp = rs_ordenar_por_columnas($temp, $orden);
     }
     return $temp;
 }