USP_DATALIST_MEMBERSHIPLEVELTERMAMOUNT
Returns term information for a membership program.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@MEMBERSHIPPROGRAMID | uniqueidentifier | IN | Input parameter indicating the context ID for the data list. |
@INCLUDEINACTIVETERMS | bit | IN |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_MEMBERSHIPLEVELTERMAMOUNT
(
@MEMBERSHIPPROGRAMID uniqueidentifier = null,
@INCLUDEINACTIVETERMS bit = 0
)
as
set nocount on;
select
MEMBERSHIPLEVELTERM.ID,
case
when TERMCODE = 0 then 1
when TERMCODE = 1 then 2
when TERMCODE = 2 then 3
when TERMCODE = 3 then 4
when TERMCODE = 4 then 5
when TERMCODE = 5 then 10
when TERMCODE = 6 then 255 -- lifetime
else 0
end AS TERM,
case MEMBERSHIPLEVEL.OBTAINLEVELCODE
when 0 then MEMBERSHIPLEVELTERM.AMOUNT
else MEMBERSHIPLEVELTERM.LOWAMOUNT
end as AMOUNT,
MEMBERSHIPLEVELTERM.LEVELID,
MEMBERSHIPLEVELTERM.BASECURRENCYID,
MEMBERSHIPLEVELTERM.TERMTIMELENGTH,
MEMBERSHIPLEVELTERM.TERMLENGTHCODE,
MEMBERSHIPLEVELTERM.LIFETIMEPAYMENTOPTIONCODE as PAYMENTOPTION,
case
-- Recurring/Sustaining
when MEMBERSHIPPROGRAM.PROGRAMTYPECODE = 1 then
case MEMBERSHIPLEVELTERM.RECURRINGPAYMENTOPTIONCODE
when 0 then 1 -- Annually
when 1 then 2 -- Semi-annually
when 2 then 4 -- Quarterly
else 12 -- Monthly
end
-- Lifetime
when MEMBERSHIPPROGRAM.PROGRAMTYPECODE = 2 then MEMBERSHIPLEVELTERM.LIFETIMENUMBEROFPAYMENTS
else 0
end as LIFETIMENUMBEROFPAYMENTS
from dbo.MEMBERSHIPLEVELTERM
inner join dbo.MEMBERSHIPLEVEL on MEMBERSHIPLEVELTERM.LEVELID = MEMBERSHIPLEVEL.ID
inner join dbo.MEMBERSHIPPROGRAM on MEMBERSHIPLEVEL.MEMBERSHIPPROGRAMID = MEMBERSHIPPROGRAM.ID
where MEMBERSHIPLEVEL.MEMBERSHIPPROGRAMID = @MEMBERSHIPPROGRAMID
and ((MEMBERSHIPLEVELTERM.ISACTIVE = 1) or (@INCLUDEINACTIVETERMS = 1))
order by MEMBERSHIPLEVELTERM.AMOUNT desc, MEMBERSHIPLEVEL.SEQUENCE desc