IF EXISTS ( SELECT * 
            FROM   sysobjects 
            WHERE  id = object_id(N'[dbo].[CP_SCA_RegistrarAcceso_Rta]') 
                   and OBJECTPROPERTY(id, N'IsProcedure') = 1 )
BEGIN
    DROP PROCEDURE [dbo].[CP_SCA_RegistrarAcceso_Rta] 
END
GO

CREATE PROCEDURE [dbo].[CP_SCA_RegistrarAcceso_Rta]	
                        @pFlag_Habilitado	TINYINT,
						@pMensaje_Mostrar	VARCHAR(5000),
						@pInfo				VARCHAR(101),
						@pFoto				VARCHAR(256),
						@pFoto_Bin			VARBINARY(MAX),
						@pId_Cliente		INT,
						@pId_Cliente_Ref	INT,
						@pTipoAcceso		CHAR(1),
						@pTag				VARCHAR(30),
						@pFecha				DATETIME,
						@pId_Controlador	SMALLINT,
						@pId_Acceso			SMALLINT,
						@pId_CD_Motivo		INT			/*06/06/2019 Agregado*/
AS

DECLARE @Resultado				CHAR(1)
DECLARE @Tiempo_Mensaje			SMALLINT
DECLARE @Mensaje				VARCHAR(5000)
DECLARE @Descripcion_Motivo		VARCHAR(5000)
DECLARE @Descripcion_Display	VARCHAR(32)
DECLARE @Descripcion_Pantalla	VARCHAR(100)

CREATE TABLE #rTabla	(Flag_Habilitado	TINYINT,
						Mensaje				VARCHAR(5000),
						Info				VARCHAR(101),
						Foto				VARCHAR(256),
						Foto_Bin			IMAGE,
						Id_Cliente			INT,
						Id_Cliente_Ref		INT,
						Tiempo_Mensaje		SMALLINT)

IF(@pFlag_Habilitado = 1)
BEGIN
	SET @Resultado = 'S'
END
ELSE
BEGIN
	SET @Resultado = 'E'
END

SET @Tiempo_Mensaje = (SELECT ISNULL(Tiempo_Mensaje, 1) FROM CD_Accesos WHERE Id_Acceso = @pId_Acceso)

SELECT
@Descripcion_Motivo		= ISNULL(Descripcion, ''),
@Descripcion_Display	= ISNULL(Descripcion_Display, ''),
@Descripcion_Pantalla	= ISNULL(Descripcion_Pantalla, '')
FROM CD_Motivos
WHERE
Id_CD_Motivo = @pId_CD_Motivo

IF(@Descripcion_Pantalla <> '')
BEGIN
	SET @Mensaje = @Descripcion_Pantalla
END
ELSE
BEGIN
	IF(@Descripcion_Display <> '')
	BEGIN
		SET @Mensaje = @Descripcion_Display
	END
	ELSE
	BEGIN
		SET @Mensaje = @Descripcion_Motivo
	END
END

IF(ISNULL(@pMensaje_Mostrar, '') <> '')
BEGIN
	SET @Mensaje = @Mensaje + ' ' + @pMensaje_Mostrar
END

/*Graba en CD_ES*/
INSERT INTO CD_ES
(Tipo,			Origen,		Id_Tarjeta,
Id_Cliente,		Fecha,		Resultado,
Id_Controlador, Id_Acceso, Observacion,
tipo_reg,		Id_CD_Motivo)
VALUES
(@pTipoAcceso,		'A',			@pTag,
@pId_Cliente,		@pFecha,		@Resultado,
@pId_Controlador,	@pId_Acceso,	@Mensaje,
'',					@pId_CD_Motivo)

/*Mensaje a devolver*/
INSERT INTO #rTabla 
(Flag_Habilitado,	Mensaje,	Info, 
Foto,				Foto_Bin,	Id_Cliente, 
Id_Cliente_Ref,		Tiempo_Mensaje) 
VALUES 
(@pFlag_Habilitado,	@Mensaje,	@pInfo, 
@pFoto,				@pFoto_Bin,	@pId_Cliente, 
@pId_Cliente_Ref,	@Tiempo_Mensaje)
	
SELECT * FROM #rTabla

DROP TABLE #rTabla
RETURN
