/** * Guarda el resultado de la generacion */ protected function guardar_log_elementos_generados() { $sql = "INSERT INTO apex_molde_operacion_log (proyecto, molde) VALUES ('{$this->id_molde_proyecto}','{$this->id_molde}')"; ejecutar_fuente($sql); $id_generacion = recuperar_secuencia('apex_molde_operacion_log_seq'); foreach ($this->log_elementos_creados as $elemento) { $sql = "INSERT INTO apex_molde_operacion_log_elementos (molde, generacion, tipo, proyecto, clave) VALUES ('{$this->id_molde}','{$id_generacion}','{$elemento['tipo']}','{$elemento['proyecto']}','{$elemento['clave']}')"; ejecutar_fuente($sql); } }
/** * Inserta un registro en la base y recupera su secuencia si la tiene * @param mixed $id_registro Clave interna del registro * @ignore */ protected function insertar_registro_db($id_registro) { $this->_insert_campos_default = array(); $this->ejecutar_sql_insert($id_registro); //Actualizo las secuencias if (count($this->_secuencias) > 0) { foreach ($this->_secuencias as $columna => $secuencia) { if ($this->es_seq_tabla_ext($columna)) { continue; } $secuencia = $this->agregar_schema($secuencia); $valor = recuperar_secuencia($secuencia, $this->_fuente); //El valor es necesario en el evt__post_insert!! $this->datos[$id_registro][$columna] = $valor; $this->registrar_recuperacion_valor_db($id_registro, $columna, $valor); } } //Actualizo los valores que tomaron los DEFAULT enviados if (!empty($this->_insert_campos_default)) { $id = array(); foreach ($this->_clave as $campo_clave) { $id[$campo_clave] = $this->datos[$id_registro][$campo_clave]; } $where = $this->generar_clausula_where_lineal($id, false); $sql = $this->get_sql_campos_default($where); $fila_base = toba::db($this->_fuente)->consultar_fila($sql); if ($fila_base === false) { throw new toba_error("Se esperaba encontrar un registro", $sql); } foreach ($this->_insert_campos_default as $campo) { $this->registrar_recuperacion_valor_db($id_registro, $campo, $fila_base[$campo]); } } }
/** * Arma la fk a partir del último registro de la tabla padre impactado en la base */ protected function armar_fk($id_registro) { $registro = $this->datos[$id_registro]; $rs = array(); foreach ($this->_fks as $fk) { $col = $this->_cols_por_tabla[$this->_tabla][$fk['columna']]; if ($col['secuencia'] != "" && !isset($registro[$col['columna']])) { // es secuencia y no tiene el valor seteado $nombre_secuencia = $this->agregar_schema($col['secuencia']); $valor = recuperar_secuencia($nombre_secuencia, $this->_fuente); } else { $valor = $registro[$col['columna']]; } $rs[$fk['columna_ext']] = $valor; } return $rs; }