// +--------------------------------------------------------------------+ // // $Id$ // // +X2C Class 174 :Servicios_Agenda /** * Clase para el manejo de la agenda en la cual se muestran la informacion de los internos de los diferentes edificios. * * @access public */ class Servicios_Agenda { /** * Conexion a la base de datos * * @var DB $db * @access private */ var $_db; /** * Interno a buscar * * @var int $interno * @access private */ var $_interno = null; /** * Nombre a buscar * * @var string $nombre * @access private */ var $_nombre = null; /** * Codep a buscar * * @var string $codep * @access private */ var $_codep = null; /** * Descripcion de la dependencia a buscar * * @var string $dependencia * @access private */ var $_dependencia = null; /** * Codigo de edificio a buscar * * @var int $edificio * @access private */ var $_edificio = null; /** * Piso a buscar * * @var int $piso * @access private */ var $_piso = null; /** * Oficina a buscar * * @var string $oficina * @access private */ var $_oficina = null; /** * Criterio para ordenar * * @var string $ordenar * @access private */ var $_ordenar = null; /** * Sets Interno. * * @param int $interno Interno. * * @return void * @access public */ function setInterno($interno) { $this->_interno = $interno; } /** * Sets Nombre. * * @param string $nombre Nombre. * * @return void * @access public */ function setNombre($nombre) { $this->_nombre = $nombre; } /** * Sets Codep. * * @param string $codep Codep. * * @return void * @access public */ function setCodep($codep) { $this->_codep = $codep; } /** * Sets Dependencia. * * @param string $dependencia Dependencia. * * @return void * @access public */ function setDependencia($dependencia) { $this->_dependencia = $dependencia; } /** * Sets Edificio. * * @param int $edificio Edificio. * * @return void * @access public */ function setEdificio($edificio) { $this->_edificio = $edificio; } /** * Sets Piso. * * @param int $piso Piso. * * @return void * @access public */ function setPiso($piso) { $this->_piso = $piso; } /** * Sets Oficina. * * @param string $oficina Oficina. * * @return void * @access public */ function setOficina($oficina) { $this->_oficina = $oficina; } /** * Sets Ordenar. * * @param string $ordenar Ordenar. * * @return void * @access public */ function setOrdenar($ordenar) { $this->_ordenar = $ordenar; } // ~X2C // +X2C Operation 175 /** * @param DB $db Conexiona la base de datos * * @return array () * @access public * @static */ function getEdificios($db) // ~X2C { $rta['-'] = '-'; $consulta = 'select cod_edificio, desc_edificio from agenda.edificios where cod_edificio <> 13 order by desc_edificio'; $dbh = $db->prepare($consulta); $res = $db->execute($dbh); if (PEAR::isError($res)) { return $res; } while ($re = $res->fetchrow(DB_FETCHMODE_ASSOC)) { $rta[$re['cod_edificio']] = $re['desc_edificio']; } $res->free(); return $rta; } // -X2C // +X2C Operation 176 /** * Constructor * * @param DB &$db Conexion a la base de datos. * * @return void * @access public */ function Servicios_Agenda(&$db) // ~X2C { $this->_db = $db; } // -X2C // +X2C Operation 186 /** * Busca la informacion en la base. Devuelve un array de array o null. * * @return array * @access public */ function obtenerInfo() // ~X2C { $sql = 'SELECT interno, nombre, internos.codep, dependencia, desc_edificio as edificio, piso, oficina FROM agenda.internos, agenda.dependencias, agenda.edificios WHERE dependencias.codep=internos.codep AND edificios.cod_edificio=internos.cod_edif '; $sql.=($this->_interno) ? ' AND interno = '.$this->_interno:''; $sql.=($this->_codep) ? ' AND internos.codep = \''.$this->_codep.'\'':''; $sql.=($this->_edificio) ? ' AND internos.cod_edif = '.$this->_edificio:''; $sql.=($this->_piso) ? ' AND piso = '.$this->_piso:''; $sql.=($this->_oficina) ? ' AND oficina = '.$this->_oficina:''; if ($this->_nombre) { $nom = split('/ /',$this->_nombre); foreach ($nom as $n) { $sql.= " AND nombre LIKE '%$n%'"; } } if ($this->_dependencia && $this->_dependencia != '--Ingrese una palabra clave--') { $dep = split(' ', $this->_dependencia); foreach ($dep as $d) { $d = trim($d); $sql.= " AND dependencia LIKE '%$d%'"; } } $sql.=($this->_ordenar) ? ' order by '.$this->_ordenar :''; $dbh = $this->_db->prepare($sql); $res = $this->_db->execute($dbh); $rta = null; while ($re = $res->fetchRow()) { $rta[]= $re; } return $rta; } // -X2C } // -X2C Class :Servicios_Agenda ?>