USP_DATALIST_MEMBERSHIPPROGRAM_ACTIVEMEMBERSHIPS

View all active memberships in a membership program.

Parameters

Parameter Parameter Type Mode Description
@PROGRAMID uniqueidentifier IN Input parameter indicating the context ID for the data list.
@MEMBERSHIPPROGRAMID uniqueidentifier INOUT
@STATUSCODE tinyint IN Status
@MEMBERSHIPLEVELID uniqueidentifier IN Level
@TIERCODEID uniqueidentifier IN Tier

Definition

Copy


            CREATE procedure dbo.USP_DATALIST_MEMBERSHIPPROGRAM_ACTIVEMEMBERSHIPS
            (
                @PROGRAMID uniqueidentifier,
                @MEMBERSHIPPROGRAMID uniqueidentifier = null output,
                @STATUSCODE tinyint = null,
                @MEMBERSHIPLEVELID uniqueidentifier = null,
                @TIERCODEID uniqueidentifier = null
            )
            as
                set nocount on;

                declare @CURRENTDATE date = getdate();

                set @MEMBERSHIPPROGRAMID = @PROGRAMID;

                --100 For backward compatibility.  This datalist was defined before Lapsed was an official status.

                if @STATUSCODE = 100
                    set @STATUSCODE = 4

                select
                    MEMBERSHIP.ID,
                    MEMBERSHIP.STATUS,
                    MEMBER.ID,
                    CONSTITUENT.NAME,
                    MEMBERSHIPLEVEL.NAME as [LEVEL],
                    TIERCODE.DESCRIPTION,
                    cast(MEMBERSHIP.EXPIRATIONDATE as date) EXPIRATIONDATE,
                    MEMBERSHIP.ISGIFT,
                    MEMBERSHIP.GIVENBYID,
                    case MEMBERSHIP.ISGIFT
                        when 1 then (select NAME from dbo.CONSTITUENT where ID = MEMBERSHIP.GIVENBYID)
                        else null
                    end
                from dbo.MEMBERSHIP
                inner join dbo.MEMBERSHIPLEVEL
                    on MEMBERSHIP.MEMBERSHIPLEVELID = MEMBERSHIPLEVEL.ID
                left join dbo.TIERCODE
                    on MEMBERSHIPLEVEL.TIERCODEID = TIERCODE.ID
                inner join dbo.MEMBER
                    on MEMBER.MEMBERSHIPID = MEMBERSHIP.ID
                inner join (
                    select
                        case
                            when C.ISORGANIZATION = 1 then 
                                case when len(C.KEYNAMEPREFIX) = 0 
                                    then C.KEYNAME 
                                    else C.KEYNAME + ', ' + C.KEYNAMEPREFIX 
                                end
                            else dbo.UFN_NAMEFORMAT_08(C.ID, C.KEYNAME, C.FIRSTNAME, C.MIDDLENAME, null, null, null, null, null, null, null)
                        end as NAME
                        , C.ID
                    from dbo.CONSTITUENT C
                ) as CONSTITUENT 
                    on MEMBER.CONSTITUENTID = CONSTITUENT.ID
                where MEMBER.ISPRIMARY = 1
                    and MEMBER.ISDROPPED = 0
                    and MEMBERSHIP.MEMBERSHIPPROGRAMID = @PROGRAMID
                    and (@MEMBERSHIPLEVELID is null or MEMBERSHIPLEVEL.ID = @MEMBERSHIPLEVELID)
                    and (@TIERCODEID is null or MEMBERSHIPLEVEL.TIERCODEID = @TIERCODEID)
                    and (MEMBERSHIP.STATUSCODE = @STATUSCODE or @STATUSCODE is null)
                order by
                    CONSTITUENT.NAME