]> git.llucax.com Git - mecon/samurai.git/blob - sistema/local_lib/Sistema.php
- Terminados el Abm de Sistemas y el Abm de Permisos.
[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      * @access private
43      */
44     var $_id;
45
46     /**
47      * Nombre del sistema.
48      *
49      * @var    string $nombre
50      * @access private
51      */
52     var $_nombre;
53
54     /**
55      * Descripcion del sistema.
56      *
57      * @var    string $descripcion
58      * @access private
59      */
60     var $_descripcion;
61
62     /**
63      * Fecha en la cual se inicio el sistema.
64      *
65      * @var    date $fecha_inicio
66      * @access private
67      */
68     var $_fecha_inicio;
69
70     /**
71      * Fecha en la cual se dio por terminado el desarrollo del sistema.
72      *
73      * @var    date $fecha_fin
74      * @access private
75      */
76     var $_fecha_fin;
77
78     /**
79      * Fecha de implementacion del sistema.
80      *
81      * @var    date $fecha_implementacion
82      * @access private
83      */
84     var $_fecha_implementacion;
85
86     /**
87      * Texto con los datos del o de los contacto/s en el area usuario.
88      *
89      * @var    string $contacto
90      * @access private
91      */
92     var $_contacto;
93
94     /**
95      * Objeto Samurai_DB
96      *
97      * @var    Samurai_DB $db
98      * @access private
99      */
100     var $_db;
101
102     /**
103      * Login del responsable de los ultimos cambios del sistema.
104      *
105      * @var    string $responsable
106      * @access private
107      */
108     var $_responsable;
109
110     /**
111      * Array asociativo (id - descripcion) con los permisos asociados al sistema.
112      *
113      * @var    array $permisos
114      * @access private
115      */
116     var $_permisos;
117
118     /**
119      * Array con los permisos asociados al sistema
120      *
121      * @var    array $asociaciones
122      * @access private
123      */
124     var $_asociaciones;
125
126     /**
127      * Gets Asociaciones.
128      *
129      * @return array
130      * @access public
131      */
132     function getAsociaciones()
133     {
134         return $this->_asociaciones;
135     }
136     /**
137      * Sets Asociaciones.
138      *
139      * @param  array $asociaciones Asociaciones.
140      *
141      * @return void
142      * @access public
143      */
144     function setAsociaciones($asociaciones)
145     {
146         $this->_asociaciones = $asociaciones;
147     }
148
149     // ~X2C
150
151     // +X2C Operation 243
152     /**
153      * Constructor. Si recibe como parametro el identificador busca en la DB los datos.
154      *
155      * @param  Samurai_DB &$db Objeto Conexion
156      * @param  int $id Identificador del sistema
157      *
158      * @return void
159      * @access public
160      */
161     function Sistema(&$db, $id = null)// ~X2C
162     {
163         $this->_db =& $db;
164         $this->_id = $id;
165         if (!is_null($id)) {
166             $this->_obtenerDatosDb();
167         }
168         else {
169             $this->setNombre();
170             $this->setDescripcion(); 
171             $this->setFechaInicio();
172             $this->setFechaFin();
173             $this->setFechaImplementacion();
174             $this->setContacto();
175             $this->setResponsable();
176             $this->setPermisos();
177         }
178     }
179     // -X2C
180
181     // +X2C Operation 244
182     /**
183      * Devuelve el identificador del sistema.
184      *
185      * @return int
186      * @access public
187      */
188     function getId()// ~X2C
189     {
190         return $this->_id;
191     }
192     // -X2C
193
194     // +X2C Operation 245
195     /**
196      * Devuelve el nombre del sistema.
197      *
198      * @return string
199      * @access public
200      */
201     function getNombre()// ~X2C
202     {
203         return $this->_nombre;
204     }
205     // -X2C
206
207     // +X2C Operation 246
208     /**
209      * Devuelve la descrpcion del sistema.
210      *
211      * @return string
212      * @access public
213      */
214     function getDescripcion()// ~X2C
215     {
216         return $this->_descripcion;
217     }
218     // -X2C
219
220     // +X2C Operation 247
221     /**
222      * Devuelve la fecha de inicio del sistema.
223      *
224      * @return &date
225      * @access public
226      */
227     function &getFechaInicio()// ~X2C
228     {        
229         if ($this->_fecha_inicio) {
230             return new Date ($this->_fecha_inicio.' 00:00:00');
231         }
232         else {
233             return null;
234         }
235     }
236     // -X2C
237
238     // +X2C Operation 248
239     /**
240      * Devuelve la fecha de finalizacion del sistema.
241      *
242      * @return &date
243      * @access public
244      */
245     function &getFechaFin()// ~X2C
246     {
247         if ($this->_fecha_fin) {
248             return new Date ($this->_fecha_fin.' 00:00:00');
249         }
250         else {
251             return null;
252         }
253     }
254     // -X2C
255
256     // +X2C Operation 249
257     /**
258      * Devuelve la fecha de implementacion del sistema.
259      *
260      * @return &date
261      * @access public
262      */
263     function &getFechaImplementacion()// ~X2C
264     {
265         if ($this->_fecha_implementacion) {
266             return new Date ($this->_fecha_implementacion.' 00:00:00');
267         }
268         else {
269             return null;
270         }
271     }
272     // -X2C
273
274     // +X2C Operation 250
275     /**
276      * Devuelve el contacto del sistema.
277      *
278      * @return string
279      * @access public
280      */
281     function getContacto()// ~X2C
282     {
283         return $this->_contacto;
284     }
285     // -X2C
286
287     // +X2C Operation 251
288     /**
289      * Setea el nombre del sistema.
290      *
291      * @param  string $nombre Nombre del sistema.
292      *
293      * @return void
294      * @access public
295      */
296     function setNombre($nombre = null)// ~X2C
297     {
298         $this->_nombre = $nombre;
299     }
300     // -X2C
301
302     // +X2C Operation 252
303     /**
304      * Setea la descripcion del sistema.
305      *
306      * @param  string $descripcion Descripcion del sistema.
307      *
308      * @return void
309      * @access public
310      */
311     function setDescripcion($descripcion = null)// ~X2C
312     {
313         $this->_descripcion = $descripcion;
314     }
315     // -X2C
316
317     // +X2C Operation 253
318     /**
319      * Setea la fecha de inicio del sistema.
320      *
321      * @param  date $fecha Fecha de inicio del sistema
322      *
323      * @return void
324      * @access public
325      */
326     function setFechaInicio($fecha = null)// ~X2C
327     {
328         if ($fecha && $fecha != '0000-00-00') {
329             $this->_fecha_inicio = $fecha;
330         }
331         else {
332             $this->_fecha_inicio = null;
333         }
334     }
335     // -X2C
336
337     // +X2C Operation 254
338     /**
339      * Setea la fecha de finalizacion del sistema.
340      *
341      * @param  date $fecha Fecha de finalizacion del sistema.
342      *
343      * @return void
344      * @access public
345      */
346     function setFechaFin($fecha = null)// ~X2C
347     {
348         if ($fecha && $fecha != '0000-00-00') {
349             $this->_fecha_fin = $fecha;
350         }
351         else {
352             $this->_fecha_fin = null;
353         }
354     }
355     // -X2C
356
357     // +X2C Operation 255
358     /**
359      * Setea la fecha de implementacion del sistema.
360      *
361      * @param  date $fecha Fecha de implementacion del sistema.
362      *
363      * @return void
364      * @access public
365      */
366     function setFechaImplementacion($fecha = null)// ~X2C
367     {
368         if ($fecha && $fecha != '0000-00-00') {
369             $this->_fecha_implementacion = $fecha;
370         }
371         else {
372             $this->_fecha_implementacion = null;
373         }
374
375     }
376     // -X2C
377
378     // +X2C Operation 256
379     /**
380      * Setea el contacto del sistema.
381      *
382      * @param  string $contacto Texto con la informacion del contacto.
383      *
384      * @return void
385      * @access public
386      */
387     function setContacto($contacto = null)// ~X2C
388     {
389         $this->_contacto = $contacto;
390     }
391     // -X2C
392
393     // +X2C Operation 263
394     /**
395      * Obtiene los datos del sistema de la DB.
396      *
397      * @return void
398      * @access private
399      */
400     function _obtenerDatosDb()// ~X2C
401     {
402         $sql = include 'Sistema/consultas.php'; //Incluyo las consultas de este objeto nada mas.
403         $tmp = $sql['obtener_datos_sistema'].$sql['obtener_datos_sistema2'];
404         $dbh = $this->_db->prepare($tmp);
405         $tmp = array ($this->getId());
406         $res = $this->_db->execute($dbh,$tmp);        
407
408         if ($re  = $res->fetchRow(DB_FETCHMODE_ASSOC)) {
409             if (isset($re['nombre_sistema'])) {
410                 $this->setNombre($re['nombre_sistema']);
411             }
412             else {
413                 $this->setNombre();
414             }
415             if (isset($re['desc_sistema'])) {
416                $this->setDescripcion($re['desc_sistema']);
417             }
418             else {
419                 $this->setDescripcion();
420             }
421             if (isset($re['fecha_inicio'])) {
422                 $this->setFechaInicio($re['fecha_inicio']);
423             }
424             else {
425                 $this->setFechaInicio();
426             }
427             if (isset($re['fecha_fin'])) {
428                 $this->setFechaFin($re['fecha_fin']);
429             }
430             else {
431                 $this->setFechaFin();
432             }
433             if (isset($re['fecha_implementacion'])) {
434                 $this->setFechaImplementacion($re['fecha_implementacion']);
435             }
436             else {
437                 $this->setFechaImplementacion();
438             }
439             if (isset($re['contacto'])) {
440                 $this->setContacto($re['contacto']);
441             }
442             else {
443                 $this->setContacto();
444             }
445             if (isset($re['responsable'])) {
446                 $this->setResponsable($re['responsable']);
447             }
448             else {
449                 $this->setResponsable();
450             }
451         }
452         $tmp = $sql['obtener_permisos'];
453         $tmp.= $sql['borrar_permisos2'];
454         $dbh = $this->_db->prepare($tmp);
455         $tmp = array ($this->getId(),'');
456         $res = $this->_db->execute($dbh,$tmp);
457         $tmp  = array();
458         $i = 0;
459         while ($re = $res->fetchRow(DB_FETCHMODE_ORDERED)) {
460             $tmp[] = $re['0'];
461             $i++;
462         }
463         $this->_permisos = $tmp;
464         $tmp = $sql['obtener_permisos'];
465         $tmp.= $sql['obtener_permisos2'];
466         $dbh = $this->_db->prepare($tmp);
467         $tmp = array ($this->getId());
468         $res = $this->_db->execute($dbh,$tmp);        
469         $tmp  = array();
470         $i = 0;
471         while ($re = $res->fetchRow(DB_FETCHMODE_ORDERED)) {
472             $tmp[$i]['id']  = $re['0'];
473             $tmp[$i]['obs'] = $re['1'];
474             $i++;
475         }
476         $this->_asociaciones = $tmp;
477     }
478     // -X2C
479
480     // +X2C Operation 288
481     /**
482      * Guarda la informacion del sistema en la base.
483      *
484      * @param  string $accion Accion a realizar. Grabar, modificar o eliminar
485      *
486      * @return void
487      * @access public
488      */
489     function guardarDatos($accion = grabar)// ~X2C
490     {
491         $accion = strtolower($accion);
492         switch ($accion)  {
493             case 'grabar':
494                 $this->_grabarDb();        
495                 break; 
496             case 'modificar':
497                 $this->_modificarDb();
498                 break;
499             case 'eliminar':
500                 $this->_borrarDb();
501                 break;
502         }
503     }
504     // -X2C
505
506     // +X2C Operation 290
507     /**
508      * Devuelve el login del responsable de los ultimos cambios
509      *
510      * @return string
511      * @access public
512      */
513     function getResponsable()// ~X2C
514     {
515         return $this->_responsable;
516     }
517     // -X2C
518
519     // +X2C Operation 291
520     /**
521      * Setea el login del responsable de los ultimos cambios del sistema
522      *
523      * @param  string $responsable String con el login del responsable del cambio
524      *
525      * @return void
526      * @access public
527      */
528     function setResponsable($responsable = null)// ~X2C
529     {
530         $this->_responsable = $responsable;
531     }
532     // -X2C
533
534     // +X2C Operation 301
535     /**
536      * Devuelve un array asociativo con los identificadores de los permisos
537      *
538      * @return array
539      * @access public
540      */
541     function getIdPermisos()// ~X2C
542     {
543         return $this->_permisos;
544     }
545     // -X2C
546
547     // +X2C Operation 302
548     /**
549      * Setea los permisos de un sistema
550      *
551      * @param  int $permisos Array asociativo con los permisos
552      *
553      * @return void
554      * @access public
555      */
556     function setPermisos($permisos = null)// ~X2C
557     {
558         $this->_permisos = $permisos;
559     }
560     // -X2C
561
562     // +X2C Operation 303
563     /**
564      * @return int
565      * @access public
566      */
567     function getMaxIdSistema()// ~X2C
568     {
569         $sql = include 'Sistema/consultas.php';
570         $dbh = $this->_db->prepare($sql['obtener_max_id_sistemas']);
571         $res = $this->_db->execute($dbh);
572         $re = $res->fetchrow(DB_FETCHMODE_ASSOC);
573         $res->free();
574         return $re['id_sistema']; 
575     }
576     // -X2C
577
578     // +X2C Operation 304
579     /**
580      * Graba los datos en la Base de Datos
581      *
582      * @return void
583      * @access private
584      */
585     function _grabarDb()// ~X2C
586     {
587         $idSistema = $this->_db->nextId('sistema');
588         $fecha_inicio         = $this->getFechaInicio();
589         $fecha_fin            = $this->getFechaFin();
590         $fecha_implementacion = $this->getFechaImplementacion();
591         //USO SECUENCIAS Y AUTOEXECUTE
592         //Grabo el sistema        
593         $datos = array(  
594                     'id_sistema'            => $idSistema,
595                     'nombre_sistema'        => $this->getNombre(),
596                     'desc_sistema'          => $this->getDescripcion(),
597                     'fecha_inicio'          => $fecha_inicio         ? $fecha_inicio->format("%Y-%m-%d")         : null, 
598                     'fecha_fin'             => $fecha_fin            ? $fecha_fin->format("%Y-%m-%d")            : null, 
599                     'fecha_implementacion'  => $fecha_implementacion ? $fecha_implementacion->format("%Y-%m-%d") : null,
600                     'contacto'              => $this->getContacto(),
601                     'responsable'           => $this->getResponsable(),
602                     'estado'                => 1
603                 );                
604         $res = $this->_db->autoExecute('sistema', $datos, DB_AUTOQUERY_INSERT);
605         if (PEAR::isError($res)) {
606             return $res;
607         }
608         //Grabo los permisos
609         $res = $this->_grabarPermisosDb($idSistema);
610         if (PEAR::isError($res)) {
611             return $res;
612         }
613     }
614     // -X2C
615
616     // +X2C Operation 305
617     /**
618      * Borra los datos de la base de datos
619      *
620      * @return void
621      * @access private
622      */
623     function _borrarDb()// ~X2C
624     {
625         $idSistema   = $this->getId();
626         $responsable = $this->getResponsable();
627         //Cambio el estado al sistema
628         $datos = array( 'responsable' => $responsable,
629                         'estado'      => 0
630                 );                
631         $res = $this->_db->autoExecute('sistema', $datos, DB_AUTOQUERY_UPDATE, 'id_sistema = '.$idSistema);
632         if (PEAR::isError($res)) {
633             return $res;
634         }
635         //Borro los permisos que tiene asignado el sistema
636         //Borro absolutamente todos los permisos que tiene asociado -> No hay vuelta a atras
637         $res = $this->_borrarPermisosDb($idSistema);
638         if (PEAR::isError($res)) {
639             return $res;
640         }
641     }
642     // -X2C
643
644     // +X2C Operation 306
645     /**
646      * Modifica los datos en base
647      *
648      * @return void
649      * @access private
650      */
651     function _modificarDb()// ~X2C
652     {
653         //Grabo las modificaciones al sistema
654         $idSistema            = $this->getId();
655         $fecha_inicio         = $this->getFechaInicio();
656         $fecha_fin            = $this->getFechaFin();
657         $fecha_implementacion = $this->getFechaImplementacion();
658         //USO SECUENCIAS Y AUTOEXECUTE
659         //Grabo el sistema        
660         $datos = array(  
661                     'nombre_sistema'        => $this->getNombre(),
662                     'desc_sistema'          => $this->getDescripcion(),
663                     'fecha_inicio'          => $fecha_inicio         ? $fecha_inicio->format("%Y-%m-%d")         : null, 
664                     'fecha_fin'             => $fecha_fin            ? $fecha_fin->format("%Y-%m-%d")            : null, 
665                     'fecha_implementacion'  => $fecha_implementacion ? $fecha_implementacion->format("%Y-%m-%d") : null,
666                     'contacto'              => $this->getContacto(),
667                     'responsable'           => $this->getResponsable(),
668                 );                
669         $res = $this->_db->autoExecute('sistema', $datos, DB_AUTOQUERY_UPDATE, 'id_sistema = '.$idSistema);
670         if (PEAR::isError($res)) {
671             return $res;
672         }
673         //Borro los permisos que no tengan observaciones
674         $res = $this->_borrarPermisosDb($idSistema, '');
675         if (PEAR::isError($res)) {
676             return $res;
677         }
678         //Grabo los permisos que selecciono
679         $res = $this->_grabarPermisosDb($idSistema);
680         if (PEAR::isError($res)) {
681             return $res;
682         }
683     }
684     // -X2C
685
686
687     // +X2C Operation 308
688     /**
689      * Graba los permisos del sistema en perm_sist
690      *
691      * @param  int $idSistema Identificador del sistema
692      *
693      * @return void
694      * @access private
695      */
696     function _grabarPermisosDb($idSistema)// ~X2C
697     {
698         $datos = array ('id_permiso','id_sistema','responsable');
699         $re = $this->_db->autoPrepare('perm_sist', $datos, DB_AUTOQUERY_INSERT);
700         if (isset($this->_permisos)) {
701             foreach ($this->_permisos as $permiso) {
702                 $datos = array ($permiso['0'], $idSistema, $this->getResponsable());
703                 $res = $this->_db->execute($re, $datos);
704                 if (PEAR::isError($res)) {
705                     return $res;
706                 }
707             }
708         }
709         
710     }
711     // -X2C
712
713     // +X2C Operation 309
714     /**
715      * Borra los permisos que tenga asociado el sistema segun el criterio de observaciones
716      *
717      * @param  int $idSistema Identificador del sistema
718      * @param  bool $observaciones Null u observacion de la asociacion a borrar
719      * @param  int $idPermiso Identificador del permiso a borrar
720      *
721      * @return void
722      * @access private
723      */
724     function _borrarPermisosDb($idSistema, $observaciones = null, $idPermiso = null)// ~X2C
725     {
726         $sql = include 'Sistema/consultas.php';
727         $datos[] = $idSistema;
728         $tmp = $sql['borrar_permisos']; 
729         if (isset($observaciones)) {
730             $tmp.= $sql['borrar_permisos2'];
731             $datos[] = $observaciones;
732         }
733         if (isset($idPermiso)) {
734             $tmp.= $sql['borrar_permisos3'];
735             $datos[] = $idPermiso;
736         }
737         $dbh = $this->_db->prepare($tmp);
738         $res = $this->_db->execute($dbh, $datos);
739         if (PEAR::isError($res)) {
740             return $res;
741         }
742     }
743     // -X2C
744
745
746     // +X2C Operation 312
747     /**
748      * Guarda en base las nuevas asociaciones que se van cargando y actualiza los datos del sistema.
749      *
750      * @param  int $idPermiso Identificador del Permiso
751      * @param  string $observacion Observacion a agregar
752      *
753      * @return bool
754      * @access public
755      */
756     function guardarAsociacion($idPermiso, $observacion = '')// ~X2C
757     {
758         $error = true;
759         if (!$this->_existeAsociacion($idPermiso, $observacion)) {    
760             //Guardo la asociacion
761             //Grabo el sistema        
762             $datos = array(  
763                         'id_permiso'    => $idPermiso,
764                         'id_sistema'    => $this->getId(),
765                         'observaciones' => $observacion,
766                         'responsable'   => $this->getResponsable(),
767                     );                
768             $res = $this->_db->autoExecute('perm_sist', $datos, DB_AUTOQUERY_INSERT);
769             //Recargo los datos del sistema
770             $this->_obtenerDatosDb();
771             $error = false;
772         }
773         return $error;
774     }
775     // -X2C
776
777     // +X2C Operation 313
778     /**
779      * Elimina una asociacion de la base, y actualiza los datos del sistema.
780      *
781      * @param  int $idPermiso Identificador del permiso a borrar
782      * @param  string $observacion Observacion de la asociacion a borrar (Puede ser vacia)
783      *
784      * @return bool
785      * @access public
786      */
787     function eliminarAsociacion($idPermiso, $observacion = '')// ~X2C
788     {
789         $error = false;
790         //Elimino la asociacion
791         $this->_borrarPermisosDb($this->getId(), $observacion, $idPermiso);
792         //Recargo los datos del sistema
793         $this->_obtenerDatosDb();
794         return $error;
795     }
796     // -X2C
797
798     // +X2C Operation 314
799     /**
800      * Actualiza los datos de la asociacion en la base de datos.
801      *
802      * @param  int $idPermiso Identificador del permiso
803      * @param  int $idPermiso_ant Identificador del permiso anterior
804      * @param  string $observacion Observacion a insertar
805      * @param  string $obs_ant Observacion anterior
806      *
807      * @return bool
808      * @access public
809      */
810     function modificarAsociacion($idPermiso, $idPermiso_ant, $observacion = '', $obs_ant = '')// ~X2C
811     {
812         $error = true;
813         //Busco la nueva asociacion
814         if (!$this->_existeAsociacion($idPermiso, $observacion)) {    
815             //Actualizo la asociacion
816              $datos = array(  
817                         'id_permiso'    => $idPermiso,
818                         'id_sistema'    => $this->getId(),
819                         'observaciones' => $observacion,
820                         'responsable'   => $this->getResponsable(),
821                     );                
822             $this->_db->autoExecute('perm_sist', 
823                                     $datos, 
824                                     DB_AUTOQUERY_UPDATE, 
825                                     'id_sistema = '.$this->getId().' AND id_permiso = '.$idPermiso_ant.' AND observaciones =\''.$obs_ant.'\'');
826
827             //Recargo los datos del sistema
828             $this->_obtenerDatosDb();
829             $error = false;
830         }
831         return $error;
832     }
833     // -X2C
834
835     // +X2C Operation 315
836     /**
837      * Chequea si existe la asociacion
838      *
839      * @param  int $idPermiso Id del permiso a chequear
840      * @param  string $observacion Observacion a chequear
841      *
842      * @return bool
843      * @access private
844      */
845     function _existeAsociacion($idPermiso, $observacion)// ~X2C
846     {
847         $sql = include 'Sistema/consultas.php'; //Incluyo las consultas de este objeto nada mas.
848         $tmp = $sql['obtener_permisos'].$sql['obtener_permisos3'].$sql['obtener_permisos4'];
849         $dbh = $this->_db->prepare($tmp);
850         $tmp = array ($this->getId(),$idPermiso,$observacion);
851         $res = $this->_db->execute($dbh,$tmp);
852         $re  = $res->fetchRow();      
853
854         if (is_null($re)) {
855             return false;
856         }
857         else {
858             return true;
859         }
860     }
861     // -X2C
862
863 } // -X2C Class :Sistema
864
865 ?>