UFN_FINANCIALINSTITUTION_ROUTINGNUMBERISVALID

UFN_FINANCIALINSTITUTION_ROUTINGNUMBERISVALID

Return

Return Type
bit

Parameters

Parameter Parameter Type Mode Description
@ROUTINGNUMBER nvarchar(9) IN

Definition

Copy


        create function dbo.UFN_FINANCIALINSTITUTION_ROUTINGNUMBERISVALID(@ROUTINGNUMBER nvarchar(9))
        returns bit
        with execute as caller
        as begin
            if len(@ROUTINGNUMBER) = 9
            begin
                declare @I int;
                declare @CHECKSUMTOTAL int;
                declare @DIGIT char;
                set @I = 1;
                set @CHECKSUMTOTAL = 0;

                while @I <= 8
                begin
                    set @DIGIT = substring(@ROUTINGNUMBER, @I, 1);
                    if @DIGIT >= '0' and @DIGIT <= '9'
                        set @CHECKSUMTOTAL = @CHECKSUMTOTAL + convert(int,@DIGIT) * ((@I % 3 + 1) * (@I % 3 + 1) - (@I % 3));
                    else
                        return 0;

                    set @I = @I + 1;
                end

                set @DIGIT = substring(@ROUTINGNUMBER, 9, 1);
                if @DIGIT >= '0' and @DIGIT <= '9'
                    if convert(int,@DIGIT) = ceiling(cast(@CHECKSUMTOTAL as decimal) / 10) * 10 - @CHECKSUMTOTAL
                        return 1;
            end

            return 0;
        end