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