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(); } }
/** * 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; } }
/** * 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; } }
function TearDown() { abortar_transaccion('instancia'); }
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(); } }
function TearDown() { abortar_transaccion(); }