1 <?php /* vim: set binary expandtab tabstop=4 shiftwidth=4 textwidth=80:
2 -------------------------------------------------------------------------------
5 -------------------------------------------------------------------------------
6 This file is part of YATTA!.
8 YATTA! is free software; you can redistribute it and/or modify it under
9 the terms of the GNU General Public License as published by the Free
10 Software Foundation; either version 2 of the License, or (at your option)
13 YATTA! is distributed in the hope that it will be useful, but WITHOUT
14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
15 FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License; if not,
18 write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
19 Boston, MA 02111-1307 USA
20 -------------------------------------------------------------------------------
21 Creado: mié dic 3 13:11:15 ART 2003
22 Autor: Martin Marrese <mmarre@mecon.gov.ar>
23 -------------------------------------------------------------------------------
25 -----------------------------------------------------------------------------*/
27 require_once 'MECON/DBO.php';
28 require_once 'PEAR.php';
30 define ('PATH_TACHO', '/var/www/yatta/tacho/');
33 * Clase para el manejo de los archivos.
37 class YATTA_Archivo extends MECON_DBO {
40 * Identificador del proceso.
48 * Identificador del sistema en el cual se lanzo el proceso.
50 * @var int $id_sistema
53 var $id_sistema = null;
56 * Nombre del sistema al que pertenece.
58 * @var string $nombre_sistema
61 var $nombre_sistema = null;
64 * Descripcion del proceso.
66 * @var string $descripcion
69 var $descripcion = null;
72 * Identificador del usuario duenio del archivo.
80 * Identificador del usuario con el que se esta trabajando.
82 * @var string $usuario
88 * Nombre del archivo para el download
90 * @var string $resultado
93 var $resultado = null;
96 * Nombre del archivo en el tacho
98 * @var string $archivo
104 * Carga el objeto con los datos que se pasan por parametro.
106 * @param DB $db DB o DB_Result a usar para la carga.
111 function cargar($db = null)
113 // Si es un resultado, obtengo los elemento.
114 if (is_a($db, 'db_result')) {
115 $this->predefinirAtributos();
116 $res = $db->fetchRow(DB_FETCHMODE_ASSOC);
117 // Si hay error lo devuelve.
118 if (DB::isError($res)) {
125 $this->id = $res['id'];
126 $this->nombre_sistema = $res['nombre_sistema'];
127 $this->descripcion = $res['descripcion'];
128 $this->resultado = $res['resultado'];
129 $this->archivo = PATH_TACHO.$res['archivo'];
130 $this->owner = $res['owner'];
138 * Borra el objeto de una base de datos.
140 * @param DB $db Base de datos de donde borrar el objeto.
145 function borrar($db = null)
147 $res = $db->query('DELETE FROM yatta.procesos WHERE id = '. $this->id);
148 if (PEAR::isError($res)) {
149 trigger_error('Error: ' . $res->getMessage() . "\n", E_USER_ERROR);
151 //Borro el archivo del tacho
152 if (!unlink($this->archivo)) {
153 return new PEAR_Error('No se pudo borrar el archivo del tacho.');
158 * Busca los datos en la base.
160 * @param DB $db Conexion a la base de datos.
161 * @param string $operador Indica como deben concatenarse las condiciones de busqueda
162 * @param string $orden Indica de que manera deben ordenarse los resultados de la busqueda
167 function buscar($db = null, $operador = MECON_DBO_OR, $orden = null)
171 if (!is_null($this->id)) {
172 $where[] = 'p.id = '.$this->id .' ';
174 if (!is_null($this->id_sistema)) {
175 $where[] = 'p.id_sistema = '. $this->id_sistema .'';
177 if (!is_null($this->nombre_sistema)) {
178 $where[] = 's.nombre_sistema LIKE '. $db->quote("%$this->nombre_sistema%");
180 if (!is_null($this->descripcion)) {
181 $where[] = 'p.descripcion LIKE '. $db->quote("%$this->descripcion%");
183 if (!is_null($this->resultado)) {
184 $where[] = 'p.resultado LIKE '. $db->quote("%$this->resultado%");
186 if (!is_null($this->usuario)) {
187 $where[] = ' (p.owner LIKE '. $db->quote("$this->usuario") .' OR '.
188 'p.destinos LIKE '. $db->quote("%$this->usuario%") .')';
190 if (!is_null($this->archivo)) {
191 $where[] = 'p.archivo LIKE '. $db->quote("$this->archivo");
194 $where = 'WHERE p.status = 2 AND p.resultado is not null '.
195 'AND p.id_sistema = s.id_sistema AND ('. join ("$operador
199 $where = 'WHERE p.id_sistema = s.id_sistema ';
202 if (is_string($orden)) {
203 $orden = array($orden);
206 $orden = 'ORDER BY '.join(',',$orden);
213 "SELECT p.id AS id, p.id_sistema AS id_sistema, s.nombre_sistema ".
214 "AS nombre_sistema, p.descripcion AS descripcion, p.resultado ".
215 "AS resultado, p.archivo AS archivo, p.owner AS owner ".
216 "FROM yatta.procesos AS p, samurai.sistema AS s ".
222 * @param DB $db Conexion a la base de datos.
223 * @param bool $nuevo Indica si se trata de un nuevo registro en la base.
228 function guardar($db = null, $nuevo = false)
230 trigger_error('Not implemented!', E_USER_WARNING);
234 * Hace un reset de los atributos.
239 function predefinirAtributos() {
241 $this->id_sistema = null;
242 $this->nombre_sistema = null;
243 $this->descripcion = null;
244 $this->resultado = null;
245 $this->archivo = null;
247 //$this->usuario = null;