]> git.llucax.com Git - mecon/meconlib.git/blob - lib/MLIB/Dependencia.php
Agrego tareas pendientes al TODO.
[mecon/meconlib.git] / lib / MLIB / 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 /**
32  * @access protected
33  */
34 class MECON_Dependencia {
35
36     /**
37      * @protected
38      */
39     var $_dbh;
40
41     /**
42      * @protected
43      */
44     var $_database;
45
46     /**
47      * @var    int $codep
48      * @access public
49      */
50     var $codep;
51
52     /**
53      * @var    int $nombre
54      * @access public
55      */
56     var $nombre;
57
58     /**
59      * @var    int $nombre_breve
60      * @access public
61      */
62     var $nombre_breve;
63
64     /**
65      * Id de la dependencia en la base.
66      *
67      * @var    int $dependencia_id
68      * @access public
69      */
70     var $dependencia_id = null;
71
72     /**
73      * @param  string $codep 
74      * @param  int $id 
75      *
76      * @return void
77      * @access public
78      */
79     function MECON_Dependencia(&$db, $codep, $id = null, $database = 'CODEP') 
80     {
81         $this->_db = $db;
82         $this->_database = $database;
83
84         if(!is_null($codep)) {
85             $this->codep = $codep;
86
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";
91
92             $result = $this->_db->query($sql);
93         }
94         else {
95             $this->dependencia_id = $id;
96
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);
102         }
103
104         if(DB::isError($result))
105             trigger_error($result->getMessage("query mal hecho"), E_USER_ERROR);
106
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'];
113         }
114     }
115     
116
117     /**
118      * @return void
119      * @access public
120      */
121     function getAgentes() 
122     {
123         //Planta y becarios
124         $agentes = array();
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[$row[0]] = new MECON_Agente($this->_db, $row[0]);
133         //Contratados
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[$row[0]] = new MECON_Agente($this->_db, $row[0]);
142         return $agentes;
143     }
144
145
146     /**
147      * @return dependencia
148      * @access public
149      * @static
150      */
151     function getDependencias() 
152     {
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;
164     }
165
166
167     /**
168      * @return void
169      * @access public
170      */
171     function getNombre() 
172     {
173         return $this->nombre;
174     }
175
176
177     /**
178      * @return void
179      * @access public
180      */
181     function getNombreBreve() 
182     {
183         return $this->nombre_breve;
184     }
185
186
187
188     /**
189      * Buscar dependencias por el codep.
190      *
191      * @param  db &$dbh Base de Datos
192      * @param  string $codep COdigo de dependencia, o parte del mismo seguido del comodIn (*)
193      *
194      * @return array
195      * @access public
196      * @static
197      */
198     function buscarPorCodigo(&$dbh, $codep, $database = 'CODEP')
199     {
200             //Reemplazar el comodín
201         $codep = preg_replace ('/\*/', '%', $codep);    
202     
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 ";
209
210         $dbh->setFetchMode(DB_FETCHMODE_ASSOC);
211         $result = $dbh->query($sql);
212         
213             return $result;
214     }
215
216
217
218     /**
219      * @param  db &$dbh Base de Datos
220      * @param  string $clave Cadena de palabras clave del nombre de la dependencia.
221      *
222      * @return array
223      * @access public
224      * @static
225      */
226     function buscarPorNombre(&$dbh, $clave, $database = 'CODEP') 
227     {
228         //ReducciOn de espacios en blanco
229         $clave = preg_replace ('/\s+/', ' ', $clave);   
230     
231         $sql = " SELECT codigo_actual, codigo_comdoc, nombre, dependencia_id,
232          nombre_breve 
233                  FROM ".$database.".Dependencias
234                  WHERE  dependencia_esta_activa = 1 ";
235
236         //Separar la cadena de palabras clave
237         $items = split(' ', $clave);
238         foreach ($items as $i){
239             $sql.= " AND nombre like '%".$i."%' ";
240         }
241
242         $sql.= " ORDER BY codigo_actual";
243
244         $dbh->setFetchMode(DB_FETCHMODE_ASSOC);
245         $result = $dbh->query($sql);
246         
247         return $result;
248     }
249
250
251
252 ?>