USP_POSTTOGLPROCESS_DETAILMULTICURRENCYREPORT
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@GLBATCHID | uniqueidentifier | IN |
Definition
Copy
create procedure dbo.USP_POSTTOGLPROCESS_DETAILMULTICURRENCYREPORT(@GLBATCHID uniqueidentifier)
with execute as owner
as
declare @ORGISOCURRENCYCODE nvarchar(3);
declare @ORGCURRENCYSYMBOL nvarchar(5);
declare @ORGDECIMALDIGITS tinyint;
declare @ORGCURRENCYSYMBOLDISPLAYSETTINGCODE tinyint;
select
@ORGISOCURRENCYCODE = CURRENCY.ISO4217,
@ORGCURRENCYSYMBOL = CURRENCY.CURRENCYSYMBOL,
@ORGDECIMALDIGITS = CURRENCY.DECIMALDIGITS,
@ORGCURRENCYSYMBOLDISPLAYSETTINGCODE = CURRENCY.SYMBOLDISPLAYSETTINGCODE
from dbo.CURRENCY
where CURRENCY.ISORGANIZATIONCURRENCY = 1;
with [CTE] as
(
select
'http://www.blackbaud.com/REVENUEID?REVENUEID=' + CONVERT(nvarchar(36),FINANCIALTRANSACTION.ID) as REVENUEID,
FINANCIALTRANSACTION.CALCULATEDUSERDEFINEDID as LOOKUPID,
REVENUEPOSTEDDETAIL.REFERENCE,
cast(FINANCIALTRANSACTION.DATE as datetime) as DATE,
FINANCIALTRANSACTION.BASEAMOUNT as AMOUNT,
case
when len(GLBATCH.LOOKUPID) > 0 then N'(' + GLBATCH.LOOKUPID + N')'
else N''
end as GLBATCH,
CURRENCYPROPERTIES.ISO4217 [ISOCURRENCYCODE],
CURRENCYPROPERTIES.CURRENCYSYMBOL,
CURRENCYPROPERTIES.DECIMALDIGITS [CURRENCYDECIMALDIGITS],
CURRENCYPROPERTIES.SYMBOLDISPLAYSETTINGCODE [CURRENCYSYMBOLDISPLAYSETTINGCODE],
FINANCIALTRANSACTION.TRANSACTIONAMOUNT,
TRANSACTIONCURRENCYPROPERTIES.ISO4217 [TRANSACTIONISOCURRENCYCODE],
TRANSACTIONCURRENCYPROPERTIES.CURRENCYSYMBOL [TRANSACTIONCURRENCYSYMBOL],
TRANSACTIONCURRENCYPROPERTIES.DECIMALDIGITS [TRANSACTIONCURRENCYDECIMALDIGITS],
TRANSACTIONCURRENCYPROPERTIES.SYMBOLDISPLAYSETTINGCODE [TRANSACTIONCURRENCYSYMBOLDISPLAYSETTINGCODE],
FINANCIALTRANSACTION.ORGAMOUNT as ORGANIZATIONAMOUNT,
cast(FINANCIALTRANSACTION.POSTDATE as datetime) as POSTDATE,
cast(GLBATCH.POSTDATE as date) as GLBATCHDATE
from
dbo.REVENUEPOSTEDDETAIL
inner join dbo.REVENUEPOSTED on REVENUEPOSTED.ID = REVENUEPOSTEDDETAIL.REVENUEPOSTEDID
inner join dbo.FINANCIALTRANSACTION on FINANCIALTRANSACTION.ID = REVENUEPOSTED.ID
inner join dbo.REVENUE_EXT on FINANCIALTRANSACTION.ID = REVENUE_EXT.ID
left join dbo.GLBATCH on GLBATCH.ID = REVENUEPOSTEDDETAIL.GLBATCHID
left outer join dbo.V_BASECURRENCYFORFINANCIALTRANSACTION_I with (noexpand) on FINANCIALTRANSACTION.ID = V_BASECURRENCYFORFINANCIALTRANSACTION_I.FINANCIALTRANSACTIONID
outer apply (
select
isnull(REVENUE_EXT.NONPOSTABLEBASECURRENCYID, V_BASECURRENCYFORFINANCIALTRANSACTION_I.BASECURRENCYID) as BASECURRENCYID,
FINANCIALTRANSACTION.TRANSACTIONCURRENCYID
where FINANCIALTRANSACTION.DELETEDON is null --otherwise, we want base and transaction currencies to be null
) REVENUECURRENCY
outer apply dbo.UFN_CURRENCY_GETPROPERTIES(REVENUECURRENCY.BASECURRENCYID) CURRENCYPROPERTIES
outer apply dbo.UFN_CURRENCY_GETPROPERTIES(REVENUECURRENCY.TRANSACTIONCURRENCYID) TRANSACTIONCURRENCYPROPERTIES
where
REVENUEPOSTEDDETAIL.GLBATCHID = @GLBATCHID
)
select
[CTE].REVENUEID,
[CTE].LOOKUPID,
[CTE].REFERENCE,
[CTE].DATE,
sum([CTE].AMOUNT) as [AMOUNT],
[CTE].GLBATCH,
[CTE].ISOCURRENCYCODE,
[CTE].CURRENCYSYMBOL,
[CTE].CURRENCYDECIMALDIGITS,
[CTE].CURRENCYSYMBOLDISPLAYSETTINGCODE,
sum([CTE].TRANSACTIONAMOUNT) as [TRANSACTIONAMOUNT],
[CTE].TRANSACTIONISOCURRENCYCODE,
[CTE].TRANSACTIONCURRENCYSYMBOL,
[CTE].TRANSACTIONCURRENCYDECIMALDIGITS,
[CTE].TRANSACTIONCURRENCYSYMBOLDISPLAYSETTINGCODE,
sum([CTE].ORGANIZATIONAMOUNT) as [ORGANIZATIONAMOUNT],
@ORGISOCURRENCYCODE as ORGANIZATIONISOCURRENCYCODE,
@ORGCURRENCYSYMBOL as ORGANIZATIONCURRENCYSYMBOL,
@ORGDECIMALDIGITS as ORGANIZATIONCURRENCYDECIMALDIGITS,
@ORGCURRENCYSYMBOLDISPLAYSETTINGCODE as ORGANIZATIONCURRENCYSYMBOLDISPLAYSETTINGCODE,
[CTE].POSTDATE,
[CTE].GLBATCHDATE
from
[CTE]
group by
[CTE].REVENUEID,
[CTE].LOOKUPID,
[CTE].REFERENCE,
[CTE].DATE,
[CTE].GLBATCH,
[CTE].ISOCURRENCYCODE,
[CTE].CURRENCYSYMBOL,
[CTE].CURRENCYDECIMALDIGITS,
[CTE].CURRENCYSYMBOLDISPLAYSETTINGCODE,
[CTE].TRANSACTIONISOCURRENCYCODE,
[CTE].TRANSACTIONCURRENCYSYMBOL,
[CTE].TRANSACTIONCURRENCYDECIMALDIGITS,
[CTE].TRANSACTIONCURRENCYSYMBOLDISPLAYSETTINGCODE,
[CTE].POSTDATE,
[CTE].GLBATCHDATE
order by
[CTE].LOOKUPID asc,
[CTE].DATE asc,
[CTE].REFERENCE asc,
[CTE].GLBATCH asc