USP_DATALIST_MEMBERSHIPLEVEL

Displays the list of membership levels for a program.

Parameters

Parameter Parameter Type Mode Description
@MEMBERSHIPPROGRAMID uniqueidentifier IN Input parameter indicating the context ID for the data list.
@INCLUDEINACTIVE bit IN Include inactive levels
@INCLUDEOFFLINEMICROSITE bit IN Include level not online via web forms

Definition

Copy


                CREATE procedure dbo.USP_DATALIST_MEMBERSHIPLEVEL
                    (
                        @MEMBERSHIPPROGRAMID uniqueidentifier,
                        @INCLUDEINACTIVE bit = 0,
                        @INCLUDEOFFLINEMICROSITE bit = 1
                    )
                as
                    set nocount on;

                    declare @HIGHESTSEQUENCE int;
                    declare @LOWESTSEQUENCE int;

                    select 
                        @HIGHESTSEQUENCE = max(SEQUENCE)
                    from 
                        dbo.MEMBERSHIPLEVEL
                    where 
                        MEMBERSHIPPROGRAMID = @MEMBERSHIPPROGRAMID
                        and (MEMBERSHIPLEVEL.ISACTIVE = 1 or @INCLUDEINACTIVE = 1)

                    select
                        @LOWESTSEQUENCE = min(SEQUENCE)
                    from 
                        dbo.MEMBERSHIPLEVEL
                    where 
                        MEMBERSHIPPROGRAMID = @MEMBERSHIPPROGRAMID
                        and (MEMBERSHIPLEVEL.ISACTIVE = 1 or @INCLUDEINACTIVE = 1)

                    select 
                        ML.ID,
                        ML.NAME,
                        ML.DESCRIPTION,
                        TIERCODE.DESCRIPTION AS TIER,
                        ML.MEMBERSALLOWED,
                        ML.CHILDRENALLOWED,
                        ML.CARDSALLOWED,
                        ML.ISACTIVE,
                        case when ML.SEQUENCE = @HIGHESTSEQUENCE then 0 else 1 end as CANPROMOTE,
                        case when ML.SEQUENCE = @LOWESTSEQUENCE then 0 else 1 end as CANDEMOTE
                     from 
                        dbo.MEMBERSHIPLEVEL ML
                        left join dbo.TIERCODE on ML.TIERCODEID = TIERCODE.ID
                        left join dbo.MICROSITEMEMBERSHIPLEVEL on ML.ID = MICROSITEMEMBERSHIPLEVEL.ID
                    where 
                        MEMBERSHIPPROGRAMID = @MEMBERSHIPPROGRAMID and
                        (ML.ISACTIVE = 1 or @INCLUDEINACTIVE = 1) and
                        (@INCLUDEOFFLINEMICROSITE = 1 or MICROSITEMEMBERSHIPLEVEL.ID is not null)
                    order by ML.SEQUENCE asc