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;
- // ~X2C
+ /**
+ * Gets Asociaciones.
+ *
+ * @return array
+ * @access public
+ */
+ function getAsociaciones()
+ {
+ return $this->_asociaciones;
+ }
+
+ /**
+ * Sets Asociaciones.
+ *
+ * @param array $asociaciones Asociaciones.
+ *
+ * @return void
+ * @access public
+ */
+ function setAsociaciones($asociaciones)
+ {
+ $this->_asociaciones = $asociaciones;
+ }
+
+ /**
+ * 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 = parse_ini_file(dirname(__FILE__) . '/Sistema/consultas.ini', true);
$tmp = $sql['obtener_datos_sistema'].$sql['obtener_datos_sistema2'];
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'];
}
$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 = parse_ini_file(dirname(__FILE__) . '/Sistema/consultas.ini', true);
$dbh = $this->_db->prepare($sql['obtener_max_id_sistemas']);
$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;
}
$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;
}
$_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, $idSistema, $this->getResponsable());
}
}
- // -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 = parse_ini_file(dirname(__FILE__) . '/Sistema/consultas.ini', true);
$datos[] = $idSistema;
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 = '')
{
if (!$this->_existeAsociacion($idPermiso, $observacion)) {
//Guardo la asociacion
'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();
return null;
return new PEAR_Error('La Asociacion ya existe.');
}
}
- // -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 = '')
{
//TODO Arreglar el asco este
$sql = parse_ini_file(dirname(__FILE__) . '/Sistema/consultas.ini', true);
//Recargo los datos del sistema
$this->_obtenerDatosDb();
}
- // -X2C
-
- // +X2C Operation 314
+
/**
* Actualiza los datos de la asociacion en la base de datos.
*
* @return bool
* @access public
*/
- function modificarAsociacion($idPermiso, $observacion = '', $obs_ant = '') // ~X2C
+ function modificarAsociacion($idPermiso, $observacion = '', $obs_ant = '')
{
//Busco la nueva asociacion
if (!$this->_existeAsociacion($idPermiso, $observacion)) {
'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.' AND observaciones =\''.$obs_ant.'\'');
return new PEAR_Error('La Asociacion ya existe.');
}
}
- // -X2C
-
- // +X2C Operation 315
+
/**
* Chequea si existe la asociacion
*
* @return bool
* @access protected
*/
- function _existeAsociacion($idPermiso, $observacion) // ~X2C
+ function _existeAsociacion($idPermiso, $observacion)
{
$sql = parse_ini_file(dirname(__FILE__) . '/Sistema/consultas.ini', true);
$tmp = $sql['obtener_permisos'].$sql['obtener_permisos3'].$sql['obtener_permisos4'];
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'].$sql['obtener_datos_sistema4']);
+ $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;
+ }
+}
?>