2 // vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4:
3 // +--------------------------------------------------------------------+
4 // | Ministerio de EconomÃa |
6 // +--------------------------------------------------------------------+
7 // | This file is part of Intranet. |
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. |
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. |
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 // +--------------------------------------------------------------------+
30 // +X2C Class 174 :Servicios_Agenda
32 * Clase para el manejo de la agenda en la cual se muestran la informacion de los internos de los diferentes edificios.
36 class Servicios_Agenda {
38 * Conexion a la base de datos
70 * Descripcion de la dependencia a buscar
72 * @var string $dependencia
75 var $_dependencia = null;
78 * Codigo de edificio a buscar
83 var $_edificio = null;
96 * @var string $oficina
102 * Criterio para ordenar
104 * @var string $ordenar
107 var $_ordenar = null;
112 * @param int $interno Interno.
117 function setInterno($interno)
119 $this->_interno = $interno;
125 * @param string $nombre Nombre.
130 function setNombre($nombre)
132 $this->_nombre = $nombre;
138 * @param string $codep Codep.
143 function setCodep($codep)
145 $this->_codep = $codep;
151 * @param string $dependencia Dependencia.
156 function setDependencia($dependencia)
158 $this->_dependencia = $dependencia;
164 * @param int $edificio Edificio.
169 function setEdificio($edificio)
171 $this->_edificio = $edificio;
177 * @param int $piso Piso.
182 function setPiso($piso)
184 $this->_piso = $piso;
190 * @param string $oficina Oficina.
195 function setOficina($oficina)
197 $this->_oficina = $oficina;
203 * @param string $ordenar Ordenar.
208 function setOrdenar($ordenar)
210 $this->_ordenar = $ordenar;
215 // +X2C Operation 175
217 * @param DB $db Conexiona la base de datos
223 function getEdificios($db) // ~X2C
226 $consulta = 'select cod_edificio, desc_edificio from agenda.edificios where cod_edificio <> 13 order by desc_edificio';
227 $dbh = $db->prepare($consulta);
228 $res = $db->execute($dbh);
229 if (PEAR::isError($res)) {
232 while ($re = $res->fetchrow(DB_FETCHMODE_ASSOC)) {
233 $rta[$re['cod_edificio']] = $re['desc_edificio'];
240 // +X2C Operation 176
244 * @param DB &$db Conexion a la base de datos.
249 function Servicios_Agenda(&$db) // ~X2C
255 // +X2C Operation 186
257 * Busca la informacion en la base. Devuelve un array de array o null.
262 function obtenerInfo() // ~X2C
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 ';
269 $sql.=($this->_interno) ? ' AND interno = '.$this->_interno:'';
270 $sql.=($this->_codep) ? ' AND internos.codep =
271 \''.$this->_codep.'\'':'';
272 $sql.=($this->_edificio) ? ' AND internos.cod_edif = '.$this->_edificio:'';
273 $sql.=($this->_piso) ? ' AND piso = '.$this->_piso:'';
274 $sql.=($this->_oficina) ? ' AND oficina = '.$this->_oficina:'';
276 if ($this->_nombre) {
277 $nom = split('/ /',$this->_nombre);
278 foreach ($nom as $n) {
279 $sql.= " AND nombre LIKE '%$n%'";
282 if ($this->_dependencia && $this->_dependencia != '--Ingrese una palabra clave--') {
283 $dep = split(' ', $this->_dependencia);
284 foreach ($dep as $d) {
286 $sql.= " AND dependencia LIKE '%$d%'";
290 $sql.=($this->_ordenar) ? ' order by '.$this->_ordenar :'';
292 $dbh = $this->_db->prepare($sql);
293 $res = $this->_db->execute($dbh);
296 while ($re = $res->fetchRow()) {
304 } // -X2C Class :Servicios_Agenda