]> git.llucax.com Git - mecon/meconlib.git/blob - lib/MECON/Usuario.php
expandible
[mecon/meconlib.git] / lib / MECON / Usuario.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 Aug 11 15:17:11 2003
22 Autor:  Manuel Nazar <manazar@mecon.gov.ar>
23 -------------------------------------------------------------------------------
24 $Id: Usuario.php 242 2003-08-11 18:02:16Z manazar $
25 -----------------------------------------------------------------------------*/
26
27 require_once 'DB.php';
28
29 // +X2C Class 131 :MECON_Usuario
30 /**
31  * @access public
32  */
33 class MECON_Usuario {
34     /**
35      * @var    int $dni
36      * @access public
37      */
38     var $dni;
39
40     /**
41     * @var    string $login
42     * @access public
43     */
44     var $login;
45
46
47     /**
48       * @var    string $nombre
49       * @access public
50       */
51     var $nombre;
52     /**
53       * @var    string $dsn
54       * @access public
55       */
56     var $dsn = 'mysql://intranet:intranet@bal747f.mecon.ar/usuario';
57
58
59     // ~X2C
60
61     // +X2C Operation 138
62     /**
63      * @param  string $dni 
64      *
65      * @return void
66      * @access public
67      */
68     function ArmarconDNI($dni) // ~X2C
69     {
70         $db = DB::connect($this->dsn);
71         if (DB::isError($db)) {
72             die ($db->getMessage("No pudo conectarse a la base"));
73         } else {
74             $sql = "SELECT login,nombre
75                    from Usuario
76                    where dni = $dni";
77             $result = $db->query($sql);
78
79             if ($result->NumRows()>0) {
80                 $row = $result->fetchRow();
81                 $login = $row[0];
82                 $nombre = $row[1];
83                 $this->login=$login;
84                 $this->nombre=$nombre;
85                 $this->dni=$dni;
86             } else {
87                 die ('El dni '.$dni.' no existe, debe loguearse al
88                      menos una vez a la intranet.');
89             }
90
91         }
92     }
93     // -X2C
94
95
96     // +X2C Operation 136
97     /**
98      * @param  string $login 
99      *
100      * @return void
101      * @access public
102      */
103     function ArmarconLOGIN($login) // ~X2C
104     {
105         $db = DB::connect($this->dsn);
106         if (DB::isError($db)) {
107             die ($db->getMessage("No pudo conectarse a la base"));
108         } else {
109
110             //$login = ereg_replace ("@", "\\\@", $login);
111             $sql = "SELECT dni,nombre
112                    from Usuario
113                    where login = '$login'";
114
115             $result = $db->query($sql);
116
117             if ($result->NumRows()>0) {
118                 $row = $result->fetchRow();
119                 $dni = $row[0];
120                 $nombre = $row[1];
121                 $this->dni=$dni;
122                 $this->nombre=$nombre;
123                 $this->login=$login;
124             } else {
125                 die ('El usuario '.$login.' no existe, debe loguearse al
126                      menos una vez a la intranet.');
127             }
128         }
129     }
130     // -X2C
131
132     // +X2C Operation 135
133     /**
134      * @param  int $dni 
135      *
136      * @return void
137      * @access public
138      */
139     function MECON_Usuario($dni = NULL, $login = NULL) // ~X2C
140     {
141         if(! is_null($dni)) {
142             $this->ArmarconDNI($dni);
143             $this->buscarUsuarioDNI($dni);
144         }
145         if(! is_null($login)) {
146             $this->ArmarconLOGIN($login);
147             $this->buscarUsuarioDNI($this->getDni());
148         }
149
150     }
151     // -X2C
152
153     // +X2C Operation 136
154     /**
155      * @param  int $uario 
156      *
157      * @return void
158      * @access public
159      */
160     function Insertar_Usuario($dni = NULL, $login = NULL, $nombre = NULL) // ~X2C
161     {
162         if((! is_null($dni)) && (! is_null($login)) && (! is_null($nombre))) {
163             $db = DB::connect($this->dsn);
164             if (DB::isError($db)) {
165                 die ($db->getMessage("No pudo conectarse a la base"));
166             } else {
167                 $sql = "REPLACE INTO Usuario (login,dni,nombre)
168                        values ('$login',$dni,'$nombre')";
169                 $result = $db->query($sql);
170             }
171         }
172     }
173     // -X2C
174
175     // +X2C Operation 136
176     /**
177      * @return int
178      * @access public
179      */
180     function getDni() // ~X2C
181     {
182         return $this->dni;
183     }
184     // -X2C
185
186     // +X2C Operation 137
187     /**
188      * @return string
189      * @access public
190      */
191     function getLogin() // ~X2C
192     {
193         return $this->login;
194     }
195     // -X2C
196
197     // +X2C Operation 138
198     /**
199      * @return string
200      * @access public
201      */
202     function getNombre() // ~X2C
203     {
204         return $this->nombre;
205     }
206     // -X2C
207
208
209     // +X2C Operation 154
210     /**
211      * @param  int $dni 
212      *
213      * @return void
214      * @access public
215      */
216     function buscarUsuarioDNI($dni) // ~X2C
217     {
218         $this->dni = $dni;
219         $dsn = 'mysql://intranet:intranet@intranet-db/novedades';
220         $db = DB::connect($dsn);
221         if (DB::isError($db))
222             die ($db->getMessage("No pudo conectarse a la base"));
223         $sql = "SELECT nombre
224                FROM web003
225                WHERE nrodoc = $dni";
226         $result = $db->query($sql);
227         if(DB::isError($result)) {
228             die($result->getMessage("query mal hecho"));
229         }
230         if($result->numRows() > 0) {
231             $row = $result->fetchRow();
232             $nombre = $row[0];
233             $this->nombre = $nombre;
234         } else {
235             $dsn = 'mysql://intranet:intranet@intranet-db/Contratados';
236             $db = DB::connect($dsn);
237             if (DB::isError($db))
238                 die ($db->getMessage("No pudo conectarse a la base"));
239             $sql = "SELECT nombre
240                    FROM Contratados
241                    WHERE nrodoc = $dni";
242             $result = $db->query($sql);
243             if(DB::isError($result))
244                 die($result->getMessage("query mal hecho"));
245             if($result->numRows() > 0) {
246                 $row = $result->fetchRow();
247                 $nombre = $row[0];
248                 $this->nombre = $nombre;
249             } else
250                 return false;
251         }
252         return true;
253     }
254     // -X2C
255
256     /**
257       * Verifica si el login pasado por parametro es valido
258       *
259       * @param string $login Login a verificar
260       *
261       * @return mixed
262       * @access public
263       */
264     function verificarLogin($login = null) {
265         if ($login) {
266             $db = DB::connect($this->dsn);
267             if (PEAR::isError($db)) {
268                 return $db;
269             }
270             $sql = "SELECT count(*) as cuenta FROM Usuario WHERE login = '$login'";
271             $result = $db->query($sql);
272             if (PEAR::isError($result)) {
273                 return $result;
274             }
275             $row = $result->fetchRow(DB_FETCHMODE_ASSOC);
276             if ($row['cuenta'] != 0) {
277                 return true;
278             }
279         }
280         return false;
281     }
282
283 } // -X2C Class :MECON_Usuario
284 ?>