X-Git-Url: https://git.llucax.com/mecon/yatta.git/blobdiff_plain/3225d15c2b09b1ad7a8eef85a7b0fb98f29ff80b..bb0e12e3bf9629b7209a4e5e72caff8395e2bf96:/lib/YATTA/Controlador.php?ds=sidebyside diff --git a/lib/YATTA/Controlador.php b/lib/YATTA/Controlador.php index ec4790b..0a98e0c 100644 --- a/lib/YATTA/Controlador.php +++ b/lib/YATTA/Controlador.php @@ -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 \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;