USP_RECOGNITIONCREDITS_ADDBASEDONMGCPREFERENCES
Add matching gift recognition credits based on preference.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SPLITS | xml | IN | |
@APPLICATIONID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@CURRENTDATE | datetime | IN | |
@REVENUEGIVENANONYMOUSLY | bit | IN |
Definition
Copy
CREATE procedure dbo.USP_RECOGNITIONCREDITS_ADDBASEDONMGCPREFERENCES
(
@SPLITS xml,
@APPLICATIONID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@CURRENTDATE datetime = null,
@REVENUEGIVENANONYMOUSLY bit = null
)
as
begin
declare @AUTOADDMGPAYMENTCREDITTODONOR bit;
declare @PAYMENTDEFAULTCREDITTYPEID uniqueidentifier;
declare @MGPAYMENTAPPLYRECOGNITIONTYPECODE tinyint;
declare @AUTOADDMGPAYMENTCREDITTOMATCHINGORG bit;
declare @MATCHINGORGPAYMENTDEFAULTCREDITTYPEID uniqueidentifier;
if @REVENUEGIVENANONYMOUSLY = null
set @REVENUEGIVENANONYMOUSLY = 0;
select
@AUTOADDMGPAYMENTCREDITTODONOR = ADDRECOGNITIONCREDITSONMGPAYMENTAPPLY,
@PAYMENTDEFAULTCREDITTYPEID =
case MGPAYMENTAPPLYRECOGNITIONTYPECODE
when 0 then PAYMENTREVENUERECOGNITIONTYPECODEID
when 1 then null
end,
@MGPAYMENTAPPLYRECOGNITIONTYPECODE = MGPAYMENTAPPLYRECOGNITIONTYPECODE,
@AUTOADDMGPAYMENTCREDITTOMATCHINGORG = ADDRECOGNITIONCREDITSTOMATCHINGORGONMGPAYMENTAPPLY,
@MATCHINGORGPAYMENTDEFAULTCREDITTYPEID = MATCHINGORGPAYMENTREVENUERECOGNITIONTYPECODEID
from
dbo.MATCHINGGIFTPREFERENCEINFO;
declare @DEFAULTANONYMOUSRECOGNITION bit = 0;
--Select the value for default anonymous recognition setting
select @DEFAULTANONYMOUSRECOGNITION = DEFAULTANONYMOUSRECOGNITION
from dbo.RECOGNITIONDEFAULT
if @AUTOADDMGPAYMENTCREDITTODONOR = 1
begin
declare @ORIGINALDONORID uniqueidentifier;
declare @ORIGINALDONATIONDATE datetime;
declare @ORIGINALGIFTID uniqueidentifier;
select
@ORIGINALDONORID = REVENUE.CONSTITUENTID,
@ORIGINALDONATIONDATE = REVENUE.DATE,
@ORIGINALGIFTID = REVENUE.ID
from
dbo.REVENUE
inner join
dbo.REVENUEMATCHINGGIFT on REVENUEMATCHINGGIFT.MGSOURCEREVENUEID = REVENUE.ID
where
REVENUEMATCHINGGIFT.ID = @APPLICATIONID
and (@REVENUEGIVENANONYMOUSLY = 0 or @DEFAULTANONYMOUSRECOGNITION = 1)
--Make sure there's actually a donor to recognize (i.e., it's not an unapplied matching gift,
--the original donor wasn't anonymous, etc.)
if @ORIGINALDONORID is not null
begin
--JamesWill 2010-11-05 WI105002 Respect the matching gift preferences setting for how to create recognitions
if @MGPAYMENTAPPLYRECOGNITIONTYPECODE = 0
begin
exec dbo.USP_RECOGNITIONCREDIT_ADDDEFAULTSFORMGSPLITS @SPLITS, @ORIGINALDONORID, @ORIGINALDONATIONDATE, @PAYMENTDEFAULTCREDITTYPEID, @CHANGEAGENTID, @CURRENTDATE;
end
if @MGPAYMENTAPPLYRECOGNITIONTYPECODE = 1
begin
exec dbo.USP_RECOGNITIONCREDIT_ADDTOGROUPMEMBERS @SPLITS, @ORIGINALDONORID, @ORIGINALDONATIONDATE, @ORIGINALGIFTID, @PAYMENTDEFAULTCREDITTYPEID, @CHANGEAGENTID, @CURRENTDATE, 1;
end
end
end
if @AUTOADDMGPAYMENTCREDITTOMATCHINGORG = 1
begin
declare @MATCHINGORGID uniqueidentifier
declare @PAYMENTDATE datetime
select
@MATCHINGORGID = REVENUE.CONSTITUENTID,
@PAYMENTDATE = REVENUE.DATE
from
dbo.INSTALLMENTSPLITPAYMENT
inner join dbo.REVENUESPLIT on REVENUESPLIT.ID = INSTALLMENTSPLITPAYMENT.PAYMENTID
inner join dbo.REVENUE on REVENUE.ID = REVENUESPLIT.REVENUEID
where
INSTALLMENTSPLITPAYMENT.PLEDGEID = @APPLICATIONID
and (REVENUE.GIVENANONYMOUSLY = 0 or @DEFAULTANONYMOUSRECOGNITION = 1)
--Make sure there's actually a donor to recognize (i.e., it's not an unapplied matching gift,
--the matching org wasn't anonymous, etc.)
if @MATCHINGORGID is not null
begin
exec dbo.USP_RECOGNITIONCREDIT_ADDDEFAULTSFORMGSPLITS @SPLITS, @MATCHINGORGID, @PAYMENTDATE, @MATCHINGORGPAYMENTDEFAULTCREDITTYPEID, @CHANGEAGENTID, @CURRENTDATE;
end
end
end