]> git.llucax.com Git - mecon/yatta.git/blobdiff - lib/YATTA/ProcesoDB.php
Modificacion para que se haga mas ejecute mas rapido el script.
[mecon/yatta.git] / lib / YATTA / ProcesoDB.php
index 3540c3f5eb85baeb371a4d47d2b9aa6180d873e3..734891616df5394074dfdbbdf55097ed266ca3b0 100644 (file)
@@ -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;
     }
     
     /**
@@ -501,6 +477,9 @@ class YATTA_ProcesoDB extends MECON_DBO {
                         'prioridad'     => $this->prioridad,
                         'scheduling'    => $this->scheduling,
                         'notificar'     => $this->notificar,
+                        'resultado'     => $this->resultado,
+                        'activo'        => $this->activo,
+                        'parametros'    => $this->parametros,
                 );
     }
 }