CREATE FUNCTION CF_Tarjeta_Validar (@Id_Tarjeta VARCHAR(10),@Tar_Nro VARCHAR(50) )
RETURNS VARCHAR(100)	
AS

BEGIN


DECLARE @Descripcion		VARCHAR(100);
DECLARE @Flag_Valida_Long	TINYINT;
DECLARE @Valida_PimerDig	CHAR(9);
DECLARE @Flag_Valida_DV		TINYINT;


SET @Descripcion = '';

IF ISNULL(@Id_Tarjeta,'') = '' 
	RETURN @Descripcion;

SELECT @Flag_Valida_Long = Flag_Valida_Long , @Valida_PimerDig = Valida_PimerDig , @Flag_Valida_DV = Flag_Valida_DV 
	FROM Valores_Tarjetas_Cred WHERE Id_Tarjeta = @Id_Tarjeta


IF ISNULL(@Flag_Valida_Long,0) != 0
BEGIN
	IF LEN(RTRIM(LTRIM(@Tar_Nro))) <> @Flag_Valida_Long
	BEGIN
		SET @Descripcion = 'Cantidad de Dígitos Inválido';
		RETURN @Descripcion;
	END
END

IF ISNULL(@Valida_PimerDig,'') != ''
BEGIN
	IF SUBSTRING(RTRIM(LTRIM(@Tar_Nro)),1,LEN(RTRIM(LTRIM(@Tar_Nro)))) <> SUBSTRING(RTRIM(LTRIM(@Tar_Nro)),1, LEN(RTRIM(LTRIM(@Tar_Nro))))
	BEGIN
		SET @Descripcion = 'El Nro. No Corresponde a la Tarjeta/CBU Selecionado.';
		RETURN @Descripcion;
	END
END

IF ISNULL(@Flag_Valida_DV,0) != 0
BEGIN
	IF @Flag_Valida_DV = 1
	BEGIN 
		IF ISNULL(  (SELECT dbo.SF_Tar_Validar(@Tar_Nro)) ,0 ) = 0
		BEGIN
			SET @Descripcion = 'Nro. de tarjeta inválido.';
			RETURN @Descripcion;
		END 
	END
	IF @Flag_Valida_DV = 2
	BEGIN 
		IF ISNULL(  (SELECT dbo.SF_Cbu_Validar(@Tar_Nro)) ,0 ) = 0
		BEGIN
			SET @Descripcion = 'Nro. de CBU inválido.';
			RETURN @Descripcion;
		END 
	END
END
	

RETURN @Descripcion;

END

GO


