UFN_MKTFINDERNUMBER_VALIDATE_MOD10
Validate a finder number using MOD 10.
Return
Return Type |
---|
bit |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@FINDERNUMBER | bigint | IN |
Definition
Copy
create function dbo.[UFN_MKTFINDERNUMBER_VALIDATE_MOD10]
(
@FINDERNUMBER bigint
)
returns bit
as
begin
declare @STR_FN nvarchar(21);
declare @TOTAL int;
declare @DIGIT int;
declare @EVEN bit;
declare @INDEX int;
set @TOTAL = 0;
set @EVEN = 0;
set @STR_FN = convert(nvarchar(21),@FINDERNUMBER);
set @INDEX = len(@STR_FN);
if exists (select 1 from dbo.[MKTFINDERNUMBER] where [CHECKDIGIT] = 1 and [LAST_FINDERNUMBER] < @FINDERNUMBER)
begin
while @INDEX > 0
begin
if @EVEN = 1
begin
set @DIGIT = convert(int,substring(@STR_FN,@INDEX,1)) * 2;
set @TOTAL += case when @DIGIT > 9 then @DIGIT - 9 else @DIGIT end;
set @EVEN = 0;
end
else
begin
set @TOTAL += convert(int,substring(@STR_FN,@INDEX,1));
set @EVEN = 1;
end
set @INDEX -= 1;
end
end
return case @TOTAL%10 when 0 then 1 else 0 end;
end;