UFN_REVENUERECEIPT_REMOVEGAPSFROMSTARTINGNUMBER

Either returns the supplied starting receipt number or a new number that eliminates starting gaps

Return

Return Type
int

Parameters

Parameter Parameter Type Mode Description
@STARTINGNUMBER int IN
@RECEIPTSTACKINFOID uniqueidentifier IN

Definition

Copy


CREATE function dbo.UFN_REVENUERECEIPT_REMOVEGAPSFROMSTARTINGNUMBER
(
@STARTINGNUMBER int = null,
@RECEIPTSTACKINFOID uniqueidentifier = null
)
returns int
with execute as caller
as begin
    declare @RESULT int = @STARTINGNUMBER

    if not exists 
    (select * from dbo.REVENUERECEIPT RR where RR.RECEIPTSTACKINFOID = @RECEIPTSTACKINFOID and RR.RECEIPTNUMBER = @STARTINGNUMBER - 1)
        begin
            --select @RESULT = max(RECEIPTNUMBER)+1 from dbo.REVENUERECEIPT where RECEIPTSTACKINFOID = @RECEIPTSTACKINFOID

            select @RESULT = min(RECEIPTNUMBER)+1 from dbo.REVENUERECEIPT rr
            where RECEIPTSTACKINFOID = @RECEIPTSTACKINFOID and RECEIPTNUMBER >= @RESULT
            and not exists (select * from dbo.REVENUERECEIPT where RECEIPTNUMBER=rr.RECEIPTNUMBER+1)
        end
    return isnull(@RESULT,1)
end