USP_POSTTOGLPROCESSMULTICURRENCY_REPORT2
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | nvarchar(36) | IN |
Definition
Copy
create procedure dbo.USP_POSTTOGLPROCESSMULTICURRENCY_REPORT2(@ID nvarchar(36))
with execute as owner
as
set nocount on;
declare @TABLENAME nvarchar(255);
declare @REPORTTYPE nvarchar(10);
declare @GLBATCH nvarchar(100);
declare @SQL nvarchar(4000);
declare @BASECURRENCYID uniqueidentifier;
declare @ISOCURRENCYCODE nvarchar(3);
declare @CURRENCYSYMBOL nvarchar(5);
declare @DECIMALDIGITS tinyint;
declare @CURRENCYSYMBOLDISPLAYSETTINGCODE tinyint;
declare @ORGISOCURRENCYCODE nvarchar(3);
declare @ORGCURRENCYSYMBOL nvarchar(5);
declare @ORGDECIMALDIGITS tinyint;
declare @ORGCURRENCYSYMBOLDISPLAYSETTINGCODE tinyint;
declare @PDACCOUNTSYSTEMID nvarchar(36);
select
@TABLENAME = BUSINESSPROCESSOUTPUT.TABLENAME,
@REPORTTYPE = case POSTTOGLPROCESS.MARKASPOSTED when 0 then 'Preview' else 'Posted' end,
@GLBATCH =
case when len(GLBATCH.LOOKUPID) > 0 then N' - Process ID -' + GLBATCH.LOOKUPID
else N''
end,
@BASECURRENCYID = coalesce(CURRENCYSET.BASECURRENCYID, dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY()),
@PDACCOUNTSYSTEMID = PDACCOUNTSYSTEM.ID
from
dbo.BUSINESSPROCESSSTATUS
inner join dbo.BUSINESSPROCESSOUTPUT on BUSINESSPROCESSSTATUS.ID = BUSINESSPROCESSOUTPUT.BUSINESSPROCESSSTATUSID
inner join dbo.POSTTOGLPROCESSSTATUS on BUSINESSPROCESSSTATUS.ID= POSTTOGLPROCESSSTATUS.ID
inner join dbo.POSTTOGLPROCESS on POSTTOGLPROCESSSTATUS.PARAMETERSETID = POSTTOGLPROCESS.ID
left join dbo.GLBATCH on GLBATCH.POSTPROCESSSTATUSID = BUSINESSPROCESSSTATUS.ID
left join dbo.PDACCOUNTSYSTEM ON POSTTOGLPROCESS.PDACCOUNTSYSTEMID = PDACCOUNTSYSTEM.ID
left join dbo.CURRENCYSET ON PDACCOUNTSYSTEM.CURRENCYSETID = CURRENCYSET.ID
where
BUSINESSPROCESSSTATUS.ID = @ID AND BUSINESSPROCESSOUTPUT.TABLEKEY = 'OUTPUT';
if @TABLENAME is null or OBJECT_ID(@TABLENAME) is null
raiserror('Business process output table could not be found. The process might not have completed successfully. ',13,1)
select
@ISOCURRENCYCODE = CURRENCYPROPERTIES.ISO4217,
@CURRENCYSYMBOL = CURRENCYPROPERTIES.CURRENCYSYMBOL,
@DECIMALDIGITS = CURRENCYPROPERTIES.DECIMALDIGITS,
@CURRENCYSYMBOLDISPLAYSETTINGCODE = CURRENCYPROPERTIES.SYMBOLDISPLAYSETTINGCODE
from
dbo.UFN_CURRENCY_GETPROPERTIES(@BASECURRENCYID) CURRENCYPROPERTIES
select
@ORGISOCURRENCYCODE = CURRENCY.ISO4217,
@ORGCURRENCYSYMBOL = CURRENCY.CURRENCYSYMBOL,
@ORGDECIMALDIGITS = CURRENCY.DECIMALDIGITS,
@ORGCURRENCYSYMBOLDISPLAYSETTINGCODE = CURRENCY.SYMBOLDISPLAYSETTINGCODE
from dbo.CURRENCY
where CURRENCY.ISORGANIZATIONCURRENCY = 1;
begin try
set @SQL = 'select
@REPORTTYPEIN as REPORTTYPE,
outTable.ACCOUNTSTRING,
outTable.POSTDATE as POSTDATE,
outTable.DEBITCREDIT,
outTable.AMOUNT,
outTable.JOURNAL,
outTable.REFERENCE,
outTable.BATCH,
@GLBATCHIN as GLBATCH,
@ISOCURRENCYCODE as ISOCURRENCYCODE,
@CURRENCYSYMBOL as CURRENCYSYMBOL,
@DECIMALDIGITS as CURRENCYDECIMALDIGITS,
@CURRENCYSYMBOLDISPLAYSETTINGCODE as CURRENCYSYMBOLDISPLAYSETTINGCODE,
outTable.TRANSACTIONAMOUNT,
CURRENCY.ISO4217 as TRANSACTIONISOCURRENCYCODE,
CURRENCY.CURRENCYSYMBOL as TRANSACTIONCURRENCYSYMBOL,
CURRENCY.DECIMALDIGITS as TRANSACTIONCURRENCYDECIMALDIGITS,
CURRENCY.SYMBOLDISPLAYSETTINGCODE as TRANSACTIONCURRENCYSYMBOLDISPLAYSETTINGCODE,
outTable.ORGANIZATIONAMOUNT,
@ORGISOCURRENCYCODE as ORGANIZATIONISOCURRENCYCODE,
@ORGCURRENCYSYMBOL as ORGANIZATIONCURRENCYSYMBOL,
@ORGDECIMALDIGITS as ORGANIZATIONCURRENCYDECIMALDIGITS,
@ORGCURRENCYSYMBOLDISPLAYSETTINGCODE as ORGANIZATIONCURRENCYSYMBOLDISPLAYSETTINGCODE,
ga.ACCOUNTDESCRIPTION,
ga.ACCOUNTALIAS
from dbo.'
+ @TABLENAME
+' outTable
left join (select GLACCOUNT.ACCOUNTDESCRIPTION
,GLACCOUNT.ACCOUNTALIAS
,GLACCOUNT.ACCOUNTNUMBER
,case when GLACCOUNT.ACCOUNTALIAS = '''' then 1 else ROW_NUMBER() over(partition by GLACCOUNT.ACCOUNTALIAS order by GLACCOUNT.ACCOUNTALIAS) end NUMBER
from dbo.GLACCOUNT where GLACCOUNT.PDACCOUNTSYSTEMID = @PDACCOUNTSYSTEMID) ga on
ga.NUMBER = 1
and ((outTable.ACCOUNTSTRING = ga.ACCOUNTNUMBER and ga.ACCOUNTALIAS = '''')
or (len(ga.ACCOUNTALIAS) > 0 and outTable.ACCOUNTSTRING = ga.ACCOUNTALIAS))
left join dbo.CURRENCY on CURRENCY.ID = outTable.TRANSACTIONCURRENCYID
order by
convert(datetime,outTable.POSTDATE),
outTable.REFERENCE,
outTable.ACCOUNTSTRING,
outTable.AMOUNT,
outTable.DEBITCREDIT ';
exec sp_executesql
@SQL,
N'@REPORTTYPEIN nvarchar(10), @GLBATCHIN nvarchar(100), @ISOCURRENCYCODE nvarchar(3), @CURRENCYSYMBOL nvarchar(5), @DECIMALDIGITS tinyint, @CURRENCYSYMBOLDISPLAYSETTINGCODE tinyint, @ORGISOCURRENCYCODE nvarchar(3), @ORGCURRENCYSYMBOL nvarchar(5), @ORGDECIMALDIGITS tinyint, @ORGCURRENCYSYMBOLDISPLAYSETTINGCODE tinyint, @PDACCOUNTSYSTEMID nvarchar(36)',
@REPORTTYPEIN = @REPORTTYPE,
@GLBATCHIN = @GLBATCH,
@ISOCURRENCYCODE = @ISOCURRENCYCODE,
@CURRENCYSYMBOL = @CURRENCYSYMBOL,
@DECIMALDIGITS = @DECIMALDIGITS,
@CURRENCYSYMBOLDISPLAYSETTINGCODE = @CURRENCYSYMBOLDISPLAYSETTINGCODE,
@ORGISOCURRENCYCODE = @ORGISOCURRENCYCODE,
@ORGCURRENCYSYMBOL = @ORGCURRENCYSYMBOL,
@ORGDECIMALDIGITS = @ORGDECIMALDIGITS,
@ORGCURRENCYSYMBOLDISPLAYSETTINGCODE = @ORGCURRENCYSYMBOLDISPLAYSETTINGCODE,
@PDACCOUNTSYSTEMID = @PDACCOUNTSYSTEMID
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch