USP_BBNC_COMMITEVENTREGISTRATIONPAYMENTADD
Adds a payment for an event registration from a Blackbaud Internet Solutions event registration transaction to the system from a given batch.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@REGISTRANTID | uniqueidentifier | IN | |
@APPLIEDAMOUNT | money | IN | |
@TRANSACTIONID | uniqueidentifier | IN | |
@CONSTITUENTID | uniqueidentifier | IN | |
@DATE | datetime | IN | |
@PAYMENTMETHODCODE | tinyint | IN | |
@BATCHNUMBER | nvarchar(100) | IN | |
@POSTDATE | datetime | IN | |
@POSTSTATUSCODE | tinyint | IN | |
@CHECKDATE | UDT_FUZZYDATE | IN | |
@CHECKNUMBER | nvarchar(20) | IN | |
@CONSTITUENTACCOUNTID | uniqueidentifier | IN | |
@REFERENCEDATE | UDT_FUZZYDATE | IN | |
@REFERENCENUMBER | nvarchar(20) | IN | |
@CARDHOLDERNAME | nvarchar(255) | IN | |
@CREDITCARDNUMBER | nvarchar(20) | IN | |
@CREDITTYPECODEID | uniqueidentifier | IN | |
@AUTHORIZATIONCODE | nvarchar(20) | IN | |
@EXPIRESON | UDT_FUZZYDATE | IN | |
@ISSUER | nvarchar(100) | IN | |
@NUMBEROFUNITS | decimal(20, 3) | IN | |
@SYMBOL | nvarchar(25) | IN | |
@MEDIANPRICE | decimal(19, 4) | IN | |
@SALEDATE | datetime | IN | |
@SALEAMOUNT | money | IN | |
@BROKERFEE | money | IN | |
@SALEPOSTSTATUSCODE | tinyint | IN | |
@SALEPOSTDATE | datetime | IN | |
@PROPERTYSUBTYPECODEID | uniqueidentifier | IN | |
@GIFTINKINDSUBTYPECODEID | uniqueidentifier | IN | |
@ORIGINPAGENAME | nvarchar(1000) | IN | |
@ORIGINPAGEID | int | IN | |
@CHANGEAGENTID | uniqueidentifier | INOUT | |
@CREATIONDATE | datetime | INOUT | |
@REVENUEID | uniqueidentifier | INOUT | |
@EMAILID | int | IN | |
@EMAILNAME | nvarchar(255) | IN | |
@EMAILSUBJECT | nvarchar(4000) | IN | |
@MARKRECEIPTED | bit | IN | |
@FINDERNUMBER | bigint | IN | |
@RECEIPTNUMBER | int | IN | |
@ISOCODE | nvarchar(3) | IN | |
@PDACCOUNTSYSTEMID | uniqueidentifier | IN | |
@BBNCTRANSACTIONID | int | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN | |
@VENDORID | nvarchar(50) | IN | |
@PAYMENTAPPEALID | uniqueidentifier | IN | |
@CAMPAIGNXML | xml | IN |
Definition
Copy
CREATE procedure dbo.USP_BBNC_COMMITEVENTREGISTRATIONPAYMENTADD
(
@REGISTRANTID uniqueidentifier,
@APPLIEDAMOUNT money,
@TRANSACTIONID uniqueidentifier,
@CONSTITUENTID uniqueidentifier,
@DATE datetime,
@PAYMENTMETHODCODE tinyint,
@BATCHNUMBER nvarchar(100),
@POSTDATE datetime,
@POSTSTATUSCODE tinyint,
-- @DONOTRECEIPT bit,
@CHECKDATE dbo.UDT_FUZZYDATE = '00000000',
@CHECKNUMBER nvarchar(20) = '',
@CONSTITUENTACCOUNTID uniqueidentifier = null,
@REFERENCEDATE dbo.UDT_FUZZYDATE = '00000000',
@REFERENCENUMBER nvarchar(20) = '',
@CARDHOLDERNAME nvarchar(255) = '',
@CREDITCARDNUMBER nvarchar(20) = '',
@CREDITTYPECODEID uniqueidentifier = null,
@AUTHORIZATIONCODE nvarchar(20) = '',
@EXPIRESON dbo.UDT_FUZZYDATE = '00000000',
@ISSUER nvarchar(100) = '',
@NUMBEROFUNITS decimal(20,3) = 0,
@SYMBOL nvarchar(25) = '',
@MEDIANPRICE decimal(19,4) = 0,
@SALEDATE datetime = null,
@SALEAMOUNT money = null,
@BROKERFEE money = null,
@SALEPOSTSTATUSCODE tinyint = null,
@SALEPOSTDATE datetime = null,
@PROPERTYSUBTYPECODEID uniqueidentifier = null,
@GIFTINKINDSUBTYPECODEID uniqueidentifier = null,
@ORIGINPAGENAME as nvarchar(1000) = '',
@ORIGINPAGEID as int = 0,
@CHANGEAGENTID uniqueidentifier output,
@CREATIONDATE datetime output,
@REVENUEID uniqueidentifier output,
@EMAILID int = 0,
@EMAILNAME nvarchar(255) = '',
@EMAILSUBJECT nvarchar(4000) = '',
@MARKRECEIPTED bit = 0,
@FINDERNUMBER bigint = 0,
@RECEIPTNUMBER int = 0,
@ISOCODE nvarchar(3) = '',
@PDACCOUNTSYSTEMID uniqueidentifier = null,
@BBNCTRANSACTIONID int = null,
@CURRENTAPPUSERID uniqueidentifier = null,
@VENDORID NVARCHAR(50) = '',
@PAYMENTAPPEALID uniqueidentifier =null,
@CAMPAIGNXML xml =null
)
as
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
if @CREATIONDATE is null
set @CREATIONDATE = getdate();
declare @RECEIPTAMOUNT money;
declare @REVENUEPAYMENTMETHODID uniqueidentifier;
begin try
set @REVENUEID = newid();
declare @COST money;
if (@PDACCOUNTSYSTEMID is null)
set @PDACCOUNTSYSTEMID = dbo.UFN_PDACCOUNTSYSTEM_GETDEFAULTSYSTEMIDSFORUSER(@CURRENTAPPUSERID)
if (@PDACCOUNTSYSTEMID is null)
set @PDACCOUNTSYSTEMID = '4B121C2C-CCE6-440D-894C-EA0DEF80D50B'
-- 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(@APPLIEDAMOUNT, @DATE, @BASECURRENCYID, @BASEEXCHANGERATEID, @TRANSACTIONCURRENCYID);
declare @MULTICURRENCYENABLED bit;
set @BASEAMOUNT = dbo.UFN_CURRENCY_CONVERT(@APPLIEDAMOUNT,@BASEEXCHANGERATEID);
set @MULTICURRENCYENABLED = dbo.UFN_CONDITIONSETTING_EVALUATEEXISTSCONDITION('Multicurrency');
if @MULTICURRENCYENABLED = 0
begin
set @BASEAMOUNT = @APPLIEDAMOUNT;
end
if @TRANSACTIONCURRENCYID = @BASECURRENCYID
begin
set @BASEAMOUNT = @APPLIEDAMOUNT;
end
-- Ensure that we can add a payment of this transaction currency to the account system.
if not exists(select 1 from dbo.CURRENCYSETTRANSACTIONCURRENCY
inner join dbo.PDACCOUNTSYSTEM on PDACCOUNTSYSTEM.CURRENCYSETID = CURRENCYSETTRANSACTIONCURRENCY.CURRENCYSETID
where PDACCOUNTSYSTEM.ID = @PDACCOUNTSYSTEMID and CURRENCYSETTRANSACTIONCURRENCY.CURRENCYID = @TRANSACTIONCURRENCYID)
begin
raiserror('Invalid transaction currency, current account system does not contain this transaction currency',13,1);
end
declare @BASETOTRANSACTIONEXCHANGERATE uniqueidentifier = dbo.UFN_CURRENCYEXCHANGERATE_GETLATEST(@TRANSACTIONCURRENCYID,@BASECURRENCYID,@DATE,1,null);
declare @BENEFITTABLE table(
REVENUEID uniqueidentifier,
BENEFITID uniqueidentifier,
QUANTITY int,
UNITVALUE money,
DETAILS nvarchar(255),
DATEADDED datetime,
DATECHANGED datetime,
ADDEDBYID uniqueidentifier,
CHANGEDBYID uniqueidentifier,
BASECURRENCYID uniqueidentifier,
TRANSACTIONTOTALVALUE money,
ORGANIZATIONTOTALVALUE money,
TRANSACTIONCURRENCYID uniqueidentifier,
BASEEXCHANGERATEID uniqueidentifier,
ORGANIZATIONEXCHANGERATEID uniqueidentifier
);
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
/*
Bug # 1156590 (Benefits missing on revenue records for BBIS Event Registrations where a guest receives a benefit but the host/payer does not)
To cater this scenario, as a fix now we fetch registrantID corresponding to host/payer ID and use the same for benefits calculation. Reason being,
if host/payer is not an attendee in that case its registrantID doesn't exist in REGISTRANTREGISTRATIONMAP table (used in inner join while inserting data in @BENEFITTABLE table)
which causes this issue.
*/
declare @REGISTRATIONSXML XML
declare @REGISTRANTIDS table
(
REGISTRANTID uniqueidentifier
);
declare @REGISTRANTREGISTRATIONTABLE table
(
REGISTRATIONID uniqueidentifier
);
select @REGISTRATIONSXML = REGISTRATIONS
from BATCHBBNCEVENTREGISTRATION
where BBNCTRANID = @BBNCTRANSACTIONID
insert into @REGISTRANTREGISTRATIONTABLE
select RegistrationsTable.RegistrationID.value('(REGISTRATIONID)[1]','uniqueidentifier') as REGISTRATIONID
from @REGISTRATIONSXML.nodes('/REGISTRATIONS/ITEM') RegistrationsTable(RegistrationID)
insert into @REGISTRANTIDS
select RRM.REGISTRANTID from REGISTRANTREGISTRATION RR
inner join REGISTRANTREGISTRATIONMAP RRM on RRM.REGISTRANTREGISTRATIONID = RR.ID
inner join @REGISTRANTREGISTRATIONTABLE RRT on RRT.REGISTRATIONID = RRM.REGISTRANTREGISTRATIONID
where RR.REGISTRANTID = @REGISTRANTID;
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- select only distinct values, sometimes if benefits of guest and host are same, this returns duplicate value.
insert into @BENEFITTABLE
select distinct
@REVENUEID,
EVENTPRICEBENEFIT.BENEFITID,
EVENTPRICEBENEFIT.QUANTITY * REGISTRANTREGISTRATION.QUANTITY,
EVENTPRICEBENEFIT.UNITVALUE,
EVENTPRICEBENEFIT.DETAILS,
@CREATIONDATE, @CREATIONDATE, @CHANGEAGENTID, @CHANGEAGENTID,
EVENTPRICEBENEFIT.BASECURRENCYID,
case when @BASETOTRANSACTIONEXCHANGERATE is null then EVENTPRICEBENEFIT.QUANTITY * EVENTPRICEBENEFIT.UNITVALUE * REGISTRANTREGISTRATION.QUANTITY
else dbo.UFN_CURRENCY_CONVERT(EVENTPRICEBENEFIT.QUANTITY * EVENTPRICEBENEFIT.UNITVALUE * REGISTRANTREGISTRATION.QUANTITY, @BASETOTRANSACTIONEXCHANGERATE) end,
EVENTPRICEBENEFIT.ORGANIZATIONTOTALVALUE,
@TRANSACTIONCURRENCYID,
EVENTPRICEBENEFIT.BASEEXCHANGERATEID,
EVENTPRICEBENEFIT.ORGANIZATIONEXCHANGERATEID
from dbo.REGISTRANT
inner join @REGISTRANTIDS RID on RID.REGISTRANTID = REGISTRANT.ID
inner join dbo.REGISTRANTREGISTRATIONMAP on RID.REGISTRANTID = REGISTRANTREGISTRATIONMAP.REGISTRANTID
inner join dbo.REGISTRANTREGISTRATION on REGISTRANTREGISTRATIONMAP.REGISTRANTREGISTRATIONID = REGISTRANTREGISTRATION.ID
inner join dbo.EVENTPRICE on REGISTRANTREGISTRATION.EVENTPRICEID = EVENTPRICE.ID
inner join dbo.EVENTPRICEBENEFIT on EVENTPRICE.ID = EVENTPRICEBENEFIT.EVENTPRICEID
where BENEFITSWAIVED = 0 and @BASECURRENCYID = EVENTPRICEBENEFIT.BASECURRENCYID;
--Calculate the receipt amount for all event registrations the registrant purchased
declare @AMOUNTMINUSCOST money;
select @AMOUNTMINUSCOST = sum((EVENTPRICE.AMOUNT - EVENTPRICE.COST) * REGISTRANTREGISTRATION.QUANTITY)
from dbo.REGISTRANTREGISTRATION
inner join dbo.EVENTPRICE on REGISTRANTREGISTRATION.EVENTPRICEID = EVENTPRICE.ID
where REGISTRANTREGISTRATION.REGISTRANTID = @REGISTRANTID
set @RECEIPTAMOUNT = @AMOUNTMINUSCOST - coalesce((select sum(TRANSACTIONTOTALVALUE) from @BENEFITTABLE),0)
--Update receipt amount to 0 if set to negative.
if(@RECEIPTAMOUNT < 0)
set @RECEIPTAMOUNT=0
if @BASEEXCHANGERATEID is not null and @RECEIPTAMOUNT > 0
begin
set @RECEIPTAMOUNT = dbo.UFN_CURRENCY_CONVERT(@RECEIPTAMOUNT,@BASEEXCHANGERATEID)
end
if @RECEIPTAMOUNT > @APPLIEDAMOUNT
set @RECEIPTAMOUNT = @APPLIEDAMOUNT;
declare @DONOTPOST bit;
set @DONOTPOST = case @POSTSTATUSCODE when 2 then 1 else 0 end;
declare @CHANNELCODEID uniqueidentifier;
select top 1
@CHANNELCODEID = CHANNELCODEID
from dbo.NETCOMMUNITYDEFAULTCODEMAP;
declare @CONSTITUENTIDFROMFINDERNUMBER uniqueidentifier;
declare @MAILINGID uniqueidentifier;
declare @SOURCECODE nvarchar(50);
declare @APPEALID uniqueidentifier;
exec dbo.[USP_BBNC_BATCH_FINDERNUMBERLOOKUP] @FINDERNUMBER, @CONSTITUENTIDFROMFINDERNUMBER output, @MAILINGID output, @SOURCECODE output, @APPEALID output;
if @CONSTITUENTIDFROMFINDERNUMBER is not null
if @CONSTITUENTID <> @CONSTITUENTIDFROMFINDERNUMBER
set @FINDERNUMBER = 0;
set @APPEALID =@PAYMENTAPPEALID
insert into dbo.REVENUE (ID, CONSTITUENTID, DATE, TRANSACTIONTYPECODE, BATCHNUMBER, POSTDATE, DONOTPOST, DONOTRECEIPT, AMOUNT, RECEIPTAMOUNT, GIVENANONYMOUSLY, APPEALID, SOURCECODE, MAILINGID, CHANNELCODEID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED,BASECURRENCYID,ORGANIZATIONAMOUNT,TRANSACTIONAMOUNT,TRANSACTIONCURRENCYID,ORGANIZATIONEXCHANGERATEID,BASEEXCHANGERATEID,FINDERNUMBER)
select
@REVENUEID,
@CONSTITUENTID,
@DATE,
0, --Payment(TRANSACTIONTYPECODE)
@BATCHNUMBER,
@POSTDATE,
@DONOTPOST,
0, --@DONOTRECEIPT,
@BASEAMOUNT,
@RECEIPTAMOUNT,
0,
@APPEALID,
@SOURCECODE,
@MAILINGID,
@CHANNELCODEID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CREATIONDATE,
@CREATIONDATE,
@BASECURRENCYID,
@ORGANIZATIONAMOUNT,
@APPLIEDAMOUNT,
@TRANSACTIONCURRENCYID,
@ORGANIZATIONEXCHANGERATEID,
@BASEEXCHANGERATEID,
@FINDERNUMBER
--Update financial transaction's PDA account. its hardcoded in view which is causing problems in multi-currency cases
if(@PDACCOUNTSYSTEMID is not null and @PDACCOUNTSYSTEMID <> '00000000-0000-0000-0000-000000000000' and @PDACCOUNTSYSTEMID <> '4B121C2C-CCE6-440D-894C-EA0DEF80D50B')
begin
update dbo.FINANCIALTRANSACTION set PDACCOUNTSYSTEMID = @PDACCOUNTSYSTEMID where id = @REVENUEID;
end
--Add origination source
exec dbo.USP_REVENUE_ADDORIGIN @REVENUEID, @CONSTITUENTID, @CHANGEAGENTID, @CREATIONDATE;
If(@PAYMENTMETHODCODE =10)
Begin
--Add pledge original amount
exec dbo.USP_PLEDGE_ADDORIGINALAMOUNT @REVENUEID, @APPLIEDAMOUNT, @CHANGEAGENTID, @CREATIONDATE;
End
--Default benefits from the registration option
insert into dbo.REVENUEBENEFIT
(
REVENUEID,
BENEFITID,
QUANTITY,
UNITVALUE,
DETAILS,
DATEADDED, DATECHANGED, ADDEDBYID, CHANGEDBYID,
BASECURRENCYID,
TRANSACTIONTOTALVALUE,
ORGANIZATIONTOTALVALUE,
TRANSACTIONCURRENCYID,
BASEEXCHANGERATEID,
ORGANIZATIONEXCHANGERATEID
)
select
@REVENUEID,
BENEFITID,
QUANTITY,
UNITVALUE,
DETAILS,
@CREATIONDATE, @CREATIONDATE, @CHANGEAGENTID, @CHANGEAGENTID,
BASECURRENCYID,
TRANSACTIONTOTALVALUE,
ORGANIZATIONTOTALVALUE,
@TRANSACTIONCURRENCYID,
BASEEXCHANGERATEID,
ORGANIZATIONEXCHANGERATEID
from @BENEFITTABLE
set @REVENUEPAYMENTMETHODID = newid();
insert into dbo.REVENUEPAYMENTMETHOD (ID,REVENUEID,PAYMENTMETHODCODE,AMOUNT,ADDEDBYID,CHANGEDBYID,DATEADDED,DATECHANGED)
values (@REVENUEPAYMENTMETHODID, @REVENUEID, @PAYMENTMETHODCODE, @BASEAMOUNT, @CHANGEAGENTID, @CHANGEAGENTID,@CREATIONDATE,@CREATIONDATE);
if @POSTSTATUSCODE = 0
insert into dbo.REVENUEPOSTED(ID,ADDEDBYID,CHANGEDBYID,DATEADDED,DATECHANGED)
values(@REVENUEID,@CHANGEAGENTID,@CHANGEAGENTID,@CREATIONDATE,@CREATIONDATE);
insert into dbo.REVENUEBBNC
(
[ID],
[NETCOMMUNITYPAGENAME],
[NETCOMMUNITYPAGEID],
[EMAILID],
[EMAILNAME],
[EMAILSUBJECT],
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values
(
@REVENUEID,
@ORIGINPAGENAME,
@ORIGINPAGEID,
@EMAILID,
@EMAILNAME,
@EMAILSUBJECT,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CREATIONDATE,
@CREATIONDATE
);
--Change for REVENUE Pledges
If(@PAYMENTMETHODCODE =10)
Begin
declare @REVENUETRIBUTEID uniqueidentifier;
insert into dbo.REVENUESCHEDULE(ID, STARTDATE, FREQUENCYCODE, NUMBEROFINSTALLMENTS, PLEDGESUBTYPEID, SENDPLEDGEREMINDER, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values(@REVENUEID, @DATE, 5, 1, null, 1, @CHANGEAGENTID, @CHANGEAGENTID, @CREATIONDATE, @CREATIONDATE);
insert into dbo.INSTALLMENT(ID, REVENUEID, AMOUNT, DATE, SEQUENCE, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED,ORGANIZATIONAMOUNT,ORGANIZATIONEXCHANGERATEID,TRANSACTIONAMOUNT,TRANSACTIONCURRENCYID,BASEEXCHANGERATEID,BASECURRENCYID)
values(newid(), @REVENUEID, @BASEAMOUNT, @DATE, 1, @CHANGEAGENTID, @CHANGEAGENTID, @CREATIONDATE, @CREATIONDATE,@ORGANIZATIONAMOUNT,@ORGANIZATIONEXCHANGERATEID,@APPLIEDAMOUNT,@TRANSACTIONCURRENCYID,@BASEEXCHANGERATEID,@BASECURRENCYID);
--Generate the installment splits for the pledge
exec dbo.USP_PLEDGE_GENERATEINSTALLMENTSPLITS @REVENUEID, @CHANGEAGENTID, @CREATIONDATE;
--if not @COMMENTS is null and len(@COMMENTS) > 0
-- insert into dbo.REVENUENOTE(ID, DATEENTERED, TITLE, TEXTNOTE, REVENUENOTETYPECODEID, REVENUEID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
-- values(newid(), @DATE, @NOTETITLE, @COMMENTS, @REVENUENOTETYPECODEID, @REVENUEID, @CHANGEAGENTID, @CHANGEAGENTID, @CREATIONDATE, @CREATIONDATE);
--add percent and unit value benefits
exec dbo.USP_REVENUEBENEFITS_ADDBENEFITS @REVENUEID, @RECEIPTAMOUNT output
--JamesWill 05/22/2008 CR301162-052008 Pledges do not have receipt amounts
set @RECEIPTAMOUNT = 0;
--if not @TRIBUTEID is null
--begin
-- set @REVENUETRIBUTEID = newid();
-- insert into dbo.REVENUETRIBUTE(ID, REVENUEID, TRIBUTEID, AMOUNT, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED,BASECURRENCYID,ORGANIZATIONAMOUNT,ORGANIZATIONEXCHANGERATEID)
-- values(@REVENUETRIBUTEID, @REVENUEID, @TRIBUTEID, @BASEAMOUNT, @CHANGEAGENTID, @CHANGEAGENTID, @CREATIONDATE, @CREATIONDATE,@BASECURRENCYID,@ORGANIZATIONAMOUNT,@ORGANIZATIONEXCHANGERATEID);
-- insert into dbo.REVENUETRIBUTELETTER(ID, REVENUETRIBUTEID, CONSTITUENTID, TRIBUTELETTERCODEID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
-- select
-- newid(),
-- @REVENUETRIBUTEID,
-- TRIBUTEACKNOWLEDGEE.CONSTITUENTID,
-- TRIBUTEACKNOWLEDGEE.TRIBUTELETTERCODEID,
-- @CHANGEAGENTID,
-- @CHANGEAGENTID,
-- @CREATIONDATE,
-- @CREATIONDATE
-- from dbo.TRIBUTEACKNOWLEDGEE
-- where TRIBUTEACKNOWLEDGEE.TRIBUTEID = @TRIBUTEID
-- and TRIBUTEACKNOWLEDGEE.TRIBUTELETTERCODEID is not null;
--end
End
--End pledge
else
begin
declare @CREDITCARDPARTIALNUMBER nvarchar(4)
if len(@CREDITCARDNUMBER)>4
set @CREDITCARDPARTIALNUMBER = right(@CREDITCARDNUMBER,4)
else
set @CREDITCARDPARTIALNUMBER = @CREDITCARDNUMBER
--Passing in BBNC transaction ID for the BBPS transaction ID since BBNC passes up its own transaction ID to BBPS and so they are the same.
--The BBNC table is queried directly since TRANSACTIONGUID isn't sent down from BBNC. This probably should be revisited later so it's
--consistent with the other BBNC fields.
declare @BBNCTRANSACTIONGUID uniqueidentifier;
select @BBNCTRANSACTIONGUID = TransactionGUID
from dbo.EventTransactions
where EventTransactionsID = @BBNCTRANSACTIONID;
exec USP_REVENUE_ADDPAYMENTDETAILS @REVENUEPAYMENTMETHODID, @PAYMENTMETHODCODE, @CHECKDATE, @CHECKNUMBER, @CONSTITUENTACCOUNTID, @REFERENCEDATE, @REFERENCENUMBER, @CARDHOLDERNAME, @CREDITCARDPARTIALNUMBER, @CREDITTYPECODEID, @AUTHORIZATIONCODE, @EXPIRESON, @ISSUER, @NUMBEROFUNITS, @SYMBOL, @MEDIANPRICE, @SALEDATE, @SALEAMOUNT, @BROKERFEE, @SALEPOSTSTATUSCODE, @SALEPOSTDATE, @PROPERTYSUBTYPECODEID, @GIFTINKINDSUBTYPECODEID, @CHANGEAGENTID, @CREATIONDATE, 1, @TRANSACTIONID=@BBNCTRANSACTIONGUID, @VENDORID =@VENDORID;
exec dbo.USP_EVENT_ADDPAYMENT_1_1
@REVENUEID = @REVENUEID,
@APPLICATIONID = @REGISTRANTID,
@APPLIEDAMOUNT = @APPLIEDAMOUNT,
@CREATIONDATE = @CREATIONDATE,
@CHANGEAGENTID = @CHANGEAGENTID,
@EVENTCAMPAIGNS =@CAMPAIGNXML;
End
--BBIS Event registration batch does not commit payments to pledges or recurring gifts. So don't need this step.
--If any marketing information is null, try to default based on applications
if @SOURCECODE is null or @SOURCECODE = '' or @MAILINGID is null or @APPEALID is null
exec dbo.USP_REVENUE_DEFAULTMARKETINGINFORMATION @REVENUEID, @CHANGEAGENTID, @CREATIONDATE;
exec dbo.USP_PDACCOUNTSYSTEM_LINKTOREVENUE
@ID = @REVENUEID,
@PDACCOUNTSYSTEMID = @PDACCOUNTSYSTEMID,
@CHANGEDATE = @CREATIONDATE,
@CHANGEAGENTID = @CHANGEAGENTID
exec dbo.USP_SAVE_REVENUEGLDISTRIBUTION @REVENUEID, @CHANGEAGENTID, @CREATIONDATE;
exec dbo.USP_SAVE_PAYMENT_BENEFITGLDISTRIBUTION @REVENUEID, @CHANGEAGENTID, @CREATIONDATE;
--Add gift fees
exec dbo.USP_PAYMENT_ADDGIFTFEES @REVENUEID, @CONSTITUENTID, @CHANGEAGENTID, @CREATIONDATE;
-- Add Original Payment
exec dbo.USP_PAYMENT_ADDORIGINALAMOUNT @REVENUEID, @CHANGEAGENTID, @CREATIONDATE;
if @MARKRECEIPTED = 1
begin
insert into dbo.REVENUERECEIPT(ID, REVENUEID, RECEIPTNUMBER, RECEIPTDATE, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values(newid(), @REVENUEID, @RECEIPTNUMBER, @DATE, @CHANGEAGENTID, @CHANGEAGENTID, @CREATIONDATE, @CREATIONDATE);
end
exec dbo.USP_GIFTAIDREVENUESPLIT_ADDUPDATESPLITS @REVENUEID,
null,
@PAYMENTMETHODCODE,
@CREDITTYPECODEID,
@CHANGEAGENTID,
@DATE,
0, --revenue transaction type code for payment is 0
null,
null;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
end catch
return 0;