]> git.llucax.com Git - mecon/meconlib.git/blob - lib/MECON/Dependencia.php
Sigo buscando el 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  string $codep 
67      * @param  int $id 
68      *
69      * @return void
70      * @access public
71      */
72     function MECON_Dependencia($codep, $id = null) // ~X2C
73     {
74         if(!is_null($codep)) {
75             $this->codep = $codep;
76             $dsn = 'mysql://intranet:intranet@intranet-db.mecon.ar/CODEP';
77             $db = DB::connect($dsn);
78             if (DB::isError($db))
79                 die ($db->getMessage("No pudo conectarse a la base"));
80             $sql = "SELECT nombre, nombre_breve, dependencia_id,codigo_actual
81                    FROM Dependencias
82                    WHERE codigo_actual = '$this->codep' AND
83                    dependencia_esta_activa = 1";
84             $result = $db->query($sql);
85
86         }else {
87             $this->dependencia_id = $id;
88             $dsn = 'mysql://intranet:intranet@intranet-db.mecon.ar/CODEP';
89             $db = DB::connect($dsn);
90             if (DB::isError($db))
91                 die ($db->getMessage("No pudo conectarse a la base"));
92             $sql = "SELECT nombre, nombre_breve, dependencia_id, codigo_actual
93                    FROM Dependencias
94                    WHERE dependencia_id = $this->dependencia_id AND
95                    dependencia_esta_activa = 1";
96             $result = $db->query($sql);
97         }
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'];
106         }
107     }
108     // -X2C
109
110     // +X2C Operation 148
111     /**
112      * @return void
113      * @access public
114      */
115     function getAgentes() // ~X2C
116     {
117         //Planta y becarios
118         $agentes = array();
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
124                FROM web003
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]);
131         //Contratados
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
137                FROM Contratados
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]);
144         return $agentes;
145     }
146     // -X2C
147
148     // +X2C Operation 150
149     /**
150      * @return dependencia
151      * @access public
152      * @static
153      */
154     function getDependencias() // ~X2C
155     {
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
161                FROM Dependencias
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;
170     }
171     // -X2C
172
173     // +X2C Operation 165
174     /**
175      * @return void
176      * @access public
177      */
178     function getNombre() // ~X2C
179     {
180         return $this->nombre;
181     }
182     // -X2C
183
184     // +X2C Operation 166
185     /**
186      * @return void
187      * @access public
188      */
189     function getNombreBreve() // ~X2C
190     {
191         return $this->nombre_breve;
192     }
193     // -X2C
194
195     // +X2C Operation 167
196     /**
197      * Buscar dependencias por el codep.
198      *
199      * @param  db &$dbh Base de Datos
200      * @param  string $codep COdigo de dependencia, o parte del mismo seguido del comodIn (*)
201      *
202      * @return array
203      * @access public
204      * @static
205      */
206     function buscarPorCodigo(&$dbh, $codep) // ~X2C
207     {
208         //Reemplazar el comodIn
209         $codep = preg_replace ('/\*/', '%', $codep);    
210     
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 ";
216
217         $dbh->setFetchMode(DB_FETCHMODE_ASSOC);
218         $result = $dbh->query($sql);
219         
220         return $result;
221     }
222     // -X2C
223
224     // +X2C Operation 168
225     /**
226      * @param  db &$dbh Base de Datos
227      * @param  string $clave Cadena de palabras clave del nombre de la dependencia.
228      *
229      * @return array
230      * @access public
231      * @static
232      */
233     function buscarPorNombre(&$dbh, $clave) // ~X2C
234     {
235         //ReducciOn de espacios en blanco
236         $clave = preg_replace ('/\s+/', ' ', $clave);   
237     
238         $sql = " SELECT codigo_actual, codigo_comdoc, nombre, dependencia_id
239                  FROM CODEP.Dependencias
240                  WHERE  dependencia_esta_activa = 1 ";
241
242         //Separar la cadena de palabras clave
243         $items = split(' ', $clave);
244         foreach ($items as $i){
245             $sql.= " AND nombre like '%$i%' ";
246         }
247
248         $sql.= " ORDER BY codigo_actual";
249
250         $dbh->setFetchMode(DB_FETCHMODE_ASSOC);
251         $result = $dbh->query($sql);
252         
253         return $result;
254     }
255     // -X2C
256
257 } // -X2C Class :MECON_Dependencia
258 ?>