USP_POSTTOGLPROCESS_SUBMULTICURRENCYREPORT
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | nvarchar(36) | IN |
Definition
Copy
create procedure dbo.USP_POSTTOGLPROCESS_SUBMULTICURRENCYREPORT(@ID nvarchar(36))
with execute as owner
as
set nocount on;
declare @TABLENAME nvarchar(255);
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;
select
@TABLENAME = BUSINESSPROCESSOUTPUT.TABLENAME,
@BASECURRENCYID = coalesce(CURRENCYSET.BASECURRENCYID, dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY())
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.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
Journal,
T2.YEARID as YEAR,
T1.SEQUENCE as PERIOD,
Sum(case DEBITCREDIT when CHAR(68) then AMOUNT else 0 end) as TOTALDEBIT,
Sum(case DEBITCREDIT when CHAR(67) then AMOUNT else 0 end) as TOTALCREDIT,
@ISOCURRENCYCODE as ISOCURRENCYCODE,
@CURRENCYSYMBOL as CURRENCYSYMBOL,
@DECIMALDIGITS as CURRENCYDECIMALDIGITS,
@CURRENCYSYMBOLDISPLAYSETTINGCODE as CURRENCYSYMBOLDISPLAYSETTINGCODE,
Sum(case DEBITCREDIT when CHAR(68) then ORGANIZATIONAMOUNT else 0 end) as ORGANIZATIONTOTALDEBIT,
Sum(case DEBITCREDIT when CHAR(67) then ORGANIZATIONAMOUNT else 0 end) as ORGANIZATIONTOTALCREDIT,
@ORGISOCURRENCYCODE as ORGANIZATIONISOCURRENCYCODE,
@ORGCURRENCYSYMBOL as ORGANIZATIONCURRENCYSYMBOL,
@ORGDECIMALDIGITS as ORGANIZATIONCURRENCYDECIMALDIGITS,
@ORGCURRENCYSYMBOLDISPLAYSETTINGCODE as ORGANIZATIONCURRENCYSYMBOLDISPLAYSETTINGCODE
from
dbo.' + @TABLENAME +
' inner Join GLFISCALPERIOD as T1 on cast(POSTDATE as DATE) between STARTDATE and ENDDATE
inner Join GLFISCALYEAR as T2 on T1.GLFISCALYEARID= T2.ID
group By
Journal, T2.YEARID, T1.SEQUENCE
order by T2.YEARID, T1.SEQUENCE asc';
exec sp_executesql
@SQL,
N'@ISOCURRENCYCODE nvarchar(3), @CURRENCYSYMBOL nvarchar(5), @DECIMALDIGITS tinyint, @CURRENCYSYMBOLDISPLAYSETTINGCODE tinyint, @ORGISOCURRENCYCODE nvarchar(3), @ORGCURRENCYSYMBOL nvarchar(5), @ORGDECIMALDIGITS tinyint, @ORGCURRENCYSYMBOLDISPLAYSETTINGCODE tinyint',
@ISOCURRENCYCODE = @ISOCURRENCYCODE,
@CURRENCYSYMBOL = @CURRENCYSYMBOL,
@DECIMALDIGITS = @DECIMALDIGITS,
@CURRENCYSYMBOLDISPLAYSETTINGCODE = @CURRENCYSYMBOLDISPLAYSETTINGCODE,
@ORGISOCURRENCYCODE = @ORGISOCURRENCYCODE,
@ORGCURRENCYSYMBOL = @ORGCURRENCYSYMBOL,
@ORGDECIMALDIGITS = @ORGDECIMALDIGITS,
@ORGCURRENCYSYMBOLDISPLAYSETTINGCODE = @ORGCURRENCYSYMBOLDISPLAYSETTINGCODE
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch