]> git.llucax.com Git - mecon/yatta.git/blobdiff - lib/YATTA/Archivo.php
BugFixes varios.
[mecon/yatta.git] / lib / YATTA / Archivo.php
index efbc06c26342cc7049c41e8c88b698254ff3a35c..90a410e1a88e42a5cb55c703fae4d8cb44bf43d3 100644 (file)
@@ -27,8 +27,7 @@ $Id$
 require_once 'MECON/DBO.php';
 require_once 'PEAR.php';
 
-
-define ('PATH', '/var/www/sistemas/yatta/test/');
+define ('PATH_TACHO', '/var/www/yatta/tacho/');
 
 /**
  * Clase para el manejo de los archivos.
@@ -101,14 +100,6 @@ class YATTA_Archivo extends MECON_DBO {
      */
     var $archivo = null;
     
-    /**
-     * Path del archivo
-     *
-     * @var string $path
-     * @access public
-     */
-    var $path = null;
-    
     /**
      * Carga el objeto con los datos que se pasan por parametro.
      * 
@@ -134,9 +125,8 @@ class YATTA_Archivo extends MECON_DBO {
             $this->id = $res['id'];
             $this->nombre_sistema = $res['nombre_sistema'];
             $this->descripcion = $res['descripcion'];
-            $this->path = PATH;
             $this->resultado = $res['resultado'];
-            $this->archivo = $res['archivo'];
+            $this->archivo = PATH_TACHO.$res['archivo'];
             $this->owner = $res['owner'];
             
             return true;
@@ -154,10 +144,14 @@ class YATTA_Archivo extends MECON_DBO {
      */
     function borrar($db = null)
     {
-        print '<PRE>';var_dump($this);print '</PRE>';
-        //@TODO Solo permitir que el owner borre sus archivos.
-        //@TODO Borra el registro de la base.
-        //@TODO Borrar el archivo del tacho.
+        $res = $db->query('DELETE FROM yatta.procesos WHERE id = '. $this->id);
+        if (PEAR::isError($res)) {
+             trigger_error('Error: ' . $res->getMessage() . "\n", E_USER_ERROR);
+        }
+        //Borro el archivo del tacho
+        if (!unlink($this->archivo)) {
+            return new PEAR_Error('No se pudo borrar el archivo del tacho.');
+        }
     }
 
     /**
@@ -166,11 +160,14 @@ class YATTA_Archivo extends MECON_DBO {
      * @param  DB $db Conexion a la base de datos.
      * @param  string $operador Indica como deben concatenarse las condiciones de busqueda
      * @param  string $orden Indica de que manera deben ordenarse los resultados de la busqueda
+     * @param  string $destinos Indica si hay que incluir en la busqueda los
+     * destinos.
      *
      * @return mixed
      * @access public
      */
-    function buscar($db = null, $operador = MECON_DBO_OR, $orden = null) 
+    function buscar($db = null, $operador = MECON_DBO_OR, $orden = null,
+            $destinos = true) 
     {
         // Armo el WHERE.
         $where = array();
@@ -190,13 +187,18 @@ class YATTA_Archivo extends MECON_DBO {
             $where[] = 'p.resultado LIKE '. $db->quote("%$this->resultado%");
         }
         if (!is_null($this->usuario)) {
-            $where[] = ' (p.owner LIKE '. $db->quote("$this->usuario") .' OR '.
-                    'p.destinos LIKE '. $db->quote("%$this->usuario%") .')';
+            $where[] = ' p.owner LIKE '. $db->quote("$this->usuario");
+            if ($destinos) {
+                $where[] = ' p.destinos LIKE '. $db->quote("%$this->usuario%"); 
+            }
+        }
+        if (!is_null($this->archivo)) {
+            $where[] = 'p.archivo LIKE '. $db->quote("$this->archivo");
         }
         if ($where) {
             $where = 'WHERE p.status = 2 AND p.resultado is not null '.
-                'AND p.id_sistema = s.id_sistema AND ('. join ("$operador
-                        ", $where).') ';
+                'AND p.id_sistema = s.id_sistema AND ('. join ("$operador "
+                        , $where).') ';
         } 
         else {
             $where = 'WHERE p.id_sistema = s.id_sistema ';
@@ -246,7 +248,6 @@ class YATTA_Archivo extends MECON_DBO {
         $this->descripcion = null;
         $this->resultado = null;
         $this->archivo = null;
-        $this->path = null;
         $this->owner = null;
         //$this->usuario = null;
     }