X-Git-Url: https://git.llucax.com/mecon/yatta.git/blobdiff_plain/8d84b12d48c2e4c74c2c2c45aef0dff7c8cd14bf..04fbfb4dc44bc6be937345880455d63478f1e62d:/lib/YATTA/Proceso.php diff --git a/lib/YATTA/Proceso.php b/lib/YATTA/Proceso.php index 0f7c963..2c1e2fe 100644 --- a/lib/YATTA/Proceso.php +++ b/lib/YATTA/Proceso.php @@ -105,10 +105,9 @@ class YATTA_Proceso extends MECON_DBO { * Estado del proceso. * 0 = En Espera * 1 = Procesando - * 2 = Finalizado sin copiar el resultado al tacho - * 3 = Finalizado - * 4 = Error - * 5 = Abortado + * 2 = Finalizado + * 3 = Error + * 4 = Abortado * * @var int $status * @access public @@ -164,6 +163,14 @@ class YATTA_Proceso extends MECON_DBO { */ var $resultado = null; + /** + * Nombre del archivo en el tacho + * + * @var string $archivo + * @access public + */ + var $archivo = null; + /** * Nota explicativa sobre el error producido o el motivo por el cual se * aborto el proceso. @@ -172,6 +179,14 @@ class YATTA_Proceso extends MECON_DBO { * @access public */ var $nota = null; + + /** + * Descripcion del estado. + * + * @var string $icono + * @access public + */ + var $icono = null; /** * Carga el objeto con los datos que se pasan por parametro. @@ -185,6 +200,7 @@ class YATTA_Proceso extends MECON_DBO { { // Si es un resultado, obtengo los elemento. if (is_a($db, 'db_result')) { + $this->predefinirAtributos(); $res = $db->fetchRow(DB_FETCHMODE_ASSOC); // Si hay error lo devuelve. if (DB::isError($res)) { @@ -193,27 +209,29 @@ class YATTA_Proceso extends MECON_DBO { elseif (!$res) { return false; } + + $this->id = $res['id']; + $fecha =& new Date ($res['fecha'].' 00:00:00'); + $this->fecha = $fecha; + $this->script = $res['script']; + $this->id_sistema = $res['id_sistema']; + $this->nombre_sistema = $res['nombre_sistema']; + $this->descripcion = $res['descripcion']; + $this->pid = $res['pid']; + $this->server = $res['server']; + $this->status = $res['status']; + $this->owner = $res['owner']; + $this->destinos = split(',', $res['destinos']); + $this->prioridad = $res['prioridad']; + $this->scheduling = $res['scheduling']; + $this->notificar = $res['notificar']; + $this->resultado = $res['resultado']; + $this->archivo = $res['archivo']; + $this->nota = $res['nota']; + $this->icono = $res['icono']; + return true; } - - $this->id = $res['id']; - $fecha =& new Date ($res['fecha'].' 00:00:00'); - $this->fecha = $fecha; - $this->script = $res['script']; - $this->id_sistema = $res['id_sistema']; - $this->nombre_sistema = $res['nombre_sistema']; - $this->descripcion = $res['descripcion']; - $this->pid = $res['pid']; - $this->server = $res['server']; - $this->status = $res['status']; - $this->owner = $res['owner']; - $this->destinos = split(',', $res['destinos']); - $this->prioridad = $res['prioridad']; - $this->scheduling = $res['scheduling']; - $this->notificar = $res['notificar']; - $this->resultado = $res['resultado']; - $this->nota = $res['nota']; - - return true; + return false; } /** @@ -242,6 +260,9 @@ class YATTA_Proceso extends MECON_DBO { function buscar($db = null, $operador = MECON_DBO_OR, $orden = null) { // Armo el WHERE. + if (is_null($this->owner)) { + return new PEAR_Error ('Debe definirse el Owner del proceso.'); + } $where = array(); if (!is_null($this->id)) { $where[] = 'p.id = '.$this->id; @@ -257,16 +278,16 @@ class YATTA_Proceso extends MECON_DBO { $where[] = 'p.fecha = '. $db->quote("$fecha"); } if (!is_null($this->script)) { - $where[] = 'p.script LIKE'. $db->quote("%$this->script%"); + $where[] = 'p.script LIKE '. $db->quote("%$this->script%"); } if (!is_null($this->id_sistema)) { $where[] = 'p.id_sistema = '. $this->id_sistema; } if (!is_null($this->nombre_sistema)) { - $where[] = 's.nombre_sistema LIKE'. $db->quote("%$this->nombre_sistema%"); + $where[] = 's.nombre_sistema LIKE '. $db->quote("%$this->nombre_sistema%"); } if (!is_null($this->descripcion)) { - $where[] = 'p.descripcion LIKE'. $db->quote("%$this->descripcion%"); + $where[] = 'p.descripcion LIKE '. $db->quote("%$this->descripcion%"); } if (!is_null($this->pid)) { $where[] = 'p.pid = '.$this->pid; @@ -277,40 +298,39 @@ class YATTA_Proceso extends MECON_DBO { if (!is_null($this->status)) { $where[] = 'p.status = '.$this->status; } - if (!is_null($this->owner)) { - $where[] = 'p.owner LIKE'. $db->quote("%$this->owner%"); - } if (!is_null($this->destinos)) { if (is_array($this->destinos)) { foreach ($this->destinos as $destino) { - $where[] = 'p.destinos LIKE'. $db->quote("%$destino"); + $where[] = 'p.destinos LIKE '. $db->quote("%$destino"); } } else { - $where[] = 'p.destinos LIKE'. $db->quote("%$this->destinos%"); + $where[] = 'p.destinos LIKE '. $db->quote("%$this->destinos%"); } } if (!is_null($this->prioridad)) { $where[] = 'p.prioridad = '.$this->prioridad; } if (!is_null($this->scheduling)) { - $where[] = 'p.scheduling LIKE'. $db->quote("%$this->scheduling%"); + $where[] = 'p.scheduling LIKE '. $db->quote("%$this->scheduling%"); } if (!is_null($this->notificar)) { $where[] = 'p.notificar ='. $this->notificar; } if (!is_null($this->resultado)) { - $where[] = 'p.resultado LIKE'. $db->quote("%$this->resultado%"); + $where[] = 'p.resultado LIKE '. $db->quote("%$this->resultado%"); } if (!is_null($this->nota)) { - $where[] = 'p.nota LIKE'. $db->quote("%$this->nota%"); + $where[] = 'p.nota LIKE '. $db->quote("%$this->nota%"); } if ($where) { - $where = 'WHERE p.id_sistema = s.id_sistema AND ('. join ("$operador + $where = 'WHERE p.owner = '. $db->quote("$this->owner"). + 'AND p.id_sistema = s.id_sistema AND ('. join ("$operador ", $where).')'; } else { - $where = ''; + $where = 'WHERE p.owner = '. $db->quote("$this->owner"). + 'AND p.id_sistema = s.id_sistema'; } // Armo el ORDER BY. if (is_string($orden)) @@ -325,27 +345,62 @@ class YATTA_Proceso extends MECON_DBO { $orden = ''; } - return $db->query("SELECT p.id AS id, p.fecha AS fecha, p.script AS + return $db->query("SELECT p.id AS id, + DATE_FORMAT(p.fecha, '%d-%m-%Y') AS fecha, + p.script AS script, p.id_sistema AS id_sistema, s.nombre_sistema AS nombre_sistema, p.descripcion AS descripcion, p.pid AS pid, p.server AS server, p.status AS status, p.owner AS owner, p.destinos AS destinos, p.prioridad AS prioridad, p.scheduling AS scheduling, p.notificar AS notificar, p.resultado AS - resultado, p.nota AS nota + resultado, p.nota AS nota, p.archivo AS archivo, ". + "IF (p.status = 0, 'El proceso esta en cola. Aun no se ejecuto.". + "', ". + "IF(p.status = 1, 'El proceso se esta ejecutando en este momento.". + "',". + "IF(p.status = 2, 'El proceso ha finalizado. ". + "',". + "IF(p.status = 3, 'Se produjo un error durante la ejecucion". + " del proceso.". + "',". + "'El proceso fue detenido por alguna persona (el responsable o". + " el administrador).". + "'". + ")". + ")". + ")". + ") AS icono FROM yatta.procesos AS p, samurai.sistema AS s $where $orden"); } /** + * Guarda los datos en la base. + * * @param DB $db Conexion a la base de datos. * @param bool $nuevo Indica si se trata de un nuevo registro en la base. * * @return mixed * @access public */ - function guardar($db = null, $nuevo = false) + function guardar($db = null, $nuevo = true) { + //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, @@ -361,6 +416,7 @@ class YATTA_Proceso extends MECON_DBO { 'scheduling' => $this->scheduling, 'notificar' => $this->notificar, 'resultado' => $this->resultado, + 'archivo' => $this->archivo, 'nota' => $this->nota ); @@ -382,6 +438,7 @@ class YATTA_Proceso extends MECON_DBO { 'scheduling' => $this->scheduling, 'notificar' => $this->notificar, 'resultado' => $this->resultado, + 'archivo' => $this->archivo, 'nota' => $this->nota ); @@ -389,6 +446,15 @@ class YATTA_Proceso extends MECON_DBO { DB_AUTOQUERY_UPDATE, 'id = '.$this->id); } + + if (DB::isError($res)) { + return $res; + } + + $res = $db->query(' + UPDATE yatta.servidores + SET procesos = procesos + 1 + WHERE id = '. $this->server); return $res; } @@ -414,7 +480,9 @@ class YATTA_Proceso extends MECON_DBO { $this->scheduling = null; $this->notificar = null; $this->resultado = null; + $this->archivo = null; $this->nota = null; + $this->icono = null; } } ?> \ No newline at end of file