]> git.llucax.com Git - mecon/samurai.git/blob - sistema/local_lib/Sistema.php
- ABM de sistemas terminado.
[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
606         if (DB::isError($res)) {
607             trigger_error('Error al tratar de insertar el sistema -> '.$res, E_USER_ERROR);
608         }
609         
610         //Grabo los permisos
611         $this->_grabarPermisosDb($idSistema);
612     }
613     // -X2C
614
615     // +X2C Operation 305
616     /**
617      * Borra los datos de la base de datos
618      *
619      * @return void
620      * @access private
621      */
622     function _borrarDb()// ~X2C
623     {
624         $idSistema   = $this->getId();
625         $responsable = $this->getResponsable();
626         //Cambio el estado al sistema
627         $datos = array( 'responsable' => $responsable,
628                         'estado'      => 0
629                 );                
630
631         $res = $this->_db->autoExecute('sistema', $datos, DB_AUTOQUERY_UPDATE, 'id_sistema = '.$idSistema);
632         if (DB::isError($res)) {
633             trigger_error('Error en sistema -> '.$res, E_USER_ERROR);
634         }
635         
636         //Borro los permisos que tiene asignado el sistema
637         //Borro absolutamente todos los permisos que tiene asociado -> No hay vuelta a atras
638         $this->_borrarPermisosDb($idSistema);
639     }
640     // -X2C
641
642     // +X2C Operation 306
643     /**
644      * Modifica los datos en base
645      *
646      * @return void
647      * @access private
648      */
649     function _modificarDb()// ~X2C
650     {
651         //Grabo las modificaciones al sistema
652         $idSistema            = $this->getId();
653         $fecha_inicio         = $this->getFechaInicio();
654         $fecha_fin            = $this->getFechaFin();
655         $fecha_implementacion = $this->getFechaImplementacion();
656         //USO SECUENCIAS Y AUTOEXECUTE
657         //Grabo el sistema        
658         $datos = array(  
659                     'nombre_sistema'        => $this->getNombre(),
660                     'desc_sistema'          => $this->getDescripcion(),
661                     'fecha_inicio'          => $fecha_inicio         ? $fecha_inicio->format("%Y-%m-%d")         : null, 
662                     'fecha_fin'             => $fecha_fin            ? $fecha_fin->format("%Y-%m-%d")            : null, 
663                     'fecha_implementacion'  => $fecha_implementacion ? $fecha_implementacion->format("%Y-%m-%d") : null,
664                     'contacto'              => $this->getContacto(),
665                     'responsable'           => $this->getResponsable(),
666                 );                
667         $res = $this->_db->autoExecute('sistema', $datos, DB_AUTOQUERY_UPDATE, 'id_sistema = '.$idSistema);
668
669         if (DB::isError($res)) {
670             trigger_error('Error al tratar de insertar el sistema -> '.var_dump($res), E_USER_ERROR);
671         }
672         //Borro los permisos que no tengan observaciones
673         $this->_borrarPermisosDb($idSistema, '');
674         //Grabo los permisos que selecciono
675         $this->_grabarPermisosDb($idSistema);
676     }
677     // -X2C
678
679
680     // +X2C Operation 308
681     /**
682      * Graba los permisos del sistema en perm_sist
683      *
684      * @param  int $idSistema Identificador del sistema
685      *
686      * @return void
687      * @access private
688      */
689     function _grabarPermisosDb($idSistema)// ~X2C
690     {
691         $datos = array ('id_permiso','id_sistema','responsable');
692         $re = $this->_db->autoPrepare('perm_sist', $datos, DB_AUTOQUERY_INSERT);
693         if (isset($this->_permisos)) {
694             foreach ($this->_permisos as $permiso) {
695                 $datos = array ($permiso['0'], $idSistema, $this->getResponsable());
696                 $res = $this->_db->execute($re, $datos);
697                 if (DB::isError($res)) {
698                     trigger_error('Error en perm_sist -> '.var_dump($res), E_USER_ERROR);
699                 }
700             }
701         }
702         
703     }
704     // -X2C
705
706     // +X2C Operation 309
707     /**
708      * Borra los permisos que tenga asociado el sistema segun el criterio de observaciones
709      *
710      * @param  int $idSistema Identificador del sistema
711      * @param  bool $observaciones Null u observacion de la asociacion a borrar
712      * @param  int $idPermiso Identificador del permiso a borrar
713      *
714      * @return void
715      * @access private
716      */
717     function _borrarPermisosDb($idSistema, $observaciones = null, $idPermiso = null)// ~X2C
718     {
719         $sql = include 'Sistema/consultas.php';
720         $datos[] = $idSistema;
721         $tmp = $sql['borrar_permisos']; 
722         if (isset($observaciones)) {
723             $tmp.= $sql['borrar_permisos2'];
724             $datos[] = $observaciones;
725         }
726         if (isset($idPermiso)) {
727             $tmp.= $sql['borrar_permisos3'];
728             $datos[] = $idPermiso;
729         }
730         $dbh = $this->_db->prepare($tmp);
731         $res = $this->_db->execute($dbh, $datos);
732         if (DB::isError($res)) {
733             trigger_error('Error al tratar de borrar la relacion entre permiso y sistema -> '.var_dump($res), E_USER_ERROR);
734         }
735     }
736     // -X2C
737
738
739     // +X2C Operation 312
740     /**
741      * Guarda en base las nuevas asociaciones que se van cargando y actualiza los datos del sistema.
742      *
743      * @param  int $idPermiso Identificador del Permiso
744      * @param  string $observacion Observacion a agregar
745      *
746      * @return bool
747      * @access public
748      */
749     function guardarAsociacion($idPermiso, $observacion = '')// ~X2C
750     {
751         $error = true;
752         if (!$this->_existeAsociacion($idPermiso, $observacion)) {    
753             //Guardo la asociacion
754             //Grabo el sistema        
755             $datos = array(  
756                         'id_permiso'    => $idPermiso,
757                         'id_sistema'    => $this->getId(),
758                         'observaciones' => $observacion,
759                         'responsable'   => $this->getResponsable(),
760                     );                
761             $res = $this->_db->autoExecute('perm_sist', $datos, DB_AUTOQUERY_INSERT);
762             //Recargo los datos del sistema
763             $this->_obtenerDatosDb();
764             $error = false;
765         }
766         return $error;
767     }
768     // -X2C
769
770     // +X2C Operation 313
771     /**
772      * Elimina una asociacion de la base, y actualiza los datos del sistema.
773      *
774      * @param  int $idPermiso Identificador del permiso a borrar
775      * @param  string $observacion Observacion de la asociacion a borrar (Puede ser vacia)
776      *
777      * @return bool
778      * @access public
779      */
780     function eliminarAsociacion($idPermiso, $observacion = '')// ~X2C
781     {
782         $error = false;
783         //Elimino la asociacion
784         $this->_borrarPermisosDb($this->getId(), $observacion, $idPermiso);
785         //Recargo los datos del sistema
786         $this->_obtenerDatosDb();
787         return $error;
788     }
789     // -X2C
790
791     // +X2C Operation 314
792     /**
793      * Actualiza los datos de la asociacion en la base de datos.
794      *
795      * @param  int $idPermiso Identificador del permiso
796      * @param  int $idPermiso_ant Identificador del permiso anterior
797      * @param  string $observacion Observacion a insertar
798      * @param  string $obs_ant Observacion anterior
799      *
800      * @return bool
801      * @access public
802      */
803     function modificarAsociacion($idPermiso, $idPermiso_ant, $observacion = '', $obs_ant = '')// ~X2C
804     {
805         $error = true;
806         //Busco la nueva asociacion
807         if (!$this->_existeAsociacion($idPermiso, $observacion)) {    
808             //Actualizo la asociacion
809              $datos = array(  
810                         'id_permiso'    => $idPermiso,
811                         'id_sistema'    => $this->getId(),
812                         'observaciones' => $observacion,
813                         'responsable'   => $this->getResponsable(),
814                     );                
815             $this->_db->autoExecute('perm_sist', 
816                                     $datos, 
817                                     DB_AUTOQUERY_UPDATE, 
818                                     'id_sistema = '.$this->getId().' AND id_permiso = '.$idPermiso_ant.' AND observaciones =\''.$obs_ant.'\'');
819
820             //Recargo los datos del sistema
821             $this->_obtenerDatosDb();
822             $error = false;
823         }
824         return $error;
825     }
826     // -X2C
827
828     // +X2C Operation 315
829     /**
830      * Chequea si existe la asociacion
831      *
832      * @param  int $idPermiso Id del permiso a chequear
833      * @param  string $observacion Observacion a chequear
834      *
835      * @return bool
836      * @access private
837      */
838     function _existeAsociacion($idPermiso, $observacion)// ~X2C
839     {
840         $sql = include 'Sistema/consultas.php'; //Incluyo las consultas de este objeto nada mas.
841         $tmp = $sql['obtener_permisos'].$sql['obtener_permisos3'].$sql['obtener_permisos4'];
842         $dbh = $this->_db->prepare($tmp);
843         $tmp = array ($this->getId(),$idPermiso,$observacion);
844         $res = $this->_db->execute($dbh,$tmp);
845         $re  = $res->fetchRow();      
846
847         if (is_null($re)) {
848             return false;
849         }
850         else {
851             return true;
852         }
853     }
854     // -X2C
855
856 } // -X2C Class :Sistema
857
858 ?>