USP_EVENT_GIFT_ADDPAYMENT
Add revenue payment for gifts in FAF events, varied from USP_GIFT_ADDPAYMENT
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@CURRENTDATE | datetime | IN | |
@CONSTITUENTID | uniqueidentifier | IN | |
@TRANSACTIONDATE | UDT_FUZZYDATE | IN | |
@AMOUNT | money | IN | |
@PAYMENTMETHODCODE | tinyint | IN | |
@CHECKDATE | UDT_FUZZYDATE | IN | |
@CHECKNUMBER | nvarchar(20) | IN | |
@REFERENCEDATE | UDT_FUZZYDATE | IN | |
@REFERENCENUMBER | nvarchar(20) | IN | |
@CARDHOLDERNAME | nvarchar(255) | IN | |
@CREDITCARDNUMBER | nvarchar(4) | IN | |
@CREDITTYPECODEID | uniqueidentifier | IN | |
@AUTHORIZATIONCODE | nvarchar(20) | IN | |
@EXPIRESON | UDT_FUZZYDATE | IN | |
@CONSTITUENTACCOUNTID | uniqueidentifier | IN | |
@SOURCECODE | nvarchar(50) | IN | |
@APPEALID | uniqueidentifier | IN | |
@DESIGNATIONID | uniqueidentifier | IN | |
@EVENTID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_EVENT_GIFT_ADDPAYMENT
(
@ID uniqueidentifier = null output,
@CHANGEAGENTID uniqueidentifier,
@CURRENTDATE datetime,
@CONSTITUENTID uniqueidentifier,
@TRANSACTIONDATE dbo.UDT_FUZZYDATE = '00000000',
@AMOUNT money = 0,
@PAYMENTMETHODCODE tinyint = 1,
@CHECKDATE dbo.UDT_FUZZYDATE = '00000000',
@CHECKNUMBER nvarchar(20) = '',
@REFERENCEDATE dbo.UDT_FUZZYDATE = '00000000',
@REFERENCENUMBER nvarchar(20) = '',
@CARDHOLDERNAME nvarchar(255) = '',
@CREDITCARDNUMBER nvarchar(4) = '',
@CREDITTYPECODEID uniqueidentifier = null,
@AUTHORIZATIONCODE nvarchar(20) = '',
@EXPIRESON dbo.UDT_FUZZYDATE = '00000000',
-- @ISSUER nvarchar(100) = '',
-- @NUMBEROFUNITS integer = 0,
-- @SYMBOL nvarchar(4) = '',
-- @MEDIANPRICE decimal(19,4) = 0,
-- @GIFTINKINDSUBTYPECODEID uniqueidentifier = null,
-- @PROPERTYSUBTYPECODEID uniqueidentifier = null,
-- @RECEIPTAMOUNT money = 0,
@CONSTITUENTACCOUNTID uniqueidentifier = null,
-- @REVENUESTREAMS xml = null,
-- @POSTSTATUSCODE tinyint = 1,
-- @POSTDATE datetime = null,
-- @FINDERNUMBER bigint = null,
@SOURCECODE nvarchar(50) = null,
@APPEALID uniqueidentifier = null,
@DESIGNATIONID uniqueidentifier = null,
-- @TRIBUTEID uniqueidentifier = null,
-- @BENEFITS xml = null,
-- @BENEFITSWAIVED bit = 0,
-- @GIVENANONYMOUSLY bit = null,
-- @MAILINGID uniqueidentifier = null,
-- @LETTERCODEID uniqueidentifier = null,
-- @CHANNELCODEID uniqueidentifier = null,
-- @DONOTACKNOWLEDGE bit = 0,
-- @DONOTRECEIPT bit = 0,
-- @OTHERPAYMENTMETHODCODEID uniqueidentifier = null,
-- @REFERENCE nvarchar(255) = null,
-- @DIRECTDEBITRESULTCODE nvarchar(10) = '',
-- @LOWPRICE money = 0,
-- @HIGHPRICE money = 0
@EVENTID uniqueidentifier
)
as
begin
-- parameters from usp_payment_addbase
-- 1. Add Revenue
-- 2. Add Revenue Split
-- 3. Deal with EVENTDONOR table?
if @ID is null
set @ID = newid(); --revenue ID
DECLARE @TYPECODE tinyint
set @TYPECODE = 0; --Donation
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
if @CURRENTDATE is null
set @CURRENTDATE = GetDate();
if @APPEALID IS NULL
SELECT @APPEALID = APPEALID
FROM dbo.EVENT
WHERE ID = @EVENTID;
-- If the system has set that households can't be donors, verify that constituent isn't a household
if dbo.UFN_INSTALLATIONINFO_GETHOUSEHOLDSCANBEDONORS() = 0 and dbo.UFN_CONSTITUENT_ISHOUSEHOLD(@CONSTITUENTID) = 1
raiserror('HOUSEHOLDSCANNOTBEDONORS', 13, 1);
-- if the group type can't be a donor, raise an error
if exists(select GD.ID from dbo.GROUPDATA GD inner join dbo.GROUPTYPE GT on GD.GROUPTYPEID = GT.ID where GD.ID = @CONSTITUENTID and GT.CANBEDONOR = 0)
raiserror('GROUPCANNOTBEDONOR', 13, 1);
BEGIN TRY
BEGIN TRAN
--Add new Revenue Transaction
insert into dbo.REVENUE
(
ID,
CONSTITUENTID,
DATE,
AMOUNT,
TRANSACTIONTYPECODE,
SOURCECODE,
APPEALID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED)
values
(
@ID,
@CONSTITUENTID,
@TRANSACTIONDATE,
@AMOUNT,
0,
@SOURCECODE,
@APPEALID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE);
declare @REVENUEPAYMETHODID uniqueidentifier
set @REVENUEPAYMETHODID = newid();
insert into dbo.REVENUEPAYMENTMETHOD (ID,REVENUEID, PAYMENTMETHODCODE, AMOUNT, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values (@REVENUEPAYMETHODID,@ID,@PAYMENTMETHODCODE,@AMOUNT, @CHANGEAGENTID,@CHANGEAGENTID,@CURRENTDATE,@CURRENTDATE) ;
-- update the payment information for each revenue record in the transaction
exec dbo.USP_REVENUE_UPDATEPAYMENTDETAILS @REVENUEPAYMETHODID, @PAYMENTMETHODCODE, @CHECKDATE, @CHECKNUMBER, @CONSTITUENTACCOUNTID, @REFERENCEDATE, @REFERENCENUMBER, @CARDHOLDERNAME, @CREDITCARDNUMBER, @CREDITTYPECODEID, @AUTHORIZATIONCODE, @EXPIRESON
, NULL, NULL, NULL, NULL, NULL, NULL, null, null, null, null, null, @CHANGEAGENTID,@CURRENTDATE, 0, NULL, NULL, NULL, NULL, @AMOUNT, @ORIGINALPAYMENTMETHODCODE=@PAYMENTMETHODCODE;
--create revenueSplit
insert into dbo.REVENUESPLIT(ID, REVENUEID, APPLICATIONCODE, TYPECODE, AMOUNT, DESIGNATIONID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
select
newid(),
@ID,
@TYPECODE,
'Gift',
@AMOUNT,
@DESIGNATIONID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE;
COMMIT TRAN;
END TRY
BEGIN CATCH
IF (XACT_STATE() <>0)
Rollback Tran;
END CATCH;
end