]> git.llucax.com Git - mecon/yatta.git/blobdiff - lib/YATTA/ProcesoDB.php
BugFix.
[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
      * 2 = Finalizado
      * 3 = Error
      * 4 = Abortado
+     * 5 = Abortar
      *
      * @var    int $status
      * @access public
      *
      * @var    int $status
      * @access public
@@ -187,6 +188,22 @@ class YATTA_ProcesoDB extends MECON_DBO {
      * @access public
      */
     var $icono = null;
      * @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.
     
     /**
      * 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->archivo          = $res['archivo'];
             $this->nota             = $res['nota'];
             $this->icono            = $res['icono'];
+            $this->activo           = $res['activo'];
+            $this->parametros       = $res['parametros'];
             return true;
         }
         return false; 
             return true;
         }
         return false; 
@@ -242,7 +261,25 @@ class YATTA_ProcesoDB extends MECON_DBO {
      */
     function borrar($db = null)
     {
      */
     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->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
         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, ".
                 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 = 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".
                 " 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");
                 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)
     {
      */
     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->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,
                         'prioridad'     => $this->prioridad,
                         'scheduling'    => $this->scheduling,
                         'notificar'     => $this->notificar,
+                        'resultado'     => $this->resultado,
+                        'activo'        => $this->activo,
+                        'parametros'    => $this->parametros,
                 );
     }
 }
                 );
     }
 }