USP_BBNC_COMMITDONATIONADDMG
Adds a matching gift claim for a Blackbaud Internet Solutions donation batch.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | |
@BATCHNUMBER | nvarchar(100) | IN | |
@MAPID | int | INOUT | |
@CONSTITUENTID | uniqueidentifier | IN | |
@SOURCEREVENUEID | uniqueidentifier | IN | |
@AMOUNT | money | IN | |
@DATE | datetime | IN | |
@SPLITS | xml | IN | |
@BBNCTRANSACTIONID | int | IN | |
@BBNCPAGENAME | nvarchar(1000) | IN | |
@BBNCPAGEID | int | IN | |
@BBNCAPPEALID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@CHANGEDATE | datetime | IN | |
@ISOCODE | nvarchar(3) | IN | |
@PDACCOUNTSYSTEMID | uniqueidentifier | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_BBNC_COMMITDONATIONADDMG
(
@ID uniqueidentifier = null output,
@BATCHNUMBER nvarchar(100),
@MAPID integer = null output,
@CONSTITUENTID uniqueidentifier,
@SOURCEREVENUEID uniqueidentifier,
@AMOUNT money,
@DATE datetime,
@SPLITS xml,
@BBNCTRANSACTIONID int,
@BBNCPAGENAME nvarchar(1000),
@BBNCPAGEID int,
@BBNCAPPEALID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@CHANGEDATE datetime = null,
@ISOCODE nvarchar(3),
@PDACCOUNTSYSTEMID uniqueidentifier = null,
@CURRENTAPPUSERID uniqueidentifier = null
)
as
set nocount on;
if @CHANGEDATE is null
set @CHANGEDATE = getdate();
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
declare @STARTDATE datetime;
declare @FREQUENCYCODE tinyint;
declare @NUMBEROFINSTALLMENTS int;
declare @INSTALLMENTSEQUENCE int;
declare @MGCONDITIONTYPEID uniqueidentifier;
declare @MGCONDITIONID uniqueidentifier;
set @STARTDATE = @DATE;
set @FREQUENCYCODE = 5; --Single Installment
set @NUMBEROFINSTALLMENTS = 1;
set @INSTALLMENTSEQUENCE = 1;
if @ID is null
set @ID = newid();
begin try
-- Multicurrency Info grab
declare @TRANSACTIONCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETCURRENCYFROMISO(@ISOCODE);
declare @BASECURRENCYID uniqueidentifier;
declare @BASEEXCHANGERATEID uniqueidentifier;
declare @BASEAMOUNT money;
declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier;
declare @ORGANIZATIONAMOUNT money;
--ID where clause is using default, should be using PDACCOUNTSYSTEMID that is selected in the batch.
select @BASECURRENCYID = CURRENCYSET.BASECURRENCYID from dbo.PDACCOUNTSYSTEM
inner join dbo.CURRENCYSET on PDACCOUNTSYSTEM.CURRENCYSETID = CURRENCYSET.ID
where PDACCOUNTSYSTEM.ID =@PDACCOUNTSYSTEMID;
set @BASEEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATEST(@TRANSACTIONCURRENCYID,@BASECURRENCYID,@DATE,1,null);
select
@BASEAMOUNT = BASEAMOUNT,
@ORGANIZATIONAMOUNT = ORGANIZATIONAMOUNT,
@ORGANIZATIONEXCHANGERATEID = ORGANIZATIONEXCHANGERATEID
from dbo.UFN_CURRENCY_GETCURRENCYVALUES(@AMOUNT, @DATE, @BASECURRENCYID, @BASEEXCHANGERATEID, @TRANSACTIONCURRENCYID);
declare @MULTICURRENCYENABLED bit;
set @BASEAMOUNT = dbo.UFN_CURRENCY_CONVERT(@AMOUNT,@BASEEXCHANGERATEID);
set @MULTICURRENCYENABLED = dbo.UFN_CONDITIONSETTING_EVALUATEEXISTSCONDITION('Multicurrency');
if @MULTICURRENCYENABLED = 0
begin
set @BASEAMOUNT = @AMOUNT;
end
if @TRANSACTIONCURRENCYID = @BASECURRENCYID
begin
set @BASEAMOUNT = @AMOUNT;
end
exec dbo.USP_REVENUESPLIT_VALIDATESPLITS @SPLITS, @AMOUNT, 1,@ID,@TRANSACTIONCURRENCYID,0;
select @MGCONDITIONTYPEID = MGCONDITIONTYPECODEID from dbo.NETCOMMUNITYDEFAULTCODEMAP;
select @MGCONDITIONID = ID from dbo.MATCHINGGIFTCONDITION where ORGANIZATIONID = @CONSTITUENTID and MATCHINGGIFTCONDITIONTYPECODEID = @MGCONDITIONTYPEID;
insert into dbo.REVENUE(ID, BATCHNUMBER, CONSTITUENTID, DATE, DONOTPOST, POSTDATE, DONOTRECEIPT, AMOUNT, TRANSACTIONTYPECODE, RECEIPTAMOUNT, DONOTACKNOWLEDGE, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED,BASECURRENCYID,ORGANIZATIONAMOUNT,TRANSACTIONAMOUNT,TRANSACTIONCURRENCYID,ORGANIZATIONEXCHANGERATEID,BASEEXCHANGERATEID)
values (@ID, @BATCHNUMBER, @CONSTITUENTID, @DATE, 1, null, 1, @BASEAMOUNT, 3, 0, 0, @CHANGEAGENTID, @CHANGEAGENTID, @CHANGEDATE, @CHANGEDATE,@BASECURRENCYID,@ORGANIZATIONAMOUNT,@AMOUNT,@TRANSACTIONCURRENCYID,@ORGANIZATIONEXCHANGERATEID,@BASEEXCHANGERATEID);
--Add origination source
exec dbo.USP_REVENUE_ADDORIGIN @ID, @CONSTITUENTID, @CHANGEAGENTID, @CHANGEDATE;
insert into dbo.REVENUEPAYMENTMETHOD (REVENUEID,PAYMENTMETHODCODE,AMOUNT,ADDEDBYID,CHANGEDBYID,DATEADDED,DATECHANGED)
values (@ID, 9, @AMOUNT, @CHANGEAGENTID, @CHANGEAGENTID,@CHANGEDATE,@CHANGEDATE);
insert into dbo.REVENUEBBNC(ID, NETCOMMUNITYTRANSACTIONID, NETCOMMUNITYPAGENAME, NETCOMMUNITYPAGEID, NETCOMMUNITYAPPEALID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values(@ID, @BBNCTRANSACTIONID, @BBNCPAGENAME, @BBNCPAGEID, @BBNCAPPEALID, @CHANGEAGENTID, @CHANGEAGENTID, @CHANGEDATE, @CHANGEDATE);
insert into dbo.REVENUEMATCHINGGIFT(ID, MATCHINGGIFTCONDITIONID, MGSOURCEREVENUEID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values(@ID, @MGCONDITIONID, @SOURCEREVENUEID, @CHANGEAGENTID, @CHANGEAGENTID, @CHANGEDATE, @CHANGEDATE);
insert into dbo.REVENUESCHEDULE(ID, STARTDATE, FREQUENCYCODE, NUMBEROFINSTALLMENTS, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values (@ID, @STARTDATE, @FREQUENCYCODE, @NUMBEROFINSTALLMENTS, @CHANGEAGENTID, @CHANGEAGENTID, @CHANGEDATE, @CHANGEDATE);
insert into dbo.INSTALLMENT(ID, REVENUEID, AMOUNT, DATE, SEQUENCE, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED,ORGANIZATIONAMOUNT,ORGANIZATIONEXCHANGERATEID,TRANSACTIONAMOUNT,TRANSACTIONCURRENCYID,BASEEXCHANGERATEID,BASECURRENCYID)
values(newid(), @ID, @BASEAMOUNT, @DATE, @INSTALLMENTSEQUENCE, @CHANGEAGENTID, @CHANGEAGENTID, @CHANGEDATE, @CHANGEDATE,@ORGANIZATIONAMOUNT,@ORGANIZATIONEXCHANGERATEID,@AMOUNT,@TRANSACTIONCURRENCYID,@BASEEXCHANGERATEID,@BASECURRENCYID);
set @SPLITS = dbo.UFN_REVENUESPLIT_CONVERTAMOUNTSINXML(@SPLITS,@BASECURRENCYID,@ORGANIZATIONEXCHANGERATEID,@TRANSACTIONCURRENCYID,@BASEEXCHANGERATEID)
exec dbo.USP_REVENUE_GETSPLITS_2_ADDFROMXML @ID, @SPLITS, @CHANGEAGENTID, @CHANGEDATE;
--JamesWill 09/08/2008 Default campaigns on the revenue record based on designations (this MUST be done AFTER splits are added to the revenue)
exec dbo.USP_BBNC_ADDCAMPAIGNSTOREVENUE @ID, @CHANGEAGENTID, @CHANGEDATE;
--Generate the installment splits for the pledge
exec dbo.USP_PLEDGE_GENERATEINSTALLMENTSPLITS @ID, @CHANGEAGENTID, @CHANGEDATE;
--Add gift fees
exec dbo.USP_PAYMENT_ADDGIFTFEES @ID, @CONSTITUENTID, @CHANGEAGENTID, @CHANGEDATE;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;