USP_DATAFORMTEMPLATE_VIEW_MEMBERSHIPBATCHREVENUEDATA

The load procedure used by the view dataform template "Batch Revenue Application Membership View Data Form"

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter used to load the fields defined on the form.
@DATALOADED bit INOUT Output parameter indicating whether or not data was actually loaded.
@MEMBERSHIP nvarchar(203) INOUT Membership
@PROGRAM nvarchar(100) INOUT Program
@MEMBERSHIPPROGRAMID uniqueidentifier INOUT Program
@TERM nvarchar(8) INOUT Term
@TRANSACTIONDATE datetime INOUT Transaction date
@MEMBERSHIPLEVELID uniqueidentifier INOUT Level
@MEMBERSHIPLEVELTERMID uniqueidentifier INOUT Term
@TERMSLIST xml INOUT TERMSLIST
@FORCEMANUALDOWNGRADE bit INOUT FORCEMANUALDOWNGRADE
@EXPIRESONCODE tinyint INOUT EXPIRESONCODE
@CUTOFFDAY tinyint INOUT CUTOFFDAY
@CUTOFFDATEFORYEAR nvarchar(4) INOUT CUTOFFDATEFORYEAR
@EXPIRATIONDATES xml INOUT EXPIRATIONDATES

Definition

Copy

            CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_MEMBERSHIPBATCHREVENUEDATA
                (
                    @ID uniqueidentifier,    
                    @DATALOADED bit = 0 output,
                    @MEMBERSHIP nvarchar(203) = null output,
                    @PROGRAM nvarchar(100) = null output,
                    @MEMBERSHIPPROGRAMID uniqueidentifier = null output,
                    @TERM nvarchar(8) = null output,
                    @TRANSACTIONDATE datetime = null output,
                    @MEMBERSHIPLEVELID uniqueidentifier = null output,
                    @MEMBERSHIPLEVELTERMID uniqueidentifier = null output,
                    @TERMSLIST xml = null output,
                    @FORCEMANUALDOWNGRADE bit = null output,
                    @EXPIRESONCODE tinyint = null output,
                    @CUTOFFDAY tinyint = null output,
                    @CUTOFFDATEFORYEAR nvarchar(4) = null output,
                    @EXPIRATIONDATES xml = null output
                )
                as
                set nocount on;

                set @DATALOADED = 0;

                select
                    @DATALOADED = 1,
                    @MEMBERSHIP = MP.NAME + ' - ' + ML.NAME,
                    @PROGRAM = MP.NAME,
                    @MEMBERSHIPPROGRAMID = MP.ID,
                    @TERM = MLT.TERM,
                    @TRANSACTIONDATE = getdate(),
                    @MEMBERSHIPLEVELID = ML.ID,
                    @MEMBERSHIPLEVELTERMID = MLT.ID,
                    @FORCEMANUALDOWNGRADE = ML.FORCEMANUALDOWNGRADES,
                    @EXPIRESONCODE = MP.EXPIRESONCODE,
                    @CUTOFFDAY = MP.CUTOFFDAY,
                    @CUTOFFDATEFORYEAR = MP.CUTOFFDATEFORYEAR
                from dbo.MEMBERSHIPLEVELTERM MLT
                inner join dbo.MEMBERSHIPLEVEL ML on MLT.LEVELID = ML.ID
                inner join dbo.MEMBERSHIPPROGRAM MP on ML.MEMBERSHIPPROGRAMID = MP.ID
                where MLT.ID = @ID;

                set @TERMSLIST =
                (
                    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
                            else 0
                        end AS TERM,
                        AMOUNT,
                        MEMBERSHIPLEVELTERM.LEVELID
                    from dbo.MEMBERSHIPLEVELTERM
                    inner join dbo.MEMBERSHIPLEVEL on MEMBERSHIPLEVELTERM.LEVELID = MEMBERSHIPLEVEL.ID
                    where MEMBERSHIPLEVEL.MEMBERSHIPPROGRAMID = @MEMBERSHIPPROGRAMID
                    order by MEMBERSHIPLEVELTERM.AMOUNT desc, MEMBERSHIPLEVEL.SEQUENCE desc
                    for xml raw ('ITEM'), type, elements, root('TERMSLIST'), BINARY BASE64
                )

                if @EXPIRESONCODE = 4 --specific dates
                    begin
                    set @EXPIRATIONDATES = 
                    (
                        select 
                            ME.ID,
                            ME.EXPIRATIONDATE,
                            ME.PUSHNEXTDATE,
                            ME.SEQUENCE
                        from 
                            dbo.MEMBERSHIPPROGRAMENDDATE ME
                        where 
                            MEMBERSHIPPROGRAMID = @MEMBERSHIPPROGRAMID
                        for xml raw ('ITEM'), type, elements, root('EXPIRATIONDATES'), BINARY BASE64
                    )
                    end

                return 0;