USP_MEMBERSHIPPROGRAMCONTRIBUTIONREVENUE_TOCONSIDER_POPULATE_BYAPPLICATIONSELECTION
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@MEMBERSHIPPROGRAMID | uniqueidentifier | IN | |
@PROCESSDATE | datetime | IN | |
@LASTRUNONDATE | datetime | IN |
Definition
Copy
create procedure dbo.USP_MEMBERSHIPPROGRAMCONTRIBUTIONREVENUE_TOCONSIDER_POPULATE_BYAPPLICATIONSELECTION (
@MEMBERSHIPPROGRAMID uniqueidentifier,
@PROCESSDATE datetime,
@LASTRUNONDATE datetime
)
as
begin
--This process populates #CONTRIBUTIONPROCESS_REVENUETOCONSIDER with qualifying revenue splits based on the membership program's contribution revenue application selection
--This temp table is created by USP_MEMBERSHIPPROGRAMCONTRIBUTION_PROCESSPROGRAM
--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 #CONTRIBUTIONPROCESS_REVENUETOCONSIDER (
ID,
CONSTITUENTID,
FINANCIALTRANSACTIONID,
FINANCIALTRANSACTIONLINEITEMID,
AMOUNTINCURRENCY,
TYPECODE,
EFFECTIVEDATE,
DATECHANGED,
APPLICATIONCODE,
DESIGNATIONID
)
select
newid(),
[RESULTS].CONSTITUENTID,
[RESULTS].FINANCIALTRANSACTIONID,
[RESULTS].FINANCIALTRANSACTIONLINEITEMID,
[RESULTS].AMOUNTINCURRENCY,
[RESULTS].TRANSACTIONTYPECODE,
[RESULTS].DATE,
@PROCESSDATE,
[RESULTS].APPLICATIONCODE,
[RESULTS].DESIGNATIONID
from dbo.UFN_MEMBERSHIPPROGRAMCONTRIBUTIONREVENUE_GETAPPLICATIONSELECTIONRESULTS (
@MEMBERSHIPPROGRAMID,
@APPLICATIONSELECTIONID,
@LASTRUNONDATE,
@PROCESSDATE,
@MINIMUMDATERANGE,
@ORGANIZATIONCURRENCYID,
@PROGRAMBASECURRENCYID,
@PROGRAMBASECURRENCYDIGITS,
@PROGRAMBASECURRENCYROUNDINGTYPECODE
) as [RESULTS]
end