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 duenio del archivo.
81 * Identificador del usuario con el que se esta trabajando.
83 * @var string $usuario
89 * Nombre del archivo para el download
91 * @var string $resultado
94 var $resultado = null;
97 * Nombre del archivo en el tacho
99 * @var string $archivo
113 * Carga el objeto con los datos que se pasan por parametro.
115 * @param DB $db DB o DB_Result a usar para la carga.
120 function cargar($db = null)
122 // Si es un resultado, obtengo los elemento.
123 if (is_a($db, 'db_result')) {
124 $this->predefinirAtributos();
125 $res = $db->fetchRow(DB_FETCHMODE_ASSOC);
126 // Si hay error lo devuelve.
127 if (DB::isError($res)) {
134 $this->id = $res['id'];
135 $this->nombre_sistema = $res['nombre_sistema'];
136 $this->descripcion = $res['descripcion'];
138 $this->resultado = $res['resultado'];
139 $this->archivo = $res['archivo'];
140 $this->owner = $res['owner'];
148 * Borra el objeto de una base de datos.
150 * @param DB $db Base de datos de donde borrar el objeto.
155 function borrar($db = null)
157 print '<PRE>';var_dump($this);print '</PRE>';
158 //@TODO Solo permitir que el owner borre sus archivos.
159 //@TODO Borra el registro de la base.
160 //@TODO Borrar el archivo del tacho.
164 * Busca los datos en la base.
166 * @param DB $db Conexion a la base de datos.
167 * @param string $operador Indica como deben concatenarse las condiciones de busqueda
168 * @param string $orden Indica de que manera deben ordenarse los resultados de la busqueda
173 function buscar($db = null, $operador = MECON_DBO_OR, $orden = null)
177 if (!is_null($this->id)) {
178 $where[] = 'p.id = '.$this->id .' ';
180 if (!is_null($this->id_sistema)) {
181 $where[] = 'p.id_sistema = '. $this->id_sistema .'';
183 if (!is_null($this->nombre_sistema)) {
184 $where[] = 's.nombre_sistema LIKE '. $db->quote("%$this->nombre_sistema%");
186 if (!is_null($this->descripcion)) {
187 $where[] = 'p.descripcion LIKE '. $db->quote("%$this->descripcion%");
189 if (!is_null($this->resultado)) {
190 $where[] = 'p.resultado LIKE '. $db->quote("%$this->resultado%");
192 if (!is_null($this->usuario)) {
193 $where[] = ' (p.owner LIKE '. $db->quote("$this->usuario") .' OR '.
194 'p.destinos LIKE '. $db->quote("%$this->usuario%") .')';
197 $where = 'WHERE p.status = 2 AND p.resultado is not null '.
198 'AND p.id_sistema = s.id_sistema AND ('. join ("$operador
202 $where = 'WHERE p.id_sistema = s.id_sistema ';
205 if (is_string($orden)) {
206 $orden = array($orden);
209 $orden = 'ORDER BY '.join(',',$orden);
216 "SELECT p.id AS id, p.id_sistema AS id_sistema, s.nombre_sistema ".
217 "AS nombre_sistema, p.descripcion AS descripcion, p.resultado ".
218 "AS resultado, p.archivo AS archivo, p.owner AS owner ".
219 "FROM yatta.procesos AS p, samurai.sistema AS s ".
225 * @param DB $db Conexion a la base de datos.
226 * @param bool $nuevo Indica si se trata de un nuevo registro en la base.
231 function guardar($db = null, $nuevo = false)
233 trigger_error('Not implemented!', E_USER_WARNING);
237 * Hace un reset de los atributos.
242 function predefinirAtributos() {
244 $this->id_sistema = null;
245 $this->nombre_sistema = null;
246 $this->descripcion = null;
247 $this->resultado = null;
248 $this->archivo = null;
251 //$this->usuario = null;