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 // +--------------------------------------------------------------------+
33 // +X2C Class 174 :Servicios_Agenda
35 * Clase para el manejo de la agenda en la cual se muestran la informacion de los internos de los diferentes edificios.
39 class Servicios_Agenda {
41 * Conexion a la base de datos
73 * Descripcion de la dependencia a buscar
75 * @var string $dependencia
78 var $_dependencia = null;
81 * Codigo de edificio a buscar
86 var $_edificio = null;
99 * @var string $oficina
102 var $_oficina = null;
105 * Criterio para ordenar
107 * @var string $ordenar
110 var $_ordenar = null;
115 * @param int $interno Interno.
120 function setInterno($interno)
122 $this->_interno = $interno;
128 * @param string $nombre Nombre.
133 function setNombre($nombre)
135 $this->_nombre = $nombre;
141 * @param string $codep Codep.
146 function setCodep($codep)
148 $this->_codep = $codep;
154 * @param string $dependencia Dependencia.
159 function setDependencia($dependencia)
161 $this->_dependencia = $dependencia;
167 * @param int $edificio Edificio.
172 function setEdificio($edificio)
174 $this->_edificio = $edificio;
180 * @param int $piso Piso.
185 function setPiso($piso)
187 $this->_piso = $piso;
193 * @param string $oficina Oficina.
198 function setOficina($oficina)
200 $this->_oficina = $oficina;
206 * @param string $ordenar Ordenar.
211 function setOrdenar($ordenar)
213 $this->_ordenar = $ordenar;
218 // +X2C Operation 175
220 * @param DB $db Conexiona la base de datos
226 function getEdificios($db) // ~X2C
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'];
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 = '.$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:'';
275 if ($this->_nombre) {
276 $nom = split('/ /',$this->_nombre);
277 foreach ($nom as $n) {
278 $sql.= " AND nombre LIKE '%$n%'";
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%'";
288 $sql.=($this->_ordenar) ? ' order by '.$this->_ordenar :'';
290 $dbh = $this->_db->prepare($sql);
291 $res = $this->_db->execute($dbh);
294 while ($re = $res->fetchRow()) {
302 } // -X2C Class :Servicios_Agenda