//
require_once 'PEAR.php';
-require_once 'Samurai_DB.php';
+require_once 'SAMURAI/DB.php';
require_once 'Date.php';
-// +X2C Class 209 :SAMURAI_Sistema
/**
* Clase para el manejo de los sistemas.
*
* @var int $id
* @access protected
*/
- var $_id;
+ var $_id = null;
/**
* Nombre del sistema.
* @var string $nombre
* @access protected
*/
- var $_nombre;
+ var $_nombre = null;
/**
* Descripcion del sistema.
* @var string $descripcion
* @access protected
*/
- var $_descripcion;
+ var $_descripcion = null;
/**
* Fecha en la cual se inicio el sistema.
* @var date $fecha_inicio
* @access protected
*/
- var $_fecha_inicio;
+ var $_fecha_inicio = null;
/**
* Fecha en la cual se dio por terminado el desarrollo del sistema.
* @var date $fecha_fin
* @access protected
*/
- var $_fecha_fin;
+ var $_fecha_fin = null;
/**
* Fecha de implementacion del sistema.
* @var date $fecha_implementacion
* @access protected
*/
- var $_fecha_implementacion;
+ var $_fecha_implementacion = null;
/**
* Texto con los datos del o de los contacto/s en el area usuario.
* @var string $contacto
* @access protected
*/
- var $_contacto;
+ var $_contacto = null;
/**
* Objeto Samurai_DB
* @var string $responsable
* @access protected
*/
- var $_responsable;
+ var $_responsable = null;
/**
* Array asociativo (id - descripcion) con los permisos asociados al sistema.
* @var array $permisos
* @access protected
*/
- var $_permisos;
+ var $_permisos = null;
/**
* Array con los permisos asociados al sistema
* @var array $asociaciones
* @access protected
*/
- var $_asociaciones;
+ var $_asociaciones = null;
+
+ /**
+ * indica si el sistema esta activo o no.
+ *
+ * @var int $estado
+ * @access protected
+ */
+ var $_estado = 1;
/**
* Gets Asociaciones.
{
return $this->_asociaciones;
}
+
/**
* Sets Asociaciones.
*
$this->_asociaciones = $asociaciones;
}
- // ~X2C
+ /**
+ * Gets Estado.
+ *
+ * @return int
+ * @access public
+ */
+ function getEstado()
+ {
+ return $this->_estado;
+ }
+
+ /**
+ * Sets Estado.
+ *
+ * @param int $estado Estado.
+ *
+ * @return void
+ * @access public
+ */
+ function setEstado($estado)
+ {
+ $this->_estado = $estado;
+ }
- // +X2C Operation 243
/**
* Constructor. Si recibe como parametro el identificador busca en la DB los datos.
*
* @return void
* @access public
*/
- function SAMURAI_Sistema(&$db, $id = null) // ~X2C
+ function SAMURAI_Sistema(&$db, $id = null)
{
$this->_db =& $db;
$this->_id = $id;
if (!is_null($id)) {
$this->_obtenerDatosDb();
}
- else {
- $this->setNombre();
- $this->setDescripcion();
- $this->setFechaInicio();
- $this->setFechaFin();
- $this->setFechaImplementacion();
- $this->setContacto();
- $this->setResponsable();
- $this->setPermisos();
- }
}
- // -X2C
- // +X2C Operation 244
/**
* Devuelve el identificador del sistema.
*
* @return int
* @access public
*/
- function getId() // ~X2C
+ function getId()
{
return $this->_id;
}
- // -X2C
- // +X2C Operation 245
/**
* Devuelve el nombre del sistema.
*
* @return string
* @access public
*/
- function getNombre() // ~X2C
+ function getNombre()
{
return $this->_nombre;
}
- // -X2C
- // +X2C Operation 246
/**
* Devuelve la descrpcion del sistema.
*
* @return string
* @access public
*/
- function getDescripcion() // ~X2C
+ function getDescripcion()
{
return $this->_descripcion;
}
- // -X2C
-
- // +X2C Operation 247
+
/**
* Devuelve la fecha de inicio del sistema.
*
* @return &date
* @access public
*/
- function &getFechaInicio() // ~X2C
+ function &getFechaInicio()
{
if ($this->_fecha_inicio) {
return new Date ($this->_fecha_inicio.' 00:00:00');
return null;
}
}
- // -X2C
-
- // +X2C Operation 248
+
/**
* Devuelve la fecha de finalizacion del sistema.
*
* @return &date
* @access public
*/
- function &getFechaFin() // ~X2C
+ function &getFechaFin()
{
if ($this->_fecha_fin) {
return new Date ($this->_fecha_fin.' 00:00:00');
return null;
}
}
- // -X2C
-
- // +X2C Operation 249
+
/**
* Devuelve la fecha de implementacion del sistema.
*
* @return &date
* @access public
*/
- function &getFechaImplementacion() // ~X2C
+ function &getFechaImplementacion()
{
if ($this->_fecha_implementacion) {
return new Date ($this->_fecha_implementacion.' 00:00:00');
return null;
}
}
- // -X2C
-
- // +X2C Operation 250
+
/**
* Devuelve el contacto del sistema.
*
* @return string
* @access public
*/
- function getContacto() // ~X2C
+ function getContacto()
{
return $this->_contacto;
}
- // -X2C
-
- // +X2C Operation 251
+
/**
* Setea el nombre del sistema.
*
* @return void
* @access public
*/
- function setNombre($nombre = null) // ~X2C
+ function setNombre($nombre = null)
{
$this->_nombre = $nombre;
}
- // -X2C
-
- // +X2C Operation 252
+
/**
* Setea la descripcion del sistema.
*
* @return void
* @access public
*/
- function setDescripcion($descripcion = null) // ~X2C
+ function setDescripcion($descripcion = null)
{
$this->_descripcion = $descripcion;
}
- // -X2C
-
- // +X2C Operation 253
+
/**
* Setea la fecha de inicio del sistema.
*
* @return void
* @access public
*/
- function setFechaInicio($fecha = null) // ~X2C
+ function setFechaInicio($fecha = null)
{
if ($fecha && $fecha != '0000-00-00') {
$this->_fecha_inicio = $fecha;
$this->_fecha_inicio = null;
}
}
- // -X2C
-
- // +X2C Operation 254
+
/**
* Setea la fecha de finalizacion del sistema.
*
* @return void
* @access public
*/
- function setFechaFin($fecha = null) // ~X2C
+ function setFechaFin($fecha = null)
{
if ($fecha && $fecha != '0000-00-00') {
$this->_fecha_fin = $fecha;
$this->_fecha_fin = null;
}
}
- // -X2C
-
- // +X2C Operation 255
+
/**
* Setea la fecha de implementacion del sistema.
*
* @return void
* @access public
*/
- function setFechaImplementacion($fecha = null) // ~X2C
+ function setFechaImplementacion($fecha = null)
{
if ($fecha && $fecha != '0000-00-00') {
$this->_fecha_implementacion = $fecha;
}
}
- // -X2C
-
- // +X2C Operation 256
+
/**
* Setea el contacto del sistema.
*
* @return void
* @access public
*/
- function setContacto($contacto = null) // ~X2C
+ function setContacto($contacto = null)
{
$this->_contacto = $contacto;
}
- // -X2C
-
- // +X2C Operation 263
+
/**
* Obtiene los datos del sistema de la DB.
*
* @return void
* @access protected
*/
- function _obtenerDatosDb() // ~X2C
+ function _obtenerDatosDb()
{
- $sql = include 'Sistema/consultas.php'; //Incluyo las consultas de este objeto nada mas.
+ $sql = parse_ini_file(dirname(__FILE__) . '/Sistema/consultas.ini', true);
$tmp = $sql['obtener_datos_sistema'].$sql['obtener_datos_sistema2'];
$dbh = $this->_db->prepare($tmp);
$tmp = array ($this->getId());
if (isset($re['nombre_sistema'])) {
$this->setNombre($re['nombre_sistema']);
}
- else {
- $this->setNombre();
- }
if (isset($re['desc_sistema'])) {
$this->setDescripcion($re['desc_sistema']);
}
- else {
- $this->setDescripcion();
- }
if (isset($re['fecha_inicio'])) {
$this->setFechaInicio($re['fecha_inicio']);
}
- else {
- $this->setFechaInicio();
- }
if (isset($re['fecha_fin'])) {
$this->setFechaFin($re['fecha_fin']);
}
- else {
- $this->setFechaFin();
- }
if (isset($re['fecha_implementacion'])) {
$this->setFechaImplementacion($re['fecha_implementacion']);
}
- else {
- $this->setFechaImplementacion();
- }
if (isset($re['contacto'])) {
$this->setContacto($re['contacto']);
}
- else {
- $this->setContacto();
- }
if (isset($re['responsable'])) {
$this->setResponsable($re['responsable']);
}
- else {
- $this->setResponsable();
+ if (isset($re['estado'])) {
+ $this->setEstado($re['estado']);
}
}
$tmp = $sql['obtener_permisos'];
$tmp = array();
$i = 0;
while ($re = $res->fetchRow(DB_FETCHMODE_ORDERED)) {
- $tmp[$i]['id'] = $re['0'];
- $tmp[$i]['obs'] = $re['1'];
+ $tmp[$i]['id'] = $re['0'];
+ $tmp[$i]['obs'] = $re['1'];
+ $tmp[$i]['desc'] = $re['2'];
$i++;
}
$this->_asociaciones = $tmp;
}
- // -X2C
-
- // +X2C Operation 288
+
/**
* Guarda la informacion del sistema en la base.
*
* @return void
* @access public
*/
- function guardarDatos($accion = grabar) // ~X2C
+ function guardarDatos($accion = 'grabar')
{
$accion = strtolower($accion);
switch ($accion) {
}
return $res;
}
- // -X2C
-
- // +X2C Operation 290
+
/**
* Devuelve el login del responsable de los ultimos cambios
*
* @return string
* @access public
*/
- function getResponsable() // ~X2C
+ function getResponsable()
{
return $this->_responsable;
}
- // -X2C
-
- // +X2C Operation 291
+
/**
* Setea el login del responsable de los ultimos cambios del sistema
*
* @return void
* @access public
*/
- function setResponsable($responsable = null) // ~X2C
+ function setResponsable($responsable = null)
{
$this->_responsable = $responsable;
}
- // -X2C
-
- // +X2C Operation 301
+
/**
* Devuelve un array asociativo con los identificadores de los permisos
*
* @return array
* @access public
*/
- function getIdPermisos() // ~X2C
+ function getIdPermisos()
{
return $this->_permisos;
}
- // -X2C
-
- // +X2C Operation 302
+
/**
* Setea los permisos de un sistema
*
* @return void
* @access public
*/
- function setPermisos($permisos = null) // ~X2C
+ function setPermisos($permisos = null)
{
$this->_permisos = $permisos;
}
- // -X2C
-
- // +X2C Operation 303
+
/**
* @return int
* @access public
*/
- function getMaxIdSistema() // ~X2C
+ function getMaxIdSistema()
{
- $sql = include 'Sistema/consultas.php';
+ $sql = parse_ini_file(dirname(__FILE__) . '/Sistema/consultas.ini', true);
$dbh = $this->_db->prepare($sql['obtener_max_id_sistemas']);
$res = $this->_db->execute($dbh);
$re = $res->fetchrow(DB_FETCHMODE_ASSOC);
$res->free();
return $re['id_sistema'];
}
- // -X2C
-
- // +X2C Operation 304
+
/**
* Graba los datos en la Base de Datos
*
* @return void
* @access protected
*/
- function _grabarDb() // ~X2C
+ function _grabarDb()
{
$idSistema = $this->_db->nextId('sistema');
$fecha_inicio = $this->getFechaInicio();
'fecha_implementacion' => $fecha_implementacion ? $fecha_implementacion->format("%Y-%m-%d") : null,
'contacto' => $this->getContacto(),
'responsable' => $this->getResponsable(),
- 'estado' => 1
+ 'estado' => $this->getEstado()
);
- $res = $this->_db->autoExecute('sistema', $datos, DB_AUTOQUERY_INSERT);
+ $res = $this->_db->autoExecute('samurai.sistema', $datos, DB_AUTOQUERY_INSERT);
if (PEAR::isError($res)) {
return $res;
if (PEAR::isError($res)) {
return $res;
}
+ $this->_id = $idSistema;
}
- // -X2C
-
- // +X2C Operation 305
+
/**
* Borra los datos de la base de datos
*
* @return void
* @access protected
*/
- function _borrarDb() // ~X2C
+ function _borrarDb()
{
$idSistema = $this->getId();
$responsable = $this->getResponsable();
$datos = array( 'responsable' => $responsable,
'estado' => 0
);
- $res = $this->_db->autoExecute('sistema', $datos, DB_AUTOQUERY_UPDATE, 'id_sistema = '.$idSistema);
+ $res = $this->_db->autoExecute('samurai.sistema', $datos, DB_AUTOQUERY_UPDATE, 'id_sistema = '.$idSistema);
if (PEAR::isError($res)) {
return $res;
}
- //Borro los permisos que tiene asignado el sistema
- //Borro absolutamente todos los permisos que tiene asociado -> No hay vuelta a atras
- $res = $this->_borrarPermisosDb($idSistema);
- if (PEAR::isError($res)) {
- return $res;
+
+ if ($idSistema == @$_SESSION['samurai']['id_sistema']){
+ $_SESSION['samurai']['id_sistema'] = '';
}
}
- // -X2C
-
- // +X2C Operation 306
+
/**
* Modifica los datos en base
*
* @return void
* @access protected
*/
- function _modificarDb() // ~X2C
+ function _modificarDb()
{
//Grabo las modificaciones al sistema
$idSistema = $this->getId();
'fecha_implementacion' => $fecha_implementacion ? $fecha_implementacion->format("%Y-%m-%d") : null,
'contacto' => $this->getContacto(),
'responsable' => $this->getResponsable(),
+ 'estado' => $this->getEstado()
);
- $res = $this->_db->autoExecute('sistema', $datos, DB_AUTOQUERY_UPDATE, 'id_sistema = '.$idSistema);
+ $res = $this->_db->autoExecute('samurai.sistema', $datos, DB_AUTOQUERY_UPDATE, 'id_sistema = '.$idSistema);
if (PEAR::isError($res)) {
return $res;
}
return $res;
}
}
- // -X2C
-
- // +X2C Operation 308
/**
* Graba los permisos del sistema en perm_sist
*
* @return void
* @access protected
*/
- function _grabarPermisosDb($idSistema) // ~X2C
+ function _grabarPermisosDb($idSistema)
{
$datos = array ('id_permiso','id_sistema','responsable');
- $re = $this->_db->autoPrepare('perm_sist', $datos, DB_AUTOQUERY_INSERT);
+ $re = $this->_db->autoPrepare('samurai.perm_sist', $datos, DB_AUTOQUERY_INSERT);
if (isset($this->_permisos)) {
foreach ($this->_permisos as $permiso) {
- $datos = array ($permiso['0'], $idSistema, $this->getResponsable());
+ $datos = array ($permiso, $idSistema, $this->getResponsable());
$res = $this->_db->execute($re, $datos);
if (PEAR::isError($res)) {
return $res;
}
}
- // -X2C
-
- // +X2C Operation 309
+
/**
* Borra los permisos que tenga asociado el sistema segun el criterio de observaciones
*
* @return void
* @access protected
*/
- function _borrarPermisosDb($idSistema, $observaciones = null, $idPermiso = null) // ~X2C
+ function _borrarPermisosDb($idSistema, $observaciones = null, $idPermiso = null)
{
- $sql = include 'Sistema/consultas.php';
+ $sql = parse_ini_file(dirname(__FILE__) . '/Sistema/consultas.ini', true);
$datos[] = $idSistema;
$tmp = $sql['borrar_permisos'];
if (isset($observaciones)) {
return $res;
}
}
- // -X2C
-
-
- // +X2C Operation 312
+
/**
* Guarda en base las nuevas asociaciones que se van cargando y actualiza los datos del sistema.
*
* @return bool
* @access public
*/
- function guardarAsociacion($idPermiso, $observacion = '') // ~X2C
+ function guardarAsociacion($idPermiso, $observacion = '')
{
- $error = true;
if (!$this->_existeAsociacion($idPermiso, $observacion)) {
//Guardo la asociacion
//Grabo el sistema
'observaciones' => $observacion,
'responsable' => $this->getResponsable(),
);
- $res = $this->_db->autoExecute('perm_sist', $datos, DB_AUTOQUERY_INSERT);
+ $res = $this->_db->autoExecute('samurai.perm_sist', $datos, DB_AUTOQUERY_INSERT);
//Recargo los datos del sistema
$this->_obtenerDatosDb();
- $error = false;
+ return null;
+ }
+ else {
+ return new PEAR_Error('La Asociacion ya existe.');
}
- return $error;
}
- // -X2C
-
- // +X2C Operation 313
+
/**
* Elimina una asociacion de la base, y actualiza los datos del sistema.
*
* @return bool
* @access public
*/
- function eliminarAsociacion($idPermiso, $observacion = '') // ~X2C
+ function eliminarAsociacion($idPermiso, $observacion = '')
{
- $error = false;
- //Elimino la asociacion
- $this->_borrarPermisosDb($this->getId(), $observacion, $idPermiso);
+ //TODO Arreglar el asco este
+ $sql = parse_ini_file(dirname(__FILE__) . '/Sistema/consultas.ini', true);
+ $res = '';
+ //Obtengo los id de los perfiles del permiso en el sistema
+ $tmp = $sql['ea_obt_idperfil'];
+ $dbh = $this->_db->prepare($tmp);
+ $res = $this->_db->execute($dbh, array ($idPermiso, $observacion, $this->getId()));
+ if (PEAR::isError($res)) {
+ return $res;
+ }
+ $i = 0;
+ $tmp = '';
+ while ($re = $res->fetchRow(DB_FETCHMODE_ORDERED)) {
+ $tmp[] = $re['0'];
+ $i++;
+ }
+ $PERFILES = $tmp;
+ //Borro el permiso de los perfiles del sistema
+ $tmp = $sql['ea_del_perm_perfil_sist'];
+ $dbh = $this->_db->prepare($tmp);
+ $res = $this->_db->execute($dbh, array ($idPermiso, $observacion, $this->getId()));
+ if (PEAR::isError($res)) {
+ return $res;
+ }
+ //Verifico si era el unico permiso de cada uno de los perfiles en los que estaba asignado
+ if (@$PERFILES) {
+ foreach ($PERFILES as $perfil) {
+ //Cuento
+ $tmp = $sql['ea_obt_cuenta_perfil'];
+ $dbh = $this->_db->prepare($tmp);
+ $res = $this->_db->execute($dbh, array ($perfil, $this->getId()));
+ if (($re = $res->fetchRow(DB_FETCHMODE_ASSOC)) && $re['cuenta'] == 0) {
+ //Borro perfil_sist
+ $tmp = $sql['ea_del_perfil_sist'];
+ $dbh = $this->_db->prepare($tmp);
+ $res = $this->_db->execute($dbh, array ($perfil, $this->getId()));
+ if (PEAR::isError($res)) {
+ return $res;
+ }
+ //Borro perfil_sist_usuario
+ $tmp = $sql['ea_del_perfil_sist_usuario'];
+ $dbh = $this->_db->prepare($tmp);
+ $res = $this->_db->execute($dbh, array ($perfil, $this->getId()));
+ if (PEAR::isError($res)) {
+ return $res;
+ }
+ //Verifico si hay otro sistema usando este perfil
+ $tmp = $sql['ea_obt_cuenta_perfil_sist'];
+ $dbh = $this->_db->prepare($tmp);
+ $res = $this->_db->execute($dbh, array ($perfil));
+ if (($re = $res->fetchRow(DB_FETCHMODE_ASSOC)) && $re['cuenta'] == 0){
+ $tmp = $sql['ea_del_perfil'];
+ $dbh = $this->_db->prepare($tmp);
+ $res = $this->_db->execute($dbh, array ($perfil));
+ if (PEAR::isError($res)) {
+ return $res;
+ }
+ }
+ }
+ }
+ }
+ //Borro la asociacion perm_sist
+ $res = $this->_borrarPermisosDb($this->getId(), $observacion, $idPermiso);
+ if (PEAR::isError($res)) {
+ return $res;
+ }
//Recargo los datos del sistema
$this->_obtenerDatosDb();
- return $error;
}
- // -X2C
-
- // +X2C Operation 314
+
/**
* Actualiza los datos de la asociacion en la base de datos.
*
* @param int $idPermiso Identificador del permiso
- * @param int $idPermiso_ant Identificador del permiso anterior
* @param string $observacion Observacion a insertar
* @param string $obs_ant Observacion anterior
*
* @return bool
* @access public
*/
- function modificarAsociacion($idPermiso, $idPermiso_ant, $observacion = '', $obs_ant = '') // ~X2C
+ function modificarAsociacion($idPermiso, $observacion = '', $obs_ant = '')
{
- $error = true;
//Busco la nueva asociacion
if (!$this->_existeAsociacion($idPermiso, $observacion)) {
//Actualizo la asociacion
'observaciones' => $observacion,
'responsable' => $this->getResponsable(),
);
- $this->_db->autoExecute('perm_sist',
+ $this->_db->autoExecute('samurai.perm_sist',
$datos,
DB_AUTOQUERY_UPDATE,
- 'id_sistema = '.$this->getId().' AND id_permiso = '.$idPermiso_ant.' AND observaciones =\''.$obs_ant.'\'');
+ 'id_sistema = '.$this->getId().' AND id_permiso = '.$idPermiso.' AND observaciones =\''.$obs_ant.'\'');
//Recargo los datos del sistema
$this->_obtenerDatosDb();
- $error = false;
+ return null;
+ }
+ else {
+ return new PEAR_Error('La Asociacion ya existe.');
}
- return $error;
}
- // -X2C
-
- // +X2C Operation 315
+
/**
* Chequea si existe la asociacion
*
* @return bool
* @access protected
*/
- function _existeAsociacion($idPermiso, $observacion) // ~X2C
+ function _existeAsociacion($idPermiso, $observacion)
{
- $sql = include 'Sistema/consultas.php'; //Incluyo las consultas de este objeto nada mas.
+ $sql = parse_ini_file(dirname(__FILE__) . '/Sistema/consultas.ini', true);
$tmp = $sql['obtener_permisos'].$sql['obtener_permisos3'].$sql['obtener_permisos4'];
$dbh = $this->_db->prepare($tmp);
$tmp = array ($this->getId(),$idPermiso,$observacion);
return true;
}
}
- // -X2C
-
- // +X2C Operation 341
+
/**
* Devuelve el array de sistemas
*
* @param SAMURAI_DB &$db Base de Datos
+ * @param bool $activos Indica si se deben buscar solamente los sistemas activos
*
* @return array(Sistema)
* @access public
* @static
*/
- function getSistemas(&$db) // ~X2C
+ function getSistemas(&$db, $activos = true)
{
$rta = array ();
- foreach (SAMURAI_Sistema::_getIdSistemas($db) as $id) {
+ foreach (SAMURAI_Sistema::_getIdSistemas($db, $activos) as $id) {
$tmp = new SAMURAI_Sistema($db,$id);
array_push($rta, $tmp);
}
return $rta;
}
- // -X2C
-
- // +X2C Operation 342
+
/**
* Devuleve un array con los identificadores de todos los sistemas.
*
* @param SAMURAI_DB &$db Base de Datos
+ * @param bool $activos Indica si se deben buscar solamente los sistemas activos
*
* @return array(int)
* @access protected
* @static
*/
- function _getIdSistemas(&$db) // ~X2C
+ function _getIdSistemas(&$db, $activos = true)
{
//OBTENGO LOS ID DE LA BASE
$rta = array();
$sql = parse_ini_file(dirname(__FILE__) . '/Sistema/consultas.ini', true);
- $dbh = $db->prepare($sql['obtener_datos_sistema'].$sql['obtener_datos_sistema3']);
+ $consulta = $sql['obtener_datos_sistema'];
+ if (@$activos) {
+ $consulta.= $sql['obtener_datos_sistema3'];
+ }
+ $consulta.= $sql['obtener_datos_sistema4'];
+ $dbh = $db->prepare($consulta);
$res = $db->execute($dbh);
while ($re = $res->fetchrow(DB_FETCHMODE_ASSOC)) {
array_push($rta,$re['id_sistema']);
$res->free();
return $rta;
}
- // -X2C
-
- // +X2C Operation 343
+
/**
* Devuelve un array asociativo en donde la clave es el identificador y el valor es el nombre del sistema
*
* @param SAMURAI_DB &$db Base de Datos
+ * @param bool $activos Indica si se deben buscar solamente los sistemas activos
*
* @return array()
* @access public
* @static
*/
- function getArraySistemas(&$db) // ~X2C
+ function getArraySistemas(&$db, $activos = true)
{
$rta = array ();
- foreach (SAMURAI_Sistema::getSistemas($db) as $sistema) {
+ foreach (SAMURAI_Sistema::getSistemas($db, $activos) as $sistema) {
$rta[$sistema->getId()] = $sistema->getNombre();
}
return $rta;
}
- // -X2C
-
-} // -X2C Class :SAMURAI_Sistema
+
+ /**
+ * Devuelve un array asociativo en donde la clave es el identificador y el valor es el nombre del sistema. Solo devuelve aquellos sistemas en los cuales el usuario tiene permisos.
+ *
+ * @param DB &$DB Conexion a la base de datos
+ *
+ * @return array()
+ * @access public
+ */
+ function getArraySistemasSeleccionar(&$DB)
+ {
+ $rta = array();
+ $sql = parse_ini_file(dirname(__FILE__) . '/Sistema/consultas.ini', true);
+ //Verifico si tiene permiso developer en samurai
+ $consulta = $sql['sistemas_seleccionar2'];
+ $dbh = $DB->prepare($consulta);
+ $res = $DB->execute($dbh, array(SAMURAI_PERM, $_SESSION['usuario'],
+ SAMURAI_PERM_DEVELOPER));
+ $re = $res->fetchrow(DB_FETCHMODE_ASSOC);
+ if ($re['cuenta']) {
+ $consulta = $sql['obtener_datos_sistema'];
+ $consulta.= $sql['obtener_datos_sistema3'];
+ $consulta.= $sql['obtener_datos_sistema4'];
+ $dbh = $DB->prepare($consulta);
+ $res = $DB->execute($dbh);
+ while ($re = $res->fetchrow(DB_FETCHMODE_ASSOC)) {
+ $rta[$re['id_sistema']] = $re['nombre_sistema'];
+ }
+ $res->free();
+ return $rta;
+ }
+ //Si no tiene permiso developer en samurai le muestro solo aquellos
+ //sistemas en los cuales puede trabajar
+ $consulta = $sql['sistemas_seleccionar'];
+ $dbh = $DB->prepare($consulta);
+ $res = $DB->execute($dbh, array($_SESSION['usuario'],
+ SAMURAI_PERM_PERFIL_ALTA, SAMURAI_PERM_PERFIL_BAJA,
+ SAMURAI_PERM_PERFIL_MODIF, SAMURAI_PERM_USUARIO_ALTA,
+ SAMURAI_PERM_USUARIO_BAJA, SAMURAI_PERM_USUARIO_MODIF));
+ while ($re = $res->fetchrow(DB_FETCHMODE_ASSOC)) {
+ $rta[$re['id_sistema']] = $re['nombre_sistema'];
+ }
+ $res->free();
+
+ return $rta;
+ }
+}
?>