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 'AIError.php';
32 // +X2C Class 413 :Servicio
57 var $_hijos = array();
60 * Nombre del servicio.
68 * Descripcin del servicio.
70 * @var string $descripcion
73 var $descripcion = '';
78 * @var HTML_Imagen $icono
84 * Enlace a donde el este servicio.
92 * Enlace a donde se encuentra la ayuda del servicio.
94 * @var string $linkAyuda
100 * True si es necesario que el usuario se loguee para usar el servicio.
102 * @var bool $necesitaLogueo
105 var $necesitaLogueo = false;
108 * Indica si esta habilitado.
110 * @var bool $habilitado
113 var $habilitado = true;
123 return $this->_hijos;
128 // +X2C Operation 465
130 * @param int $servicio ID del servicio.
135 function Servicio($servicio = 0) // ~X2C
137 $this->servicio = $servicio;
141 // +X2C Operation 457
143 * @param mixed $db Base de datos o Resultado a utilizar.
148 function cargar($db) // ~X2C
150 $servicio = intval($this->servicio);
151 if (is_a($db, 'db_result')) {
153 // Si no es un resultado, hago el query.
155 $result = $db->query(
158 WHERE servicio = $servicio"
160 if (DB::isError($result)) {
165 $row = $result->fetchRow(DB_FETCHMODE_ASSOC);
167 return new AIError(AIERROR_NO_RESULTADOS,
168 "No hay más resultados en la DB [servicio=$servicio]");
170 // Asigno valores al objeto.
172 $this->servicio = $servicio;
173 $this->padre = $servicio_padre;
174 $this->nombre = $nombre;
175 $this->descripcion = $descripcion;
176 $this->icono = $icono; # FIXME - new HTML_Icono (o no?)
178 $this->linkAyuda = $link_ayuda;
179 $this->necesitaLogueo = $necesita_logueo;
180 $this->habilitado = $habilitado;
185 // +X2C Operation 458
187 * @param DB $db DB donde guardar.
192 function guardar($db) // ~X2C
194 $servicio = intval($this->servicio);
197 'servicio_padre' => intval($this->padre),
198 'nombre' => $this->nombre,
199 'descripcion' => $this->descripcion,
200 'icono' => $this->icono,
201 'link' => $this->link,
202 'link_ayuda' => $this->linkAyuda,
203 'necesita_logueo' => $this->necesitaLogueo ? 1 : 0,
204 'habilitado' => $this->habilitado ? 1 : 0,
207 $accion = DB_AUTOQUERY_UPDATE;
208 $where = "servicio = $servicio";
210 $accion = DB_AUTOQUERY_INSERT;
211 $servicio = $db->nextId('servicio');
212 if (DB::isError($servicio)) {
215 // Asigno el nuevo id de servicio.
216 $this->servicio = $servicio;
217 $datos['servicio'] = $servicio;
219 $res = $db->autoExecute('servicio', $datos, $accion, $where);
220 if (DB::isError($res)) {
227 // +X2C Operation 456
229 * @param DB $db DB de donde borrar.
234 function borrar($db) // ~X2C
236 $servicio = intval($this->servicio);
239 "DELETE FROM servicio WHERE servicio = $servicio");
240 if (DB::isError($res)) {
245 return PEAR::raiseError("No hay un servicio válido para borrar");
249 // +X2C Operation 463
251 * @param DB $db DB de donde cargar los hijos.
256 function cargarHijos($db) // ~X2C
258 $servicio = intval($this->servicio);
259 $result = $db->query("SELECT * FROM servicio WHERE servicio_padre = $servicio");
260 if (DB::isError($result)) {
263 $this->_hijos = array();
264 $hijo = new Servicio;
265 $err = $hijo->cargar($result);
266 while (!PEAR::isError($err)) {
267 $this->_hijos[] = $hijo->__clone();
268 $err = $hijo->cargar($result);
270 // Si no hay mas resultados, entonces terminó bien.
271 if (is_a($err, 'aierror')
272 and $err->getCode() == AIERROR_NO_RESULTADOS) {
275 // Si no, se devuelve el error.
280 // +X2C Operation 501
285 function __clone() // ~X2C
291 } // -X2C Class :Servicio