]> git.llucax.com Git - mecon/samurai.git/blob - sistema/local_lib/Permiso.php
3eaca678202812f5cde016c745469849aa47ad01
[mecon/samurai.git] / sistema / local_lib / Permiso.php
1 <?php
2 // vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4:
3 // +----------------------------------------------------------------------+
4 // | PHP Version 4                                                        |
5 // +----------------------------------------------------------------------+
6 // | Copyright (c) 1997-2003 The PHP Group                                |
7 // +----------------------------------------------------------------------+
8 // | This source file is subject to version 2.02 of the PHP license,      |
9 // | that is bundled with this package in the file LICENSE, and is        |
10 // | available at through the world-wide-web at                           |
11 // | http://www.php.net/license/2_02.txt.                                 |
12 // | If you did not receive a copy of the PHP license and are unable to   |
13 // | obtain it through the world-wide-web, please send a note to          |
14 // | license@php.net so we can mail you a copy immediately.               |
15 // +----------------------------------------------------------------------+
16 // | Created: Tue May 27 11:20:04 2003
17 // | Author:  Martin Marrese - Myrna Degano <mmarre@mecon.gov.ar - mdegan@mecon.gov.ar>
18 // +----------------------------------------------------------------------+
19 //
20 // $Id$
21 // $Author$
22 // $URL$
23 // $Date$
24 // $Rev$
25 //
26
27 require_once 'PEAR.php';
28
29
30
31 // +X2C Class 210 :Permiso
32 /**
33  * Clase para el manejo de los Permisos.
34  *
35  * @access public
36  */
37 class Permiso {
38     /**
39      * Identificador del permiso.
40      *
41      * @var    int $id
42      * @access private
43      */
44     var $_id;
45
46     /**
47      * Descripcion del permiso.
48      *
49      * @var    string $descripcion
50      * @access private
51      */
52     var $_descripcion;
53
54     /**
55      * Objeto Samurai_DB
56      *
57      * @var    Samurai_DB $db
58      * @access private
59      */
60     var $_db;
61
62     /**
63      * Indentificador del ultimo que realizo alguna operacion sobre el permiso
64      *
65      * @var    string $responsable
66      * @access private
67      */
68     var $_responsable;
69
70     /**
71      * Gets Id.
72      *
73      * @return int
74      * @access public
75      */
76     function getId()
77     {
78         return $this->_id;
79     }
80     /**
81      * Sets Id.
82      *
83      * @param  int $id Id.
84      *
85      * @return void
86      * @access public
87      */
88     function setId($id)
89     {
90         $this->_id = $id;
91     }
92
93     /**
94      * Gets Descripcion.
95      *
96      * @return string
97      * @access public
98      */
99     function getDescripcion()
100     {
101         return $this->_descripcion;
102     }
103     /**
104      * Sets Descripcion.
105      *
106      * @param  string $descripcion Descripcion.
107      *
108      * @return void
109      * @access public
110      */
111     function setDescripcion($descripcion)
112     {
113         $this->_descripcion = $descripcion;
114     }
115
116     /**
117      * Gets Responsable.
118      *
119      * @return string
120      * @access public
121      */
122     function getResponsable()
123     {
124         return $this->_responsable;
125     }
126     /**
127      * Sets Responsable.
128      *
129      * @param  string $responsable Responsable.
130      *
131      * @return void
132      * @access public
133      */
134     function setResponsable($responsable)
135     {
136         $this->_responsable = $responsable;
137     }
138
139     // ~X2C
140
141     // +X2C Operation 259
142     /**
143      * Constructor. Si recibe como parametro el identificador del permiso, busca la informacion en la DB.
144      *
145      * @param  Samurai_DB &$db Objeto conexion
146      * @param  int $id Identificador del permiso
147      *
148      * @return void
149      * @access public
150      */
151     function Permiso(&$db, $id = null) // ~X2C
152     {
153         $this->_db          = $db; 
154         $this->_id          = $id;
155         $this->setDescripcion(null); 
156         if (!is_null($id)) {
157             $this->_obtenerDatosDb();
158         }
159     }
160     // -X2C
161
162
163
164
165     // +X2C Operation 295
166     /**
167      * Obtiene de la base de datos la informacion del permiso
168      *
169      * @return void
170      * @access private
171      */
172     function _obtenerDatosDb() // ~X2C
173     {
174         $sql = include 'Permiso/consultas.php'; //Incluyo las consultas de este objeto nada mas.
175         $tmp = $sql['obtener_datos_permiso'].$sql['obtener_datos_permiso2'];
176         $dbh = $this->_db->prepare($tmp);
177         $tmp = array ($this->_id);
178         $res = $this->_db->execute($dbh,$tmp);        
179
180         if ($re  = $res->fetchRow(DB_FETCHMODE_ASSOC)) {
181             if (isset($re['desc_permiso'])) {
182                $this->setDescripcion($re['desc_permiso']);
183             }
184             else {
185                 $this->setDescripcion();
186             }
187             if (isset($re['responsable'])) {
188                 $this->setResponsable($re['responsable']);
189             }
190             else {
191                 $this->setResponsable();
192             }
193         }
194     }
195     // -X2C
196
197
198
199     // +X2C Operation 316
200     /**
201      * Modifica la base de datos segun accion
202      *
203      * @param  string $accion Indica la accion a realizar
204      *
205      * @return mixed
206      * @access public
207      */
208     function guardarDatos($accion = grabar) // ~X2C
209     {
210         $accion = strtolower($accion); 
211         switch ($accion)  {   
212             case 'grabar':    
213                 $res = $this->_grabarDb();            
214                 break;        
215             case 'modificar': 
216                 $res = $this->_modificarDb();         
217                 break;        
218             case 'eliminar':  
219                 $res = $this->_borrarDb();            
220                 break;        
221         }
222         return $res;
223     }
224     // -X2C
225
226     // +X2C Operation 317
227     /**
228      * Graba en base el permiso
229      *
230      * @return mixed
231      * @access protected
232      */
233     function _grabarDb() // ~X2C
234     {
235         $idPermiso = $this->_db->nextId('permiso');
236         $datos = array (
237                     'id_permiso'   => $idPermiso,
238                     'desc_permiso' => $this->getDescripcion(),
239                     'responsable'  => $this->getResponsable(),
240                 );
241         return $this->_db->autoExecute('permiso', $datos, DB_AUTOQUERY_INSERT);
242     }
243     // -X2C
244
245     // +X2C Operation 318
246     /**
247      * Borra de la base el permiso
248      *
249      * @return mixed
250      * @access protected
251      */
252     function _borrarDb() // ~X2C
253     {
254         $sql = include 'Permiso/consultas.php';
255         $datos[] = $this->getId();
256         //Verifico que el permiso no tenga asociaciones
257         $tmp = $sql['verificar_asociaciones1'].$sql['obtener_datos_permiso2'];
258         $dbh = $this->_db->prepare($tmp);
259         $res = $this->_db->execute($dbh, $datos);
260         if (($re  = $res->fetchRow(DB_FETCHMODE_ASSOC)) && !$re['cuenta']) {
261             return new PEAR_Error("Hay sistemas asociados al permiso seleccionado");
262         }
263         $tmp = $sql['verificar_asociaciones2'].$sql['obtener_datos_permiso2'];
264         $dbh = $this->_db->prepare($tmp);
265         $res = $this->_db->execute($dbh, $datos);
266         if (($re  = $res->fetchRow(DB_FETCHMODE_ASSOC)) && !$re['cuenta'] == 0) {
267             return new PEAR_Error("Hay pefiles asociados al permiso seleccionado");
268         }
269         //
270         //Borro el permiso de la base 
271         $tmp = $sql['borrar_permiso'].$sql['obtener_datos_permiso2'];
272         $dbh = $this->_db->prepare($tmp);
273         return $this->_db->execute($dbh, $datos);
274         //
275     }
276     // -X2C
277
278     // +X2C Operation 319
279     /**
280      * Actualiza los datos del permiso
281      *
282      * @return mixed
283      * @access protected
284      */
285     function _modificarDb() // ~X2C
286     {
287         $datos = array (
288                     'id_permiso'   => $this->getId(),
289                     'desc_permiso' => $this->getDescripcion(),
290                     'responsable'  => $this->getResponsable(),
291                 );
292         return $this->_db->autoExecute('permiso', $datos, DB_AUTOQUERY_UPDATE, 'id_permiso ='.$this->getId());
293     }
294     // -X2C
295
296     // +X2C Operation 331
297     /**
298      * Arma el array de permisos
299      *
300      * @return array(Permiso)
301      * @access private
302      * @static
303      */
304     function _armarArrayPermisos() // ~X2C
305     {
306         trigger_error('Not implemented!', E_USER_WARNING);
307     }
308     // -X2C
309
310     // +X2C Operation 332
311     /**
312      * Devuleve un array con los identificadores de todos los permisos.
313      *
314      * @return array(int)
315      * @access private
316      * @static
317      */
318     function _getIdPermisos() // ~X2C
319     {
320         trigger_error('Not implemented!', E_USER_WARNING);
321     }
322     // -X2C
323
324     // +X2C Operation 333
325     /**
326      * Devuelve un array asociativo en donde la clave es el identificador y el valor es la descripcion del permiso
327      *
328      * @return array()
329      * @access public
330      * @static
331      */
332     function getSelectPermisos() // ~X2C
333     {
334         trigger_error('Not implemented!', E_USER_WARNING);
335     }
336     // -X2C
337
338     // +X2C Operation 334
339     /**
340      * Devuelve el array de permisos
341      *
342      * @return array(Permiso)
343      * @access public
344      * @static
345      */
346     function getPermisos() // ~X2C
347     {
348     }
349     // -X2C
350
351 } // -X2C Class :Permiso
352
353 ?>