X-Git-Url: https://git.llucax.com/mecon/yatta.git/blobdiff_plain/c950556cd6cab3d706f5e036cdc072e97b7daee5..b6a6a2a30f3d83d558a55fcf809b6098a4b73566:/lib/YATTA/Archivo.php?ds=sidebyside diff --git a/lib/YATTA/Archivo.php b/lib/YATTA/Archivo.php index 318cdee..36c0892 100644 --- a/lib/YATTA/Archivo.php +++ b/lib/YATTA/Archivo.php @@ -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/sistemas/yatta/tacho/'); /** * Clase para el manejo de los archivos. @@ -69,6 +68,14 @@ class YATTA_Archivo extends MECON_DBO { */ 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. * @@ -93,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. * @@ -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->path = PATH; $this->resultado = $res['resultado']; - $this->archivo = $res['archivo']; + $this->archivo = PATH_TACHO.$res['archivo']; + $this->owner = $res['owner']; return true; } @@ -145,10 +144,14 @@ class YATTA_Archivo extends MECON_DBO { */ 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 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(); if (!is_null($this->id)) { - $where[] = 'p.id = '.$this->id; + $where[] = 'p.id = '.$this->id .' '; } 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%"); @@ -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.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.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)) { @@ -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 ". - "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"); @@ -238,8 +248,8 @@ class YATTA_Archivo extends MECON_DBO { $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