]> git.llucax.com Git - mecon/yatta.git/blobdiff - lib/YATTA/Archivo.php
Modificacion para que se haga mas ejecute mas rapido el script.
[mecon/yatta.git] / lib / YATTA / Archivo.php
index 318cdeeed1580e48706c9119040daa7c5fd85161..36c0892551ce6fa2d1de585f98450c02ce53fc6d 100644 (file)
@@ -27,8 +27,7 @@ $Id$
 require_once 'MECON/DBO.php';
 require_once 'PEAR.php';
 
 require_once 'MECON/DBO.php';
 require_once 'PEAR.php';
 
-
-define ('PATH', '/var/www/sistemas/yatta/test/');
+define ('PATH_TACHO', '/var/www/sistemas/yatta/tacho/');
 
 /**
  * Clase para el manejo de los archivos.
 
 /**
  * Clase para el manejo de los archivos.
@@ -69,6 +68,14 @@ class YATTA_Archivo extends MECON_DBO {
      */
     var $descripcion = null;
 
      */
     var $descripcion = null;
 
+    /**
+     * Identificador del usuario duenio del archivo.
+     *
+     * @var    string $owner
+     * @access public
+     */
+    var $owner = null;
+    
     /**
      * Identificador del usuario con el que se esta trabajando.
      *
     /**
      * Identificador del usuario con el que se esta trabajando.
      *
@@ -93,14 +100,6 @@ class YATTA_Archivo extends MECON_DBO {
      */
     var $archivo = null;
     
      */
     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.
      * 
     /**
      * Carga el objeto con los datos que se pasan por parametro.
      * 
@@ -126,9 +125,9 @@ class YATTA_Archivo extends MECON_DBO {
             $this->id = $res['id'];
             $this->nombre_sistema = $res['nombre_sistema'];
             $this->descripcion = $res['descripcion'];
             $this->id = $res['id'];
             $this->nombre_sistema = $res['nombre_sistema'];
             $this->descripcion = $res['descripcion'];
-            $this->path = PATH;
             $this->resultado = $res['resultado'];
             $this->resultado = $res['resultado'];
-            $this->archivo = $res['archivo'];
+            $this->archivo = PATH_TACHO.$res['archivo'];
+            $this->owner = $res['owner'];
             
             return true;
         }
             
             return true;
         }
@@ -145,10 +144,14 @@ class YATTA_Archivo extends MECON_DBO {
      */
     function borrar($db = null)
     {
      */
     function borrar($db = null)
     {
-        trigger_error('Not implemented!', E_USER_WARNING); 
-        //@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(PATH_TACHO.basename($this->archivo))) {
+            return new PEAR_Error('No se pudo borrar el archivo del tacho.');
+        }
     }
 
     /**
     }
 
     /**
@@ -157,19 +160,22 @@ 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  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
      */
      *
      * @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();
         if (!is_null($this->id)) {
     {
         // Armo el WHERE.
         $where = array();
         if (!is_null($this->id)) {
-            $where[] = 'p.id = '.$this->id;
+            $where[] = 'p.id = '.$this->id .' ';
         }
         if (!is_null($this->id_sistema)) {
         }
         if (!is_null($this->id_sistema)) {
-            $where[] = 'p.id_sistema = '. $this->id_sistema; 
+            $where[] = 'p.id_sistema = '. $this->id_sistema .''
         }
         if (!is_null($this->nombre_sistema)) {
             $where[] = 's.nombre_sistema LIKE '. $db->quote("%$this->nombre_sistema%");
         }
         if (!is_null($this->nombre_sistema)) {
             $where[] = 's.nombre_sistema LIKE '. $db->quote("%$this->nombre_sistema%");
@@ -181,17 +187,21 @@ class YATTA_Archivo extends MECON_DBO {
             $where[] = 'p.resultado LIKE '. $db->quote("%$this->resultado%");
         }
         if (!is_null($this->usuario)) {
             $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 '.
         }
         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 {
         } 
         else {
-            $where = 'WHERE p.owner = '. $db->quote("$this->owner").
-                'AND p.id_sistema = s.id_sistema';
+            $where = 'WHERE p.id_sistema = s.id_sistema ';
         }
         // Armo el ORDER BY.
         if (is_string($orden)) {
         }
         // Armo el ORDER BY.
         if (is_string($orden)) {
@@ -207,7 +217,7 @@ class YATTA_Archivo extends MECON_DBO {
         return $db->query(
                 "SELECT p.id AS id, p.id_sistema AS id_sistema, s.nombre_sistema ".
                 "AS nombre_sistema, p.descripcion AS descripcion, p.resultado ".
         return $db->query(
                 "SELECT p.id AS id, p.id_sistema AS id_sistema, s.nombre_sistema ".
                 "AS nombre_sistema, p.descripcion AS descripcion, p.resultado ".
-                "AS resultado, p.archivo AS archivo ".
+                "AS resultado, p.archivo AS archivo, p.owner AS owner ".
                 "FROM yatta.procesos AS p, samurai.sistema AS s ".
                 "$where ".
                 "$orden");
                 "FROM yatta.procesos AS p, samurai.sistema AS s ".
                 "$where ".
                 "$orden");
@@ -238,8 +248,8 @@ class YATTA_Archivo extends MECON_DBO {
         $this->descripcion = null;
         $this->resultado = null;
         $this->archivo = null;
         $this->descripcion = null;
         $this->resultado = null;
         $this->archivo = null;
-        $this->path = null;
-        $this->usuario = null;
+        $this->owner = null;
+        //$this->usuario = null;
     }
 }
 ?>
\ No newline at end of file
     }
 }
 ?>
\ No newline at end of file