]> git.llucax.com Git - mecon/samurai.git/blobdiff - lib/SAMURAI/Permiso.php
Se embellecio el codigo de SAMURAI_Sistema.
[mecon/samurai.git] / lib / SAMURAI / Permiso.php
index 4bcf5e45a3d3e8674343b4fcec673d5e99ad4773..faca0f8ca6c428a7311ce7a4f2ee8a743dd11160 100644 (file)
@@ -190,7 +190,6 @@ class SAMURAI_Permiso {
     // -X2C
 
 
     // -X2C
 
 
-
     // +X2C Operation 316
     /**
      * Modifica la base de datos segun accion
     // +X2C Operation 316
     /**
      * Modifica la base de datos segun accion
@@ -233,7 +232,7 @@ class SAMURAI_Permiso {
                     'desc_permiso' => $this->getDescripcion(),
                     'responsable'  => $this->getResponsable(),
                 );
                     'desc_permiso' => $this->getDescripcion(),
                     'responsable'  => $this->getResponsable(),
                 );
-        return $this->_db->autoExecute('permiso', $datos, DB_AUTOQUERY_INSERT);
+        return $this->_db->autoExecute('samurai.permiso', $datos, DB_AUTOQUERY_INSERT);
     }
     // -X2C
 
     }
     // -X2C
 
@@ -263,7 +262,7 @@ class SAMURAI_Permiso {
         }
         //
         //Borro el permiso de la base 
         }
         //
         //Borro el permiso de la base 
-        $tmp = $sql['borrar_permiso'].$sql['obtener_datos_permiso2'];
+        $tmp = $sql['borrar_permiso'];
         $dbh = $this->_db->prepare($tmp);
         return $this->_db->execute($dbh, $datos);
         //
         $dbh = $this->_db->prepare($tmp);
         return $this->_db->execute($dbh, $datos);
         //
@@ -284,7 +283,7 @@ class SAMURAI_Permiso {
                     'desc_permiso' => $this->getDescripcion(),
                     'responsable'  => $this->getResponsable(),
                 );
                     'desc_permiso' => $this->getDescripcion(),
                     'responsable'  => $this->getResponsable(),
                 );
-        return $this->_db->autoExecute('permiso', $datos, DB_AUTOQUERY_UPDATE, 'id_permiso ='.$this->getId());
+        return $this->_db->autoExecute('samurai.permiso', $datos, DB_AUTOQUERY_UPDATE, 'id_permiso ='.$this->getId());
     }
     // -X2C
 
     }
     // -X2C
 
@@ -294,18 +293,25 @@ class SAMURAI_Permiso {
      * Devuleve un array con los identificadores de todos los permisos.
      *
      * @param  SAMURAI_DB &$db Base de Datos
      * Devuleve un array con los identificadores de todos los permisos.
      *
      * @param  SAMURAI_DB &$db Base de Datos
+     * @param  int $id_sistema Identificador del sistema
      *
      * @return array(int)
      * @access protected
      * @static
      */
      *
      * @return array(int)
      * @access protected
      * @static
      */
-    function _getIdPermisos(&$db) // ~X2C
+    function _getIdPermisos(&$db, $id_sistema = null) // ~X2C
     {
         //OBTENGO LOS ID DE LA BASE
         $rta = array();
     {
         //OBTENGO LOS ID DE LA BASE
         $rta = array();
+        $tmp = array();
         $sql = parse_ini_file(dirname(__FILE__) . '/Permiso/consultas.ini', true);
         $sql = parse_ini_file(dirname(__FILE__) . '/Permiso/consultas.ini', true);
-        $dbh = $db->prepare($sql['obtener_datos_permiso']);
-        $tmp[] = $_SESSION['samurai']['id_sistema'];
+        $consulta = $sql['obtener_datos_permiso'];
+        if ($id_sistema) {
+            $consulta.= $sql['obtener_datos_permiso3'];
+            $tmp[] = $id_sistema;
+        }
+        $consulta.= $sql['obtener_datos_permiso5'];
+        $dbh = $db->prepare($consulta);
         $res = $db->execute($dbh, $tmp);
         while ($re = $res->fetchrow(DB_FETCHMODE_ASSOC)) {
             array_push($rta,$re['id_permiso']);
         $res = $db->execute($dbh, $tmp);
         while ($re = $res->fetchrow(DB_FETCHMODE_ASSOC)) {
             array_push($rta,$re['id_permiso']);
@@ -320,16 +326,17 @@ class SAMURAI_Permiso {
      * Devuelve un array asociativo en donde la clave es el identificador y el valor es la descripcion del permiso
      *
      * @param  SAMURAI_DB &$db Base de Datos
      * Devuelve un array asociativo en donde la clave es el identificador y el valor es la descripcion del permiso
      *
      * @param  SAMURAI_DB &$db Base de Datos
+     * @param  int $id_sistema Identificador del sistema
      *
      * @return array()
      * @access public
      * @static
      */
      *
      * @return array()
      * @access public
      * @static
      */
-    function getArrayPermisos(&$db) // ~X2C
+    function getArrayPermisos(&$db, $id_sistema = null) // ~X2C
     {
         //FORECHEO LO QUE ME DEVUELVA GET PERMISOS
         $rta = array ();
     {
         //FORECHEO LO QUE ME DEVUELVA GET PERMISOS
         $rta = array ();
-        foreach (SAMURAI_Permiso::getPermisos($db) as $permiso) {
+        foreach (SAMURAI_Permiso::getPermisos($db, $id_sistema) as $permiso) {
             $rta[$permiso->getId()] = $permiso->getDescripcion();
         }
         return $rta;
             $rta[$permiso->getId()] = $permiso->getDescripcion();
         }
         return $rta;
@@ -341,15 +348,16 @@ class SAMURAI_Permiso {
      * Devuelve el array de permisos
      *
      * @param  SAMURAI_DB &$db Base de Datos
      * Devuelve el array de permisos
      *
      * @param  SAMURAI_DB &$db Base de Datos
+     * @param  int $id_sistema Identificador del sistema
      *
      * @return array(Permiso)
      * @access public
      * @static
      */
      *
      * @return array(Permiso)
      * @access public
      * @static
      */
-    function getPermisos(&$db) // ~X2C
+    function getPermisos(&$db, $id_sistema = null) // ~X2C
     {
         $rta = array ();
     {
         $rta = array ();
-        foreach (SAMURAI_Permiso::_getIdPermisos($db) as $id) {
+        foreach (SAMURAI_Permiso::_getIdPermisos($db, $id_sistema) as $id) {
             $tmp = new SAMURAI_Permiso($db,$id);
             array_push($rta, $tmp);
         }
             $tmp = new SAMURAI_Permiso($db,$id);
             array_push($rta, $tmp);
         }
@@ -357,6 +365,66 @@ class SAMURAI_Permiso {
     }
     // -X2C
 
     }
     // -X2C
 
+    // +X2C Operation 364
+    /**
+     * Devuelve true si esta asociado a algun sistema, caso contrario devuelve false
+     *
+     * @return bool
+     * @access public
+     */
+    function asociadoASistema() // ~X2C
+    {
+        $rta = array();
+        $tmp = array();
+        $sql = parse_ini_file(dirname(__FILE__) . '/Permiso/consultas.ini', true);
+        $tmp = $sql['verificar_asociaciones1'].$sql['obtener_datos_permiso2'];
+        $dbh = $this->_db->prepare($tmp);
+        $res = $this->_db->execute($dbh, array ($this->getId()));
+        if (($re  = $res->fetchRow(DB_FETCHMODE_ASSOC)) && !$re['cuenta'] == 0) {
+            return true;
+        }
+        else {
+            return false;
+        }
+    }
+    // -X2C
+
+    /**
+     * Metodo que devuelve los datos necesarios para listar permisos.
+     *
+     * @param SAMURAI_DB &$db Base de Datos
+     * @param int $id_sistema Identificador de un sistema en particular.
+     * 
+     * @return mixed
+     * @access public
+     * @static
+     */
+    function getPermisosPager(&$db, $id_sistema = null) {
+
+        //@TODO REEMPLAZA A getPermisos
+        
+        if ($id_sistema) {
+            $sql = '
+                SELECT p.id_permiso, p.desc_permiso, p.responsable
+                FROM samurai.permiso AS p, samurai.perm_sist AS ps
+                WHERE ps.id_sistema = '. $id_sistema .' 
+                AND ps.id_permiso = p.id_permiso
+                ORDER BY p.desc_permiso
+                ';
+        }
+        else {
+            $sql = '
+                SELECT p.id_permiso, p.desc_permiso, NOT count(ps.id_sistema) AS cuenta
+                FROM samurai.permiso AS p 
+                    LEFT JOIN samurai.perm_sist AS ps 
+                        ON (p.id_permiso = ps.id_permiso) 
+                GROUP BY p.id_permiso, p.desc_permiso
+                ORDER BY p.desc_permiso
+                ';
+        }
+        return $db->query ($sql);
+    }
+    
 } // -X2C Class :SAMURAI_Permiso
 
 ?>
 } // -X2C Class :SAMURAI_Permiso
 
 ?>