DeporPass

Funcionalidad

  • Soporte para el validador externo de acceso de DeporPass.
    • Este protocolo es similar a GymPass y GymForLess, cambiando los parámetros de validación.

Configuración

  • Definimos un concepto correspondiente a la entrada puntual que se generará para poder acceder en caso de validación correcta.
    • El concepto tendrá marcado “Genera Entrada/Bono”, con un tipo de entrada con 1 acceso.
  • Creamos en Parámetros de validación externa de accesos una entrada:

     

  • Definimos un nuevo perfil “DeporPass” vinculándole unos “ParametrosValidacionExternaAccesos”.

     

     

  • En VIGILA.INI
    necesitaremos, en la/s puerta/s en que se permitan validaciones remotas, los siguientes parámetros:
    • GenerarEntradaPuntualPersonasSinPermisoAccesoEnValidadorExternoSegunPerfilesPersona=Sí
    • ComprobarAccesoPermitidoPersonaParaGenerarEntradaPuntual=Sí (Indica si se tiene en cuenta el acceso permitido de la persona)

     

Proceso

  • Check-in Caso 1: por búsqueda.
    • Usamos en opción Buscar, botón DeporPass, para buscar en el centro originario de la persona y recuperar su ficha si existe.


  • En el buscador de DeporPass, escogemos el centro sobre el cual queremos buscar (si es un caso en que enlazamos en múltiples centros, habrá un centro origen por cada centro del que puede venir una persona, así como una línea en ParametrosValidacionExterna para cada uno, un perfil asociado con cada uno de los centros, etc.


 

  • Y tenemos en DeporWin la persona creada con el perfil DeporPass asociado (internamente almacena el código de la persona en el centro de origen):

 

•    Check-in Caso 2: por creación de nueva persona:

  • Creamos nueva persona como hacemos normalmente, vamos a pestaña Perfiles y asignamos el perfil DeporPass.
  • Al asignarlo aparecerá de nuevo el buscador de DeporPass para identificar la persona en el centro original:

  • En este caso al pulsar Vincular asociará la persona previamente creada con la identificada en el buscador de centros:

     

     

     

  • Si hay más de 1 centro:
    • En Parámetros de validación externa de accesos habrá una entrada por cada centro con el que debamos comprobar, cada uno con su Web Service en escucha.
    • En Perfiles tendremos tantos perfiles como centros debamos comprobar, cada uno vinculado con su registro de parámetros de validación externa.

     

  • En Vigilante:
    • Comprobamos que dado un acceso de la persona creada en la nueva base de datos (o bien recuperada de la remota o creada de cero y vinculada con una remota), comprueba remotamente el acceso e incluso lo deniega si remotamente se informa de no permiso de acceso:

       

       

       

  • IMPORTANTE: La validación remota de permitir acceso el Web Service no puede hacerla directa (está todo el código en Vigilante), por lo que es necesario usar un Procedimiento Almacenado en SQL Server para delegar la verificación de permiso.
    • El procedimiento se llama _ValidarAccesoExterno. En la actualización se define ya uno muy sencillo que simplemente verifica el campo AccesoPermitido de la persona.
    • El procedimiento tiene parámetros de entrada. Algunos no son críticos, y depende del análisis que se quiera hacer del acceso de la persona. Los más habituales serán:
      • IdPersona, Fecha, Hora: nos permite identificar a la persona en el centro remoto (recordar que este procedure lo solicita el WEB SERVICE en el centro REMOTO).
      • Además puedo consultar sobre IdpersonaExterna, IdRecintoExterno, IdPuertaExterna, etc… por si fuera necesario en el análisis.
    • Como parámetros de salida recibimos:
      • Acceso correcto si/no
      • Error (código de error vigilante)
      • Motivo de acceso denegado si lo hubiera
      • Puerta por la que pasa

 

El procedimiento por defecto:

 

ALTER
PROCEDURE [dbo].[_ValidarAccesoExterno]

    @IdPersona int,

    @IdCentroExterno nvarchar(10)
=
,

    @IdPersonaExterna nvarchar(20)
=
,

    @IdRecintoExterno nvarchar(10)
=
,

    @IdPuertaExterna nvarchar(10)
=
,

    @IdAccesoExterno nvarchar(20)
=
,

    @Fecha DateTime,

    @Hora DateTime,

    @NumeroCarnet nvarchar(20)
=
,

    @TipoAcceso bit
= 1,

    @AccesoCorrecto bit
= 0 OUT,

    @Error smallint
OUT,

    @Motivo nvarchar(1024)
OUT,

    @IdPuerta smallint
OUT

 

    AS

    BEGIN

 

     DECLARE @IdPersonaExistente int

     DECLARE @AccesoPermitido bit

 

     SELECT @IdPersonaExistente = IdPersona, @AccesoPermitido =
ISNULL(AccesoPermitido, 0)
FROM Personas WHERE IdPersona = @IdPersona

     IF @IdPersonaExistente > 0

 

         BEGIN

 

         SET @AccesoCorrecto = @AccesoPermitido

            SET @Error =
CASE
WHEN @AccesoPermitido = 1 THEN 0 ELSE 4 END

            SET @Motivo =
CASE
WHEN @AccesoPermitido = 1 THEN

ELSE
‘Acceso no permitido’
END

            SET @IdPuerta = 1

 

         END

 


ELSE

 

         BEGIN

            SET @AccesoCorrecto = 0

            SET @Error = 2

            SET @Motivo =
‘Persona no existe’

            SET @IdPuerta = 0

 

         END

 

    END

GO