コード例 #1
0
 function ejecutar($id_item, $retorno_opciones_generacion = null, $con_transaccion = true)
 {
     try {
         abrir_transaccion();
         foreach ($this->moldes as $molde) {
             $molde->generar();
         }
         $this->generar_archivos_consultas();
         $this->guardar_log_elementos_generados();
         cerrar_transaccion();
         toba::notificacion()->agregar('La generación se realizó exitosamente', 'info');
         return $this->log_elementos_creados;
     } catch (toba_error $e) {
         toba::logger()->error($e);
         toba::notificacion()->agregar("Fallo en la generación: " . $e->getMessage(), 'error');
         abortar_transaccion();
     }
 }
コード例 #2
0
ファイル: toba_ap_tabla_db.php プロジェクト: emma5021/toba
 /**
  * Sincroniza los cambios en los registros de esta tabla con la base de datos
  * Sólo se utiliza cuando la tabla no está involucrada en algun datos_relacion, sino 
  * la sincronización es guiada por ese objeto
  * @return integer Cantidad de registros modificados
  * @throws toba_error En case de error en la sincronizacion, se aborta la transaccion (si se esta utilizando)
  */
 function sincronizar($filas = array())
 {
     $this->log("Inicio SINCRONIZAR");
     try {
         if ($this->_utilizar_transaccion) {
             abrir_transaccion($this->_fuente);
         }
         $this->evt__pre_sincronizacion();
         $modificaciones = 0;
         $modificaciones += $this->sincronizar_eliminados($filas);
         $modificaciones += $this->sincronizar_insertados($filas);
         $modificaciones += $this->sincronizar_actualizados($filas);
         $this->evt__post_sincronizacion();
         if ($this->_utilizar_transaccion) {
             cerrar_transaccion($this->_fuente);
         }
         $this->log("Fin SINCRONIZAR: {$modificaciones}.");
         return $modificaciones;
     } catch (toba_error $e) {
         if ($this->_utilizar_transaccion) {
             toba::logger()->info("Abortando transacción en {$this->_fuente}", 'toba');
             abortar_transaccion($this->_fuente);
         }
         toba::logger()->debug("Relanzando excepción. " . $e, 'toba');
         throw $e;
     }
 }
コード例 #3
0
ファイル: toba_ap_relacion_db.php プロジェクト: emma5021/toba
 /**
  * Elimina cada elemento de las tabla de la relación y luego sincroniza con la base
  * Todo el proceso se ejecuta dentro de una transacción, si se definio así
  */
 function eliminar_todo()
 {
     $fuente = $this->objeto_relacion->get_fuente();
     try {
         if ($this->_utilizar_transaccion) {
             abrir_transaccion($fuente);
             if ($this->_retrazar_constraints) {
                 toba::db($fuente)->retrazar_constraints();
             }
         }
         $this->evt__pre_eliminacion();
         $this->eliminar_plan();
         $this->evt__post_eliminacion();
         if ($this->_utilizar_transaccion) {
             cerrar_transaccion($fuente);
         }
     } catch (toba_error $e) {
         if ($this->_utilizar_transaccion) {
             abortar_transaccion($fuente);
         }
         throw $e;
     }
 }
コード例 #4
0
ファイル: test_clonador_items.php プロジェクト: emma5021/toba
 function TearDown()
 {
     abortar_transaccion('instancia');
 }
コード例 #5
0
ファイル: toba_asistente.php プロジェクト: emma5021/toba
 function crear_item($nombre, $padre)
 {
     try {
         abrir_transaccion();
         $item = new toba_item_molde($this);
         $item->set_nombre($nombre);
         $item->set_carpeta_item($padre);
         $item->cargar_grupos_acceso_activos();
         $item->generar();
         $clave = $item->get_clave_componente_generado();
         cerrar_transaccion();
         return $clave;
     } catch (toba_error $e) {
         toba::logger()->error($e);
         toba::notificacion()->agregar("Fallo en la generación: " . $e->getMessage(), 'error');
         abortar_transaccion();
     }
 }
コード例 #6
0
 function TearDown()
 {
     abortar_transaccion();
 }