USP_DATALIST_AVAILABLEMEMBERSHIPPROGRAMACTIONS
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CONSTITUENTID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_AVAILABLEMEMBERSHIPPROGRAMACTIONS(@CONSTITUENTID uniqueidentifier)
as
set nocount on;
declare @CURRENTDATE datetime = getdate();
-- Membership programs available to join
select '00000000-0000-0000-0000-000000000000' as ID,
MEMBERSHIPPROGRAM.NAME as [DESCRIPTION],
MEMBERSHIPPROGRAM.ID as MEMBERSHIPPROGRAMID,
'00000000-0000-0000-0000-000000000000' as MEMBERSHIPLEVELID,
'00000000-0000-0000-0000-000000000000' as MEMBERSHIPLEVELTERMID,
'00000000-0000-0000-0000-000000000000' as MEMBERSHIPLEVELTYPECODEID,
0 as ACTIONTYPECODE, -- join
0 as ISINACTIVELEVEL,
0 as ISINACTIVETERM,
0 as ISINSACTIVETYPE
from dbo.MEMBERSHIPPROGRAM
where not exists(select * from dbo.MEMBER
inner join dbo.MEMBERSHIP on MEMBER.MEMBERSHIPID = MEMBERSHIP.ID
where MEMBER.CONSTITUENTID = @CONSTITUENTID
and MEMBERSHIP.MEMBERSHIPPROGRAMID = MEMBERSHIPPROGRAM.ID
and MEMBERSHIPPROGRAM.ALLOWMULTIPLEMEMBERSHIPS = 0
and MEMBER.ISDROPPED = 0)
and MEMBERSHIPPROGRAM.ISACTIVE = 1 and
MEMBERSHIPPROGRAM.PROGRAMTYPECODE = 0 and
MEMBERSHIPPROGRAM.PROGRAMBASEDONCODE = 0 and
MEMBERSHIPPROGRAM.ONEPAYMENTEACHTERM = 1
union all
-- Membership programs available to renew or rejoin
select
MEMBERSHIP.ID,
dbo.UFN_MEMBERSHIP_GETDESCRIPTION(MEMBERSHIP.ID) [DESCRIPTION],
MEMBERSHIP.MEMBERSHIPPROGRAMID,
MEMBERSHIP.MEMBERSHIPLEVELID,
MEMBERSHIP.MEMBERSHIPLEVELTERMID,
isnull(MEMBERSHIP.MEMBERSHIPLEVELTYPECODEID, '00000000-0000-0000-0000-000000000000'),
case
when dateadd(month, [MEMBERSHIPLEVEL].[AFTEREXPIRATION], [MEMBERSHIP].[EXPIRATIONDATE]) < @CURRENTDATE then 2 --Rejoin
when MEMBERSHIP.STATUSCODE = 1 then 2 --Rejoin
else 1 --Renew
end,
~MEMBERSHIPLEVEL.ISACTIVE,
~MEMBERSHIPLEVELTERM.ISACTIVE,
isnull(~MEMBERSHIPLEVELTYPECODE.ACTIVE, 0)
from
dbo.MEMBERSHIP
inner join
dbo.MEMBER on MEMBERSHIP.ID = MEMBER.MEMBERSHIPID
inner join dbo.MEMBERSHIPPROGRAM on MEMBERSHIP.MEMBERSHIPPROGRAMID = MEMBERSHIPPROGRAM.ID
inner join dbo.MEMBERSHIPLEVEL on MEMBERSHIP.MEMBERSHIPLEVELID = MEMBERSHIPLEVEL.ID
inner join dbo.MEMBERSHIPLEVELTERM on MEMBERSHIP.MEMBERSHIPLEVELTERMID = MEMBERSHIPLEVELTERM.ID
left join dbo.MEMBERSHIPLEVELTYPECODE on MEMBERSHIP.MEMBERSHIPLEVELTYPECODEID = MEMBERSHIPLEVELTYPECODE.ID
where
MEMBER.CONSTITUENTID = @CONSTITUENTID and
MEMBER.ISDROPPED = 0 and
[MEMBERSHIP].[STATUSCODE] <> 2 and
MEMBERSHIPPROGRAM.ISACTIVE = 1 and
MEMBERSHIPPROGRAM.PROGRAMTYPECODE = 0 and
MEMBERSHIPPROGRAM.PROGRAMBASEDONCODE = 0 and
MEMBERSHIPPROGRAM.ONEPAYMENTEACHTERM = 1