]> git.llucax.com Git - mecon/samurai.git/blobdiff - sistema/local_lib/Permiso.php
- Terminados el Abm de Sistemas y el Abm de Permisos.
[mecon/samurai.git] / sistema / local_lib / Permiso.php
index a7951923584017192133f6679cb55551e9ecd75f..cc5137315c1a1d0f0a5a75924f13c2af65cab239 100644 (file)
@@ -24,7 +24,7 @@
 // $Rev$
 //
 
-#require_once 'PEAR.php';
+require_once 'PEAR.php';
 
 
 
@@ -39,7 +39,6 @@ class Permiso {
      * Identificador del permiso.
      *
      * @var    int $id
-     *
      * @access private
      */
     var $_id;
@@ -48,7 +47,6 @@ class Permiso {
      * Descripcion del permiso.
      *
      * @var    string $descripcion
-     *
      * @access private
      */
     var $_descripcion;
@@ -57,11 +55,87 @@ class Permiso {
      * Objeto Samurai_DB
      *
      * @var    Samurai_DB $db
-     *
      * @access private
      */
     var $_db;
 
+    /**
+     * Indentificador del ultimo que realizo alguna operacion sobre el permiso
+     *
+     * @var    string $responsable
+     * @access private
+     */
+    var $_responsable;
+
+    /**
+     * Gets Id.
+     *
+     * @return int
+     * @access public
+     */
+    function getId()
+    {
+        return $this->_id;
+    }
+    /**
+     * Sets Id.
+     *
+     * @param  int $id Id.
+     *
+     * @return void
+     * @access public
+     */
+    function setId($id)
+    {
+        $this->_id = $id;
+    }
+
+    /**
+     * Gets Descripcion.
+     *
+     * @return string
+     * @access public
+     */
+    function getDescripcion()
+    {
+        return $this->_descripcion;
+    }
+    /**
+     * Sets Descripcion.
+     *
+     * @param  string $descripcion Descripcion.
+     *
+     * @return void
+     * @access public
+     */
+    function setDescripcion($descripcion)
+    {
+        $this->_descripcion = $descripcion;
+    }
+
+    /**
+     * Gets Responsable.
+     *
+     * @return string
+     * @access public
+     */
+    function getResponsable()
+    {
+        return $this->_responsable;
+    }
+    /**
+     * Sets Responsable.
+     *
+     * @param  string $responsable Responsable.
+     *
+     * @return void
+     * @access public
+     */
+    function setResponsable($responsable)
+    {
+        $this->_responsable = $responsable;
+    }
+
     // ~X2C
 
     // +X2C Operation 259
@@ -72,67 +146,153 @@ class Permiso {
      * @param  int $id Identificador del permiso
      *
      * @return void
-     *
      * @access public
      */
-    function Permiso(&$db, $id = null) // ~X2C
+    function Permiso(&$db, $id = null)// ~X2C
     {
-         if (!is_null($id)) {
-            //BUSCAR INFO EN LA DB,
-            //SETEAR LAS VI
-        }
-        else {
-            //INICIALIZO LA VI
-            $this->_id          = null;
-            $this->_descripcion = null; 
+        $this->_db          = $db; 
+        $this->_id          = $id;
+        $this->setDescripcion(null); 
+        if (!is_null($id)) {
+            $this->_obtenerDatosDb();
         }
     }
     // -X2C
 
-    // +X2C Operation 260
+
+
+
+    // +X2C Operation 295
     /**
-     * Devuelve el identificador del permiso.
-     *
-     * @return int
+     * Obtiene de la base de datos la informacion del permiso
      *
-     * @access public
+     * @return void
+     * @access private
      */
-    function getId() // ~X2C
+    function _obtenerDatosDb()// ~X2C
     {
-        return $this->_id;
+        $sql = include 'Permiso/consultas.php'; //Incluyo las consultas de este objeto nada mas.
+        $tmp = $sql['obtener_datos_permiso'].$sql['obtener_datos_permiso2'];
+        $dbh = $this->_db->prepare($tmp);
+        $tmp = array ($this->_id);
+        $res = $this->_db->execute($dbh,$tmp);        
+
+        if ($re  = $res->fetchRow(DB_FETCHMODE_ASSOC)) {
+            if (isset($re['desc_permiso'])) {
+               $this->setDescripcion($re['desc_permiso']);
+            }
+            else {
+                $this->setDescripcion();
+            }
+            if (isset($re['responsable'])) {
+                $this->setResponsable($re['responsable']);
+            }
+            else {
+                $this->setResponsable();
+            }
+        }
     }
     // -X2C
 
-    // +X2C Operation 261
+
+
+    // +X2C Operation 316
     /**
-     * Devuelve la descripcion del permiso.
+     * Modifica la base de datos segun accion
      *
-     * @return string
+     * @param  string $accion Indica la accion a realizar
      *
+     * @return mixed
      * @access public
      */
-    function getDescripcion() // ~X2C
+    function guardarDatos($accion = grabar)// ~X2C
     {
-        return $this->_descripcion;
+        $accion = strtolower($accion); 
+        switch ($accion)  {   
+            case 'grabar':    
+                $res = $this->_grabarDb();            
+                break;        
+            case 'modificar': 
+                $res = $this->_modificarDb();         
+                break;        
+            case 'eliminar':  
+                $res = $this->_borrarDb();            
+                break;        
+        }
+        return $res;
     }
     // -X2C
 
-    // +X2C Operation 262
+    // +X2C Operation 317
     /**
-     * Setea la descripcion del permiso.
+     * Graba en base el permiso
      *
-     * @param  string $descripcion Descripcion del permiso.
+     * @return mixed
+     * @access protected
+     */
+    function _grabarDb()// ~X2C
+    {
+        $idPermiso = $this->_db->nextId('permiso');
+        $datos = array (
+                    'id_permiso'   => $idPermiso,
+                    'desc_permiso' => $this->getDescripcion(),
+                    'responsable'  => $this->getResponsable(),
+                );
+        return $this->_db->autoExecute('permiso', $datos, DB_AUTOQUERY_INSERT);
+    }
+    // -X2C
+
+    // +X2C Operation 318
+    /**
+     * Borra de la base el permiso
      *
-     * @return void
+     * @return mixed
+     * @access protected
+     */
+    function _borrarDb()// ~X2C
+    {
+        $sql = include 'Permiso/consultas.php';
+        $datos[] = $this->getId();
+        //Verifico que el permiso no tenga asociaciones
+        $tmp = $sql['verificar_asociaciones1'].$sql['obtener_datos_permiso2'];
+        $dbh = $this->_db->prepare($tmp);
+        $res = $this->_db->execute($dbh, $datos);
+        if (($re  = $res->fetchRow(DB_FETCHMODE_ASSOC)) && !$re['cuenta']) {
+            return new PEAR_Error("Hay sistemas asociados al permiso seleccionado");
+        }
+        $tmp = $sql['verificar_asociaciones2'].$sql['obtener_datos_permiso2'];
+        $dbh = $this->_db->prepare($tmp);
+        $res = $this->_db->execute($dbh, $datos);
+        if (($re  = $res->fetchRow(DB_FETCHMODE_ASSOC)) && !$re['cuenta'] == 0) {
+            return new PEAR_Error("Hay pefiles asociados al permiso seleccionado");
+        }
+        //
+        //Borro el permiso de la base 
+        $tmp = $sql['borrar_permiso'].$sql['obtener_datos_permiso2'];
+        $dbh = $this->_db->prepare($tmp);
+        return $this->_db->execute($dbh, $datos);
+        //
+    }
+    // -X2C
+
+    // +X2C Operation 319
+    /**
+     * Actualiza los datos del permiso
      *
-     * @access public
+     * @return mixed
+     * @access protected
      */
-    function setDescripcion($descripcion = null) // ~X2C
+    function _modificarDb()// ~X2C
     {
-        $this->_descripcion = $descripcion;
+        $datos = array (
+                    'id_permiso'   => $this->getId(),
+                    'desc_permiso' => $this->getDescripcion(),
+                    'responsable'  => $this->getResponsable(),
+                );
+        return $this->_db->autoExecute('permiso', $datos, DB_AUTOQUERY_UPDATE, 'id_permiso ='.$this->getId());
     }
     // -X2C
 
 } // -X2C Class :Permiso
 
-?>
\ No newline at end of file
+?>