]> git.llucax.com Git - mecon/intranet.git/blob - sistema/local_lib/Servicios/Agenda.php
f2a4bb9fb78052c156b13c98a6fcc6336caac29a
[mecon/intranet.git] / sistema / local_lib / Servicios / Agenda.php
1 <?php
2 // vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4:
3 // +--------------------------------------------------------------------+
4 // |                      Ministerio de Economía                        |
5 // |                             Intranet                              |
6 // +--------------------------------------------------------------------+
7 // | This file is part of Intranet.                                    |
8 // |                                                                    |
9 // | Intranet 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 // | Intranet 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 Aug 12 14:52:37 2003                                 
24 // | Autor:  Martin Marrese <mmarre@mecon.gov.ar>
25 // +--------------------------------------------------------------------+
26 //
27 // $Id$
28 //
29
30
31
32
33 // +X2C Class 174 :Servicios_Agenda
34 /**
35  * Clase para el manejo de la agenda en la cual se muestran la informacion de los internos de los diferentes edificios.
36  *
37  * @access public
38  */
39 class Servicios_Agenda {
40     /**
41      * Conexion a la base de datos
42      *
43      * @var    DB $db
44      * @access private
45      */
46     var $_db;
47
48     /**
49      * Interno a buscar
50      *
51      * @var    int $interno
52      * @access private
53      */
54     var $_interno = null;
55
56     /**
57      * Nombre a buscar
58      *
59      * @var    string $nombre
60      * @access private
61      */
62     var $_nombre = null;
63
64     /**
65      * Codep a buscar
66      *
67      * @var    string $codep
68      * @access private
69      */
70     var $_codep = null;
71
72     /**
73      * Descripcion de la dependencia a buscar
74      *
75      * @var    string $dependencia
76      * @access private
77      */
78     var $_dependencia = null;
79
80     /**
81      * Codigo de edificio a buscar
82      *
83      * @var    int $edificio
84      * @access private
85      */
86     var $_edificio = null;
87
88     /**
89      * Piso a buscar
90      *
91      * @var    int $piso
92      * @access private
93      */
94     var $_piso = null;
95
96     /**
97      * Oficina a buscar
98      *
99      * @var    string $oficina
100      * @access private
101      */
102     var $_oficina = null;
103
104     /**
105      * Criterio para ordenar
106      *
107      * @var    string $ordenar
108      * @access private
109      */
110     var $_ordenar = null;
111
112     /**
113      * Sets Interno.
114      *
115      * @param  int $interno Interno.
116      *
117      * @return void
118      * @access public
119      */
120     function setInterno($interno)
121     {
122         $this->_interno = $interno;
123     }
124
125     /**
126      * Sets Nombre.
127      *
128      * @param  string $nombre Nombre.
129      *
130      * @return void
131      * @access public
132      */
133     function setNombre($nombre)
134     {
135         $this->_nombre = $nombre;
136     }
137
138     /**
139      * Sets Codep.
140      *
141      * @param  string $codep Codep.
142      *
143      * @return void
144      * @access public
145      */
146     function setCodep($codep)
147     {
148         $this->_codep = $codep;
149     }
150
151     /**
152      * Sets Dependencia.
153      *
154      * @param  string $dependencia Dependencia.
155      *
156      * @return void
157      * @access public
158      */
159     function setDependencia($dependencia)
160     {
161         $this->_dependencia = $dependencia;
162     }
163
164     /**
165      * Sets Edificio.
166      *
167      * @param  int $edificio Edificio.
168      *
169      * @return void
170      * @access public
171      */
172     function setEdificio($edificio)
173     {
174         $this->_edificio = $edificio;
175     }
176
177     /**
178      * Sets Piso.
179      *
180      * @param  int $piso Piso.
181      *
182      * @return void
183      * @access public
184      */
185     function setPiso($piso)
186     {
187         $this->_piso = $piso;
188     }
189
190     /**
191      * Sets Oficina.
192      *
193      * @param  string $oficina Oficina.
194      *
195      * @return void
196      * @access public
197      */
198     function setOficina($oficina)
199     {
200         $this->_oficina = $oficina;
201     }
202
203     /**
204      * Sets Ordenar.
205      *
206      * @param  string $ordenar Ordenar.
207      *
208      * @return void
209      * @access public
210      */
211     function setOrdenar($ordenar)
212     {
213         $this->_ordenar = $ordenar;
214     }
215
216     // ~X2C
217
218     // +X2C Operation 175
219     /**
220      * @param  DB $db Conexiona la base de datos
221      *
222      * @return array ()
223      * @access public
224      * @static
225      */
226     function getEdificios($db) // ~X2C
227     {
228         $rta['-'] = '-';
229         $consulta = 'select cod_edificio, desc_edificio from agenda.edificios where cod_edificio <> 13 order by desc_edificio';
230         $dbh = $db->prepare($consulta);
231         $res = $db->execute($dbh);
232         while ($re = $res->fetchrow(DB_FETCHMODE_ASSOC)) {
233             $rta[$re['cod_edificio']] = $re['desc_edificio'];
234         }
235         $res->free();
236         return $rta;
237     }
238     // -X2C
239
240     // +X2C Operation 176
241     /**
242      * Constructor
243      *
244      * @param  DB &$db Conexion a la base de datos.
245      *
246      * @return void
247      * @access public
248      */
249     function Servicios_Agenda(&$db) // ~X2C
250     {
251         $this->_db = $db;
252     }
253     // -X2C
254
255     // +X2C Operation 186
256     /**
257      * Busca la informacion en la base. Devuelve un array de array o null.
258      *
259      * @return array
260      * @access public
261      */
262     function obtenerInfo() // ~X2C
263     {
264         $sql = 'SELECT interno, nombre, internos.codep, dependencia, desc_edificio as edificio, piso, oficina 
265                 FROM   agenda.internos, agenda.dependencias, agenda.edificios
266                 WHERE  dependencias.codep=internos.codep AND
267                        edificios.cod_edificio=internos.cod_edif ';
268         
269         $sql.=($this->_interno)  ? ' AND interno = '.$this->_interno:''; 
270         $sql.=($this->_codep)    ? ' AND internos.codep = '.$this->_codep:''; 
271         $sql.=($this->_edificio) ? ' AND internos.cod_edif = '.$this->_edificio:''; 
272         $sql.=($this->_piso)     ? ' AND piso = '.$this->_piso:''; 
273         $sql.=($this->_oficina)  ? ' AND oficina = '.$this->_oficina:''; 
274         
275         if ($this->_nombre) {
276             $nom = split('/ /',$this->_nombre);
277             foreach ($nom as $n) {
278                $sql.= " AND nombre LIKE '%$n%'";
279             }
280         }
281         if ($this->_dependencia && $this->_dependencia != '--Ingrese una palabra clave--') {
282             $dep = split('/ /',$this->_dependencia);
283             foreach ($dep as $d) {
284                 $sql.= " AND dependencia LIKE '%$d%'";
285             }
286         }
287         
288         $sql.=($this->_ordenar)  ? ' order by '.$this->_ordenar :''; 
289
290         $dbh = $this->_db->prepare($sql);
291         $res = $this->_db->execute($dbh);
292
293         $rta = null;
294         while ($re  = $res->fetchRow()) {
295             $rta[]= $re;
296         }
297         
298         return $rta;
299     }
300     // -X2C
301
302 } // -X2C Class :Servicios_Agenda
303 ?>