UFN_PATTERNBLOCKMEETING_GETVALID_LENGTHINPERIODS

Check to see if the length is valid for the number of available periods

Return

Return Type
int

Parameters

Parameter Parameter Type Mode Description
@TIMETABLEDAYPERIODID uniqueidentifier IN
@LENGTHINPERIODS int IN

Definition

Copy


            create function dbo.UFN_PATTERNBLOCKMEETING_GETVALID_LENGTHINPERIODS
            (
              @TIMETABLEDAYPERIODID uniqueidentifier,
              @LENGTHINPERIODS int
            )
            returns int
            as 
            begin
                declare @LENGTHINPERIODSVALUE integer
                set @LENGTHINPERIODSVALUE = @LENGTHINPERIODS;

                while @LENGTHINPERIODSVALUE > 0
                begin
                    if not (select endrow.ROW_NUMBER 
                            from
                                (select ROW_NUMBER() OVER (ORDER BY B.STARTTIME) as 'ROW_NUMBER'
                                from 
                                    TIMETABLEDAYPERIOD A
                                inner join 
                                    TIMETABLEDAYPERIOD B on A.TIMETABLEDAYID = B.TIMETABLEDAYID 
                                where 
                                    A.ID = @TIMETABLEDAYPERIODID
                                    and B.STARTTIME >= A.STARTTIME 
                                ) as endrow
                            where 
                                endrow.ROW_NUMBER = @LENGTHINPERIODSVALUE) is null
                        BREAK
                    else
                        begin
                            set @LENGTHINPERIODSVALUE = @LENGTHINPERIODSVALUE - 1
                            CONTINUE
                        end
                end

                return @LENGTHINPERIODSVALUE
            end