]> git.llucax.com Git - mecon/samurai.git/blob - sistema/local_lib/Sistema.php
633fc0e916bcdfe204aba35f8b6b118aa10225e8
[mecon/samurai.git] / sistema / local_lib / Sistema.php
1 <?php
2 // vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4:
3 // +----------------------------------------------------------------------+
4 // | PHP Version 4                                                        |
5 // +----------------------------------------------------------------------+
6 // | Copyright (c) 1997-2003 The PHP Group                                |
7 // +----------------------------------------------------------------------+
8 // | This source file is subject to version 2.02 of the PHP license,      |
9 // | that is bundled with this package in the file LICENSE, and is        |
10 // | available at through the world-wide-web at                           |
11 // | http://www.php.net/license/2_02.txt.                                 |
12 // | If you did not receive a copy of the PHP license and are unable to   |
13 // | obtain it through the world-wide-web, please send a note to          |
14 // | license@php.net so we can mail you a copy immediately.               |
15 // +----------------------------------------------------------------------+
16 // | Created: Tue May 27 11:20:04 2003
17 // | Author:  Martin Marrese - Myrna Degano <mmarre@mecon.gov.ar - mdegan@mecon.gov.ar>
18 // +----------------------------------------------------------------------+
19 //
20 // $Id$
21 // $Author$
22 // $URL$
23 // $Date$
24 // $Rev$
25 //
26
27 #require_once 'PEAR.php';
28 require_once 'Samurai_DB.php';
29 require_once 'Date.php';
30
31 // +X2C Class 209 :Sistema
32 /**
33  * Clase para el manejo de los sistemas.
34  *
35  * @access public
36  */
37 class Sistema {
38     /**
39      * Identificador del sistema.
40      *
41      * @var    int $id
42      *
43      * @access private
44      */
45     var $_id;
46
47     /**
48      * Nombre del sistema.
49      *
50      * @var    string $nombre
51      *
52      * @access private
53      */
54     var $_nombre;
55
56     /**
57      * Descripcion del sistema.
58      *
59      * @var    string $descripcion
60      *
61      * @access private
62      */
63     var $_descripcion;
64
65     /**
66      * Fecha en la cual se inicio el sistema.
67      *
68      * @var    date $fecha_inicio
69      *
70      * @access private
71      */
72     var $_fecha_inicio;
73
74     /**
75      * Fecha en la cual se dio por terminado el desarrollo del sistema.
76      *
77      * @var    date $fecha_fin
78      *
79      * @access private
80      */
81     var $_fecha_fin;
82
83     /**
84      * Fecha de implementacion del sistema.
85      *
86      * @var    date $fecha_implementacion
87      *
88      * @access private
89      */
90     var $_fecha_implementacion;
91
92     /**
93      * Texto con los datos del o de los contacto/s en el area usuario.
94      *
95      * @var    string $contacto
96      *
97      * @access private
98      */
99     var $_contacto;
100
101     /**
102      * Objeto Samurai_DB
103      *
104      * @var    Samurai_DB $db
105      *
106      * @access private
107      */
108     var $_db;
109
110     /**
111      * Login del responsable de los ultimos cambios del sistema.
112      *
113      * @var    string $responsable
114      *
115      * @access private
116      */
117     var $_responsable;
118
119     // ~X2C
120
121     // +X2C Operation 243
122     /**
123      * Constructor. Si recibe como parametro el identificador busca en la DB los datos.
124      *
125      * @param  Samurai_DB &$db Objeto Conexion
126      * @param  int $id Identificador del sistema
127      *
128      * @return void
129      *
130      * @access public
131      */
132     function Sistema(&$db, $id = null) // ~X2C
133     {
134         $this->_db = $db;
135         $this->_id = $id;
136         if (!is_null($id)) {
137             $this->_obtenerDatosDb();
138         }
139         else {
140             $this->setNombre();
141             $this->setDescripcion(); 
142             $this->setFechaInicio();
143             $this->setFechaFin();
144             $this->setFechaImplementacion();
145             $this->setContacto();
146             $this->setResponsable();
147         }
148     }
149     // -X2C
150
151     // +X2C Operation 244
152     /**
153      * Devuelve el identificador del sistema.
154      *
155      * @return int
156      *
157      * @access public
158      */
159     function getId() // ~X2C
160     {
161         return $this->_id;
162     }
163     // -X2C
164
165     // +X2C Operation 245
166     /**
167      * Devuelve el nombre del sistema.
168      *
169      * @return string
170      *
171      * @access public
172      */
173     function getNombre() // ~X2C
174     {
175         return $this->_nombre;
176     }
177     // -X2C
178
179     // +X2C Operation 246
180     /**
181      * Devuelve la descrpcion del sistema.
182      *
183      * @return string
184      *
185      * @access public
186      */
187     function getDescripcion() // ~X2C
188     {
189         return $this->_descripcion;
190     }
191     // -X2C
192
193     // +X2C Operation 247
194     /**
195      * Devuelve la fecha de inicio del sistema.
196      *
197      * @return &date
198      *
199      * @access public
200      */
201     function &getFechaInicio() // ~X2C
202     {        
203         if ($this->_fecha_inicio) {
204             return new Date ($this->_fecha_inicio.' 00:00:00');
205         }
206         else {
207             return null;
208         }
209     }
210     // -X2C
211
212     // +X2C Operation 248
213     /**
214      * Devuelve la fecha de finalizacion del sistema.
215      *
216      * @return &date
217      *
218      * @access public
219      */
220     function &getFechaFin() // ~X2C
221     {
222         if ($this->_fecha_fin) {
223             return new Date ($this->_fecha_fin.' 00:00:00');
224         }
225         else {
226             return null;
227         }
228     }
229     // -X2C
230
231     // +X2C Operation 249
232     /**
233      * Devuelve la fecha de implementacion del sistema.
234      *
235      * @return &date
236      *
237      * @access public
238      */
239     function &getFechaImplementacion() // ~X2C
240     {
241         if ($this->_fecha_implementacion) {
242             return new Date ($this->_fecha_implementacion.' 00:00:00');
243         }
244         else {
245             return null;
246         }
247     }
248     // -X2C
249
250     // +X2C Operation 250
251     /**
252      * Devuelve el contacto del sistema.
253      *
254      * @return string
255      *
256      * @access public
257      */
258     function getContacto() // ~X2C
259     {
260         return $this->_contacto;
261     }
262     // -X2C
263
264     // +X2C Operation 251
265     /**
266      * Setea el nombre del sistema.
267      *
268      * @param  string $nombre Nombre del sistema.
269      *
270      * @return void
271      *
272      * @access public
273      */
274     function setNombre($nombre = null) // ~X2C
275     {
276         $this->_nombre = $nombre;
277     }
278     // -X2C
279
280     // +X2C Operation 252
281     /**
282      * Setea la descripcion del sistema.
283      *
284      * @param  string $descripcion Descripcion del sistema.
285      *
286      * @return void
287      *
288      * @access public
289      */
290     function setDescripcion($descripcion = null) // ~X2C
291     {
292         $this->_descripcion = $descripcion;
293     }
294     // -X2C
295
296     // +X2C Operation 253
297     /**
298      * Setea la fecha de inicio del sistema.
299      *
300      * @param  date $fecha Fecha de inicio del sistema
301      *
302      * @return void
303      *
304      * @access public
305      */
306     function setFechaInicio($fecha = null) // ~X2C
307     {
308         if ($fecha && $fecha != '0000-00-00') {
309             $this->_fecha_inicio = $fecha;
310         }
311         else {
312             $this->_fecha_inicio = null;
313         }
314     }
315     // -X2C
316
317     // +X2C Operation 254
318     /**
319      * Setea la fecha de finalizacion del sistema.
320      *
321      * @param  date $fecha Fecha de finalizacion del sistema.
322      *
323      * @return void
324      *
325      * @access public
326      */
327     function setFechaFin($fecha = null) // ~X2C
328     {
329         if ($fecha && $fecha != '0000-00-00') {
330             $this->_fecha_fin = $fecha;
331         }
332         else {
333             $this->_fecha_fin = null;
334         }
335     }
336     // -X2C
337
338     // +X2C Operation 255
339     /**
340      * Setea la fecha de implementacion del sistema.
341      *
342      * @param  date $fecha Fecha de implementacion del sistema.
343      *
344      * @return void
345      *
346      * @access public
347      */
348     function setFechaImplementacion($fecha = null) // ~X2C
349     {
350         if ($fecha && $fecha != '0000-00-00') {
351             $this->_fecha_implementacion = $fecha;
352         }
353         else {
354             $this->_fecha_implementacion = null;
355         }
356
357     }
358     // -X2C
359
360     // +X2C Operation 256
361     /**
362      * Setea el contacto del sistema.
363      *
364      * @param  string $contacto Texto con la informacion del contacto.
365      *
366      * @return void
367      *
368      * @access public
369      */
370     function setContacto($contacto = null) // ~X2C
371     {
372         $this->_contacto = $contacto;
373     }
374     // -X2C
375
376     // +X2C Operation 263
377     /**
378      * Obtiene los datos del sistema de la DB.
379      *
380      * @return void
381      *
382      * @access private
383      */
384     function _obtenerDatosDb() // ~X2C
385     {
386         $sql = include 'Sistema/consultas.php'; //Incluyo las consultas de este objeto nada mas.
387         $tmp = $sql['obtener_datos_sistema'].$sql['obtener_datos_sistema2'];
388         $dbh = $this->_db->prepare($tmp);
389         $tmp = array ($this->_id);
390         $res = $this->_db->execute($dbh,$tmp);        
391
392         if ($re  = $res->fetchRow(DB_FETCHMODE_ASSOC)) {
393
394             if (isset($re['nombre_sistema'])) {
395                 $this->setNombre($re['nombre_sistema']);
396             }
397             else {
398                 $this->setNombre();
399             }
400             if (isset($re['desc_sistema'])) {
401                $this->setDescripcion($re['desc_sistema']);
402             }
403             else {
404                 $this->setDescripcion();
405             }
406             if (isset($re['fecha_inicio'])) {
407                 $this->setFechaInicio($re['fecha_inicio']);
408             }
409             else {
410                 $this->setFechaInicio();
411             }
412             if (isset($re['fecha_fin'])) {
413                 $this->setFechaFin($re['fecha_fin']);
414             }
415             else {
416                 $this->setFechaFin();
417             }
418             if (isset($re['fecha_implementacion'])) {
419                 $this->setFechaImplementacion($re['fecha_implementacion']);
420             }
421             else {
422                 $this->setFechaImplementacion();
423             }
424             if (isset($re['contacto'])) {
425                 $this->setContacto($re['contacto']);
426             }
427             else {
428                 $this->setContacto();
429             }
430             if (isset($re['responsable'])) {
431                 $this->setresponsable($re['responsable']);
432             }
433             else {
434                 $this->setResponsable();
435             }
436      }
437     }
438     // -X2C
439
440     // +X2C Operation 288
441     /**
442      * Guarda la informacion del sistema en la base.
443      *
444      * @param  string $accion Accion a realizar. Grabar, modificar o eliminar
445      *
446      * @return void
447      *
448      * @access public
449      */
450     function guardarDatos($accion = grabar) // ~X2C
451     {
452         $sql = include 'Sistema/consultas.php'; //Incluyo las consultas de este objeto nada mas.
453
454         $idSistema            = ($this->_id != '')?$this->_id:null;
455         $fecha_inicio         = $this->getFechaInicio();
456         $fecha_fin            = $this->getFechaFin();
457         $fecha_implementacion = $this->getFechaImplementacion();
458
459         $accion = strtolower($accion);
460         switch ($accion)  {
461             case 'grabar':
462             case 'modificar':
463                 $tmp = $sql['insert_update_sistema'];
464                 $dbh = $this->_db->prepare($tmp);
465                 $tmp = array (  $idSistema,
466                                 $this->getNombre(),
467                                 $this->getDescripcion(),
468                                 $fecha_inicio         ? $fecha_inicio->format("%Y-%m-%d")         : null,
469                                 $fecha_fin            ? $fecha_fin->format("%Y-%m-%d")            : null,
470                                 $fecha_implementacion ? $fecha_implementacion->format("%Y-%m-%d") : null,
471                                 $this->getContacto(),
472                                 $_SESSION['samurai']['login']
473                         );
474                 $res = $this->_db->execute($dbh,$tmp);
475                 break;
476             case 'eliminar':
477                 $tmp = $sql['borrar_sistema'];
478                 $dbh = $this->_db->prepare($tmp);
479                 $tmp = array ($idSistema);
480                 $res = $this->_db->execute($dbh,$tmp);
481                 break;
482         }
483     }
484     // -X2C
485
486     // +X2C Operation 290
487     /**
488      * Devuelve el login del responsable de los ultimos cambios
489      *
490      * @return string
491      *
492      * @access public
493      */
494     function getResponsable() // ~X2C
495     {
496         return $this->_responsable;
497     }
498     // -X2C
499
500     // +X2C Operation 291
501     /**
502      * Setea el login del responsable de los ultimos cambios del sistema
503      *
504      * @param  string $responsable String con el login del responsable del cambio
505      *
506      * @return void
507      *
508      * @access public
509      */
510     function setResponsable($responsable = null) // ~X2C
511     {
512         $this->_responsable = $responsable;
513     }
514     // -X2C
515
516 } // -X2C Class :Sistema
517
518 ?>