USP_DATAFORMTEMPLATE_ADD_PAYMENTBYTRANSACTION
The save procedure used by the add dataform template "Payment Add by Transaction 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. |
@TRANSACTIONID | uniqueidentifier | IN | Input parameter indicating the context ID for the record being added. |
@AMOUNT | money | IN | Amount |
@RECEIPTAMOUNT | money | IN | Receipt amount |
@SPLITS | xml | IN | Designations |
@REVENUESTREAMS | xml | IN | Revenue streams |
@SOURCECODE | nvarchar(50) | IN | Source code |
@APPEALID | uniqueidentifier | IN | Appeal |
@BENEFITS | xml | IN | Benefits |
@BENEFITSWAIVED | bit | IN | Benefits waived |
@MAILINGID | uniqueidentifier | IN | Effort |
@CHANNELCODEID | uniqueidentifier | IN | Inbound channel |
@UNAPPLIEDMATCHINGGIFTSPLITS | xml | IN | Designations |
@UNAPPLIEDMATCHINGGIFTAMOUNT | money | IN | Applied |
@OTHERPAYMENTMETHODCODEID | uniqueidentifier | IN | Other method |
@REFERENCE | nvarchar(255) | IN | Reference |
@CATEGORYCODEID | uniqueidentifier | IN | Revenue category |
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_PAYMENTBYTRANSACTION
(
@ID uniqueidentifier = null output,
@CHANGEAGENTID uniqueidentifier,
@TRANSACTIONID uniqueidentifier,
@AMOUNT money = 0,
@RECEIPTAMOUNT money = 0,
@SPLITS xml = null,
@REVENUESTREAMS xml = null,
@SOURCECODE nvarchar(50) = null,
@APPEALID uniqueidentifier = null,
@BENEFITS xml = null,
@BENEFITSWAIVED bit = 0,
@MAILINGID uniqueidentifier = null,
@CHANNELCODEID uniqueidentifier = null,
@UNAPPLIEDMATCHINGGIFTSPLITS xml = null,
@UNAPPLIEDMATCHINGGIFTAMOUNT money = 0,
@OTHERPAYMENTMETHODCODEID uniqueidentifier = null,
@REFERENCE nvarchar(255) = null,
@CATEGORYCODEID uniqueidentifier = null,
@CURRENTAPPUSERID uniqueidentifier = null
)
as
set nocount on;
declare @REVENUEID uniqueidentifier;
declare @DATE datetime;
declare @PAYMENTMETHODCODE tinyint;
declare @CHECKDATE dbo.UDT_FUZZYDATE;
declare @CHECKNUMBER nvarchar(20);
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 @GIFTINKINDSUBTYPECODEID uniqueidentifier;
declare @PROPERTYSUBTYPECODEID uniqueidentifier;
declare @CONSTITUENTACCOUNTID uniqueidentifier;
declare @POSTSTATUSCODE tinyint;
declare @POSTDATE datetime;
declare @FINDERNUMBER bigint;
declare @GIVENANONYMOUSLY bit;
declare @DONOTRECEIPT bit;
declare @DONOTACKNOWLEDGE bit;
declare @LOWPRICE decimal(19,4);
declare @HIGHPRICE decimal(19,4);
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
declare @CURRENTDATE datetime;
set @CURRENTDATE = GetDate();
begin try
declare @CONSTITUENTID uniqueidentifier;
declare @PAYMENTMETHODID uniqueidentifier;
--Set default payment values
select top 1
@REVENUEID = REVENUE.ID,
@CONSTITUENTID = REVENUE.CONSTITUENTID,
@DATE = REVENUE.DATE,
@PAYMENTMETHODCODE = REVENUEPAYMENTMETHOD.PAYMENTMETHODCODE,
@PAYMENTMETHODID = REVENUEPAYMENTMETHOD.ID,
@POSTSTATUSCODE = case when REVENUE.DONOTPOST = 1 then 2 when REVENUEPOSTED.ID is not null then 0 else 1 end,
@POSTDATE = REVENUE.POSTDATE,
@DONOTRECEIPT = REVENUE.DONOTRECEIPT,
@GIVENANONYMOUSLY = REVENUE.GIVENANONYMOUSLY,
@DONOTACKNOWLEDGE = REVENUE.DONOTACKNOWLEDGE
from dbo.REVENUE
inner join dbo.REVENUEPAYMENTMETHOD
on REVENUE.ID = REVENUEPAYMENTMETHOD.REVENUEID
left outer join REVENUEPOSTED
on REVENUE.ID = REVENUEPOSTED.ID
where REVENUE.ID = @TRANSACTIONID;
select @REFERENCENUMBER = '',
@REFERENCEDATE = '00000000',
@CHECKDATE = '00000000',
@CHECKNUMBER = '',
@CARDHOLDERNAME = '',
@CREDITCARDNUMBER = '',
@CREDITTYPECODEID = null,
@AUTHORIZATIONCODE = '',
@EXPIRESON = '00000000',
@CONSTITUENTACCOUNTID = null,
@ISSUER = '',
@NUMBEROFUNITS = 0,
@SYMBOL = '',
@MEDIANPRICE = 0,
@PROPERTYSUBTYPECODEID = null,
@OTHERPAYMENTMETHODCODEID = null,
@LOWPRICE = 0,
@HIGHPRICE = 0
if @PAYMENTMETHODCODE = 0 --Cash
select
@REFERENCENUMBER = REFERENCENUMBER,
@REFERENCEDATE = REFERENCEDATE
from dbo.CASHPAYMENTMETHODDETAIL where ID = @PAYMENTMETHODID;
if @PAYMENTMETHODCODE = 1 --Check
select @CHECKDATE = CHECKDATE,
@CHECKNUMBER = CHECKNUMBER
from dbo.CHECKPAYMENTMETHODDETAIL where ID = @PAYMENTMETHODID;
if @PAYMENTMETHODCODE = 2 --Credit Card
begin
select
@CARDHOLDERNAME = CARDHOLDERNAME,
@CREDITCARDNUMBER = CREDITCARDPARTIALNUMBER,
@CREDITTYPECODEID = CREDITTYPECODEID,
@AUTHORIZATIONCODE = AUTHORIZATIONCODE,
@EXPIRESON = EXPIRESON
from dbo.CREDITCARDPAYMENTMETHODDETAIL where ID = @PAYMENTMETHODID;
end
if @PAYMENTMETHODCODE = 3 --Direct Debit
select
@REFERENCEDATE = REFERENCEDATE,
@REFERENCENUMBER = REFERENCENUMBER,
@CONSTITUENTACCOUNTID = CONSTITUENTACCOUNTID
from dbo.DIRECTDEBITPAYMENTMETHODDETAIL where ID = @PAYMENTMETHODID;
if @PAYMENTMETHODCODE = 4 --Stock
select
@ISSUER = ISSUER,
@NUMBEROFUNITS = NUMBEROFUNITS,
@SYMBOL = SYMBOL,
@MEDIANPRICE = MEDIANPRICE,
@LOWPRICE = LOWPRICE,
@HIGHPRICE = HIGHPRICE
from dbo.STOCKDETAIL where ID = @PAYMENTMETHODID;
if @PAYMENTMETHODCODE = 5 --Property
select
@PROPERTYSUBTYPECODEID = PROPERTYSUBTYPECODEID
from dbo.PROPERTYDETAIL WHERE ID = @PAYMENTMETHODID;
if @PAYMENTMETHODCODE = 6 --Gift in Kind
select
@GIFTINKINDSUBTYPECODEID = GIFTINKINDSUBTYPECODEID
from dbo.GIFTINKINDPAYMENTMETHODDETAIL where ID = @PAYMENTMETHODID;
if @PAYMENTMETHODCODE = 10 --Other
select
@REFERENCENUMBER = REFERENCENUMBER,
@REFERENCEDATE = REFERENCEDATE,
@OTHERPAYMENTMETHODCODEID = OTHERPAYMENTMETHODCODEID
from dbo.OTHERPAYMENTMETHODDETAIL where ID = @PAYMENTMETHODID;
if @CONSTITUENTID is null
raiserror('Unable to locate associated transaction.', 13, 1);
set @REVENUEID = null;
set @ID = @TRANSACTIONID;
exec dbo.USP_PAYMENT_ADD @REVENUEID output, @CHANGEAGENTID, @CURRENTDATE, @CONSTITUENTID, @ID,
@DATE, @AMOUNT, @PAYMENTMETHODCODE, @CHECKDATE, @CHECKNUMBER,
@REFERENCEDATE, @REFERENCENUMBER, @CARDHOLDERNAME, @CREDITCARDNUMBER,
@CREDITTYPECODEID, @AUTHORIZATIONCODE, @EXPIRESON, @ISSUER,
@NUMBEROFUNITS, @SYMBOL, @MEDIANPRICE, @GIFTINKINDSUBTYPECODEID,
@PROPERTYSUBTYPECODEID, @RECEIPTAMOUNT, @CONSTITUENTACCOUNTID, @SPLITS,
@REVENUESTREAMS, @POSTSTATUSCODE, @POSTDATE, @FINDERNUMBER,
@SOURCECODE, @APPEALID, @BENEFITS, @BENEFITSWAIVED, @GIVENANONYMOUSLY,
@MAILINGID, @CHANNELCODEID, @DONOTACKNOWLEDGE,@DONOTRECEIPT,@UNAPPLIEDMATCHINGGIFTSPLITS,
'', @OTHERPAYMENTMETHODCODEID, @REFERENCE, @CATEGORYCODEID, null, @LOWPRICE, @HIGHPRICE, @CURRENTAPPUSERID
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;