]> git.llucax.com Git - mecon/yatta.git/blobdiff - lib/YATTA/Controlador.php
Preparo todo para armar la rama estable.
[mecon/yatta.git] / lib / YATTA / Controlador.php
index e5e2bf1dd9c8bcd991b955dda456cae3ac33f9d9..ba1c2f08091768f8e11bf0ac0c98f5f14f827d4a 100644 (file)
@@ -28,7 +28,7 @@ require_once 'YATTA/Proceso.php';
 require_once 'YATTA/ProcesoDB.php';
 require_once 'YATTA/Servidor.php';
 
 require_once 'YATTA/ProcesoDB.php';
 require_once 'YATTA/Servidor.php';
 
-define ('PATH_TACHO', '/var/www/yatta/tacho/');
+define ('PATH_TACHO', '/var/www/sistemas/yatta/tacho/');
 
 /**
  * Clase para el manejo centralizado de toda la informacion de YATTA.
 
 /**
  * Clase para el manejo centralizado de toda la informacion de YATTA.
@@ -59,11 +59,12 @@ class YATTA_Controlador {
  
     /**
      * Agrega un proceso a la base de datos
  
     /**
      * Agrega un proceso a la base de datos
-     * Los datos a pasar son: 
+     * Recibe un array asociativo con:
      *  Obligatorios
      *   script     : Path completo para el require_once.
      *  Obligatorios
      *   script     : Path completo para el require_once.
-     *   id_sistema : Identificador del sistema al que pertenece .
-     *   descripcion: Es lo que permite al usuario identificar al proecso.
+     *   id_sistema : Identificador del sistema al que pertenece. (Es el id que
+     *                asigna SAMURAI)
+     *   descripcion: Es lo que permite al usuario identificar al proceso.
      *   owner      : Login@Organismo de la persona responsable del proceso.
      *
      *  Opcionales
      *   owner      : Login@Organismo de la persona responsable del proceso.
      *
      *  Opcionales
@@ -75,6 +76,7 @@ class YATTA_Controlador {
      *   resultado  : En caso que el proceso genere archivos resultado, se debe
      *                indicar aqui el nombre del archivo que deben visualizar
      *                los usuarios.
      *   resultado  : En caso que el proceso genere archivos resultado, se debe
      *                indicar aqui el nombre del archivo que deben visualizar
      *                los usuarios.
+     *   parametros : Parametros que hay que pasarle al metodo run del script.
      *
      * @param  DB $db Conexion a la base de datos.
      * @param  mixed $datos Datos necesarios del proceso.
      *
      * @param  DB $db Conexion a la base de datos.
      * @param  mixed $datos Datos necesarios del proceso.
@@ -98,6 +100,11 @@ class YATTA_Controlador {
         }
         $res = $this->_obtenerServidor($db);
 
         }
         $res = $this->_obtenerServidor($db);
 
+        //Serializo los parametros
+        if (@$datos['parametros']) {
+            $datos['parametros'] = serialize($datos['parametros']);
+        }
+
         if (DB::isError($res)) {
             return $res;
         }
         if (DB::isError($res)) {
             return $res;
         }
@@ -152,34 +159,37 @@ class YATTA_Controlador {
     function terminarProceso($db, $id_proceso, $id_server, $status, $nota =
             null, $archivo = null, $notificar = 0) {
 
     function terminarProceso($db, $id_proceso, $id_server, $status, $nota =
             null, $archivo = null, $notificar = 0) {
 
-        //Actualizo la base procesos
-        $sql = 'UPDATE yatta.procesos SET status = '. $status;
+        //NOTIFICO
+        if (@$notificar) {
+            $this->_emailUsuario ($db, $id_proceso, $status, $nota, $archivo);
+        }
+
+        //COPIO EL ARCHIVO
+        if (@$archivo) {
+            $arch = basename ($archivo);
+            rename ($archivo, PATH_TACHO.$arch);
+        }
+
+        //ACTUALIZO LA BASE PROCESOS
+        $sql = 'UPDATE yatta.procesos SET status = '. 
+            $db->quoteSmart($status);
         if (@$nota) {
         if (@$nota) {
-            $sql.= ', nota = '. $nota;
+            $sql.= ', nota = '. $db->quoteSmart($nota);
         }
         if (@$archivo) {
         }
         if (@$archivo) {
-            $sql.= ', archivo = '. $archivo;
+            $sql.= ', archivo = '. $db->quoteSmart(PATH_TACHO.$arch);
         }
         if (@$notificar) {
         }
         if (@$notificar) {
-            $sql.= ', notificar = '. $notificar;
+            $sql.= ', notificar = '. $db->quoteSmart($notificar);
         }
         }
-        $sql.= ' WHERE id = '. $id_proceso;
+        $sql.= ' WHERE id = '. $db->quoteSmart($id_proceso);
+        
         $res = $db->query($sql);
         if (DB::isError($res)) {
             return $res;
         }
 
         $res = $db->query($sql);
         if (DB::isError($res)) {
             return $res;
         }
 
-        //NOTIFICO
-        if (@$notificar) {
-            $this->_emailUsuario ($db, $id_proceso, $status, $nota, $archivo);
-        }
 
 
-        //COPIO EL ARCHIVO
-        if (@$archivo) {
-            $arch = basename ($archivo);
-            rename ($archivo, PATH_TACHO.$arch);
-        }
-        
         //Actualizo los servidores
         $SERVER =& new YATTA_Servidor;
         return $SERVER->quitarProceso($db, $id_server);
         //Actualizo los servidores
         $SERVER =& new YATTA_Servidor;
         return $SERVER->quitarProceso($db, $id_server);
@@ -195,7 +205,8 @@ class YATTA_Controlador {
      * @access public
      */
     function obtenerNuevoProceso($db, $id) {
      * @access public
      */
     function obtenerNuevoProceso($db, $id) {
-        $res = $db->query('SELECT p.id AS id, p.script AS script
+        $res = $db->query('SELECT p.id AS id, p.script AS script, p.parametros
+                AS parametros
                 FROM yatta.procesos AS p
                 WHERE p.server = '.$id.' AND status = 0 
                 ORDER BY p.prioridad, p.id');
                 FROM yatta.procesos AS p
                 WHERE p.server = '.$id.' AND status = 0 
                 ORDER BY p.prioridad, p.id');
@@ -244,18 +255,17 @@ class YATTA_Controlador {
         $res = $db->query(
                 "SELECT p.descripcion AS descripcion, p.owner AS owner, ".
                 "p.destinos AS destinos, p.resultado AS resultado, ".
         $res = $db->query(
                 "SELECT p.descripcion AS descripcion, p.owner AS owner, ".
                 "p.destinos AS destinos, p.resultado AS resultado, ".
-                "p.estado AS estado, p.nota AS nota ".
-                "FROM yatta.procesos AS p".
+                "p.status AS estado, p.nota AS nota ".
+                "FROM yatta.procesos AS p ".
                 "WHERE p.id = ". $id_proceso);
                 "WHERE p.id = ". $id_proceso);
+
         if (DB::isError($res)) {
             return $res;
         }
         $res = $res->fetchRow(DB_FETCHMODE_ASSOC);
 
         if (DB::isError($res)) {
             return $res;
         }
         $res = $res->fetchRow(DB_FETCHMODE_ASSOC);
 
-//@FIXME El email se lo envio al owner y a los destinos, o al owner solamente?
-        
         $dest = split (',', @$res['destinos']);
         $dest = split (',', @$res['destinos']);
-        $to = $owner.'.gov.ar';
+        $to = $res['owner'].'.gov.ar';
         foreach ($dest as $d) {
             $to = $to . ", $d.gov.ar";
         }
         foreach ($dest as $d) {
             $to = $to . ", $d.gov.ar";
         }
@@ -287,10 +297,10 @@ class YATTA_Controlador {
                 "en la seccion Archivos del sistema YATTA.\n".
                 "Recuerde que este archivo puede ser borrado sin previo aviso\n".
                 "por tres motivos:\n".
                 "en la seccion Archivos del sistema YATTA.\n".
                 "Recuerde que este archivo puede ser borrado sin previo aviso\n".
                 "por tres motivos:\n".
-                "\t1- El archivo supera la antigüedad máxima establecida.\n".
-                "\t2- Se supero la capacidad máxima de información permitida\n".
-                "\t   por usuario.\n".
-                "\t3- Decisión administrativa por mantenimiento de los servidores.\n";
+                "1- El archivo supera la antigüedad máxima establecida.\n".
+                "2- Se supero la capacidad máxima de información permitida\n".
+                "   por usuario.\n".
+                "3- Decisión administrativa por mantenimiento de los servidores.\n";
         }
         
             
         }
         
             
@@ -351,7 +361,8 @@ class YATTA_Controlador {
      * @access public
      */
     function obtenerListaCuotas($db) {
      * @access public
      */
     function obtenerListaCuotas($db) {
-
+        return $db->query('SELECT login, cuota
+                FROM yatta.cuotas');
     }
 }
 ?>
\ No newline at end of file
     }
 }
 ?>
\ No newline at end of file