X-Git-Url: https://git.llucax.com/mecon/intranet.git/blobdiff_plain/3f857ea331d8d4d36dfddc52e090c13f1112b631..HEAD:/sistema/local_lib/Servicios/Agenda.php diff --git a/sistema/local_lib/Servicios/Agenda.php b/sistema/local_lib/Servicios/Agenda.php index 5e03582..2559603 100644 --- a/sistema/local_lib/Servicios/Agenda.php +++ b/sistema/local_lib/Servicios/Agenda.php @@ -2,16 +2,16 @@ // vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4: // +--------------------------------------------------------------------+ // | Ministerio de Economía | -// | Intranet | +// | Intranet | // +--------------------------------------------------------------------+ -// | This file is part of Intranet. | +// | This file is part of Intranet. | // | | -// | Intranet is free software; you can redistribute it and/or modify | +// | Intranet is free software; you can redistribute it and/or modify | // | it under the terms of the GNU General Public License as published | // | by the Free Software Foundation; either version 2 of the License, | // | or (at your option) any later version. | // | | -// | Intranet is distributed in the hope that it will be useful, but | +// | Intranet is distributed in the hope that it will be useful, but | // | WITHOUT ANY WARRANTY; without even the implied warranty of | // | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | // | General Public License for more details. | @@ -27,9 +27,6 @@ // $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. @@ -37,6 +34,182 @@ * @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 @@ -50,9 +223,12 @@ class Servicios_Agenda { function getEdificios($db) // ~X2C { $rta['-'] = '-'; - $consulta = 'select cod_edificio, desc_edificio from edificios where cod_edificio <> 13 order by desc_edificio'; + $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']; } @@ -61,5 +237,69 @@ class Servicios_Agenda { } // -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 ?>