USP_DATAFORMTEMPLATE_VIEW_MEMBERSHIPPROGRAMLIFETIMEPRICES
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@DATALOADED | bit | INOUT | |
@OPTION1 | nvarchar(25) | INOUT | |
@PAYMENTS1 | int | INOUT | |
@OPTION2 | nvarchar(25) | INOUT | |
@PAYMENTS2 | int | INOUT | |
@OPTION3 | nvarchar(25) | INOUT | |
@PAYMENTS3 | int | INOUT | |
@OPTION4 | nvarchar(25) | INOUT | |
@PAYMENTS4 | int | INOUT | |
@OPTION5 | nvarchar(25) | INOUT | |
@PAYMENTS5 | int | INOUT | |
@OPTION6 | nvarchar(25) | INOUT | |
@PAYMENTS6 | int | INOUT | |
@OPTION7 | nvarchar(25) | INOUT | |
@PAYMENTS7 | int | INOUT | |
@OPTION8 | nvarchar(25) | INOUT | |
@PAYMENTS8 | int | INOUT | |
@OPTION9 | nvarchar(25) | INOUT | |
@PAYMENTS9 | int | INOUT | |
@OPTION10 | nvarchar(25) | INOUT | |
@PAYMENTS10 | int | INOUT | |
@LIFETIMEPRICES | xml | INOUT |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_MEMBERSHIPPROGRAMLIFETIMEPRICES
(
@ID uniqueidentifier,
@DATALOADED bit = 0 output,
@OPTION1 nvarchar(25) = null output,
@PAYMENTS1 integer = null output,
@OPTION2 nvarchar(25) = null output,
@PAYMENTS2 integer = null output,
@OPTION3 nvarchar(25) = null output,
@PAYMENTS3 integer = null output,
@OPTION4 nvarchar(25) = null output,
@PAYMENTS4 integer = null output,
@OPTION5 nvarchar(25) = null output,
@PAYMENTS5 integer = null output,
@OPTION6 nvarchar(25) = null output,
@PAYMENTS6 integer = null output,
@OPTION7 nvarchar(25) = null output,
@PAYMENTS7 integer = null output,
@OPTION8 nvarchar(25) = null output,
@PAYMENTS8 integer = null output,
@OPTION9 nvarchar(25) = null output,
@PAYMENTS9 integer = null output,
@OPTION10 nvarchar(25) = null output,
@PAYMENTS10 integer = null output,
@LIFETIMEPRICES xml = null output
)
as
set nocount on;
-- be sure to set this, in case the select returns no rows
set @DATALOADED = 1;
-- populate the output parameters, which correspond to fields on the form. Note that
-- we set @DATALOADED = 1 to indicate that the load was successful. Otherwise, the system
-- will display a "no data loaded" message.
select
@OPTION1 = MAX(CASE
WHEN MLT1.LIFETIMEPAYMENTOPTIONCODE = 1 THEN 'month'
WHEN MLT1.LIFETIMEPAYMENTOPTIONCODE = 2 THEN 'quarter'
WHEN MLT1.LIFETIMEPAYMENTOPTIONCODE = 3 THEN 'year'
ELSE MLT1.LIFETIMEPAYMENTOPTION
END),
@PAYMENTS1 = MAX(MLT1.LIFETIMENUMBEROFPAYMENTS),
@OPTION2 = MAX(CASE
WHEN MLT2.LIFETIMEPAYMENTOPTIONCODE = 1 THEN 'month'
WHEN MLT2.LIFETIMEPAYMENTOPTIONCODE = 2 THEN 'quarter'
WHEN MLT2.LIFETIMEPAYMENTOPTIONCODE = 3 THEN 'year'
ELSE MLT2.LIFETIMEPAYMENTOPTION
END),
@PAYMENTS2 = MAX(MLT2.LIFETIMENUMBEROFPAYMENTS),
@OPTION3 = MAX(CASE
WHEN MLT3.LIFETIMEPAYMENTOPTIONCODE = 1 THEN 'month'
WHEN MLT3.LIFETIMEPAYMENTOPTIONCODE = 2 THEN 'quarter'
WHEN MLT3.LIFETIMEPAYMENTOPTIONCODE = 3 THEN 'year'
ELSE MLT3.LIFETIMEPAYMENTOPTION
END),
@PAYMENTS3 = MAX(MLT3.LIFETIMENUMBEROFPAYMENTS),
@OPTION4 = MAX(CASE
WHEN MLT4.LIFETIMEPAYMENTOPTIONCODE = 1 THEN 'month'
WHEN MLT4.LIFETIMEPAYMENTOPTIONCODE = 2 THEN 'quarter'
WHEN MLT4.LIFETIMEPAYMENTOPTIONCODE = 3 THEN 'year'
ELSE MLT4.LIFETIMEPAYMENTOPTION
END),
@PAYMENTS4 = MAX(MLT4.LIFETIMENUMBEROFPAYMENTS),
@OPTION5 = MAX(CASE
WHEN MLT5.LIFETIMEPAYMENTOPTIONCODE = 1 THEN 'month'
WHEN MLT5.LIFETIMEPAYMENTOPTIONCODE = 2 THEN 'quarter'
WHEN MLT5.LIFETIMEPAYMENTOPTIONCODE = 3 THEN 'year'
ELSE MLT5.LIFETIMEPAYMENTOPTION
END),
@PAYMENTS5 = MAX(MLT5.LIFETIMENUMBEROFPAYMENTS),
@OPTION6 = MAX(CASE
WHEN MLT6.LIFETIMEPAYMENTOPTIONCODE = 1 THEN 'month'
WHEN MLT6.LIFETIMEPAYMENTOPTIONCODE = 2 THEN 'quarter'
WHEN MLT6.LIFETIMEPAYMENTOPTIONCODE = 3 THEN 'year'
ELSE MLT6.LIFETIMEPAYMENTOPTION
END),
@PAYMENTS6 = MAX(MLT6.LIFETIMENUMBEROFPAYMENTS),
@OPTION7 = MAX(CASE
WHEN MLT7.LIFETIMEPAYMENTOPTIONCODE = 1 THEN 'month'
WHEN MLT7.LIFETIMEPAYMENTOPTIONCODE = 2 THEN 'quarter'
WHEN MLT7.LIFETIMEPAYMENTOPTIONCODE = 3 THEN 'year'
ELSE MLT7.LIFETIMEPAYMENTOPTION
END),
@PAYMENTS7 = MAX(MLT7.LIFETIMENUMBEROFPAYMENTS),
@OPTION8 = MAX(CASE
WHEN MLT8.LIFETIMEPAYMENTOPTIONCODE = 1 THEN 'month'
WHEN MLT8.LIFETIMEPAYMENTOPTIONCODE = 2 THEN 'quarter'
WHEN MLT8.LIFETIMEPAYMENTOPTIONCODE = 3 THEN 'year'
ELSE MLT8.LIFETIMEPAYMENTOPTION
END),
@PAYMENTS8 = MAX(MLT8.LIFETIMENUMBEROFPAYMENTS),
@OPTION9 = MAX(CASE
WHEN MLT9.LIFETIMEPAYMENTOPTIONCODE = 1 THEN 'month'
WHEN MLT9.LIFETIMEPAYMENTOPTIONCODE = 2 THEN 'quarter'
WHEN MLT9.LIFETIMEPAYMENTOPTIONCODE = 3 THEN 'year'
ELSE MLT9.LIFETIMEPAYMENTOPTION
END),
@PAYMENTS9 = MAX(MLT9.LIFETIMENUMBEROFPAYMENTS),
@OPTION10 = MAX(CASE
WHEN MLT10.LIFETIMEPAYMENTOPTIONCODE = 1 THEN 'month'
WHEN MLT10.LIFETIMEPAYMENTOPTIONCODE = 2 THEN 'quarter'
WHEN MLT10.LIFETIMEPAYMENTOPTIONCODE = 3 THEN 'year'
ELSE MLT10.LIFETIMEPAYMENTOPTION
END),
@PAYMENTS10 = MAX(MLT10.LIFETIMENUMBEROFPAYMENTS)
from
MEMBERSHIPLEVEL ML
left outer join MEMBERSHIPLEVELTERM MLT1 on ML.ID = MLT1.LEVELID and MLT1.SEQUENCE = 0 and MLT1.ISACTIVE = 1
left outer join MEMBERSHIPLEVELTERM MLT2 on ML.ID = MLT2.LEVELID and MLT2.SEQUENCE = 1 and MLT2.ISACTIVE = 1
left outer join MEMBERSHIPLEVELTERM MLT3 on ML.ID = MLT3.LEVELID and MLT3.SEQUENCE = 2 and MLT3.ISACTIVE = 1
left outer join MEMBERSHIPLEVELTERM MLT4 on ML.ID = MLT4.LEVELID and MLT4.SEQUENCE = 3 and MLT4.ISACTIVE = 1
left outer join MEMBERSHIPLEVELTERM MLT5 on ML.ID = MLT5.LEVELID and MLT5.SEQUENCE = 4 and MLT5.ISACTIVE = 1
left outer join MEMBERSHIPLEVELTERM MLT6 on ML.ID = MLT6.LEVELID and MLT6.SEQUENCE = 5 and MLT6.ISACTIVE = 1
left outer join MEMBERSHIPLEVELTERM MLT7 on ML.ID = MLT7.LEVELID and MLT7.SEQUENCE = 6 and MLT7.ISACTIVE = 1
left outer join MEMBERSHIPLEVELTERM MLT8 on ML.ID = MLT8.LEVELID and MLT8.SEQUENCE = 7 and MLT8.ISACTIVE = 1
left outer join MEMBERSHIPLEVELTERM MLT9 on ML.ID = MLT9.LEVELID and MLT9.SEQUENCE = 8 and MLT9.ISACTIVE = 1
left outer join MEMBERSHIPLEVELTERM MLT10 on ML.ID = MLT10.LEVELID and MLT10.SEQUENCE = 9 and MLT10.ISACTIVE = 1
where
ML.MEMBERSHIPPROGRAMID = @ID
and ML.ISACTIVE = 1
set @LIFETIMEPRICES = (
select distinct
ML.MEMBERSHIPPROGRAMID,
ML.NAME as LEVEL,
MLT1.AMOUNT as PRICE1,
MLT1.AMOUNT * MLT1.LIFETIMENUMBEROFPAYMENTS as TOTAL1,
MLT2.AMOUNT as PRICE2,
MLT2.AMOUNT * MLT2.LIFETIMENUMBEROFPAYMENTS as TOTAL2,
MLT3.AMOUNT as PRICE3,
MLT3.AMOUNT * MLT3.LIFETIMENUMBEROFPAYMENTS as TOTAL3,
MLT4.AMOUNT as PRICE4,
MLT4.AMOUNT * MLT4.LIFETIMENUMBEROFPAYMENTS as TOTAL4,
MLT5.AMOUNT as PRICE5,
MLT5.AMOUNT * MLT5.LIFETIMENUMBEROFPAYMENTS as TOTAL5,
MLT6.AMOUNT as PRICE6,
MLT6.AMOUNT * MLT6.LIFETIMENUMBEROFPAYMENTS as TOTAL6,
MLT7.AMOUNT as PRICE7,
MLT7.AMOUNT * MLT7.LIFETIMENUMBEROFPAYMENTS as TOTAL7,
MLT8.AMOUNT as PRICE8,
MLT8.AMOUNT * MLT8.LIFETIMENUMBEROFPAYMENTS as TOTAL8,
MLT9.AMOUNT as PRICE9,
MLT9.AMOUNT * MLT9.LIFETIMENUMBEROFPAYMENTS as TOTAL9,
MLT10.AMOUNT as PRICE10,
MLT10.AMOUNT * MLT10.LIFETIMENUMBEROFPAYMENTS as TOTAL10,
ML.SEQUENCE,
ML.BASECURRENCYID
from
MEMBERSHIPLEVEL ML
left outer join MEMBERSHIPLEVELTERM MLT1 on ML.ID = MLT1.LEVELID and MLT1.SEQUENCE = 0 and MLT1.ISACTIVE = 1
left outer join MEMBERSHIPLEVELTERM MLT2 on ML.ID = MLT2.LEVELID and MLT2.SEQUENCE = 1 and MLT2.ISACTIVE = 1
left outer join MEMBERSHIPLEVELTERM MLT3 on ML.ID = MLT3.LEVELID and MLT3.SEQUENCE = 2 and MLT3.ISACTIVE = 1
left outer join MEMBERSHIPLEVELTERM MLT4 on ML.ID = MLT4.LEVELID and MLT4.SEQUENCE = 3 and MLT4.ISACTIVE = 1
left outer join MEMBERSHIPLEVELTERM MLT5 on ML.ID = MLT5.LEVELID and MLT5.SEQUENCE = 4 and MLT5.ISACTIVE = 1
left outer join MEMBERSHIPLEVELTERM MLT6 on ML.ID = MLT6.LEVELID and MLT6.SEQUENCE = 5 and MLT6.ISACTIVE = 1
left outer join MEMBERSHIPLEVELTERM MLT7 on ML.ID = MLT7.LEVELID and MLT7.SEQUENCE = 6 and MLT7.ISACTIVE = 1
left outer join MEMBERSHIPLEVELTERM MLT8 on ML.ID = MLT8.LEVELID and MLT8.SEQUENCE = 7 and MLT8.ISACTIVE = 1
left outer join MEMBERSHIPLEVELTERM MLT9 on ML.ID = MLT9.LEVELID and MLT9.SEQUENCE = 8 and MLT9.ISACTIVE = 1
left outer join MEMBERSHIPLEVELTERM MLT10 on ML.ID = MLT10.LEVELID and MLT10.SEQUENCE = 9 and MLT10.ISACTIVE = 1
where
ML.MEMBERSHIPPROGRAMID = @ID and ML.ISACTIVE = 1
order by
ML.SEQUENCE
for xml raw('ITEM'),type,elements,root('LIFETIMEPRICES'),BINARY BASE64)
return 0;