2 // vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4:
3 // +--------------------------------------------------------------------+
4 // | Ministerio de Economía |
5 // | AI (Administrador de Intranet) |
6 // +--------------------------------------------------------------------+
7 // | This file is part of AI. |
9 // | AI is free software; you can redistribute it and/or modify |
10 // | it under the terms of the GNU General Public License as published |
11 // | by the Free Software Foundation; either version 2 of the License, |
12 // | or (at your option) any later version. |
14 // | AI is distributed in the hope that it will be useful, but |
15 // | WITHOUT ANY WARRANTY; without even the implied warranty of |
16 // | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
17 // | General Public License for more details. |
19 // | You should have received a copy of the GNU General Public License |
20 // | along with Hooks; if not, write to the Free Software Foundation, |
21 // | Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
22 // +--------------------------------------------------------------------+
23 // | Creado: Tue Jun 24 16:22:07 2003 |
24 // | Autor: Leandro Lucarella <llucar@mecon.gov.ar> |
25 // +--------------------------------------------------------------------+
30 require_once 'AI/Error.php';
32 // +X2C Class 413 :AI_Servicio
49 * @var int $servicio_padre
52 var $servicio_padre = 0;
60 var $_hijos = array();
63 * Nombre del servicio.
71 * Descripcin del servicio.
73 * @var string $descripcion
76 var $descripcion = '';
81 * @var HTML_Imagen $icono
87 * Enlace a donde el este servicio.
95 * Enlace a donde se encuentra la ayuda del servicio.
97 * @var string $link_ayuda
100 var $link_ayuda = '';
103 * True si es necesario que el usuario se loguee para usar el servicio.
105 * @var bool $necesita_logueo
108 var $necesita_logueo = false;
111 * Indica si esta habilitado.
113 * @var bool $habilitado
116 var $habilitado = true;
126 return $this->_hijos;
131 // +X2C Operation 465
133 * @param int $servicio ID del servicio.
138 function AI_Servicio($servicio = 0) // ~X2C
140 $this->servicio = $servicio;
144 // +X2C Operation 457
146 * @param mixed $db Base de datos o Resultado a utilizar.
151 function cargar($db) // ~X2C
153 $servicio = intval($this->servicio);
154 if (is_a($db, 'db_result')) {
156 // Si no es un resultado, hago el query.
158 $result = $db->query(
161 WHERE servicio = $servicio"
163 if (DB::isError($result)) {
168 $row = $result->fetchRow(DB_FETCHMODE_ASSOC);
170 return new AI_Error(AI_ERROR_NO_RESULTADOS,
171 "No hay más resultados en la DB [servicio=$servicio]");
173 // Asigno valores al objeto.
175 $this->servicio = $servicio;
176 $this->servicio_padre = $servicio_padre;
177 $this->nombre = $nombre;
178 $this->descripcion = $descripcion;
179 $this->icono = $icono; # FIXME - new HTML_Icono (o no?)
181 $this->link_ayuda = $link_ayuda;
182 $this->necesita_logueo = $necesita_logueo;
183 $this->habilitado = $habilitado;
188 // +X2C Operation 458
190 * @param DB $db DB donde guardar.
195 function guardar($db) // ~X2C
197 $servicio = intval($this->servicio);
200 'servicio_padre' => intval($this->servicio_padre),
201 'nombre' => $this->nombre,
202 'descripcion' => $this->descripcion,
203 'icono' => $this->icono,
204 'link' => $this->link,
205 'link_ayuda' => $this->link_ayuda,
206 'necesita_logueo' => $this->necesita_logueo ? 1 : 0,
207 'habilitado' => $this->habilitado ? 1 : 0,
210 $accion = DB_AUTOQUERY_UPDATE;
211 $where = "servicio = $servicio";
213 $accion = DB_AUTOQUERY_INSERT;
214 $servicio = $db->nextId('servicio');
215 if (DB::isError($servicio)) {
218 // Asigno el nuevo id de servicio.
219 $this->servicio = $servicio;
220 $datos['servicio'] = $servicio;
222 $res = $db->autoExecute('servicio', $datos, $accion, $where);
223 if (DB::isError($res)) {
230 // +X2C Operation 456
232 * @param DB $db DB de donde borrar.
237 function borrar($db) // ~X2C
239 $servicio = intval($this->servicio);
242 "DELETE FROM servicio WHERE servicio = $servicio");
243 if (DB::isError($res)) {
248 return PEAR::raiseError("No hay un servicio válido para borrar");
252 // +X2C Operation 463
254 * @param DB $db DB de donde cargar los hijos.
259 function cargarHijos($db) // ~X2C
261 $servicio = intval($this->servicio);
262 $result = $db->query("SELECT * FROM servicio WHERE servicio_padre = $servicio");
263 if (DB::isError($result)) {
266 $this->_hijos = array();
267 $hijo = new Servicio;
268 $err = $hijo->cargar($result);
269 while (!PEAR::isError($err)) {
270 $this->_hijos[] = $hijo->__clone();
271 $err = $hijo->cargar($result);
273 // Si no hay mas resultados, entonces terminó bien.
274 if (AI_Error::isError($err)
275 and $err->getCode() == AIERROR_NO_RESULTADOS) {
278 // Si no, se devuelve el error.
283 // +X2C Operation 501
288 function __clone() // ~X2C
294 } // -X2C Class :AI_Servicio