USP_DATAFORMTEMPLATE_VIEW_MEMBERSHIPPROGRAMRECURRINGPRICES
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@DATALOADED | bit | INOUT | |
@ANNUALOPTION | bit | INOUT | |
@SEMIANNUALOPTION | bit | INOUT | |
@QUARTERLYOPTION | bit | INOUT | |
@MONTHLYOPTION | bit | INOUT | |
@RECURRINGPRICES | xml | INOUT |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_MEMBERSHIPPROGRAMRECURRINGPRICES
(
@ID uniqueidentifier,
@DATALOADED bit = 0 output,
@ANNUALOPTION bit = null output,
@SEMIANNUALOPTION bit = null output,
@QUARTERLYOPTION bit = null output,
@MONTHLYOPTION bit = null output,
@RECURRINGPRICES xml = null output
)
as
set nocount on;
set @DATALOADED = 1;
select top 1
@ANNUALOPTION = case when MLTA.AMOUNT is null then 0 else 1 end,
@SEMIANNUALOPTION = case when MLTSA.AMOUNT is null then 0 else 1 end,
@QUARTERLYOPTION = case when MLTQ.AMOUNT is null then 0 else 1 end,
@MONTHLYOPTION = case when MLTM.AMOUNT is null then 0 else 1 end
from MEMBERSHIPLEVEL ML
INNER JOIN MEMBERSHIPLEVELTERM MLT on ML.ID = MLT.LEVELID
LEFT OUTER JOIN MEMBERSHIPLEVELTERM MLTA on ML.ID = MLTA.LEVELID and MLTA.RECURRINGPAYMENTOPTION = 'Annually' and MLTA.ISACTIVE = 1
LEFT OUTER JOIN MEMBERSHIPLEVELTERM MLTSA on ML.ID = MLTSA.LEVELID and MLTSA.RECURRINGPAYMENTOPTION = 'Semi-annually' and MLTSA.ISACTIVE = 1
LEFT OUTER JOIN MEMBERSHIPLEVELTERM MLTQ on ML.ID = MLTQ.LEVELID and MLTQ.RECURRINGPAYMENTOPTION = 'Quarterly' and MLTQ.ISACTIVE = 1
LEFT OUTER JOIN MEMBERSHIPLEVELTERM MLTM on ML.ID = MLTM.LEVELID and MLTM.RECURRINGPAYMENTOPTION = 'Monthly' and MLTM.ISACTIVE = 1
where
ML.MEMBERSHIPPROGRAMID = @ID
and ML.ISACTIVE = 1
set @RECURRINGPRICES = (select distinct
ML.MEMBERSHIPPROGRAMID,
ML.NAME as LEVEL,
MLTA.AMOUNT as ANNUALPRICE,
MLTSA.AMOUNT as SEMIANNUALPRICE,
MLTSA.AMOUNT * 2 as SEMIANNUALTOTAL,
MLTQ.AMOUNT as QUARTERLYPRICE,
MLTQ.AMOUNT * 4 as QUARTERLYTOTAL,
MLTM.AMOUNT as MONTHLYPRICE,
MLTM.AMOUNT * 12 as MONTHLYTOTAL,
ML.SEQUENCE,
ML.BASECURRENCYID
from
MEMBERSHIPLEVEL ML
INNER JOIN MEMBERSHIPLEVELTERM MLT on ML.ID = MLT.LEVELID
LEFT OUTER JOIN MEMBERSHIPLEVELTERM MLTA on ML.ID = MLTA.LEVELID and MLTA.RECURRINGPAYMENTOPTION = 'Annually' and MLTA.ISACTIVE = 1
LEFT OUTER JOIN MEMBERSHIPLEVELTERM MLTSA on ML.ID = MLTSA.LEVELID and MLTSA.RECURRINGPAYMENTOPTION = 'Semi-annually' and MLTSA.ISACTIVE = 1
LEFT OUTER JOIN MEMBERSHIPLEVELTERM MLTQ on ML.ID = MLTQ.LEVELID and MLTQ.RECURRINGPAYMENTOPTION = 'Quarterly' and MLTQ.ISACTIVE = 1
LEFT OUTER JOIN MEMBERSHIPLEVELTERM MLTM on ML.ID = MLTM.LEVELID and MLTM.RECURRINGPAYMENTOPTION = 'Monthly' and MLTM.ISACTIVE = 1
where
ML.MEMBERSHIPPROGRAMID = @ID and ML.ISACTIVE = 1
order by ML.SEQUENCE
for xml raw('ITEM'),type,elements,root('RECURRINGPRICES'),BINARY BASE64)
return 0;