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
*/
$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.
*
//INICIALIZO LA VI
$this->_id = null;
$this->_descripcion = null;
- $this->_tipo = null;
$this->_permisos = null;
}
}
$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'];
* @return mixed
* @access public
*/
- function guardarDatos($accion = grabar) // ~X2C
+ function guardarDatos($accion = 'grabar') // ~X2C
{
$accion = strtolower($accion);
switch ($accion) {
'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;
}
//GRABO EN PERFIL_SIST
$datos = array ('id_perfil' => $this->getId(),
'id_sistema' => $this->_idSistema,
- 'tipo_perfil' => $this->getTipo(),
'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
{
//Modifico la tabla perfil_sist
$datos = array (
- 'tipo_perfil' => $this->getTipo(),
'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)) {
//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) {
+ $consulta = $sql['obtener_id_perfiles'];
$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);
}
+ 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) {
//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());
}
// -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
-?>
\ No newline at end of file
+?>