1 <?php /* vim: set binary expandtab tabstop=4 shiftwidth=4 textwidth=80:
2 -------------------------------------------------------------------------------
3 Ministerio de EconomÃa
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(&$dbh, $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->_dbh->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->_dbh->query($sql);
104 if(DB::isError($result))
105 die($result->getMessage("query mal hecho"));
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 {$this->_database}.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($this->_db, $row[0]);
134 $sql = "SELECT nrodoc
135 FROM Contratados.Contratados
136 WHERE codep = '$this->codep'";
137 $result = $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($this->_db, $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)
199 //Reemplazar el comodIn
200 $codep = preg_replace ('/\*/', '%', $codep);
202 $sql = " SELECT codigo_actual, codigo_comdoc, nombre, dependencia_id
203 FROM {$this->_database}.Dependencias
204 WHERE dependencia_esta_activa = 1
205 AND codigo_actual LIKE '$codep'
206 ORDER BY codigo_actual ";
208 $dbh->setFetchMode(DB_FETCHMODE_ASSOC);
209 $result = $dbh->query($sql);
217 * @param db &$dbh Base de Datos
218 * @param string $clave Cadena de palabras clave del nombre de la dependencia.
224 function buscarPorNombre(&$dbh, $clave)
226 //ReducciOn de espacios en blanco
227 $clave = preg_replace ('/\s+/', ' ', $clave);
229 $sql = " SELECT codigo_actual, codigo_comdoc, nombre, dependencia_id
230 FROM {$this->_database}.Dependencias
231 WHERE dependencia_esta_activa = 1 ";
233 //Separar la cadena de palabras clave
234 $items = split(' ', $clave);
235 foreach ($items as $i){
236 $sql.= " AND nombre like '%$i%' ";
239 $sql.= " ORDER BY codigo_actual";
241 $dbh->setFetchMode(DB_FETCHMODE_ASSOC);
242 $result = $dbh->query($sql);