UFN_MKTFINDERNUMBER_CHECKDIGIT_MOD10
Create a check digit for a finder number using Mod 10.
Return
Return Type |
---|
bigint |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@FINDERNUMBER | bigint | IN |
Definition
Copy
CREATE function dbo.[UFN_MKTFINDERNUMBER_CHECKDIGIT_MOD10]
(
@FINDERNUMBER bigint
)
returns bigint
as
begin
declare @STR_FN nvarchar(21);
declare @TOTAL int;
declare @DIGIT int;
declare @ODD bit;
declare @INDEX int;
set @TOTAL = 0;
set @ODD = 1;
set @STR_FN = convert(nvarchar(21),@FINDERNUMBER);
set @INDEX = len(@STR_FN);
while @INDEX > 0
begin
if @ODD = 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 @ODD = 0;
end
else
begin
set @TOTAL += convert(int,substring(@STR_FN,@INDEX,1));
set @ODD = 1;
end
set @INDEX -= 1;
end
select @TOTAL = case @TOTAL%10 when 0 then 0 else 10 - @TOTAL%10 end;
return (@FINDERNUMBER * 10) + @TOTAL;
end;