USP_DATAFORMTEMPLATE_VIEW_MEMBERSHIPPROGRAMBENEFITS
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@DATALOADED | bit | INOUT | |
@BASECURRENCYID | uniqueidentifier | INOUT | |
@BENEFITS | xml | INOUT | |
@TAXDEDUCTIBLEAMOUNT | money | INOUT | |
@TAXDEDUCTIBILITYCODE | tinyint | INOUT | |
@PROGRAMTYPECODE | tinyint | INOUT | |
@MEMBERSHIPLEVELAMOUNT | money | INOUT |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_MEMBERSHIPPROGRAMBENEFITS
(
@ID uniqueidentifier,
@DATALOADED bit = 0 output,
@BASECURRENCYID uniqueidentifier = null output,
@BENEFITS xml = null output,
@TAXDEDUCTIBLEAMOUNT money = null output,
@TAXDEDUCTIBILITYCODE tinyint = null output,
@PROGRAMTYPECODE tinyint = null output,
@MEMBERSHIPLEVELAMOUNT money = null output
)
as
set nocount on;
-- be sure to set this, in case the select returns no rows
set @DATALOADED = 1;
set @BENEFITS = (select
B.NAME as BENEFIT,
NUMBERTOOFFER as QUANTITYDETERMINATION,
case
when B.USEPERCENT = 1 then 0
else MLB.QUANTITY
end as QUANTITY,
MLB.FREQUENCY,
case
when MP.PROGRAMTYPECODE = 0 and MP.PROGRAMBASEDONCODE = 0 and MLT.AMOUNT is not null and B.USEPERCENT = 1 then (MLB.VALUEPERCENT / 100) * MLT.AMOUNT
else MLB.QUANTITY * MLB.UNITVALUE
end as FAIRMARKETVALUE,
MP.BASECURRENCYID,
B.USEPERCENT,
B.VALUEPERCENT,
MLB.DETAILS
FROM dbo.MEMBERSHIPPROGRAM MP
inner join dbo.MEMBERSHIPLEVEL ML on MP.ID = ML.MEMBERSHIPPROGRAMID
inner join dbo.MEMBERSHIPLEVELBENEFIT MLB on ML.ID = MLB.MEMBERSHIPLEVELID
inner join dbo.BENEFIT B on MLB.BENEFITID = B.ID
left outer join (select
LEVELID,
AMOUNT
from MEMBERSHIPLEVELTERM
where LEVELID = @ID
and LEVELID not in (select LEVELID from MEMBERSHIPLEVELTERM where SEQUENCE > 0)
) MLT on MLT.LEVELID = ML.ID
where
ML.ID = @ID
for xml raw ('ITEM'), type, elements, root('BENEFITS'), BINARY BASE64);
set @TAXDEDUCTIBLEAMOUNT = (SELECT
RECEIPTAMOUNT
FROM dbo.MEMBERSHIPLEVEL ML
WHERE ML.ID = @ID);
set @MEMBERSHIPLEVELAMOUNT = (select AMOUNT
from MEMBERSHIPLEVELTERM
where LEVELID = @ID
and LEVELID not in (select LEVELID from MEMBERSHIPLEVELTERM where SEQUENCE > 0))
select
@TAXDEDUCTIBILITYCODE = DEDUCTIBILITYCODE,
@PROGRAMTYPECODE = PROGRAMTYPECODE,
@BASECURRENCYID = MP.BASECURRENCYID
from dbo.MEMBERSHIPPROGRAM MP
inner join dbo.MEMBERSHIPLEVEL ML on MP.ID = ML.MEMBERSHIPPROGRAMID
where ML.ID = @ID