USP_SIMPLEDATALIST_MEMBERSHIPUPGRADELEVEL
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@MEMBERSHIPID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_SIMPLEDATALIST_MEMBERSHIPUPGRADELEVEL
(
@MEMBERSHIPID uniqueidentifier
)
as
set nocount on;
select
ID as VALUE,
NAME as LABEL
from
(
--Get all active levels sequenced higher than the current level
select
ML2.ID,
ML2.NAME,
ML2.SEQUENCE
from MEMBERSHIP M
inner join dbo.MEMBERSHIPLEVEL ML on M.MEMBERSHIPLEVELID = ML.ID
inner join dbo.MEMBERSHIPLEVEL ML2 on M.MEMBERSHIPPROGRAMID = ML2.MEMBERSHIPPROGRAMID and ML2.ISACTIVE = 1 and ML.SEQUENCE < ML2.SEQUENCE
inner join dbo.MEMBERSHIPLEVELTERM MLT on ML2.ID = MLT.LEVELID and MLT.ISACTIVE = 1
where
M.ID = @MEMBERSHIPID
union
--Get current level if it has active terms that can be upgraded to
select
ML.ID,
ML.NAME,
ML.SEQUENCE
from
MEMBERSHIP M
inner join dbo.MEMBERSHIPLEVEL ML on M.MEMBERSHIPLEVELID = ML.ID
inner join dbo.MEMBERSHIPLEVELTERM MLT on M.MEMBERSHIPLEVELTERMID = MLT.ID and dbo.UFN_MEMBERSHIPLEVELTERM_ISUPGRADEABLE(MLT.ID) = 1
and ML.ISACTIVE = 1
where
M.ID = @MEMBERSHIPID
)UPGRADEABLELEVELS
order by SEQUENCE asc;