1 <?php /* vim: set binary expandtab tabstop=4 shiftwidth=4 textwidth=80:
2 -------------------------------------------------------------------------------
5 -------------------------------------------------------------------------------
6 This file is part of meconlib.
8 meconlib is free software; you can redistribute it and/or modify it under
9 the terms of the GNU General Public License as published by the Free
10 Software Foundation; either version 2 of the License, or (at your option)
13 meconlib is distributed in the hope that it will be useful, but WITHOUT
14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
15 FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License; if not,
18 write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
19 Boston, MA 02111-1307 USA
20 -------------------------------------------------------------------------------
21 Creado: Thu Jun 19 16:54:08 2003
22 Autor: Gonzalo Merayo <gmeray@mecon.gov.ar>
23 -------------------------------------------------------------------------------
25 -----------------------------------------------------------------------------*/
27 #require_once 'PEAR.php';
28 require_once 'MECON/Agente.php';
29 require_once 'DB.php';
34 class MECON_Dependencia {
59 * @var int $nombre_breve
65 * Id de la dependencia en la base.
67 * @var int $dependencia_id
70 var $dependencia_id = null;
73 * @param string $codep
79 function MECON_Dependencia(&$db, $codep, $id = null, $database = 'CODEP')
82 $this->_database = $database;
84 if(!is_null($codep)) {
85 $this->codep = $codep;
87 $sql = "SELECT nombre, nombre_breve, dependencia_id, codigo_actual
88 FROM ".$database.".Dependencias
89 WHERE codigo_actual = '".$this->codep."' AND
90 dependencia_esta_activa = 1";
92 $result = $this->_db->query($sql);
95 $this->dependencia_id = $id;
97 $sql = "SELECT nombre, nombre_breve, dependencia_id, codigo_actual
98 FROM ".$database.".Dependencias
99 WHERE dependencia_id = ".$this->dependencia_id." AND
100 dependencia_esta_activa = 1";
101 $result = $this->_db->query($sql);
104 if(DB::isError($result))
105 trigger_error($result->getMessage("query mal hecho"), E_USER_ERROR);
107 if($result->numRows() > 0) {
108 $row = $result->fetchRow(DB_FETCHMODE_ASSOC);
109 $this->codep = $row['codigo_actual'];
110 $this->nombre = $row['nombre'];
111 $this->nombre_breve = $row['nombre_breve'];
112 $this->dependencia_id = $row['dependencia_id'];
121 function getAgentes()
125 $sql = "SELECT nrodoc
126 FROM novedades.web003
127 WHERE codep = '".$this->codep."'";
128 $result = $this->_db->query($sql);
129 if(DB::isError($result))
130 trigger_error($result->getMessage("query mal hecho"), E_USER_ERROR);
131 while($row = $result->fetchRow())
132 $agentes[] = new MECON_Agente($row[0]);
134 $sql = "SELECT nrodoc
135 FROM Contratados.Contratados
136 WHERE codep = '".$this->codep."'";
137 $result = $this->_db->query($sql);
138 if(DB::isError($result))
139 trigger_error($result->getMessage("query mal hecho"), E_USER_ERROR);
140 while($row = $result->fetchRow())
141 $agentes[] = new MECON_Agente($row[0]);
147 * @return dependencia
151 function getDependencias()
153 $sql = "SELECT codigo_actual
154 FROM ".$this->_database.".Dependencias
155 WHERE dependencia_esta_activa = 1";
156 $result = $this->_db->query($sql);
157 if(DB::isError($result))
158 trigger_error($result->getMessage("query mal hecho"), E_USER_ERROR);
159 $dependencias = array();
160 while($row = $result->fetchRow())
161 $dependencias[] = $row[0];
162 return $dependencias;
172 return $this->nombre;
180 function getNombreBreve()
182 return $this->nombre_breve;
188 * Buscar dependencias por el codep.
190 * @param db &$dbh Base de Datos
191 * @param string $codep COdigo de dependencia, o parte del mismo seguido del comodIn (*)
197 function buscarPorCodigo(&$dbh, $codep, $database = 'CODEP')
199 //Reemplazar el comodín
200 $codep = preg_replace ('/\*/', '%', $codep);
202 $sql = " SELECT codigo_actual, codigo_comdoc, nombre,
203 dependencia_id, nombre_breve
204 FROM ".$database.".Dependencias
205 WHERE dependencia_esta_activa = 1
206 AND codigo_actual LIKE '".$codep."'
207 ORDER BY codigo_actual ";
209 $dbh->setFetchMode(DB_FETCHMODE_ASSOC);
210 $result = $dbh->query($sql);
218 * @param db &$dbh Base de Datos
219 * @param string $clave Cadena de palabras clave del nombre de la dependencia.
225 function buscarPorNombre(&$dbh, $clave, $database = 'CODEP')
227 //ReducciOn de espacios en blanco
228 $clave = preg_replace ('/\s+/', ' ', $clave);
230 $sql = " SELECT codigo_actual, codigo_comdoc, nombre, dependencia_id,
232 FROM ".$database.".Dependencias
233 WHERE dependencia_esta_activa = 1 ";
235 //Separar la cadena de palabras clave
236 $items = split(' ', $clave);
237 foreach ($items as $i){
238 $sql.= " AND nombre like '%".$i."%' ";
241 $sql.= " ORDER BY codigo_actual";
243 $dbh->setFetchMode(DB_FETCHMODE_ASSOC);
244 $result = $dbh->query($sql);