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';
31 define ('PATH', '/var/www/sistemas/yatta/test/');
34 * Clase para el manejo de los archivos.
38 class YATTA_Archivo extends MECON_DBO {
41 * Identificador del proceso.
49 * Identificador del sistema en el cual se lanzo el proceso.
51 * @var int $id_sistema
54 var $id_sistema = null;
57 * Nombre del sistema al que pertenece.
59 * @var string $nombre_sistema
62 var $nombre_sistema = null;
65 * Descripcion del proceso.
67 * @var string $descripcion
70 var $descripcion = null;
73 * Identificador del usuario con el que se esta trabajando.
75 * @var string $usuario
81 * Nombre del archivo para el download
83 * @var string $resultado
86 var $resultado = null;
89 * Nombre del archivo en el tacho
91 * @var string $archivo
105 * Carga el objeto con los datos que se pasan por parametro.
107 * @param DB $db DB o DB_Result a usar para la carga.
112 function cargar($db = null)
114 // Si es un resultado, obtengo los elemento.
115 if (is_a($db, 'db_result')) {
116 $this->predefinirAtributos();
117 $res = $db->fetchRow(DB_FETCHMODE_ASSOC);
118 // Si hay error lo devuelve.
119 if (DB::isError($res)) {
126 $this->id = $res['id'];
127 $this->nombre_sistema = $res['nombre_sistema'];
128 $this->descripcion = $res['descripcion'];
130 $this->resultado = $res['resultado'];
131 $this->archivo = $res['archivo'];
139 * Borra el objeto de una base de datos.
141 * @param DB $db Base de datos de donde borrar el objeto.
146 function borrar($db = null)
148 trigger_error('Not implemented!', E_USER_WARNING);
149 //@TODO Solo permitir que el owner borre sus archivos.
150 //@TODO Borra el registro de la base.
151 //@TODO Borrar el archivo del tacho.
155 * Busca los datos en la base.
157 * @param DB $db Conexion a la base de datos.
158 * @param string $operador Indica como deben concatenarse las condiciones de busqueda
159 * @param string $orden Indica de que manera deben ordenarse los resultados de la busqueda
164 function buscar($db = null, $operador = MECON_DBO_OR, $orden = null)
168 if (!is_null($this->id)) {
169 $where[] = 'p.id = '.$this->id;
171 if (!is_null($this->id_sistema)) {
172 $where[] = 'p.id_sistema = '. $this->id_sistema;
174 if (!is_null($this->nombre_sistema)) {
175 $where[] = 's.nombre_sistema LIKE '. $db->quote("%$this->nombre_sistema%");
177 if (!is_null($this->descripcion)) {
178 $where[] = 'p.descripcion LIKE '. $db->quote("%$this->descripcion%");
180 if (!is_null($this->resultado)) {
181 $where[] = 'p.resultado LIKE '. $db->quote("%$this->resultado%");
183 if (!is_null($this->usuario)) {
184 $where[] = '(p.owner LIKE '. $db->quote("$this->usuario") .' OR '.
185 'p.destinos LIKE '. $db->quote("%$this->usuario%") .')';
188 $where = 'WHERE p.status = 2 AND p.resultado is not null '.
189 'AND p.id_sistema = s.id_sistema AND ('. join ("$operador
193 $where = 'WHERE p.owner = '. $db->quote("$this->owner").
194 'AND p.id_sistema = s.id_sistema';
197 if (is_string($orden)) {
198 $orden = array($orden);
201 $orden = 'ORDER BY '.join(',',$orden);
208 "SELECT p.id AS id, p.id_sistema AS id_sistema, s.nombre_sistema ".
209 "AS nombre_sistema, p.descripcion AS descripcion, p.resultado ".
210 "AS resultado, p.archivo AS archivo ".
211 "FROM yatta.procesos AS p, samurai.sistema AS s ".
217 * @param DB $db Conexion a la base de datos.
218 * @param bool $nuevo Indica si se trata de un nuevo registro en la base.
223 function guardar($db = null, $nuevo = false)
225 trigger_error('Not implemented!', E_USER_WARNING);
229 * Hace un reset de los atributos.
234 function predefinirAtributos() {
236 $this->id_sistema = null;
237 $this->nombre_sistema = null;
238 $this->descripcion = null;
239 $this->resultado = null;
240 $this->archivo = null;
242 $this->usuario = null;