]> git.llucax.com Git - mecon/samurai.git/blob - sistema/local_lib/Samurai.php
3d9f52df03f98e12d533a45f455fe96411c2fd5a
[mecon/samurai.git] / sistema / local_lib / Samurai.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 17:05:58 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 require_once 'Sistema.php';
29 require_once 'Usuario.php';
30 require_once 'Permiso.php';
31 require_once 'Perfil.php';
32
33
34
35 // +X2C Class 274 :Samurai
36 /**
37  * Objeto general.
38  *
39  * @access public
40  */
41 class Samurai {
42     /**
43      * Identificador del sistema.
44      *
45      * @var    int $id_sistema
46      * @access private
47      */
48     var $_id_sistema;
49
50     /**
51      * Objeto Conexion
52      *
53      * @var    Samurai_DB $db
54      * @access private
55      */
56     var $_db;
57
58     // ~X2C
59
60     // +X2C Operation 280
61     /**
62      * Constructor. Recibe como parametro el identificador del sistema.
63      *
64      * @param  Samurai_DB &$db Objeto conexion
65      * @param  int $idSistema Indetificador del sistema
66      *
67      * @return void
68      * @access public
69      */
70     function Samurai(&$db, $idSistema = null)// ~X2C
71     {
72         $this->_id_sistema = $idSistema;
73         $this->_db = &$db;
74     }
75     // -X2C
76
77     // +X2C Operation 283
78     /**
79      * Devuleve un array con los identificadores de todos los sistemas.
80      *
81      * @return array(int)
82      * @access private
83      */
84     function _getIdSistemas()// ~X2C
85     {
86         $rta = array();
87         $sql = include 'Samurai/consultas.php';
88         $dbh = $this->_db->prepare($sql['obtener_id_sistemas']);
89         $res = $this->_db->execute($dbh);
90         while ($re = $res->fetchrow(DB_FETCHMODE_ASSOC)) {
91             array_push($rta,$re['id_sistema']);
92         }        
93         $res->free();
94         return $rta;
95     }
96     // -X2C
97
98     // +X2C Operation 285
99     /**
100      * Arma el array de sistemas
101      *
102      * @return array(Sistema)
103      * @access private
104      */
105     function _armarArraySistemas()// ~X2C
106     {
107         $rta = array ();
108         foreach ($this->_getIdSistemas() as $id) {
109             $tmp = new Sistema($this->_db,$id);
110             array_push($rta, $tmp);
111         }
112         return $rta;
113     }
114     // -X2C
115
116     // +X2C Operation 286
117     /**
118      * Devuelve el array de sistemas
119      *
120      * @return array(Sistema)
121      * @access public
122      */
123     function getSistemas()// ~X2C
124     {
125         return $this->_armarArraySistemas();
126     }
127     // -X2C
128
129
130     // +X2C Operation 292
131     /**
132      * Devuelve el array de permisos
133      *
134      * @return array(Permiso)
135      * @access public
136      */
137     function getPermisos()// ~X2C
138     {
139         return $this->_armarArrayPermisos();
140     }
141     // -X2C
142
143     // +X2C Operation 293
144     /**
145      * Arma el array de permisos
146      *
147      * @return void
148      * @access private
149      */
150     function _armarArrayPermisos()// ~X2C
151     {
152         $rta = array ();
153         foreach ($this->_getIdPermisos() as $id) {
154             $tmp = new Permiso($this->_db,$id);
155             array_push($rta, $tmp);
156         }
157         return $rta;
158     }
159     // -X2C
160
161     // +X2C Operation 294
162     /**
163      * Devuleve un array con los identificadores de todos los permisos.
164      *
165      * @return array(int)
166      * @access private
167      */
168     function _getIdPermisos()// ~X2C
169     {
170         $rta = array();
171         $sql = include 'Samurai/consultas.php';
172         $dbh = $this->_db->prepare($sql['obtener_id_permisos']);
173         $res = $this->_db->execute($dbh);
174         while ($re = $res->fetchrow(DB_FETCHMODE_ASSOC)) {
175             array_push($rta,$re['id_permiso']);
176         }        
177         $res->free();
178         return $rta;
179     }
180     // -X2C
181
182     // +X2C Operation 299
183     /**
184      * Devuelve un array asociativo en donde la clave es el identificador y el valor es la descripcion del permiso
185      *
186      * @return array()
187      * @access public
188      */
189     function getSelectPermisos()// ~X2C
190     {
191         $rta = array ();
192         foreach ($this->_armarArrayPermisos() as $permiso) {
193             $rta[$permiso->getId()] = $permiso->getDescripcion();
194         }
195         return $rta;
196     }
197     // -X2C
198
199 } // -X2C Class :Samurai
200
201 ?>