Пример #1
0
 /**
  *	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);
     }
 }
Пример #2
0
 /**
  * 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]);
         }
     }
 }
Пример #3
0
 /**
  * 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;
 }