]> git.llucax.com Git - mecon/meconlib.git/blob - lib/MECON/Dependencia.php
Se corrige un bug.
[mecon/meconlib.git] / lib / MECON / Dependencia.php
1 <?php /* vim: set binary expandtab tabstop=4 shiftwidth=4 textwidth=80:
2 -------------------------------------------------------------------------------
3                              Ministerio de Economía
4                                     meconlib
5 -------------------------------------------------------------------------------
6 This file is part of meconlib.
7  
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)
11 any later version.
12  
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.
16  
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 -------------------------------------------------------------------------------
24 $Id$
25 -----------------------------------------------------------------------------*/
26
27 #require_once 'PEAR.php';
28 require_once 'MECON/Agente.php';
29 require_once 'DB.php';
30
31 // +X2C Class 145 :MECON_Dependencia
32 /**
33  * @access protected
34  */
35 class MECON_Dependencia {
36     /**
37      * @var    int $codep
38      * @access public
39      */
40     var $codep;
41
42     /**
43      * @var    int $nombre
44      * @access public
45      */
46     var $nombre;
47
48     /**
49      * @var    int $nombre_breve
50      * @access public
51      */
52     var $nombre_breve;
53
54     /**
55      * Id de la dependencia en la base.
56      *
57      * @var    int $dependencia_id
58      * @access public
59      */
60     var $dependencia_id = null;
61
62     // ~X2C
63
64     // +X2C Operation 147
65     /**
66      * @param  int $codep 
67      *
68      * @return void
69      * @access public
70      */
71     function MECON_Dependencia($codep) // ~X2C
72     {
73         $this->codep = $codep;
74         $dsn = 'mysql://intranet:intranet@intranet-db.mecon.ar/CODEP';
75         $db = DB::connect($dsn);
76         if (DB::isError($db))
77             die ($db->getMessage("No pudo conectarse a la base"));
78         $sql = "SELECT nombre, nombre_breve, dependencia_id
79                FROM Dependencias
80                WHERE codigo_actual = '$this->codep' AND
81                dependencia_esta_activa = 1";
82         $result = $db->query($sql);
83         if(DB::isError($result))
84             die($result->getMessage("query mal hecho"));
85         if($result->numRows() > 0) {
86             $row = $result->fetchRow(DB_FETCHMODE_ASSOC);
87             $this->nombre = $row['nombre'];
88             $this->nombre_breve = $row['nombre_breve'];
89             $this->dependencia_id = $row['dependencia_id'];
90         }
91     }
92     // -X2C
93
94     // +X2C Operation 148
95     /**
96      * @return void
97      * @access public
98      */
99     function getAgentes() // ~X2C
100     {
101         //Planta y becarios
102         $agentes = array();
103         $dsn = 'mysql://intranet:intranet@intranet-db.mecon.ar/novedades';
104         $db = DB::connect($dsn);
105         if (DB::isError($db))
106             die ($db->getMessage("No pudo conectarse a la base"));
107         $sql = "SELECT nrodoc
108                FROM web003
109                WHERE codep = '$this->codep'";
110         $result = $db->query($sql);
111         if(DB::isError($result))
112             die($result->getMessage("query mal hecho"));
113         while($row = $result->fetchRow())
114             $agentes[] = new MECON_Agente($row[0]);
115         //Contratados
116         $dsn = 'mysql://intranet:intranet@intranet-db.mecon.ar/Contratados';
117         $db = DB::connect($dsn);
118         if (DB::isError($db))
119             die ($db->getMessage("No pudo conectarse a la base"));
120         $sql = "SELECT nrodoc
121                FROM Contratados
122                WHERE codep = '$this->codep'";
123         $result = $db->query($sql);
124         if(DB::isError($result))
125             die($result->getMessage("query mal hecho"));
126         while($row = $result->fetchRow())
127             $agentes[] = new MECON_Agente($row[0]);
128         return $agentes;
129     }
130     // -X2C
131
132     // +X2C Operation 150
133     /**
134      * @return dependencia
135      * @access public
136      * @static
137      */
138     function getDependencias() // ~X2C
139     {
140         $dsn = 'mysql://intranet:intranet@intranet-db.mecon.ar/CODEP';
141         $db = DB::connect($dsn);
142         if (DB::isError($db))
143             die ($db->getMessage("No pudo conectarse a la base"));
144         $sql = "SELECT codigo_actual
145                FROM Dependencias
146                WHERE dependencia_esta_activa = 1";
147         $result = $db->query($sql);
148         if(DB::isError($result))
149             die($result->getMessage("query mal hecho"));
150         $dependencias = array();
151         while($row = $result->fetchRow())
152             $dependencias[] = $row[0];
153         return $dependencias;
154     }
155     // -X2C
156
157     // +X2C Operation 165
158     /**
159      * @return void
160      * @access public
161      */
162     function getNombre() // ~X2C
163     {
164         return $this->nombre;
165     }
166     // -X2C
167
168     // +X2C Operation 166
169     /**
170      * @return void
171      * @access public
172      */
173     function getNombreBreve() // ~X2C
174     {
175         return $this->nombre_breve;
176     }
177     // -X2C
178
179     // +X2C Operation 167
180     /**
181      * Buscar dependencias por el codep.
182      *
183      * @param  db &$dbh Base de Datos
184      * @param  string $codep COdigo de dependencia, o parte del mismo seguido del comodIn (*)
185      *
186      * @return array
187      * @access public
188      * @static
189      */
190     function buscarPorCodigo(&$dbh, $codep) // ~X2C
191     {
192         //Reemplazar el comodIn
193         $codep = preg_replace ('/\*/', '%', $codep);    
194     
195         $sql = " SELECT codigo_actual, codigo_comdoc, nombre, dependencia_id 
196                  FROM CODEP.Dependencias
197                  WHERE dependencia_esta_activa = 1 
198                         AND codigo_actual LIKE '$codep' 
199                  ORDER BY codigo_actual ";
200
201         $dbh->setFetchMode(DB_FETCHMODE_ASSOC);
202         $result = $dbh->query($sql);
203         
204         return $result;
205     }
206     // -X2C
207
208     // +X2C Operation 168
209     /**
210      * @param  db &$dbh Base de Datos
211      * @param  string $clave Cadena de palabras clave del nombre de la dependencia.
212      *
213      * @return array
214      * @access public
215      * @static
216      */
217     function buscarPorNombre(&$dbh, $clave) // ~X2C
218     {
219         //ReducciOn de espacios en blanco
220         $clave = preg_replace ('/\s+/', ' ', $clave);   
221     
222         $sql = " SELECT codigo_actual, codigo_comdoc, nombre, dependencia_id
223                  FROM CODEP.Dependencias
224                  WHERE  dependencia_esta_activa = 1 ";
225
226         //Separar la cadena de palabras clave
227         $items = split(' ', $clave);
228         foreach ($items as $i){
229             $sql.= " AND nombre like '%$i%' ";
230         }
231
232         $sql.= " ORDER BY codigo_actual";
233
234         $dbh->setFetchMode(DB_FETCHMODE_ASSOC);
235         $result = $dbh->query($sql);
236         
237         return $result;
238     }
239     // -X2C
240
241 } // -X2C Class :MECON_Dependencia
242 ?>