USP_DATALIST_MEMBERSHIPLEVELINFO

Parameters

Parameter Parameter Type Mode Description
@MEMBERSHIPLEVELID uniqueidentifier IN

Definition

Copy


            CREATE procedure dbo.USP_DATALIST_MEMBERSHIPLEVELINFO
            (
                @MEMBERSHIPLEVELID uniqueidentifier
            )
            as
                set nocount on;

                select 
                    MEMBERSHIPLEVEL.ID,
                    (
                        select DESIGNATION.ID, DESIGNATION.NAME, MEMBERSHIPLEVELDESIGNATION.[PERCENT]
                        from dbo.MEMBERSHIPLEVELDESIGNATION
                        inner join dbo.DESIGNATION on MEMBERSHIPLEVELDESIGNATION.DESIGNATIONID = DESIGNATION.ID
                        where MEMBERSHIPLEVELDESIGNATION.MEMBERSHIPLEVELID = MEMBERSHIPLEVEL.ID
                        for xml raw('ITEM'),type,elements,root('MEMBERSHIPLEVELDESGINATIONS'),BINARY BASE64
                    ) as MEMBERSHIPLEVELDESIGNATIONS,
                    (
                        select 
                            MEMBERSHIPLEVELBENEFIT.BENEFITID
                            , BENEFIT.NAME
                            , MEMBERSHIPLEVELBENEFIT.UNITVALUE
                            , MEMBERSHIPLEVELBENEFIT.BASECURRENCYID
                            , MEMBERSHIPLEVELBENEFIT.QUANTITY
                            , MEMBERSHIPLEVELBENEFIT.USEPERCENT
                            , MEMBERSHIPLEVELBENEFIT.VALUEPERCENT
                            , MEMBERSHIPLEVELBENEFIT.FREQUENCYCODE
                            , MEMBERSHIPLEVELBENEFIT.DETAILS
                        from dbo.MEMBERSHIPLEVELBENEFIT
                        inner join dbo.BENEFIT on MEMBERSHIPLEVELBENEFIT.BENEFITID = BENEFIT.ID
                        where MEMBERSHIPLEVELBENEFIT.MEMBERSHIPLEVELID = MEMBERSHIPLEVEL.ID
                        order by MEMBERSHIPLEVELBENEFIT.SEQUENCE
                        for xml raw('ITEM'),type,elements,root('MEMBERSHIPLEVELBENEFITS'),BINARY BASE64
                    ) as MEMBERSHIPLEVELBENEFITS,
                    coalesce(
                        case
                            -- Entire amount

                            when MEMBERSHIPPROGRAM.DEDUCTIBILITYCODE = 0 then
                                case
                                    when MEMBERSHIPPROGRAM.PROGRAMTYPECODE = 0 then MEMBERSHIPLEVEL.RECEIPTAMOUNT
                                    when MEMBERSHIPPROGRAM.PROGRAMTYPECODE = 2 then (select max(AMOUNT * LIFETIMENUMBEROFPAYMENTS) from dbo.MEMBERSHIPLEVELTERM where LEVELID = @MEMBERSHIPLEVELID)
                                    else (select max(AMOUNT) from dbo.MEMBERSHIPLEVELTERM where LEVELID = @MEMBERSHIPLEVELID)
                                end
                            -- Portion

                            when MEMBERSHIPPROGRAM.DEDUCTIBILITYCODE = 1 then MEMBERSHIPLEVEL.RECEIPTAMOUNT
                            -- None

                            else 0
                        end, 0) as TAXDEDUCTIBLEAMOUNT,
                    MEMBERSHIPLEVEL.OBTAINLEVELCODE,
                    MEMBERSHIPLEVEL.CARDSALLOWED,
                    MEMBERSHIPLEVEL.MEMBERSALLOWED,
                    MEMBERSHIPLEVEL.CHILDRENALLOWED,
                    case
                                    when exists (select * from dbo.MEMBERSHIPLEVELTYPE 
                                                    inner join dbo.MEMBERSHIPLEVEL
                                                            on MEMBERSHIPLEVELTYPE.LEVELID = MEMBERSHIPLEVEL.ID
                                                    where MEMBERSHIPLEVEL.MEMBERSHIPPROGRAMID = MEMBERSHIPLEVEL.MEMBERSHIPPROGRAMID
                                                    and MEMBERSHIPLEVEL.ID = @MEMBERSHIPLEVELID)
                                    then 1
                                    else 0
                    end,
                    MEMBERSHIPLEVEL.NAME
                    from dbo.MEMBERSHIPLEVEL
                        inner join dbo.MEMBERSHIPPROGRAM on MEMBERSHIPLEVEL.MEMBERSHIPPROGRAMID = MEMBERSHIPPROGRAM.ID
                where MEMBERSHIPLEVEL.ID = @MEMBERSHIPLEVELID