]> git.llucax.com Git - mecon/meconlib.git/blob - lib/MECON/Dependencia.php
Se cambian los die(expr) por trigger_error(expr, E_USER_ERROR) para poder interceptar...
[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 /**
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(&$dbh, $codep, $id = null, $database = 'CODEP') 
80     {
81         $this->_dbh = $dbh;
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->_dbh->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->_dbh->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 {$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]);
133         //Contratados
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]);
142         return $agentes;
143     }
144
145
146     /**
147      * @return dependencia
148      * @access public
149      * @static
150      */
151     function getDependencias() 
152     {
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;
163     }
164
165
166     /**
167      * @return void
168      * @access public
169      */
170     function getNombre() 
171     {
172         return $this->nombre;
173     }
174
175
176     /**
177      * @return void
178      * @access public
179      */
180     function getNombreBreve() 
181     {
182         return $this->nombre_breve;
183     }
184
185
186
187     /**
188      * Buscar dependencias por el codep.
189      *
190      * @param  db &$dbh Base de Datos
191      * @param  string $codep COdigo de dependencia, o parte del mismo seguido del comodIn (*)
192      *
193      * @return array
194      * @access public
195      * @static
196      */
197     function buscarPorCodigo(&$dbh, $codep, $database = 'CODEP')
198     {
199         //Reemplazar el comodIn
200         $codep = preg_replace ('/\*/', '%', $codep);    
201     
202         $sql = " SELECT codigo_actual, codigo_comdoc, nombre, dependencia_id 
203                  FROM $database.Dependencias
204                  WHERE dependencia_esta_activa = 1 
205                         AND codigo_actual LIKE '$codep' 
206                  ORDER BY codigo_actual ";
207
208         $dbh->setFetchMode(DB_FETCHMODE_ASSOC);
209         $result = $dbh->query($sql);
210         
211         return $result;
212     }
213
214
215
216     /**
217      * @param  db &$dbh Base de Datos
218      * @param  string $clave Cadena de palabras clave del nombre de la dependencia.
219      *
220      * @return array
221      * @access public
222      * @static
223      */
224     function buscarPorNombre(&$dbh, $clave, $database = 'CODEP') 
225     {
226         //ReducciOn de espacios en blanco
227         $clave = preg_replace ('/\s+/', ' ', $clave);   
228     
229         $sql = " SELECT codigo_actual, codigo_comdoc, nombre, dependencia_id
230                  FROM $database.Dependencias
231                  WHERE  dependencia_esta_activa = 1 ";
232
233         //Separar la cadena de palabras clave
234         $items = split(' ', $clave);
235         foreach ($items as $i){
236             $sql.= " AND nombre like '%$i%' ";
237         }
238
239         $sql.= " ORDER BY codigo_actual";
240
241         $dbh->setFetchMode(DB_FETCHMODE_ASSOC);
242         $result = $dbh->query($sql);
243         
244         return $result;
245     }
246
247
248
249 ?>