/** * Dado un molde de un datos_tabla, si no existe el componente lo crea y agrega las filas. Si ya existe actualiza los campos */ function generar_datos_tabla($molde_dt, $tabla, $filas) { $dt_actual = toba_info_editores::get_dt_de_tabla_fuente($tabla, $this->get_fuente()); if (empty($dt_actual)) { $molde_dt->crear($tabla); if (isset($filas)) { foreach ($filas as $fila) { $col = $molde_dt->agregar_columna($fila['columna'], $fila['dt_tipo_dato']); if ($fila['dt_pk']) { $col->pk(); } if ($fila['dt_secuencia']) { $col->set_secuencia($fila['dt_secuencia']); } } } else { //-- Si no se pasan filas explicitas, se descubren solas $molde_dt->actualizar_campos(); } } else { $molde_dt->cargar($dt_actual['id']); $molde_dt->actualizar_campos(); } }
function generar() { //Aca tengo que generar los datos tabla y la relacion foreach ($this->tablas as $tabla => $molde_dt) { $molde_dt->generar(); $datos = $molde_dt->get_clave_componente_generado(); $this->datos->tabla('dependencias')->nueva_fila(array('identificador' => $tabla, 'objeto_proveedor' => $datos['clave'], 'proyecto' => $datos['proyecto'], 'parametros_a' => 1, 'parametros_b' => 1)); } //Alpha testing required.. $fuente = $this->asistente->get_fuente(); foreach ($this->relaciones as $tabla_padre => $tabla_hija) { $dt_padre = toba_info_editores::get_dt_de_tabla_fuente($tabla_padre, $fuente, $this->proyecto); $dt_hijo = toba_info_editores::get_dt_de_tabla_fuente($tabla_hija, $fuente, $this->proyecto); $this->datos->tabla('relaciones')->nueva_fila(array('identificador' => "{$tabla_padre} -> {$tabla_hija}", 'padre_id' => $tabla_padre, 'hijo_id' => $tabla_hija, 'padre_objeto' => $padre_obj['id'], 'hijo_objeto' => $hijo_obj['id'])); if (isset($this->columnas_relacionadas[$tabla_padre][$tabla_hija])) { foreach ($this->columnas_relacionadas[$tabla_padre][$tabla_hija] as $columnas) { $this->datos->tabla('columnas_relacion')->nueva_fila(array('padre_clave' => $columnas['columna_padre'], 'hijo_clave' => $columnas['columna_hija'])); } } } parent::generar(); }