]> git.llucax.com Git - mecon/intranet.git/blobdiff - sistema/local_lib/Servicios/Agenda.php
Se realizan correcciones varias derivadas del primer testing.
[mecon/intranet.git] / sistema / local_lib / Servicios / Agenda.php
index 5e03582dfd59a1db243cd0e56111d166049f1a9d..93edb97fa426a34311e6b4995c0f7d30030246aa 100644 (file)
@@ -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.
  * @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,7 +223,7 @@ 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);
         while ($re = $res->fetchrow(DB_FETCHMODE_ASSOC)) {
@@ -61,5 +234,67 @@ 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) {
+                $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
 ?>