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 $base = (isset($this->_database))? $this->_database : "CODEP";
154 $sql = "SELECT codigo_actual
155 FROM ".$base.".Dependencias
156 WHERE dependencia_esta_activa = 1";
157 $result = $this->_db->query($sql);
158 if(DB::isError($result))
159 trigger_error($result->getMessage("query mal hecho"), E_USER_ERROR);
160 $dependencias = array();
161 while($row = $result->fetchRow())
162 $dependencias[] = $row[0];
163 return $dependencias;
173 return $this->nombre;
181 function getNombreBreve()
183 return $this->nombre_breve;
189 * Buscar dependencias por el codep.
191 * @param db &$dbh Base de Datos
192 * @param string $codep COdigo de dependencia, o parte del mismo seguido del comodIn (*)
198 function buscarPorCodigo(&$dbh, $codep, $database = 'CODEP')
200 //Reemplazar el comodín
201 $codep = preg_replace ('/\*/', '%', $codep);
203 $sql = " SELECT codigo_actual, codigo_comdoc, nombre,
204 dependencia_id, nombre_breve
205 FROM ".$database.".Dependencias
206 WHERE dependencia_esta_activa = 1
207 AND codigo_actual LIKE '".$codep."'
208 ORDER BY codigo_actual ";
210 $dbh->setFetchMode(DB_FETCHMODE_ASSOC);
211 $result = $dbh->query($sql);
219 * @param db &$dbh Base de Datos
220 * @param string $clave Cadena de palabras clave del nombre de la dependencia.
226 function buscarPorNombre(&$dbh, $clave, $database = 'CODEP')
228 //ReducciOn de espacios en blanco
229 $clave = preg_replace ('/\s+/', ' ', $clave);
231 $sql = " SELECT codigo_actual, codigo_comdoc, nombre, dependencia_id,
233 FROM ".$database.".Dependencias
234 WHERE dependencia_esta_activa = 1 ";
236 //Separar la cadena de palabras clave
237 $items = split(' ', $clave);
238 foreach ($items as $i){
239 $sql.= " AND nombre like '%".$i."%' ";
242 $sql.= " ORDER BY codigo_actual";
244 $dbh->setFetchMode(DB_FETCHMODE_ASSOC);
245 $result = $dbh->query($sql);