UFN_CLASSMEETINGTEMPLATE_GETPERIODSTRING

Returns the periods and times associated with the given class meeting template.

Return

Return Type
nvarchar(1000)

Parameters

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

Definition

Copy


CREATE function dbo.UFN_CLASSMEETINGTEMPLATE_GETPERIODSTRING
(
    @CLASSMEETINGTEMPLATEID uniqueidentifier,
    @LENGTHINPERIODS int
)
returns nvarchar(1000)
as begin
    declare @PERIODS nvarchar(1000)

    select @PERIODS = (
        select
            T.PERIOD + '; ' as [text()]
        from
            (select
                [PEER].PERIOD as PERIOD,
                [PEER].STARTTIME,
                ROW_NUMBER() over (order by [PEER].STARTTIME) as ROW                
            from dbo.CLASSMEETINGTEMPLATE
                left join dbo.TIMETABLEDAYPERIOD [PRIMARY] on CLASSMEETINGTEMPLATE.TIMETABLEDAYPERIODID = [PRIMARY].ID 
                left join dbo.TIMETABLEDAYPERIOD [PEER] on [PRIMARY].TIMETABLEDAYID = [PEER].TIMETABLEDAYID
            where CLASSMEETINGTEMPLATE.ID = @CLASSMEETINGTEMPLATEID
                and ([PRIMARY].ID is null or [PEER].STARTTIME >= [PRIMARY].STARTTIME)
            ) T
        where ROW <= @LENGTHINPERIODS
        order by T.STARTTIME asc
        for xml path(''))

    return (select case when @PERIODS is null or @PERIODS = ''
                then null
                else substring(@PERIODS, 1, len(@PERIODS)-1)
            end)
end