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