USP_DATAFORMTEMPLATE_ADD_RECONCILEMATCINGGIFT
The save procedure used by the add dataform template "Reconcile Matching Gift Edit Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | The output parameter indicating the ID of the record added. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@REVENUESPLITID | uniqueidentifier | IN | Input parameter indicating the context ID for the record being added. |
@CONSTITUENTID | uniqueidentifier | IN | Constituent ID |
@AMOUNT | money | IN | Amount to apply |
@COMMITMENTS | tinyint | IN | Commitments |
@REVENUESTREAMS | xml | IN | Matching Gift Claims |
@RELATIONREVENUESTREAMS | xml | IN | Payment by related constituent |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_RECONCILEMATCINGGIFT
(
@ID uniqueidentifier = null output,
@CHANGEAGENTID uniqueidentifier = null,
@REVENUESPLITID uniqueidentifier,
@CONSTITUENTID uniqueidentifier,
@AMOUNT money = 0,
@COMMITMENTS tinyint = 0,
@REVENUESTREAMS xml = null,
@RELATIONREVENUESTREAMS xml = null
)
as
set nocount on;
declare @CURRENTDATE datetime;
declare @APPLIEDTOCLAIMS money;
declare @BENEFITS xml;
declare @PAYMENTMETHODCODE tinyint;
declare @TYPECODE tinyint;
declare @RECEIPTAMOUNT money;
declare @FINDERNUMBER bigint;
declare @SOURCECODE nvarchar(50);
declare @APPEALID uniqueidentifier;
declare @BENEFITSWAIVED bit;
declare @GIVENANONYMOUSLY bit;
declare @MAILINGID uniqueidentifier;
declare @CHANNELCODEID uniqueidentifier;
declare @DONOTACKNOWLEDGE bit;
declare @DONOTRECEIPT bit;
declare @POSTDATE datetime;
declare @BATCHNUMBER nvarchar(100);
declare @POSTSTATUSCODE tinyint;
declare @CHECKDATE dbo.UDT_FUZZYDATE;
declare @CHECKNUMBER nvarchar(20);
declare @RETURNREVENUEID uniqueidentifier;
declare @CONSTITUENTACCOUNTID uniqueidentifier;
declare @REFERENCEDATE dbo.UDT_FUZZYDATE;
declare @REFERENCENUMBER nvarchar(20);
declare @CARDHOLDERNAME nvarchar(255);
declare @CREDITCARDNUMBER nvarchar(4);
declare @CREDITTYPECODEID uniqueidentifier;
declare @AUTHORIZATIONCODE nvarchar(20);
declare @EXPIRESON dbo.UDT_FUZZYDATE;
declare @ISSUER nvarchar(100);
declare @NUMBEROFUNITS decimal(20,3);
declare @SYMBOL nvarchar(25);
declare @MEDIANPRICE decimal(19,4);
declare @SALEDATE datetime;
declare @SALEAMOUNT money;
declare @BROKERFEE money;
declare @SALEPOSTSTATUSCODE tinyint;
declare @SALEPOSTDATE datetime;
declare @PROPERTYSUBTYPECODEID uniqueidentifier;
declare @GIFTINKINDSUBTYPECODEID uniqueidentifier;
declare @REVENUEAMOUNT money;
declare @REVENUEID uniqueidentifier;
declare @REVENUEPAYMENTMETHODID uniqueidentifier;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
if @CURRENTDATE is null
set @CURRENTDATE = GetDate();
begin try
select @REVENUEID = R.ID,
@PAYMENTMETHODCODE = PAYMENTMETHODCODE,
@BENEFITS = dbo.UFN_REVENUE_GETBENEFITS_TOITEMLISTXML(R.ID),
@FINDERNUMBER = FINDERNUMBER,
@SOURCECODE = SOURCECODE,
@APPEALID = APPEALID,
@BENEFITSWAIVED = BENEFITSWAIVED,
@GIVENANONYMOUSLY = GIVENANONYMOUSLY,
@MAILINGID = MAILINGID,
@CHANNELCODEID = CHANNELCODEID,
@DONOTACKNOWLEDGE = DONOTACKNOWLEDGE,
@DONOTRECEIPT = DONOTRECEIPT,
@POSTDATE = POSTDATE,
--Bug 13617 AdamBu 9/17/2008
--For the purpose of reconciling, we are only concerned with the amount of money in the unapplied
-- split, not the transaction as a whole.
--@REVENUEAMOUNT = R.AMOUNT,
@REVENUEAMOUNT = RS.TRANSACTIONAMOUNT,
@BATCHNUMBER = BATCHNUMBER,
@REVENUEPAYMENTMETHODID = RP.ID
from
dbo.REVENUESPLIT RS
inner join
dbo.REVENUE R on RS.REVENUEID = R.ID
inner join
dbo.REVENUEPAYMENTMETHOD RP
on R.ID = RP.REVENUEID
where RS.ID = @REVENUESPLITID
if @PAYMENTMETHODCODE = 0 -- Cash
select
@REFERENCEDATE = REFERENCEDATE,
@REFERENCENUMBER = REFERENCENUMBER
from
dbo.CASHPAYMENTMETHODDETAIL
where
ID = @REVENUEPAYMENTMETHODID
if @PAYMENTMETHODCODE = 1 -- Check
select
@CHECKDATE = CHECKDATE,
@CHECKNUMBER = CHECKNUMBER,
@CONSTITUENTACCOUNTID = CONSTITUENTACCOUNTID
from
dbo.CHECKPAYMENTMETHODDETAIL
where
ID = @REVENUEPAYMENTMETHODID
if @PAYMENTMETHODCODE = 2 -- Credit Card
select
@CARDHOLDERNAME = CARDHOLDERNAME,
@CREDITTYPECODEID = CREDITTYPECODEID,
@CREDITCARDNUMBER = CREDITCARDPARTIALNUMBER,
@EXPIRESON = EXPIRESON,
@AUTHORIZATIONCODE = AUTHORIZATIONCODE
from
dbo.CREDITCARDPAYMENTMETHODDETAIL
where
ID = @REVENUEPAYMENTMETHODID
if @PAYMENTMETHODCODE = 3 -- Direct Debit
select
@REFERENCEDATE = REFERENCEDATE,
@REFERENCENUMBER = REFERENCENUMBER,
@CONSTITUENTACCOUNTID = CONSTITUENTACCOUNTID
from
dbo.DIRECTDEBITPAYMENTMETHODDETAIL
where
ID = @REVENUEPAYMENTMETHODID
if @PAYMENTMETHODCODE = 4 --Stock
select
@ISSUER = ISSUER,
@NUMBEROFUNITS = NUMBEROFUNITS,
@SYMBOL = SYMBOL,
@MEDIANPRICE = MEDIANPRICE
from
dbo.STOCKDETAIL
where
ID = @REVENUEPAYMENTMETHODID
if @PAYMENTMETHODCODE = 5 --Property
select
@PROPERTYSUBTYPECODEID = PROPERTYSUBTYPECODEID,
@SALEDATE = SALEDATE,
@SALEAMOUNT = SALEAMOUNT,
@BROKERFEE = BROKERFEE,
@SALEPOSTDATE = SALEPOSTDATE,
@SALEPOSTSTATUSCODE = SALEPOSTSTATUSCODE
from
dbo.PROPERTYDETAIL
where
ID = @REVENUEPAYMENTMETHODID
if @PAYMENTMETHODCODE = 6 -- Gift in Kind
select
@GIFTINKINDSUBTYPECODEID = GIFTINKINDSUBTYPECODEID
from
dbo.GIFTINKINDPAYMENTMETHODDETAIL
where
ID = @REVENUEPAYMENTMETHODID
exec dbo.USP_RECONCILEMATCHINGGIFT_REVENUESTREAMS @REVENUESPLITID, @REVENUEAMOUNT, @REVENUESTREAMS, @RELATIONREVENUESTREAMS, @CONSTITUENTID, @CURRENTDATE, @PAYMENTMETHODCODE, @BATCHNUMBER, @POSTDATE, @POSTSTATUSCODE, @DONOTRECEIPT, @DONOTACKNOWLEDGE, @FINDERNUMBER, @SOURCECODE, @APPEALID, @MAILINGID, @CHANNELCODEID, @CHECKDATE, @CHECKNUMBER, @CONSTITUENTACCOUNTID, @REFERENCEDATE, @REFERENCENUMBER, @CARDHOLDERNAME, @CREDITCARDNUMBER, @CREDITTYPECODEID, @AUTHORIZATIONCODE, @EXPIRESON, @ISSUER, @NUMBEROFUNITS, @SYMBOL, @MEDIANPRICE, @SALEDATE, @SALEAMOUNT, @BROKERFEE, @SALEPOSTSTATUSCODE, @SALEPOSTDATE, @PROPERTYSUBTYPECODEID, @GIFTINKINDSUBTYPECODEID, @CHANGEAGENTID, @CURRENTDATE, @APPLIEDTOCLAIMS output;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;