USP_REPORT_POSTTOGLPROCESSEXCEPTION2

List of exception records for the posting process.

Parameters

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

Definition

Copy


CREATE procedure dbo.USP_REPORT_POSTTOGLPROCESSEXCEPTION2(@ID nvarchar(36))
with execute as owner
as
    set nocount on;
    declare @TABLENAME nvarchar(255);
    declare @SQL nvarchar(4000);
  declare @PDACCOUNTSYSTEMID nvarchar(36);

    declare @BASECURRENCYID uniqueidentifier;
    select 
        @TABLENAME = BUSINESSPROCESSOUTPUT.TABLENAME,
        @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.PDACCOUNTSYSTEM ON POSTTOGLPROCESS.PDACCOUNTSYSTEMID = PDACCOUNTSYSTEM.ID
        left join dbo.CURRENCYSET ON PDACCOUNTSYSTEM.CURRENCYSETID = CURRENCYSET.ID
    where BUSINESSPROCESSSTATUS.ID = @ID AND BUSINESSPROCESSOUTPUT.TABLEKEY = 'EXCEPTION';

    if @TABLENAME is null or OBJECT_ID(@TABLENAME) is null
        raiserror('Business process exception table could not be found.  The process might not have completed successfully. ',13,1)

    declare @ISOCURRENCYCODE nvarchar(3);
    declare @CURRENCYSYMBOL nvarchar(5);
    declare @DECIMALDIGITS tinyint;
    declare @CURRENCYSYMBOLDISPLAYSETTINGCODE tinyint;
    select 
        @ISOCURRENCYCODE = CURRENCYPROPERTIES.ISO4217,
        @CURRENCYSYMBOL = CURRENCYPROPERTIES.CURRENCYSYMBOL,
        @DECIMALDIGITS = CURRENCYPROPERTIES.DECIMALDIGITS,
        @CURRENCYSYMBOLDISPLAYSETTINGCODE = CURRENCYPROPERTIES.SYMBOLDISPLAYSETTINGCODE        
    from
         dbo.UFN_CURRENCY_GETPROPERTIES(@BASECURRENCYID) CURRENCYPROPERTIES 

    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;

    begin try
        set @SQL = 'select 
                    CASE WHEN REVENUE.ID is not null then ''http://www.blackbaud.com/REVENUEID?REVENUEID='' + CONVERT(nvarchar(36), EXCEPTION.RECORDID) ELSE NULL END as REVENUEID,
                    CASE WHEN BANKACCOUNTDEPOSITCORRECTION.ID is not null then ''http://www.blackbaud.com/DEPOSITCORRECTIONID?DEPOSITCORRECTIONID='' + CONVERT(nvarchar(36), EXCEPTION.RECORDID) ELSE NULL END as DEPOSITCORRECTIONID,
                    CASE WHEN BANKACCOUNTADJUSTMENT.ID is not null then ''http://www.blackbaud.com/ADJUSTMENTID?ADJUSTMENTID='' + CONVERT(nvarchar(36), EXCEPTION.RECORDID) ELSE NULL END as ADJUSTMENTID,
                    isnull(nullif(ga.ACCOUNTALIAS,''''),EXCEPTION.ACCOUNTSTRING) as ACCOUNTSTRING, 
                    CONVERT(datetime,EXCEPTION.POSTDATE) as POSTDATE, 
                    EXCEPTION.TRANSACTIONTYPE, 
                    EXCEPTION.TRANSACTIONTYPECODE,
                    EXCEPTION.AMOUNT, 
                    EXCEPTION.REFERENCE,
                    EXCEPTION.EXCEPTIONREASON,
                    @ISOCURRENCYCODE as ISOCURRENCYCODE,
                    @CURRENCYSYMBOL as CURRENCYSYMBOL,
                    @DECIMALDIGITS as CURRENCYDECIMALDIGITS,
                    @CURRENCYSYMBOLDISPLAYSETTINGCODE as CURRENCYSYMBOLDISPLAYSETTINGCODE,
                    EXCEPTION.TRANSACTIONAMOUNT, 
                    CURRENCY.ISO4217 as TRANSACTIONISOCURRENCYCODE,
                    CURRENCY.CURRENCYSYMBOL as TRANSACTIONCURRENCYSYMBOL,
                    CURRENCY.DECIMALDIGITS as TRANSACTIONCURRENCYDECIMALDIGITS,
                    CURRENCY.SYMBOLDISPLAYSETTINGCODE as TRANSACTIONCURRENCYSYMBOLDISPLAYSETTINGCODE,
                    EXCEPTION.ORGANIZATIONAMOUNT, 
                    @ORGISOCURRENCYCODE as ORGANIZATIONISOCURRENCYCODE,
                    @ORGCURRENCYSYMBOL as ORGANIZATIONCURRENCYSYMBOL,
                    @ORGDECIMALDIGITS as ORGANIZATIONCURRENCYDECIMALDIGITS,
                    @ORGCURRENCYSYMBOLDISPLAYSETTINGCODE as ORGANIZATIONCURRENCYSYMBOLDISPLAYSETTINGCODE
                    ,case when CREDIT.ID is not null then ''http://www.blackbaud.com/CREDITID?CREDITID='' + CONVERT(nvarchar(36), EXCEPTION.RECORDID) ELSE NULL END as CREDITID
                from dbo.' + @TABLENAME + ' as EXCEPTION 
          inner join dbo.GLACCOUNT ga on ga.ACCOUNTNUMBER = EXCEPTION.ACCOUNTSTRING and ga.PDACCOUNTSYSTEMID =' + CHAR(39) + @PDACCOUNTSYSTEMID + CHAR(39) + ' 
                    left outer join dbo.REVENUE on EXCEPTION.RECORDID = REVENUE.ID
                    left outer join dbo.BANKACCOUNTDEPOSITCORRECTION on EXCEPTION.RECORDID = BANKACCOUNTDEPOSITCORRECTION.ID
                    left outer join dbo.BANKACCOUNTADJUSTMENT on EXCEPTION.RECORDID = BANKACCOUNTADJUSTMENT.ID
                    left join dbo.CURRENCY on CURRENCY.ID = EXCEPTION.TRANSACTIONCURRENCYID
                    left outer join dbo.CREDIT on CREDIT.ID = EXCEPTION.RECORDID
                order by
                    EXCEPTION.POSTDATE,
                    EXCEPTION.REFERENCE,
                    ACCOUNTSTRING,
                    EXCEPTION.AMOUNT,
                    EXCEPTION.TRANSACTIONTYPE,
                    EXCEPTION.EXCEPTIONREASON ';

        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