USP_REPORT_REVENUEBATCHCONTROLREPORT_CURRENCYSUMMARY
Provides summary data for the revenue batch control report, broken down by currency.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@BATCHID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_REPORT_REVENUEBATCHCONTROLREPORT_CURRENCYSUMMARY
(
@BATCHID uniqueidentifier
)
as
set nocount on;
declare @TABLENAME nvarchar(128);
select @TABLENAME = dbo.UFN_BATCH_GETREPORTTABLENAME(@BATCHID, 0)
declare @CURRENCYFIELD nvarchar(100);
if exists(select * from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = @TABLENAME and COLUMN_NAME = 'REVENUECURRENCYID')
select @CURRENCYFIELD = 'REVENUECURRENCYID';
else
set @CURRENCYFIELD = '''' + cast(coalesce(dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY(), '00000000-0000-0000-0000-000000000000') as nvarchar(36)) + '''';
declare @SQLTOEXEC nvarchar(max);
set @SQLTOEXEC = N'set nocount on;
declare @MGREVENUE table (AMOUNT money, CURRENCYID uniqueidentifier);
declare @MEMBERSHIPREVENUE table (AMOUNT money, CURRENCYID uniqueidentifier);
';
--If MGDETAIL column exists then add data.
if exists(select * from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = @TABLENAME and COLUMN_NAME = 'MGDEATIL')
set @SQLTOEXEC = @SQLTOEXEC + '
insert into @MGREVENUE(
AMOUNT, CURRENCYID
)
select
T.c.value(''(TRANSACTIONAMOUNT)[1]'',''money'') AS ''AMOUNT'',
T.c.value(''(TRANSACTIONCURRENCYID)[1]'',''uniqueidentifier'') AS ''CURRENCYID''
from ' + @TABLENAME + '
outer apply MGDETAIL.nodes(''/ITEM'') T(c)
where MGDETAIL is not null;
';
--If MEMBERSHIPDETAIL column exists then add data.
if exists(select * from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = @TABLENAME and COLUMN_NAME = 'MEMBERSHIPDETAIL')
set @SQLTOEXEC = @SQLTOEXEC + '
insert into @MEMBERSHIPREVENUE(
AMOUNT, CURRENCYID
)
select
T.c.value(''(TRANSACTIONAMOUNT)[1]'',''money'') AS ''AMOUNT'',
T.c.value(''(TRANSACTIONCURRENCYID)[1]'',''uniqueidentifier'') AS ''CURRENCYID''
from ' + @TABLENAME + '
outer apply MEMBERSHIPDETAIL.nodes(''/ITEM'') T(c)
where MEMBERSHIPDETAIL is not null;
';
set @SQLTOEXEC = @SQLTOEXEC + '
with TBL_CTE as
(
select
' + @CURRENCYFIELD + ' as REVENUECURRENCYID,
ISPAYMENT,
PAYMENTAMOUNT,
ISPLEDGE,
PLEDGEAMOUNT,
ISRECURRINGGIFT,
RECURRINGGIFTAMOUNT
from ' + @TABLENAME + '
)
select
VIEWDATA.REVENUECURRENCYID,
CURRENCY.NAME,
sum(VIEWDATA.ISPAYMENT) as [TOTALPAYMENTCOUNT],
sum(VIEWDATA.PAYMENTAMOUNT) as [TOTALPAYMENTAMOUNT],
sum(VIEWDATA.ISPLEDGE) as [TOTALPLEDGECOUNT],
sum(VIEWDATA.PLEDGEAMOUNT) as [TOTALPLEDGEAMOUNT],
sum(VIEWDATA.ISRECURRINGGIFT) as [TOTALRECURRINGGIFTCOUNT],
sum(VIEWDATA.RECURRINGGIFTAMOUNT) as [TOTALRECURRINGGIFTAMOUNT],
(select count(1) from @MGREVENUE MGREVENUE where MGREVENUE.CURRENCYID = VIEWDATA.REVENUECURRENCYID) as TOTALMGCOUNT,
(select sum(AMOUNT) from @MGREVENUE MGREVENUE where MGREVENUE.CURRENCYID = VIEWDATA.REVENUECURRENCYID) as TOTALMGAMOUNT,
(select count(1) from @MEMBERSHIPREVENUE MEMBERSHIPREVENUE where MEMBERSHIPREVENUE.CURRENCYID = VIEWDATA.REVENUECURRENCYID) as TOTALMEMBERSHIPCOUNT,
(select sum(AMOUNT) from @MEMBERSHIPREVENUE MEMBERSHIPREVENUE where MEMBERSHIPREVENUE.CURRENCYID = VIEWDATA.REVENUECURRENCYID) as TOTALMEMBERSHIPAMOUNT,
CURRENCY.ISO4217,
CURRENCY.DECIMALDIGITS,
CURRENCY.CURRENCYSYMBOL,
CURRENCY.SYMBOLDISPLAYSETTINGCODE
from TBL_CTE VIEWDATA
inner join dbo.CURRENCY on CURRENCY.ID = VIEWDATA.REVENUECURRENCYID
group by VIEWDATA.REVENUECURRENCYID,CURRENCY.NAME,CURRENCY.ISO4217,CURRENCY.DECIMALDIGITS,CURRENCY.CURRENCYSYMBOL,CURRENCY.SYMBOLDISPLAYSETTINGCODE
order by CURRENCY.NAME;';
exec sp_executesql @SQLTOEXEC;