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';
32 * Clase para el manejo de los archivos.
36 class YATTA_Archivo extends MECON_DBO {
39 * Identificador del proceso.
47 * Identificador del sistema en el cual se lanzo el proceso.
49 * @var int $id_sistema
52 var $id_sistema = null;
55 * Nombre del sistema al que pertenece.
57 * @var string $nombre_sistema
60 var $nombre_sistema = null;
63 * Descripcion del proceso.
65 * @var string $descripcion
68 var $descripcion = null;
71 * Identificador del usuario duenio del archivo.
79 * Identificador del usuario con el que se esta trabajando.
81 * @var string $usuario
87 * Nombre del archivo para el download
89 * @var string $resultado
92 var $resultado = null;
95 * Nombre del archivo en el tacho
97 * @var string $archivo
103 * Carga el objeto con los datos que se pasan por parametro.
105 * @param DB $db DB o DB_Result a usar para la carga.
110 function cargar($db = null)
112 // Si es un resultado, obtengo los elemento.
113 if (is_a($db, 'db_result')) {
114 $this->predefinirAtributos();
115 $res = $db->fetchRow(DB_FETCHMODE_ASSOC);
116 // Si hay error lo devuelve.
117 if (DB::isError($res)) {
124 $this->id = $res['id'];
125 $this->nombre_sistema = $res['nombre_sistema'];
126 $this->descripcion = $res['descripcion'];
127 $this->resultado = $res['resultado'];
128 $this->archivo = $res['archivo'];
129 $this->owner = $res['owner'];
137 * Borra el objeto de una base de datos.
139 * @param DB $db Base de datos de donde borrar el objeto.
144 function borrar($db = null)
146 print '<PRE>';var_dump($this);print '</PRE>';
147 //@TODO Solo permitir que el owner borre sus archivos.
148 //@TODO Borra el registro de la base.
149 //@TODO Borrar el archivo del tacho.
153 * Busca los datos en la base.
155 * @param DB $db Conexion a la base de datos.
156 * @param string $operador Indica como deben concatenarse las condiciones de busqueda
157 * @param string $orden Indica de que manera deben ordenarse los resultados de la busqueda
162 function buscar($db = null, $operador = MECON_DBO_OR, $orden = null)
166 if (!is_null($this->id)) {
167 $where[] = 'p.id = '.$this->id .' ';
169 if (!is_null($this->id_sistema)) {
170 $where[] = 'p.id_sistema = '. $this->id_sistema .'';
172 if (!is_null($this->nombre_sistema)) {
173 $where[] = 's.nombre_sistema LIKE '. $db->quote("%$this->nombre_sistema%");
175 if (!is_null($this->descripcion)) {
176 $where[] = 'p.descripcion LIKE '. $db->quote("%$this->descripcion%");
178 if (!is_null($this->resultado)) {
179 $where[] = 'p.resultado LIKE '. $db->quote("%$this->resultado%");
181 if (!is_null($this->usuario)) {
182 $where[] = ' (p.owner LIKE '. $db->quote("$this->usuario") .' OR '.
183 'p.destinos LIKE '. $db->quote("%$this->usuario%") .')';
186 $where = 'WHERE p.status = 2 AND p.resultado is not null '.
187 'AND p.id_sistema = s.id_sistema AND ('. join ("$operador
191 $where = 'WHERE p.id_sistema = s.id_sistema ';
194 if (is_string($orden)) {
195 $orden = array($orden);
198 $orden = 'ORDER BY '.join(',',$orden);
205 "SELECT p.id AS id, p.id_sistema AS id_sistema, s.nombre_sistema ".
206 "AS nombre_sistema, p.descripcion AS descripcion, p.resultado ".
207 "AS resultado, p.archivo AS archivo, p.owner AS owner ".
208 "FROM yatta.procesos AS p, samurai.sistema AS s ".
214 * @param DB $db Conexion a la base de datos.
215 * @param bool $nuevo Indica si se trata de un nuevo registro en la base.
220 function guardar($db = null, $nuevo = false)
222 trigger_error('Not implemented!', E_USER_WARNING);
226 * Hace un reset de los atributos.
231 function predefinirAtributos() {
233 $this->id_sistema = null;
234 $this->nombre_sistema = null;
235 $this->descripcion = null;
236 $this->resultado = null;
237 $this->archivo = null;
239 //$this->usuario = null;