UFN_DISBURSEMENTPROCESS_GETCONSOLIDATED_RANGES

Returns a tale with a consolidate version of the ranges entered by the user for a specific disbursement process.

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@DISBURSEMENTPROCESSID uniqueidentifier IN

Definition

Copy


create function dbo.UFN_DISBURSEMENTPROCESS_GETCONSOLIDATED_RANGES
(
    @DISBURSEMENTPROCESSID uniqueidentifier
)
returns @ConsolidatedRanges TABLE
(
    RANGESTART int
    ,RANGEEND int
)
as begin

    declare @start int
    declare @end int

    declare rangeCursor CURSOR FOR
    select T1.RANGESTART, CASE WHEN T1.RANGEEND = 0 THEN T1.RANGESTART + T1.RANGECOUNT - 1 ELSE T1.RANGEEND END [RANGEEND]
    from dbo.DISBURSEMENTPROCESSPRINTFINALIZERANGE T1
    where T1.DISBURSEMENTPROCESSID = @DISBURSEMENTPROCESSID
    order by T1.RANGESTART

    OPEN rangeCursor
    FETCH NEXT FROM rangeCursor
    INTO @start, @end

    WHILE @@FETCH_STATUS = 0
    BEGIN
        if exists(select * from @ConsolidatedRanges where RANGEEND + 1 = @start)
        begin
            update @ConsolidatedRanges
            set RANGEEND = @end
            where RANGEEND + 1 = @start;
        end
        else
        begin
            insert into @ConsolidatedRanges
            select @start, @end;
        end

        FETCH NEXT FROM rangeCursor
        INTO @start, @end
    END
    CLOSE rangeCursor
    DEALLOCATE rangeCursor

    return
end