USP_POSTTOGLPROCESS_SUBREPORT

Parameters

Parameter Parameter Type Mode Description
@ID nvarchar(36) IN

Definition

Copy

            create procedure dbo.USP_POSTTOGLPROCESS_SUBREPORT(@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;

                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;

                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    
                        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'
                        @ISOCURRENCYCODE = @ISOCURRENCYCODE,
                        @CURRENCYSYMBOL = @CURRENCYSYMBOL,
                        @DECIMALDIGITS = @DECIMALDIGITS,
                        @CURRENCYSYMBOLDISPLAYSETTINGCODE = @CURRENCYSYMBOLDISPLAYSETTINGCODE
                end try

                begin catch
                    exec dbo.USP_RAISE_ERROR;
                    return 1;
                end catch