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';
31 // +X2C Class 145 :MECON_Dependencia
35 class MECON_Dependencia {
49 * @var int $nombre_breve
55 * Id de la dependencia en la base.
57 * @var int $dependencia_id
60 var $dependencia_id = null;
66 * @param string $codep
72 function MECON_Dependencia($codep, $id = null) // ~X2C
74 if(!is_null($codep)) {
75 $this->codep = $codep;
76 $dsn = 'mysql://intranet:intranet@intranet-db.mecon.ar/CODEP';
77 $db = DB::connect($dsn);
79 die ($db->getMessage("No pudo conectarse a la base"));
80 $sql = "SELECT nombre, nombre_breve, dependencia_id,codigo_actual
82 WHERE codigo_actual = '$this->codep' AND
83 dependencia_esta_activa = 1";
84 $result = $db->query($sql);
87 $this->dependencia_id = $id;
88 $dsn = 'mysql://intranet:intranet@intranet-db.mecon.ar/CODEP';
89 $db = DB::connect($dsn);
91 die ($db->getMessage("No pudo conectarse a la base"));
92 $sql = "SELECT nombre, nombre_breve, dependencia_id, codigo_actual
94 WHERE dependencia_id = $this->dependencia_id AND
95 dependencia_esta_activa = 1";
96 $result = $db->query($sql);
98 if(DB::isError($result))
99 die($result->getMessage("query mal hecho"));
100 if($result->numRows() > 0) {
101 $row = $result->fetchRow(DB_FETCHMODE_ASSOC);
102 $this->codep = $row['codigo_actual'];
103 $this->nombre = $row['nombre'];
104 $this->nombre_breve = $row['nombre_breve'];
105 $this->dependencia_id = $row['dependencia_id'];
110 // +X2C Operation 148
115 function getAgentes() // ~X2C
119 $dsn = 'mysql://intranet:intranet@intranet-db.mecon.ar/novedades';
120 $db = DB::connect($dsn);
121 if (DB::isError($db))
122 die ($db->getMessage("No pudo conectarse a la base"));
123 $sql = "SELECT nrodoc
125 WHERE codep = '$this->codep'";
126 $result = $db->query($sql);
127 if(DB::isError($result))
128 die($result->getMessage("query mal hecho"));
129 while($row = $result->fetchRow())
130 $agentes[] = new MECON_Agente($row[0]);
132 $dsn = 'mysql://intranet:intranet@intranet-db.mecon.ar/Contratados';
133 $db = DB::connect($dsn);
134 if (DB::isError($db))
135 die ($db->getMessage("No pudo conectarse a la base"));
136 $sql = "SELECT nrodoc
138 WHERE codep = '$this->codep'";
139 $result = $db->query($sql);
140 if(DB::isError($result))
141 die($result->getMessage("query mal hecho"));
142 while($row = $result->fetchRow())
143 $agentes[] = new MECON_Agente($row[0]);
148 // +X2C Operation 150
150 * @return dependencia
154 function getDependencias() // ~X2C
156 $dsn = 'mysql://intranet:intranet@intranet-db.mecon.ar/CODEP';
157 $db = DB::connect($dsn);
158 if (DB::isError($db))
159 die ($db->getMessage("No pudo conectarse a la base"));
160 $sql = "SELECT codigo_actual
162 WHERE dependencia_esta_activa = 1";
163 $result = $db->query($sql);
164 if(DB::isError($result))
165 die($result->getMessage("query mal hecho"));
166 $dependencias = array();
167 while($row = $result->fetchRow())
168 $dependencias[] = $row[0];
169 return $dependencias;
173 // +X2C Operation 165
178 function getNombre() // ~X2C
180 return $this->nombre;
184 // +X2C Operation 166
189 function getNombreBreve() // ~X2C
191 return $this->nombre_breve;
195 // +X2C Operation 167
197 * Buscar dependencias por el codep.
199 * @param db &$dbh Base de Datos
200 * @param string $codep COdigo de dependencia, o parte del mismo seguido del comodIn (*)
206 function buscarPorCodigo(&$dbh, $codep) // ~X2C
208 //Reemplazar el comodIn
209 $codep = preg_replace ('/\*/', '%', $codep);
211 $sql = " SELECT codigo_actual, codigo_comdoc, nombre, dependencia_id
212 FROM CODEP.Dependencias
213 WHERE dependencia_esta_activa = 1
214 AND codigo_actual LIKE '$codep'
215 ORDER BY codigo_actual ";
217 $dbh->setFetchMode(DB_FETCHMODE_ASSOC);
218 $result = $dbh->query($sql);
224 // +X2C Operation 168
226 * @param db &$dbh Base de Datos
227 * @param string $clave Cadena de palabras clave del nombre de la dependencia.
233 function buscarPorNombre(&$dbh, $clave) // ~X2C
235 //ReducciOn de espacios en blanco
236 $clave = preg_replace ('/\s+/', ' ', $clave);
238 $sql = " SELECT codigo_actual, codigo_comdoc, nombre, dependencia_id
239 FROM CODEP.Dependencias
240 WHERE dependencia_esta_activa = 1 ";
242 //Separar la cadena de palabras clave
243 $items = split(' ', $clave);
244 foreach ($items as $i){
245 $sql.= " AND nombre like '%$i%' ";
248 $sql.= " ORDER BY codigo_actual";
250 $dbh->setFetchMode(DB_FETCHMODE_ASSOC);
251 $result = $dbh->query($sql);
257 } // -X2C Class :MECON_Dependencia