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
48 * @var int $servicio_padre
51 var $servicio_padre = 0;
59 var $_hijos = array();
62 * Nombre del servicio.
70 * Descripcin del servicio.
72 * @var string $descripcion
75 var $descripcion = '';
80 * @var HTML_Imagen $icono
86 * Enlace a donde el este servicio.
94 * Enlace a donde se encuentra la ayuda del servicio.
96 * @var string $link_ayuda
102 * True si es necesario que el usuario se loguee para usar el servicio.
104 * @var bool $necesita_logueo
107 var $necesita_logueo = false;
110 * Indica si esta habilitado.
112 * @var bool $habilitado
115 var $habilitado = true;
125 return $this->_hijos;
130 // +X2C Operation 465
132 * @param int $servicio ID del servicio.
137 function Servicio($servicio = 0) // ~X2C
139 $this->servicio = $servicio;
143 // +X2C Operation 457
145 * @param mixed $db Base de datos o Resultado a utilizar.
150 function cargar($db) // ~X2C
152 $servicio = intval($this->servicio);
153 if (is_a($db, 'db_result')) {
155 // Si no es un resultado, hago el query.
157 $result = $db->query(
160 WHERE servicio = $servicio"
162 if (DB::isError($result)) {
167 $row = $result->fetchRow(DB_FETCHMODE_ASSOC);
169 return new AIError(AIERROR_NO_RESULTADOS,
170 "No hay más resultados en la DB [servicio=$servicio]");
172 // Asigno valores al objeto.
174 $this->servicio = $servicio;
175 $this->servicio_padre = $servicio_padre;
176 $this->nombre = $nombre;
177 $this->descripcion = $descripcion;
178 $this->icono = $icono; # FIXME - new HTML_Icono (o no?)
180 $this->link_ayuda = $link_ayuda;
181 $this->necesita_logueo = $necesita_logueo;
182 $this->habilitado = $habilitado;
187 // +X2C Operation 458
189 * @param DB $db DB donde guardar.
194 function guardar($db) // ~X2C
196 $servicio = intval($this->servicio);
199 'servicio_padre' => intval($this->servicio_padre),
200 'nombre' => $this->nombre,
201 'descripcion' => $this->descripcion,
202 'icono' => $this->icono,
203 'link' => $this->link,
204 'link_ayuda' => $this->link_ayuda,
205 'necesita_logueo' => $this->necesita_logueo ? 1 : 0,
206 'habilitado' => $this->habilitado ? 1 : 0,
209 $accion = DB_AUTOQUERY_UPDATE;
210 $where = "servicio = $servicio";
212 $accion = DB_AUTOQUERY_INSERT;
213 $servicio = $db->nextId('servicio');
214 if (DB::isError($servicio)) {
217 // Asigno el nuevo id de servicio.
218 $this->servicio = $servicio;
219 $datos['servicio'] = $servicio;
221 $res = $db->autoExecute('servicio', $datos, $accion, $where);
222 if (DB::isError($res)) {
229 // +X2C Operation 456
231 * @param DB $db DB de donde borrar.
236 function borrar($db) // ~X2C
238 $servicio = intval($this->servicio);
241 "DELETE FROM servicio WHERE servicio = $servicio");
242 if (DB::isError($res)) {
247 return PEAR::raiseError("No hay un servicio válido para borrar");
251 // +X2C Operation 463
253 * @param DB $db DB de donde cargar los hijos.
258 function cargarHijos($db) // ~X2C
260 $servicio = intval($this->servicio);
261 $result = $db->query("SELECT * FROM servicio WHERE servicio_padre = $servicio");
262 if (DB::isError($result)) {
265 $this->_hijos = array();
266 $hijo = new Servicio;
267 $err = $hijo->cargar($result);
268 while (!PEAR::isError($err)) {
269 $this->_hijos[] = $hijo->__clone();
270 $err = $hijo->cargar($result);
272 // Si no hay mas resultados, entonces terminó bien.
273 if (is_a($err, 'aierror')
274 and $err->getCode() == AIERROR_NO_RESULTADOS) {
277 // Si no, se devuelve el error.
282 // +X2C Operation 501
287 function __clone() // ~X2C
293 } // -X2C Class :Servicio