]> git.llucax.com Git - mecon/yatta.git/blobdiff - lib/YATTA/Controlador.php
Agrego la clase YATTA_DB para el manejo interno de las bases de datos.
[mecon/yatta.git] / lib / YATTA / Controlador.php
index ec4790b7809776f4d39bc8083ff28a4297d64a21..0a98e0c08163ef244543a40b23f7b3ddb2fafe4f 100644 (file)
@@ -28,6 +28,8 @@ require_once 'YATTA/Proceso.php';
 require_once 'YATTA/ProcesoDB.php';
 require_once 'YATTA/Servidor.php';
 
+define ('PATH_TACHO', '/var/www/yatta/tacho/');
+
 /**
  * Clase para el manejo centralizado de toda la informacion de YATTA.
  *
@@ -44,10 +46,6 @@ class YATTA_Controlador {
      * @access private
      */
     function _obtenerServidor($db) {
-        
-        //@FIXME La ponderacion esta mal. No tengo que buscar el que tenga mas
-        //alta o mas baja OJO!!! Volver a pensar el calculo.
-        
         $res = $db->query('SELECT s.id, s.escala * s.procesos AS ponderacion
             FROM yatta.servidores AS s 
             ORDER BY ponderacion ASC, s.escala DESC');
@@ -61,8 +59,22 @@ class YATTA_Controlador {
  
     /**
      * Agrega un proceso a la base de datos
-     * Los datos obligatorios a pasar son: script, id_sistema, descripcion,
-     * owner, destinos, prioridad, scheduling y notificar.
+     * Los datos a pasar son: 
+     *  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.
+     *   owner      : Login@Organismo de la persona responsable del proceso.
+     *
+     *  Opcionales
+     *   destinos   : Login@Organismo separado por comas de aquellos usuarios
+     *                que deben poder ver los resultados del proceso.
+     *   prioridad  : Indica la prioridad del proceso.
+     *   notificar  : Indica si hay que notificar al owner y a los destinos
+     *                cuando finalize el proceso.
+     *   resultado  : En caso que el proceso genere archivos resultado, se debe
+     *                indicar aqui el nombre del archivo que deben visualizar
+     *                los usuarios.
      *
      * @param  DB $db Conexion a la base de datos.
      * @param  mixed $datos Datos necesarios del proceso.
@@ -142,7 +154,6 @@ class YATTA_Controlador {
 
         //Actualizo la base procesos
         $sql = 'UPDATE yatta.procesos SET status = '. $status;
-       
         if (@$nota) {
             $sql.= ', nota = '. $nota;
         }
@@ -153,16 +164,46 @@ class YATTA_Controlador {
             $sql.= ', notificar = '. $notificar;
         }
         $sql.= ' WHERE id = '. $id_proceso;
-
         $res = $db->query($sql);
-        // Si hay error lo devuelve.
         if (DB::isError($res)) {
             return $res;
         }
 
-        //@TODO Aca notificar
-//        if (@$notificar) {
-//        }
+        //NOTIFICO
+        if (@$notificar) {
+            $res = $db->query(
+                    "SELECT p.descripcion AS descripcion, p.owner AS owner, ".
+                    "p.destinos AS destinos ".
+                    "FROM yatta.procesos AS p"/
+                    "WHERE p.id = ". $id_proceso);
+            if (DB::isError($res)) {
+                return $res;
+            }
+            $res = $res->fetchRow(DB_FETCHMODE_ASSOC);
+            $dest = split (',', @$res['destinos']);
+            $to = $owner.'.gov.ar';
+            foreach ($dest as $d) {
+                $to = $to . ", $d.gov.ar";
+            }
+            $headers = "From: Intranet - YATTA <intranet@mecon.gov.ar>\r\n";
+            $subject = "Proceso finalizado";
+            $body = "El proceso:\n".
+                $res['descripcion'] .
+                "\nha finalizado. Puede verificar el estado de finalizacion\n".
+                "en el sistema YATTA dentro de la intranet.\n".
+                "\n\n\n".
+                "************************************************************\n".
+                "Este es un mensaje generado automaticamente por MECON_YATTA.\n".
+                "Por favor no responder a esta direccion de e-mail.\n".
+                "************************************************************\n";
+            mail($to, $subject, $body, $headers);
+        }
+
+        //COPIO EL ARCHIVO
+        if (@$archivo) {
+            $arch = basename ($archivo);
+            rename ($archivo, PATH_TACHO.$arch);
+        }
         
         //Actualizo los servidores
         $SERVER =& new YATTA_Servidor;