USP_MEMBERSHIPPROGRAMCONTRIBUTIONREVENUE_POPULATE_BYAPPLICATIONSELECTION

Parameters

Parameter Parameter Type Mode Description
@MEMBERSHIPPROGRAMID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@PROCESSDATE datetime IN
@LASTRUNONDATE datetime IN

Definition

Copy


create procedure dbo.USP_MEMBERSHIPPROGRAMCONTRIBUTIONREVENUE_POPULATE_BYAPPLICATIONSELECTION (
    @MEMBERSHIPPROGRAMID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier,
    @PROCESSDATE datetime,
    @LASTRUNONDATE datetime
)
as
begin
    --System-defined application filter options

    declare @APPLICATIONSELECTIONID uniqueidentifier

    --Currency

    declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY()
    declare @PROGRAMBASECURRENCYID uniqueidentifier
    declare @PROGRAMBASECURRENCYDIGITS tinyint;
    declare @PROGRAMBASECURRENCYROUNDINGTYPECODE tinyint;

    -- Pull all useful information about the membership program

    exec dbo.USP_MEMBERSHIPPROGRAMCONTRIBUTION_GETPROGRAMCRITERIA
        @MEMBERSHIPPROGRAMID,
        @APPLICATIONSELECTIONID = @APPLICATIONSELECTIONID output

    select
        @PROGRAMBASECURRENCYID = MEMBERSHIPPROGRAM.BASECURRENCYID,
        @PROGRAMBASECURRENCYDIGITS = CURRENCY.DECIMALDIGITS,
        @PROGRAMBASECURRENCYROUNDINGTYPECODE = CURRENCY.ROUNDINGTYPECODE
    from dbo.MEMBERSHIPPROGRAM
    inner join dbo.CURRENCY on MEMBERSHIPPROGRAM.BASECURRENCYID = CURRENCY.ID
    where MEMBERSHIPPROGRAM.ID = @MEMBERSHIPPROGRAMID

    --Determine the time from which we should consider for qualifying revenue

    --This date is as far back as the longest term on this program

    declare @MINIMUMDATERANGE date
    select @MINIMUMDATERANGE = dateadd(month, -1 * LENGTH, @PROCESSDATE
    from dbo.UFN_MEMBERSHIPPROGRAM_GETLONGESTTERMLENGTH_INMONTHS(@MEMBERSHIPPROGRAMID)

    insert into dbo.MEMBERSHIPPROGRAMCONTRIBUTIONREVENUE (
        FINANCIALTRANSACTIONLINEITEMID,
        CONSTITUENTID,
        EFFECTIVEDATE,
        AMOUNT,
        MEMBERSHIPPROGRAMID,
        ADDEDBYID,
        CHANGEDBYID,
        DATEADDED,
        DATECHANGED
    )
    select
        [RESULTS].FINANCIALTRANSACTIONLINEITEMID,
        [RESULTS].CONSTITUENTID,
        [RESULTS].DATE,
        [RESULTS].AMOUNTINCURRENCY,
        @MEMBERSHIPPROGRAMID,
        @CHANGEAGENTID,
        @CHANGEAGENTID,
        @PROCESSDATE,
        @PROCESSDATE
    from dbo.UFN_MEMBERSHIPPROGRAMCONTRIBUTIONREVENUE_GETAPPLICATIONSELECTIONRESULTS (
        @MEMBERSHIPPROGRAMID,
        @APPLICATIONSELECTIONID,
        @LASTRUNONDATE,
        @PROCESSDATE,
        @MINIMUMDATERANGE,
        @ORGANIZATIONCURRENCYID,
        @PROGRAMBASECURRENCYID,
        @PROGRAMBASECURRENCYDIGITS,
        @PROGRAMBASECURRENCYROUNDINGTYPECODE
    ) as [RESULTS]
end