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.
*/
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.
*
*/
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.
*
$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;
}
*/
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.');
+ }
}
/**
* @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%");
$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)) {
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");
$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