USP_DATAFORMTEMPLATE_VIEW_CREDITREFUND_MEMBERSHIPCREDITITEM

The load procedure used by the view dataform template "Credit Refund Membership Credit Item View 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.
@PRICE money INOUT Price
@MEMBERSHIPEXPIRATIONDATE datetime INOUT Expires on
@MEMBERSHIPLEVELTYPECODE nvarchar(100) INOUT Type
@MEMBERSHIPNUMBEROFCHILDREN smallint INOUT Children
@MEMBERSHIPGIVENBY nvarchar(154) INOUT Given by
@MEMBERSHIPMEMBERS xml INOUT Members
@PROMOTIONS money INOUT Promotions
@ADDONS xml INOUT

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_CREDITREFUND_MEMBERSHIPCREDITITEM
(
    @ID uniqueidentifier,
    @DATALOADED bit = 0 output,
    @PRICE money = null output,
    @MEMBERSHIPEXPIRATIONDATE datetime = null output,
    @MEMBERSHIPLEVELTYPECODE nvarchar(100) = null output,
    @MEMBERSHIPNUMBEROFCHILDREN smallint = null output,
    @MEMBERSHIPGIVENBY nvarchar(154) = null output,
    @MEMBERSHIPMEMBERS xml = null output,
    @PROMOTIONS money = null output,
    @ADDONS xml = null output
)
as
    set nocount on;

    set @DATALOADED = 0;

    declare @MEMBERSHIPID uniqueidentifier = null;

    declare @CREDITID uniqueidentifier;
    select @CREDITID = CREDITID from dbo.CREDITITEM_EXT where CREDITITEM_EXT.ID = @ID;

    declare @TYPECODE integer;
    select @TYPECODE = TYPECODE from dbo.CREDITITEM_EXT where ID = @ID;

    if @TYPECODE = 1 begin
        select
            @DATALOADED = 1,
            @PRICE = LI.QUANTITY * LI.UNITVALUE,
            @PROMOTIONS = EXT.DISCOUNTS
        from dbo.FINANCIALTRANSACTIONLINEITEM as LI
        inner join dbo.CREDITITEM_EXT as EXT on EXT.ID = LI.ID
        where LI.ID = @ID;

        select
            @MEMBERSHIPID = CREDITITEMMEMBERSHIP.MEMBERSHIPID,
            @MEMBERSHIPEXPIRATIONDATE = [CREDITITEMMEMBERSHIP].[EXPIRATIONDATE],
            @MEMBERSHIPLEVELTYPECODE = dbo.UFN_MEMBERSHIPLEVELTYPECODE_GETDESCRIPTION([CREDITITEMMEMBERSHIP].[MEMBERSHIPLEVELTYPECODEID]),
            @MEMBERSHIPNUMBEROFCHILDREN = [CREDITITEMMEMBERSHIP].[NUMBEROFCHILDREN],
            @MEMBERSHIPGIVENBY = dbo.UFN_CONSTITUENT_BUILDNAME([CREDITITEMMEMBERSHIP].[GIVENBYID]),
            @MEMBERSHIPMEMBERS = [CREDITITEMMEMBERSHIP].[MEMBERS]
        from dbo.[CREDITITEMMEMBERSHIP]
        inner join dbo.[MEMBERSHIP]
            on [CREDITITEMMEMBERSHIP].[MEMBERSHIPID] = [MEMBERSHIP].[ID]
        where [CREDITITEMMEMBERSHIP].[ID] = @ID;
    end
    else if @TYPECODE = 16 begin
        select
            @MEMBERSHIPID = MEMBERSHIPADDON.MEMBERSHIPID,
            @DATALOADED = 1
        from dbo.FINANCIALTRANSACTIONLINEITEM
        inner join MEMBERSHIPADDON on MEMBERSHIPADDON.REVENUESPLITID = FINANCIALTRANSACTIONLINEITEM.SOURCELINEITEMID
        where FINANCIALTRANSACTIONLINEITEM.ID = @ID
    end

    select
        @ADDONS = (
            select
                ADDON.NAME,
                FINANCIALTRANSACTIONLINEITEM.QUANTITY,
                FINANCIALTRANSACTIONLINEITEM.UNITVALUE as PRICE,
                FINANCIALTRANSACTIONLINEITEM.ORGAMOUNT as TOTAL
            from dbo.CREDITITEM_EXT
            inner join dbo.FINANCIALTRANSACTIONLINEITEM on FINANCIALTRANSACTIONLINEITEM.ID = CREDITITEM_EXT.ID
            inner join dbo.MEMBERSHIPADDON on MEMBERSHIPADDON.REVENUESPLITID = FINANCIALTRANSACTIONLINEITEM.SOURCELINEITEMID
            inner join dbo.ADDON on ADDON.ID = MEMBERSHIPADDON.ADDONID
            where MEMBERSHIPADDON.MEMBERSHIPID = @MEMBERSHIPID
                and CREDITITEM_EXT.CREDITID = @CREDITID
            for xml raw('ITEM'),type,elements,root('ADDONS'),binary base64
        )

    return 0;