* 2 = Finalizado
* 3 = Error
* 4 = Abortado
+ * 5 = Abortar
*
* @var int $status
* @access public
* @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.
$this->archivo = $res['archivo'];
$this->nota = $res['nota'];
$this->icono = $res['icono'];
+ $this->activo = $res['activo'];
+ $this->parametros = $res['parametros'];
return true;
}
return false;
*/
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.');
+ }
}
/**
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
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".
")".
")".
")".
- ") AS icono
+ ") AS icono, p.activo AS activo
FROM yatta.procesos AS p, samurai.sistema AS s
$where
$orden");
*/
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);
}
/**
$this->archivo = null;
$this->nota = null;
$this->icono = null;
+ $this->activo = null;
}
/**
'scheduling' => $this->scheduling,
'notificar' => $this->notificar,
'resultado' => $this->resultado,
+ 'activo' => $this->activo,
+ 'parametros' => $this->parametros,
);
}
}