X-Git-Url: https://git.llucax.com/mecon/yatta.git/blobdiff_plain/8d4c0f0f27f064fae5f7b9f3baca5efe1b079725..b6a6a2a30f3d83d558a55fcf809b6098a4b73566:/lib/YATTA/ProcesoDB.php diff --git a/lib/YATTA/ProcesoDB.php b/lib/YATTA/ProcesoDB.php index 5e0138b..7348916 100644 --- a/lib/YATTA/ProcesoDB.php +++ b/lib/YATTA/ProcesoDB.php @@ -108,6 +108,7 @@ class YATTA_ProcesoDB extends MECON_DBO { * 2 = Finalizado * 3 = Error * 4 = Abortado + * 5 = Abortar * * @var int $status * @access public @@ -187,6 +188,22 @@ class YATTA_ProcesoDB extends MECON_DBO { * @access public */ var $icono = null; + + /** + * Indica si el proceso esta activo (No fue borrado por el usuario). + * + * @var int $activo + * @access public + */ + var $activo = null; + + /** + * Parametros del proceso. Serializado. + * + * @var string $parametros + * @access public + */ + var $parametros = null; /** * Carga el objeto con los datos que se pasan por parametro. @@ -227,6 +244,8 @@ class YATTA_ProcesoDB extends MECON_DBO { $this->archivo = $res['archivo']; $this->nota = $res['nota']; $this->icono = $res['icono']; + $this->activo = $res['activo']; + $this->parametros = $res['parametros']; return true; } return false; @@ -242,7 +261,25 @@ class YATTA_ProcesoDB extends MECON_DBO { */ function borrar($db = null) { - trigger_error('Not implemented!', E_USER_WARNING); + if (!is_null($this->id)) { + $res = $this->buscar($db); + if (DB::isError($res)) { + return $res; + } + $this->cargar($res); + + if (is_null($this->archivo) || is_null($this->resultado)) { + return $db->query('DELETE FROM yatta.procesos WHERE id = '. + $this->id); + } + else { + return $db->query ('UPDATE yatta.procesos SET activo = 0'. + ' WHERE id = '. $this->id); + } + } + else { + return new PEAR_Error('Debe definirse el id del proceso a borrar.'); + } } /** @@ -321,6 +358,12 @@ class YATTA_ProcesoDB extends MECON_DBO { if (!is_null($this->nota)) { $where[] = 'p.nota LIKE '. $db->quote("%$this->nota%"); } + if (!is_null($this->activo)) { + $where[] = 'p.activo = '. $this->activo; + } + if (!is_null($this->parametros)) { + $where[] = 'p.parametros LIKE '. $db->quote("%$this->parametros%"); + } if ($where) { $where = 'WHERE p.owner = '. $db->quote("$this->owner"). 'AND p.id_sistema = s.id_sistema AND ('. join ("$operador @@ -352,13 +395,14 @@ class YATTA_ProcesoDB extends MECON_DBO { p.destinos AS destinos, p.prioridad AS prioridad, p.scheduling AS scheduling, p.notificar AS notificar, p.resultado AS resultado, p.nota AS nota, p.archivo AS archivo, ". - "IF (p.status = 0, 'El proceso esta en cola. Aun no se ejecuto.". + "p.parametros AS parametros, ". + "IF (p.status = 0, 'El proceso está en cola. Aún no se ejecutó.". "', ". - "IF(p.status = 1, 'El proceso se esta ejecutando en este momento.". + "IF(p.status = 1, 'El proceso se está ejecutando en este momento.". "',". "IF(p.status = 2, 'El proceso ha finalizado. ". "',". - "IF(p.status = 3, 'Se produjo un error durante la ejecucion". + "IF(p.status = 3, 'Se produjo un error durante la ejecución". " del proceso.". "',". "'El proceso fue detenido por alguna persona (el responsable o". @@ -367,7 +411,7 @@ class YATTA_ProcesoDB extends MECON_DBO { ")". ")". ")". - ") AS icono + ") AS icono, p.activo AS activo FROM yatta.procesos AS p, samurai.sistema AS s $where $orden"); @@ -384,78 +428,9 @@ class YATTA_ProcesoDB extends MECON_DBO { */ function guardar($db = null, $nuevo = true) { -/* - //@TODO PASAR ESTO A UNA CLASE SERVIDOR - //Busco el servidor - $res = $db->query('SELECT id, escala * procesos AS ponderacion - FROM yatta.servidores - ORDER BY ponderacion, escala'); - $res = $res->fetchRow(DB_FETCHMODE_ASSOC); - // Si hay error lo devuelve. - if (DB::isError($res)) { - return $res; - } - $this->server = $res['id']; - //Asigno la fecha - if (@is_null($this->fecha)) { - $this->fecha = date ('Y-m-d'); - } - - if ($nuevo) { - $datos = array ( - 'fecha' => $this->fecha, - 'script' => $this->script, - 'id_sistema' => $this->id_sistema, - 'descripcion' => $this->descripcion, - 'pid' => $this->pid, - 'server' => $this->server, - 'status' => $this->status, - 'owner' => $this->owner, - 'destinos' => $this->destinos, - 'prioridad' => $this->prioridad, - 'scheduling' => $this->scheduling, - 'notificar' => $this->notificar, - 'resultado' => $this->resultado, - 'archivo' => $this->archivo, - 'nota' => $this->nota - ); - - $res = $db->autoExecute('yatta.procesos', $datos, - DB_AUTOQUERY_INSERT); - } - else { - $datos = array ( - 'fecha' => $this->fecha, - 'script' => $this->script, - 'id_sistema' => $this->id_sistema, - 'descripcion' => $this->descripcion, - 'pid' => $this->pid, - 'server' => $this->server, - 'status' => $this->status, - 'owner' => $this->owner, - 'destinos' => $this->destinos, - 'prioridad' => $this->prioridad, - 'scheduling' => $this->scheduling, - 'notificar' => $this->notificar, - 'resultado' => $this->resultado, - 'archivo' => $this->archivo, - 'nota' => $this->nota - ); - - $res = $db->autoExecute('yatta.procesos', $datos, - DB_AUTOQUERY_UPDATE, 'id = '.$this->id); - - } - - if (DB::isError($res)) { - return $res; - } - - return $db->query(' - UPDATE yatta.servidores - SET procesos = procesos + 1 - WHERE id = '. $this->server); -*/ + return $db->query ('UPDATE yatta.procesos SET nota = \''.$this->nota. + '\', status = '.$this->status. + ' WHERE id = '. $this->id); } /** @@ -483,6 +458,7 @@ class YATTA_ProcesoDB extends MECON_DBO { $this->archivo = null; $this->nota = null; $this->icono = null; + $this->activo = null; } /** @@ -502,6 +478,8 @@ class YATTA_ProcesoDB extends MECON_DBO { 'scheduling' => $this->scheduling, 'notificar' => $this->notificar, 'resultado' => $this->resultado, + 'activo' => $this->activo, + 'parametros' => $this->parametros, ); } }