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 // +--------------------------------------------------------------------+
31 require_once 'AI/DBObject.php';
34 require_once 'AI/Error.php';
35 // TODO - preguntar a gmeray si le sirve, yo no lo uso...
36 require_once 'SAMURAI/Sistema.php';
39 * Archivo de configuración.
41 define('AI_SISTEMA_CONFFILE', dirname(__FILE__).'/Sistema.ini');
43 // +X2C Class 416 :AI_Sistema
50 class AI_Sistema extends AI_DBObject {
52 * ID del sistema (ID en SAMURAI).
60 * Nombre del sistema (slo de lectura, extra?o de SAMURAI).
68 * Descripcin del sistema (slo de lectura, extra?o de SAMURAI).
70 * @var string $descripcion
73 var $descripcion = '';
84 * Enlace a donde se encuentra el sistema.
92 * Enlace a la ayuda del sistema.
94 * @var string $link_ayuda
100 * Indica si esta habilitado.
102 * @var bool $habilitado
105 var $habilitado = true;
109 // +X2C Operation 466
111 * @param int $sistema ID del sistema.
116 function AI_Sistema($sistema = 0) // ~X2C
118 parent::AI_DBObject($sistema, AI_SISTEMA_CONFFILE);
122 // +X2C Operation 459
124 * @param DB $db DB donde guardar.
125 * @param bool $nuevo Si es true, se fuerza a guardar el servicio como nuevo.
130 function guardar($db, $nuevo = false) // ~X2C
133 'icono' => $this->icono,
134 'link' => $this->link,
135 'link_ayuda' => $this->link_ayuda,
136 'habilitado' => $this->habilitado ? 1 : 0,
138 $err = parent::guardar($db, $datos, $nuevo);
139 if (PEAR::isError($err)) {
145 // +X2C Operation 528
147 * Obtiene un array con los identificadores de los sistemas cargados.
149 * @param DB $db Base de datos de la cual obtener los sistemas.
150 * @param string $where Clausula WHERE para filtrar resultados.
156 function getSistemasArray($db, $where = '') // ~X2C
160 $conf = parse_ini_file(AI_SISTEMA_CONFFILE, true);
167 $query .= "WHERE $where";
169 return $db->getCol($query);
173 // +X2C Operation 531
175 * @param DB $db Base de datos de donde obtener los sistemas.
176 * @param string $where Clausula WHERE para filtrar la bsqueda.
182 function getSistemas($db, $where = '') // ~X2C
186 $conf = parse_ini_file(AI_SISTEMA_CONFFILE, true);
188 $id_field = $conf['id'];
189 $tabla = $conf['base'].'.'.$conf['tabla'];
190 // FIXME - ver como manejar JOINs - Ver de hacer el JOIN tambien en cargar.
192 SELECT AI.*, SA.nombre_sistema as nombre, SA.desc_sistema as descripcion
193 FROM $tabla as AI, samurai.sistema as SA
194 WHERE SA.id_sistema = AI.sistema and SA.estado = 1";
196 $query .= " WHERE $where";
198 $query .= ' ORDER BY nombre ASC';
199 $result = $db->query($query);
200 if (DB::isError($result)) {
204 $sistema = new AI_Sistema;
205 $err = $sistema->cargar($result);
206 while (!PEAR::isError($err)) {
207 $sistemas[] = $sistema->__clone();
208 $err = $sistema->cargar($result);
210 // Si no hay mas resultados (terminó bien) devuelve el array de
212 if (AI_Error::isError($err)
213 and $err->getCode() == AI_ERROR_NO_RESULTADOS) {
216 // Si no, se devuelve el error.
221 } // -X2C Class :AI_Sistema