]> git.llucax.com Git - mecon/samurai.git/blobdiff - lib/SAMURAI/Perfil.php
Agrego las lineas de las consultas.
[mecon/samurai.git] / lib / SAMURAI / Perfil.php
index 4a7edf03c0eb15ad3ea38e1a9f84e73ba3c2e421..3ddfe55d21d769feed741731864aa404e4fbe66a 100644 (file)
@@ -29,6 +29,7 @@
 // +X2C Class 208 :SAMURAI_Perfil
 /**
  * Clase para el manejo de los perfies.
 // +X2C Class 208 :SAMURAI_Perfil
 /**
  * Clase para el manejo de los perfies.
+@see \ref page_samurai_html_perfil
  *
  * @access public
  */
  *
  * @access public
  */
@@ -50,16 +51,6 @@ class SAMURAI_Perfil {
     var $_descripcion;
 
     /**
     var $_descripcion;
 
     /**
-     * Tipo de perfil. E = Externo. I = Interno. D = Dios.
-     *
-     * @var    string $tipo
-     * @access protected
-     */
-    var $_tipo;
-
-    /**
-     * Objeto Samurai_DB
-     *
      * @var    SAMURAI_DB $db
      * @access protected
      */
      * @var    SAMURAI_DB $db
      * @access protected
      */
@@ -82,6 +73,8 @@ class SAMURAI_Perfil {
     var $_permisos;
 
     /**
     var $_permisos;
 
     /**
+     * Identificador del sistema en el cual se esta trabajando
+     *
      * @var    int $idSistema
      * @access protected
      */
      * @var    int $idSistema
      * @access protected
      */
@@ -133,29 +126,6 @@ class SAMURAI_Perfil {
         $this->_descripcion = $descripcion;
     }
 
         $this->_descripcion = $descripcion;
     }
 
-    /**
-     * Gets Tipo.
-     *
-     * @return string
-     * @access public
-     */
-    function getTipo()
-    {
-        return $this->_tipo;
-    }
-    /**
-     * Sets Tipo.
-     *
-     * @param  string $tipo Tipo.
-     *
-     * @return void
-     * @access public
-     */
-    function setTipo($tipo)
-    {
-        $this->_tipo = $tipo;
-    }
-
     /**
      * Gets Responsable.
      *
     /**
      * Gets Responsable.
      *
@@ -218,18 +188,16 @@ class SAMURAI_Perfil {
     function SAMURAI_Perfil(&$db, $id = null, $idSistema = null) // ~X2C
     {
         $this->_db = $db;
     function SAMURAI_Perfil(&$db, $id = null, $idSistema = null) // ~X2C
     {
         $this->_db = $db;
+        $this->_idSistema = $idSistema;
         if (!is_null($id)) {
             $this->setId($id);
         if (!is_null($id)) {
             $this->setId($id);
-            $this->_idSistema = $idSistema;
             $this->_obtenerDatosDb();
         }
         else {
             //INICIALIZO LA VI
             $this->_id          = null;
             $this->_descripcion = null; 
             $this->_obtenerDatosDb();
         }
         else {
             //INICIALIZO LA VI
             $this->_id          = null;
             $this->_descripcion = null; 
-            $this->_tipo        = null;
             $this->_permisos    = null;
             $this->_permisos    = null;
-            $this->_idSistema   = null;
         }
     }
     // -X2C
         }
     }
     // -X2C
@@ -262,13 +230,6 @@ class SAMURAI_Perfil {
                 $this->setResponsable();
             }
         }
                 $this->setResponsable();
             }
         }
-        //OBTENGO EL TIPO DE PERFIL
-        $tmp = $sql['verificar_asociacion'];
-        $dbh = $this->_db->prepare($tmp);
-        $tmp = array ($this->getId(), $this->_idSistema);
-        $res = $this->_db->execute($dbh,$tmp);        
-        $re = $res->fetchrow(DB_FETCHMODE_ASSOC);
-        $this->setTipo($re['tipo_perfil']);
 
         //OBTENGO LOS PERMISOS QUE TIENE ASIGNADO EL PERFIL DESDE PERM_PERFIL_SIST
         $tmp = $sql['obtener_permisos'];
 
         //OBTENGO LOS PERMISOS QUE TIENE ASIGNADO EL PERFIL DESDE PERM_PERFIL_SIST
         $tmp = $sql['obtener_permisos'];
@@ -292,7 +253,7 @@ class SAMURAI_Perfil {
      * @return mixed
      * @access public
      */
      * @return mixed
      * @access public
      */
-    function guardarDatos($accion = grabar) // ~X2C
+    function guardarDatos($accion = 'grabar') // ~X2C
     {
         $accion = strtolower($accion); 
         switch ($accion)  {   
     {
         $accion = strtolower($accion); 
         switch ($accion)  {   
@@ -341,7 +302,7 @@ class SAMURAI_Perfil {
                         'desc_perfil' => $this->getDescripcion(),
                         'responsable' => $this->getResponsable(),
                     );
                         'desc_perfil' => $this->getDescripcion(),
                         'responsable' => $this->getResponsable(),
                     );
-            $res = $this->_db->autoExecute('perfil', $datos, DB_AUTOQUERY_INSERT);
+            $res = $this->_db->autoExecute('samurai.perfil', $datos, DB_AUTOQUERY_INSERT);
             if (PEAR::isError($res)) {
                 return $res;
             }
             if (PEAR::isError($res)) {
                 return $res;
             }
@@ -349,10 +310,9 @@ class SAMURAI_Perfil {
         //GRABO EN PERFIL_SIST
         $datos = array ('id_perfil'   => $this->getId(),
                         'id_sistema'  => $this->_idSistema,
         //GRABO EN PERFIL_SIST
         $datos = array ('id_perfil'   => $this->getId(),
                         'id_sistema'  => $this->_idSistema,
-                        'tipo_perfil' => $this->getTipo(),
                         'responsable' => $this->getResponsable(),
                     );
                         'responsable' => $this->getResponsable(),
                     );
-        $res = $this->_db->autoExecute('perfil_sist', $datos, DB_AUTOQUERY_INSERT);
+        $res = $this->_db->autoExecute('samurai.perfil_sist', $datos, DB_AUTOQUERY_INSERT);
     }
     // -X2C
 
     }
     // -X2C
 
@@ -417,10 +377,9 @@ class SAMURAI_Perfil {
     {
         //Modifico la tabla perfil_sist
         $datos = array (
     {
         //Modifico la tabla perfil_sist
         $datos = array (
-                    'tipo_perfil' => $this->getTipo(),
                     'responsable' => $this->getResponsable(),
         );
                     'responsable' => $this->getResponsable(),
         );
-        $res = $this->_db->autoExecute('perfil_sist', $datos,
+        $res = $this->_db->autoExecute('samurai.perfil_sist', $datos,
                 DB_AUTOQUERY_UPDATE, 'id_perfil ='.$this->getId().' AND
                 id_sistema='.$this->_idSistema);
         if (PEAR::isError($res)) {         
                 DB_AUTOQUERY_UPDATE, 'id_perfil ='.$this->getId().' AND
                 id_sistema='.$this->_idSistema);
         if (PEAR::isError($res)) {         
@@ -458,15 +417,23 @@ class SAMURAI_Perfil {
         //OBTENGO LOS ID DE LA BASE
         $rta = array();
         $sql = parse_ini_file(dirname(__FILE__) . '/Perfil/consultas.ini', true);
         //OBTENGO LOS ID DE LA BASE
         $rta = array();
         $sql = parse_ini_file(dirname(__FILE__) . '/Perfil/consultas.ini', true);
-        $consulta = $sql['obtener_id_perfiles'];
         if ($id_sistema) {
         if ($id_sistema) {
+            $consulta = $sql['obtener_id_perfiles'];
             $consulta.= $sql['obtener_id_perfiles3'];
         }
             $consulta.= $sql['obtener_id_perfiles3'];
         }
-        if ($filtro) { //Verifico si se paso un filtro
+        else {
+            $consulta = $sql['obtener_id_perfiles5'];
+        }
+        if ($filtro && $id_sistema) { //Verifico si se paso un filtro
             $tmp2 = $consulta.$sql['obtener_id_perfiles2'];
             //Reemplazo el filtro por ##?##
             $consulta = ereg_replace ('##FILTRO##', $filtro, $tmp2);
         }
             $tmp2 = $consulta.$sql['obtener_id_perfiles2'];
             //Reemplazo el filtro por ##?##
             $consulta = ereg_replace ('##FILTRO##', $filtro, $tmp2);
         }
+        elseif ($filtro) {
+            $tmp2 = $consulta.$sql['obtener_id_perfiles6'];
+            //Reemplazo el filtro por ##?##
+            $consulta = ereg_replace ('##FILTRO##', $filtro, $tmp2);
+        }
         $consulta.= $sql['obtener_id_perfiles4'];
         $dbh = $db->prepare($consulta);
         if ($id_sistema) { 
         $consulta.= $sql['obtener_id_perfiles4'];
         $dbh = $db->prepare($consulta);
         if ($id_sistema) { 
@@ -486,6 +453,8 @@ class SAMURAI_Perfil {
 
     // +X2C Operation 339
     /**
 
     // +X2C Operation 339
     /**
+     * Devuelve un array de perfiles
+     *
      * @param  SAMURAI_DB &$db Base de datos
      * @param  string $filtro Filtro por nombre del perfil
      * @param  int $id_sistema Identificador del sistema
      * @param  SAMURAI_DB &$db Base de datos
      * @param  string $filtro Filtro por nombre del perfil
      * @param  int $id_sistema Identificador del sistema
@@ -511,16 +480,17 @@ class SAMURAI_Perfil {
      *
      * @param  SAMURAI_DB $db Base de Datos
      * @param  string $filtro Filtro por descripcion del perfil
      *
      * @param  SAMURAI_DB $db Base de Datos
      * @param  string $filtro Filtro por descripcion del perfil
+     * @param  int $id_sistema Identificador del sistema con el que se esta trabajando
      *
      * @return array()
      * @access public
      * @static
      */
      *
      * @return array()
      * @access public
      * @static
      */
-    function getArrayPerfiles($db, $filtro = null) // ~X2C
+    function getArrayPerfiles($db, $filtro = null, $id_sistema = null) // ~X2C
     {
         //FORECHEO LO QUE ME DEVUELVA GET PERMISOS
         $rta = array ();
     {
         //FORECHEO LO QUE ME DEVUELVA GET PERMISOS
         $rta = array ();
-        foreach (SAMURAI_Perfil::getPerfiles($db, $filtro) as $perfil) {
+        foreach (SAMURAI_Perfil::getPerfiles($db, $filtro, $id_sistema) as $perfil) {
             $rta[$perfil->getId()] = $perfil->getDescripcion();
         }
         return $rta;
             $rta[$perfil->getId()] = $perfil->getDescripcion();
         }
         return $rta;
@@ -602,7 +572,7 @@ class SAMURAI_Perfil {
 
         //GRABO EN PERM_PERFIL_SIST
         $datos = array ('id_permiso', 'id_perfil', 'id_sistema', 'observaciones', 'responsable');
 
         //GRABO EN PERM_PERFIL_SIST
         $datos = array ('id_permiso', 'id_perfil', 'id_sistema', 'observaciones', 'responsable');
-        $re = $this->_db->autoPrepare('perm_perfil_sist', $datos, DB_AUTOQUERY_INSERT);
+        $re = $this->_db->autoPrepare('samurai.perm_perfil_sist', $datos, DB_AUTOQUERY_INSERT);
         foreach ($this->getPermisos() as $permiso) {
             list($id, $obs) = split ('##',$permiso);
             $datos = array ($id, $this->getId(), $this->_idSistema, $obs, $this->getResponsable());
         foreach ($this->getPermisos() as $permiso) {
             list($id, $obs) = split ('##',$permiso);
             $datos = array ($id, $this->getId(), $this->_idSistema, $obs, $this->getResponsable());
@@ -664,6 +634,40 @@ class SAMURAI_Perfil {
     }
     // -X2C
 
     }
     // -X2C
 
+    /**
+     * Metodo que devuelve los datos necesarios para listar perfiles.
+     *
+     * @param  SAMURAI_DB &$db Base de Datos
+     * @param  string $filtro Filtro de perfiles
+     * @param  int $id_sistema Identificador del sistema
+     *
+     * @return mixed
+     * @access public
+     * @static
+     */
+    function getPerfilesPager(&$db, $filtro = null, $id_sistema = null) {
+
+        //@TODO REEMPLAZA A getPerfiles
+        $where[] = 'p.id_perfil = ps.id_perfil';
+        if ($id_sistema) {
+            $where[] = 'ps.id_sistema = '. $id_sistema;
+        }
+        if ($filtro) {
+            $where[] = 'p.desc_perfil LIKE '. $db->quote("%$filtro%");
+        }
+
+        $where = implode (' AND ', $where);
+        
+        $sql = "
+            SELECT p.id_perfil, p.desc_perfil AS descripcion
+            FROM samurai.perfil AS p, samurai.perfil_sist AS ps
+            WHERE $where
+            ORDER BY p.desc_perfil
+            ";
+        
+        return $db->query ($sql);
+    }
+
 } // -X2C Class :SAMURAI_Perfil
 
 ?>
 } // -X2C Class :SAMURAI_Perfil
 
 ?>