]> git.llucax.com Git - mecon/ai.git/blob - sistema/local_lib/Sistema.php
Se actualiza el diagrama UML.
[mecon/ai.git] / sistema / local_lib / 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 'AIError.php';
31
32 // +X2C Class 416 :Sistema
33 /**
34  * @access public
35  */
36 class Sistema {
37     /**
38      * ID del sistema (ID en SAMURAI).
39      *
40      * @var    int $sistema
41      * @access public
42      */
43     var $sistema = 0;
44
45     /**
46      * ?ono del sistema.
47      *
48      * @var    HTML_Imagen $icono
49      * @access public
50      */
51     var $icono = null;
52
53     /**
54      * Enlace a donde se encuentra el sistema.
55      *
56      * @var    string $link
57      * @access public
58      */
59     var $link = '';
60
61     /**
62      * Enlace a la ayuda del sistema.
63      *
64      * @var    string $linkAyuda
65      * @access public
66      */
67     var $linkAyuda = '';
68
69     /**
70      * Indica si esta habilitado.
71      *
72      * @var    bool $habilitado
73      * @access public
74      */
75     var $habilitado = true;
76
77     // ~X2C
78
79     // +X2C Operation 466
80     /**
81      * @param  int $sistema ID del sistema.
82      *
83      * @return void
84      * @access public
85      */
86     function Sistema($sistema = 0) // ~X2C
87     {
88         $this->sistema = $sistema;
89     }
90     // -X2C
91
92     // +X2C Operation 460
93     /**
94      * @param  mixed $db Base de datos o Resultado a utilizar.
95      *
96      * @return PEAR_Error
97      * @access public
98      */
99     function cargar($db) // ~X2C
100     {
101         $sistema = intval($this->sistema);
102         if (is_a($db, 'db_result')) {
103             $result = $db;
104         // Si no es un resultado, hago el query.
105         } else {
106             $result = $db->query(
107                 "SELECT *
108                     FROM sistema
109                     WHERE sistema = $sistema"
110             );
111             if (DB::isError($result)) {
112                 return $result;
113             }
114         }
115         // Obtengo la fila.
116         $row = $result->fetchRow(DB_FETCHMODE_ASSOC);
117         if (!$row) {
118             return new AIError(AIERROR_NO_RESULTADOS,
119                 "No hay más resultados en la DB [sistema=$sistema]");
120         }
121         // Asigno valores al objeto.
122         extract($row);
123         $this->sistema    = $sistema;
124         $this->icono      = $icono; # FIXME - new HTML_Icono (o no?)
125         $this->link       = $link;
126         $this->linkAyuda  = $link_ayuda;
127         $this->habilitado = $habilitado;
128         return true;
129     }
130     // -X2C
131
132     // +X2C Operation 459
133     /**
134      * @param  DB $db DB donde guardar.
135      *
136      * @return PEAR_Error
137      * @access public
138      */
139     function guardar($db) // ~X2C
140     {
141         $sistema = intval($this->sistema);
142         $where    = '';
143         $datos    = array(
144             'icono'      => $this->icono,
145             'link'       => $this->link,
146             'link_ayuda' => $this->linkAyuda,
147             'habilitado' => $this->habilitado ? 1 : 0,
148         );
149         if ($sistema) {
150             $accion = DB_AUTOQUERY_UPDATE;
151             $where  = "sistema = $sistema";
152         } else {
153             $accion  = DB_AUTOQUERY_INSERT;
154             $sistema = $db->nextId('sistema');
155             if (DB::isError($sistema)) {
156                 return $sistema;
157             }
158             // Asigno el nuevo id de sistema.
159             $this->sistema    = $sistema;
160             $datos['sistema'] = $sistema;
161         }
162         $res = $db->autoExecute('sistema', $datos, $accion, $where);
163         if (DB::isError($res)) {
164             return $res;
165         }
166         return true;
167     }
168     // -X2C
169
170     // +X2C Operation 461
171     /**
172      * @param  DB $db DB de donde borrar.
173      *
174      * @return PEAR_Error
175      * @access public
176      */
177     function borrar($db) // ~X2C
178     {
179         $sistema = intval($this->sistema);
180         if ($sistema) {
181             $res = $db->query(
182                 "DELETE FROM sistema WHERE sistema = $sistema");
183             if (DB::isError($res)) {
184                 return $res;
185             }
186             return true;
187         }
188         return PEAR::raiseError("No hay un sistema válido para borrar");
189     }
190     // -X2C
191
192     // +X2C Operation 502
193     /**
194      * @return Sistema
195      * @access public
196      */
197     function __clone() // ~X2C
198     {
199         return $this;
200     }
201     // -X2C
202
203 } // -X2C Class :Sistema
204
205 ?>