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

CREATE PROCEDURE [dbo].[CP_SCA_ValidoAccesoPermitidoManualmente]	@pId_Cliente						INT,
																	@pFecha								DATETIME,
																	@pId_Controlador					SMALLINT,
																	@Flag_AccesoPermitidoManualmente	TINYINT OUTPUT
AS
BEGIN
DECLARE @SqlStr					NVARCHAR(1000)
DECLARE @Parametros				NVARCHAR(100)


SET @SqlStr =  N'SELECT @Flag_ExisteOUT = MAX(1) ' +
				'FROM CD_ES ' +
				'WHERE ' +
				'ISNULL(Flag_Permite_Paso, 0) = 1 ' + 
				'AND Id_Cliente = ' + CONVERT(VARCHAR(10), @pId_Cliente)

SET @Parametros = N'@Flag_ExisteOUT TINYINT OUTPUT';

EXECUTE sp_executesql @SqlStr, @Parametros, @Flag_ExisteOUT = @Flag_AccesoPermitidoManualmente OUTPUT;

IF(ISNULL(@Flag_AccesoPermitidoManualmente, 0) = 1)
BEGIN
	UPDATE CD_ES
	SET
	Flag_Permite_Paso = 0,
	Fecha_Paso_Permitido = GETDATE(),
	Id_Controlador_Paso_Permitido = @pId_Controlador
	WHERE
	ISNULL(Flag_Permite_Paso, 0) = 1
	AND Id_Cliente = @pId_Cliente
END

RETURN ISNULL(@Flag_AccesoPermitidoManualmente, 0)

END
