USP_REPORT_CREDITCARDPROCESSING
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@BUSINESSPROCESSSTATUSID | nvarchar(36) | IN | |
@TRANSACTIONCODE | tinyint | IN | |
@APPLICATIONCODE | tinyint | IN |
Definition
Copy
CREATE procedure dbo.USP_REPORT_CREDITCARDPROCESSING
(
@BUSINESSPROCESSSTATUSID nvarchar(36),
@TRANSACTIONCODE tinyint = 0,
@APPLICATIONCODE tinyint = 0
)
with execute as owner
as begin
set nocount on;
declare @TABLENAME nvarchar(255);
declare @SQL nvarchar(4000);
declare @TRANSACTIONCLAUSE nvarchar(4000);
declare @APPLICATIONCLAUSE nvarchar(4000);
set @SQL = '';
set @TRANSACTIONCLAUSE = '';
set @APPLICATIONCLAUSE = '';
begin try
select @TABLENAME = BUSINESSPROCESSOUTPUT.TABLENAME
from dbo.BUSINESSPROCESSSTATUS
inner join dbo.BUSINESSPROCESSOUTPUT on BUSINESSPROCESSSTATUS.ID = BUSINESSPROCESSOUTPUT.BUSINESSPROCESSSTATUSID
where BUSINESSPROCESSSTATUS.ID = @BUSINESSPROCESSSTATUSID and BUSINESSPROCESSOUTPUT.TABLEKEY = 'OUTPUT';
if not @TABLENAME is null and not OBJECT_ID(@TABLENAME) is null
begin
set @SQL = '
select
T.BUSINESSPROCESSOUTPUT_PKID as ROWNUMBER,
T.TRANSACTIONNUMBER,
T.COMMITMENTID,
CONSTITUENT_NF.NAME,
T.PARTIALCREDITCARDNUMBER,
T.TRANSACTIONAMOUNTAPPLIED,
T.MESSAGE,
T.CREDITTYPE,
T.EXPIRESON,
T.ISSUCCESSFUL,
T.ISPERMANENTREJECTION,
T.INCLUDEINEXPORT,
CONSTITUENT.LOOKUPID as CONSTITUENTLOOKUPID,
coalesce(FINANCIALTRANSACTION.CALCULATEDUSERDEFINEDID, REGISTRANT.LOOKUPID, MEMBERSHIP.LOOKUPID) as REVENUELOOKUPID,
coalesce(FINANCIALTRANSACTION.TYPE, nullif(T.APPLICATION, '''')) as TRANSACTIONTYPE,
coalesce(FINANCIALTRANSACTION.DATE, EVENT.STARTDATE, cast(MEMBERSHIP.JOINDATE as date)) as REVENUEDATE,
case
when FINANCIALTRANSACTION.CALCULATEDUSERDEFINEDID is not null then ''http://www.blackbaud.com/REVENUELINK?REVENUEID='' + cast(T.COMMITMENTID as nvarchar(max))
else ''''
end as REVENUELINK,
''http://www.blackbaud.com/CONSTITUENTLINK?CONSTITUENTID='' + cast(T.CONSTITUENTID as nvarchar(max)) as CONSTITUENTLINK,
CURRENCY.ISO4217 as ISOCURRENCYCODE,
CURRENCY.DECIMALDIGITS,
CURRENCY.CURRENCYSYMBOL,
CURRENCY.SYMBOLDISPLAYSETTINGCODE as CURRENCYSYMBOLDISPLAYSETTINGCODE,
case
when REGISTRANT.LOOKUPID is not null then ''http://www.blackbaud.com/REGISTRANTLINK?REGISTRANTID='' + cast(T.COMMITMENTID as nvarchar(max))
else ''''
end as REGISTRANTLINK,
case
when MEMBERSHIP.ID is not null then ''http://www.blackbaud.com/MEMBERSHIPLINK?MEMBERSHIPID='' + cast(T.COMMITMENTID as nvarchar(max))
else ''''
end as MEMBERSHIPLINK,
MEMBERSHIP.ID as MEMBERSHIPID
from ' + @TABLENAME + ' as T
outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(T.CONSTITUENTID) CONSTITUENT_NF
left join dbo.CONSTITUENT on CONSTITUENT.ID = T.CONSTITUENTID
left join dbo.FINANCIALTRANSACTION on FINANCIALTRANSACTION.ID = T.COMMITMENTID
left join dbo.CURRENCY on T.TRANSACTIONCURRENCYID = CURRENCY.ID
left join dbo.REGISTRANT on REGISTRANT.ID = T.COMMITMENTID
left join dbo.EVENT on EVENT.ID = REGISTRANT.EVENTID
left join dbo.MEMBERSHIP on MEMBERSHIP.ID = T.COMMITMENTID
';
--@TRANSACTIONCODE = 0 --All transactions
if @TRANSACTIONCODE = 1 --Authorized transactions
set @TRANSACTIONCLAUSE = 'T.ISSUCCESSFUL = 1';
else if @TRANSACTIONCODE = 2 --All rejected transactions
set @TRANSACTIONCLAUSE = 'T.ISSUCCESSFUL = 0';
else if @TRANSACTIONCODE = 3 --Provisional rejections
set @TRANSACTIONCLAUSE = 'T.ISSUCCESSFUL = 0 and T.ISPERMANENTREJECTION = 0';
else if @TRANSACTIONCODE = 4 --Permanent rejections
set @TRANSACTIONCLAUSE = 'T.ISSUCCESSFUL = 0 and T.ISPERMANENTREJECTION = 1';
--@APPLICATIONCODE = 0 --All applications
if @APPLICATIONCODE = 1 --Pledges
set @APPLICATIONCLAUSE = 'FINANCIALTRANSACTION.TYPECODE = 1'
if @APPLICATIONCODE = 2 --Recurring gifts
set @APPLICATIONCLAUSE = 'FINANCIALTRANSACTION.TYPECODE = 2'
if @APPLICATIONCODE = 3 --Donations
set @APPLICATIONCLAUSE = 'T.APPLICATION = ''Donation'''
if @APPLICATIONCODE = 4 --Event registrations
set @APPLICATIONCLAUSE = 'REGISTRANT.ID is not null'
if @APPLICATIONCODE = 5 --Memberships
set @APPLICATIONCLAUSE = 'T.APPLICATION = ''Membership'''
if len(@TRANSACTIONCLAUSE) > 0 and len(@APPLICATIONCLAUSE) > 0
set @TRANSACTIONCLAUSE = @TRANSACTIONCLAUSE + ' and ';
if len(@TRANSACTIONCLAUSE) > 0 or len(@APPLICATIONCLAUSE) > 0
set @SQL = @SQL + ' where ';
set @SQL = @SQL + @TRANSACTIONCLAUSE + @APPLICATIONCLAUSE;
end
else
set @SQL = '
select
0 as ROWNUMBER,
0 as TRANSACTIONNUMBER,
ID as [COMMITMENTID],
null as NAME,
null as PARTIALCREDITCARDNUMBER,
null as TRANSACTIONAMOUNTAPPLIED,
null as MESSAGE,
null as CREDITTYPE,
null as EXPIRESON,
null as ISSUCCESSFUL,
null as ISPERMANENTREJECTION,
null as CONSTITUENTLOOKUPID,
null as REVENUELOOKUPID,
null as TRANSACTIONTYPE,
null as REVENUEDATE,
null as REVENUELINK,
null as CONSTITUENTLINK,
null as ISOCURRENCYCODE,
null as DECIMALDIGITS,
null as CURRENCYSYMBOL,
null as CURRENCYSYMBOLDISPLAYSETTINGCODE,
null as REGISTRANTLINK
null as MEMBERSHIPLINK,
null as MEMBERSHIPID
from BUSINESSPROCESSSTATUS
where 1 = 0';
exec sp_executesql @SQL;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;
end