]> git.llucax.com Git - mecon/ai.git/blob - lib/AI/Sistema.php
Se pasa HTML_Error a MECONlib.
[mecon/ai.git] / lib / AI / Sistema.php
1 <?php
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.                                           |
8 // |                                                                    |
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.                             |
13 // |                                                                    |
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.                           |
18 // |                                                                    |
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 // +--------------------------------------------------------------------+
26 //
27 // $Id$
28 //
29
30 require_once 'AI/Error.php';
31 // TODO - preguntar a gmeray si le sirve, yo no lo uso...
32 require_once 'SAMURAI/Sistema.php';
33
34 // +X2C Class 416 :AI_Sistema
35 /**
36  * Sistema.
37  *
38  * @package AI
39  * @access public
40  */
41 class AI_Sistema {
42     /**
43      * ID del sistema (ID en SAMURAI).
44      *
45      * @var    int $sistema
46      * @access public
47      */
48     var $sistema = 0;
49
50     /**
51      * Nombre del sistema (slo de lectura, extra?o de SAMURAI).
52      *
53      * @var    string $nombre
54      * @access public
55      */
56     var $nombre = '';
57
58     /**
59      * Descripcin del sistema (slo de lectura, extra?o de SAMURAI).
60      *
61      * @var    string $descripcion
62      * @access public
63      */
64     var $descripcion = '';
65
66     /**
67      * ?ono del sistema.
68      *
69      * @var    HTML_Imagen $icono
70      * @access public
71      */
72     var $icono = null;
73
74     /**
75      * Enlace a donde se encuentra el sistema.
76      *
77      * @var    string $link
78      * @access public
79      */
80     var $link = '';
81
82     /**
83      * Enlace a la ayuda del sistema.
84      *
85      * @var    string $link_ayuda
86      * @access public
87      */
88     var $link_ayuda = '';
89
90     /**
91      * Indica si esta habilitado.
92      *
93      * @var    bool $habilitado
94      * @access public
95      */
96     var $habilitado = true;
97
98     // ~X2C
99
100     // +X2C Operation 466
101     /**
102      * @param  int $sistema ID del sistema.
103      *
104      * @return void
105      * @access public
106      */
107     function AI_Sistema($sistema = 0) // ~X2C
108     {
109         $this->sistema = $sistema;
110     }
111     // -X2C
112
113     // +X2C Operation 460
114     /**
115      * @param  mixed $db Base de datos o Resultado a utilizar.
116      *
117      * @return PEAR_Error
118      * @access public
119      */
120     function cargar($db) // ~X2C
121     {
122         $sistema = intval($this->sistema);
123         if (is_a($db, 'db_result')) {
124             $result = $db;
125         // Si no es un resultado, hago el query.
126         } else {
127             $result = $db->query(
128                 "SELECT *
129                     FROM sistema
130                     WHERE sistema = $sistema"
131             );
132             if (DB::isError($result)) {
133                 return $result;
134             }
135         }
136         // Obtengo la fila.
137         $row = $result->fetchRow(DB_FETCHMODE_ASSOC);
138         if (!$row) {
139             return new AI_Error(AI_ERROR_NO_RESULTADOS,
140                 "No hay más resultados en la DB [sistema=$sistema]");
141         }
142         // Asigno valores al objeto.
143         extract($row);
144         $this->sistema    = $sistema;
145         $this->icono      = $icono;
146         $this->link       = $link;
147         $this->link_ayuda = $link_ayuda;
148         $this->habilitado = $habilitado;
149         // Obtengo datos de SAMURAI. FIXME - preguntar a marrese por manejo de errores.
150         // TODO - preguntar a gmeray si le sirve, yo no lo uso...
151         #$sist = new SAMURAI_Sistema($db, $sistema);
152         #$this->nombre       = $sist->getNombre();
153         #$this->descripcion  = $sist->getDescripcion();
154         return true;
155     }
156     // -X2C
157
158     // +X2C Operation 459
159     /**
160      * @param  DB $db DB donde guardar.
161      * @param  bool $nuevo Si es true, se fuerza a guardar el servicio como nuevo.
162      *
163      * @return PEAR_Error
164      * @access public
165      */
166     function guardar($db, $nuevo = false) // ~X2C
167     {
168         $sistema = intval($this->sistema);
169         $where    = '';
170         $datos    = array(
171             'icono'      => $this->icono,
172             'link'       => $this->link,
173             'link_ayuda' => $this->link_ayuda,
174             'habilitado' => $this->habilitado ? 1 : 0,
175         );
176         if ($sistema and !$nuevo) {
177             $accion = DB_AUTOQUERY_UPDATE;
178             $where  = "sistema = $sistema";
179         } else {
180             $accion = DB_AUTOQUERY_INSERT;
181             // Si no tiene ID, le asigno uno nuevo.
182             if (!$sistema) {
183                 $sistema = $db->nextId('sistema');
184                 if (DB::isError($sistema)) {
185                     return $sistema;
186                 }
187                 $this->sistema = $sistema;
188             }
189             $datos['sistema'] = $sistema;
190         }
191         $res = $db->autoExecute('sistema', $datos, $accion, $where);
192         if (DB::isError($res)) {
193             return $res;
194         }
195         return true;
196     }
197     // -X2C
198
199     // +X2C Operation 461
200     /**
201      * @param  DB $db DB de donde borrar.
202      *
203      * @return PEAR_Error
204      * @access public
205      */
206     function borrar($db) // ~X2C
207     {
208         $sistema = intval($this->sistema);
209         if ($sistema) {
210             $res = $db->query(
211                 "DELETE FROM sistema WHERE sistema = $sistema");
212             if (DB::isError($res)) {
213                 return $res;
214             }
215             return true;
216         }
217         return PEAR::raiseError("No hay un sistema válido para borrar");
218     }
219     // -X2C
220
221     // +X2C Operation 502
222     /**
223      * @return Sistema
224      * @access public
225      */
226     function __clone() // ~X2C
227     {
228         return $this;
229     }
230     // -X2C
231
232 } // -X2C Class :AI_Sistema
233
234 ?>