USP_REVENUEBATCH_VALIDATIONREPORT_CURRENCYSUMMARY

Provides summary data for the revenue batch validation report, broken down by currency.

Parameters

Parameter Parameter Type Mode Description
@BATCHID uniqueidentifier IN

Definition

Copy


            create procedure dbo.USP_REVENUEBATCH_VALIDATIONREPORT_CURRENCYSUMMARY
            (
                @BATCHID uniqueidentifier
            )
            as
            set nocount on;

            --Get batch revenue records we care about

            declare @BATCHREVENUE table(
                ID uniqueidentifier,
                AMOUNT money,
                TYPECODE int,
                TRANSACTIONCURRENCYID uniqueidentifier
            );
            insert into @BATCHREVENUE
                ID, 
                AMOUNT, 
                TYPECODE,
                TRANSACTIONCURRENCYID
            )
            select
                BATCHREVENUE.ID,
                BATCHREVENUE.AMOUNT,
                BATCHREVENUE.TYPECODE,
                BATCHREVENUE.TRANSACTIONCURRENCYID
            from dbo.BATCHREVENUE
            where BATCHREVENUE.BATCHID = @BATCHID;

            --Get currencies used by batch revenue records we care about.

            declare @CURRENCY table(
                ID uniqueidentifier,
                NAME nvarchar(100),
                ISO4217 nvarchar(3),
                DECIMALDIGITS tinyint,
                CURRENCYSYMBOL nvarchar(5),
                SYMBOLDISPLAYSETTINGCODE tinyint
            );
            insert into @CURRENCY(
                ID,
                NAME,
                ISO4217,
                DECIMALDIGITS,
                CURRENCYSYMBOL,
                SYMBOLDISPLAYSETTINGCODE
            )
            select distinct
                ID,
                NAME,
                ISO4217,
                DECIMALDIGITS,
                CURRENCYSYMBOL,
                SYMBOLDISPLAYSETTINGCODE
            from dbo.CURRENCY
            where ID in(
                select
                    TRANSACTIONCURRENCYID
                from @BATCHREVENUE
            );

            if @@ROWCOUNT > 1
            begin            
                --If there is more than one currency, do the aggregation.

                select
                    CURRENCY.ID CURRENCYID,
                    CURRENCY.NAME CURRENCYNAME,
                    coalesce((select count(BATCHREVENUE.ID) from @BATCHREVENUE BATCHREVENUE where BATCHREVENUE.TRANSACTIONCURRENCYID = CURRENCY.ID and BATCHREVENUE.TYPECODE = 0),0) as [TOTALPAYMENTCOUNT],
                    coalesce((select sum(BATCHREVENUE.AMOUNT) from @BATCHREVENUE BATCHREVENUE where BATCHREVENUE.TRANSACTIONCURRENCYID = CURRENCY.ID and BATCHREVENUE.TYPECODE = 0),0) as [TOTALPAYMENTAMOUNT],
                    coalesce((select count(BATCHREVENUE.ID) from @BATCHREVENUE BATCHREVENUE where BATCHREVENUE.TRANSACTIONCURRENCYID = CURRENCY.ID and BATCHREVENUE.TYPECODE = 1),0) as [TOTALPLEDGECOUNT],
                    coalesce((select sum(BATCHREVENUE.AMOUNT) from @BATCHREVENUE BATCHREVENUE where BATCHREVENUE.TRANSACTIONCURRENCYID = CURRENCY.ID and BATCHREVENUE.TYPECODE = 1),0) as [TOTALPLEDGEAMOUNT],
                    coalesce((select count(BATCHREVENUE.ID) from @BATCHREVENUE BATCHREVENUE where BATCHREVENUE.TRANSACTIONCURRENCYID = CURRENCY.ID and BATCHREVENUE.TYPECODE = 3),0) as [TOTALRECURRINGGIFTCOUNT],
                    coalesce((select sum(BATCHREVENUE.AMOUNT) from @BATCHREVENUE BATCHREVENUE where BATCHREVENUE.TRANSACTIONCURRENCYID = CURRENCY.ID and BATCHREVENUE.TYPECODE = 3),0) as [TOTALRECURRINGGIFTAMOUNT],
                    CURRENCY.ISO4217,
                    CURRENCY.DECIMALDIGITS,
                    CURRENCY.CURRENCYSYMBOL,
                    CURRENCY.SYMBOLDISPLAYSETTINGCODE
                from @CURRENCY CURRENCY;
            end