USP_DATALIST_RECONCILE_MATCHINGGIFTS

This datalist displays saved unapplied matching gift splits.

Parameters

Parameter Parameter Type Mode Description
@NUMBERTOSHOWCODE smallint IN Show
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.

Definition

Copy


                CREATE procedure dbo.USP_DATALIST_RECONCILE_MATCHINGGIFTS
                (
                    @NUMBERTOSHOWCODE smallint = 0,
                    @CURRENTAPPUSERID uniqueidentifier = null
                )
                as
                set nocount on;

                declare @CURRENTDATE datetime;
                set @CURRENTDATE = getdate();

                declare @STARTDATE datetime;
                if @NUMBERTOSHOWCODE = 1 --Last 30 Days

                    set @STARTDATE = dbo.UFN_DATE_GETEARLIESTTIME(dateadd(day,-29,@CURRENTDATE));
                else if @NUMBERTOSHOWCODE = 2 --Last 60 Days

                    set @STARTDATE = dbo.UFN_DATE_GETEARLIESTTIME(dateadd(day,-59,@CURRENTDATE));
                else if @NUMBERTOSHOWCODE = 3 --Last 90 Days

                    set @STARTDATE = dbo.UFN_DATE_GETEARLIESTTIME(dateadd(day,-89,@CURRENTDATE));
                else if @NUMBERTOSHOWCODE = 4 --Last Year

                    set @STARTDATE = dbo.UFN_DATE_GETEARLIESTTIME(dateadd(day,1,dateadd(year,-1,@CURRENTDATE)))

                declare @ISADMIN bit = 0;

                if @CURRENTAPPUSERID is not null
                  select @ISADMIN = dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID);

                if @ISADMIN = 0
                  select 
                    REVENUESPLIT.ID AS ID,
                    CONSTITUENT.ID AS CONSTITUENTID,
                    CONSTITUENT.NAME AS CONSTITUENTNAME,
                    REVENUESPLIT.TRANSACTIONAMOUNT as AMOUNT,
                    CONVERT(Date, REVENUE.DATE) as DATE,
                    CASE     
                    WHEN (dl5.NAME is not null) THEN isnull(dl1.NAME, '<Unspecified>') + ' \ ' + isnull(dl2.NAME, '<Unspecified>') + ' \ ' + isnull(dl3.NAME, '<Unspecified>') + ' \ ' + isnull(dl4.NAME, '<Unspecified>') + ' \ ' + dl5.NAME
                    WHEN (dl4.NAME is not null) THEN isnull(dl1.NAME, '<Unspecified>') + ' \ ' + isnull(dl2.NAME, '<Unspecified>') + ' \ ' + isnull(dl3.NAME, '<Unspecified>') + ' \ ' + dl4.NAME
                    WHEN (dl3.NAME is not null) THEN isnull(dl1.NAME, '<Unspecified>') + ' \ ' + isnull(dl2.NAME, '<Unspecified>') + ' \ ' + dl3.NAME
                    WHEN (dl2.NAME is not null) THEN isnull(dl1.NAME, '<Unspecified>') + ' \ ' + dl2.NAME
                    ELSE dl1.NAME
                    END  as DESIGNATIONNAME,
                    REVENUE.ID as REVENUEID,
                    REVENUE.TRANSACTIONCURRENCYID
                    from dbo.FINANCIALTRANSACTION as REVENUE
                    inner join dbo.FINANCIALTRANSACTIONLINEITEM as REVENUESPLIT on REVENUESPLIT.FINANCIALTRANSACTIONID = REVENUE.ID
                    inner join dbo.REVENUESPLIT_EXT on REVENUESPLIT.ID = REVENUESPLIT_EXT.ID
                    inner join dbo.CONSTITUENT on REVENUE.CONSTITUENTID = CONSTITUENT.ID
                    inner join dbo.DESIGNATION on REVENUESPLIT_EXT.DESIGNATIONID = DESIGNATION.ID
                    inner join dbo.DESIGNATIONLEVEL dl1 on DESIGNATION.DESIGNATIONLEVEL1ID = dl1.id
                    left join dbo.DESIGNATIONLEVEL dl2 on DESIGNATION.DESIGNATIONLEVEL2ID = dl2.id
                    left join dbo.DESIGNATIONLEVEL dl3 on DESIGNATION.DESIGNATIONLEVEL3ID = dl3.id
                    left join dbo.DESIGNATIONLEVEL dl4 on DESIGNATION.DESIGNATIONLEVEL4ID = dl4.id
                    left join dbo.DESIGNATIONLEVEL dl5 on DESIGNATION.DESIGNATIONLEVEL5ID = dl5.id
                    where REVENUE.DELETEDON is null and REVENUESPLIT.DELETEDON is null and
                    REVENUE.TYPECODE = 0
                    and REVENUESPLIT_EXT.APPLICATIONCODE = 7 --MGCLAIM 

                    and (@NUMBERTOSHOWCODE = 0 or (REVENUE.DATE >= @STARTDATE))
                    -- Verify the payment isn't fully applied

                    and (select coalesce(sum(case when APPLICATIONEXCHANGERATEID is null then AMOUNT else dbo.UFN_CURRENCY_CONVERTINVERSE(AMOUNT,APPLICATIONEXCHANGERATEID) end), 0) from dbo.INSTALLMENTSPLITPAYMENT where PAYMENTID = REVENUESPLIT.ID) < REVENUESPLIT.TRANSACTIONAMOUNT 
                    and dbo.UFN_DESIGNATION_USERHASSITEACCESS(DESIGNATION.ID,@CURRENTAPPUSERID) = 1 -- Check site security

                else
                  select 
                    REVENUESPLIT.ID AS ID,
                    CONSTITUENT.ID AS CONSTITUENTID,
                    CONSTITUENT.NAME AS CONSTITUENTNAME,
                    REVENUESPLIT.TRANSACTIONAMOUNT as AMOUNT,
                    CONVERT(Date, REVENUE.DATE) as DATE,
                    CASE     
                    WHEN (dl5.NAME is not null) THEN isnull(dl1.NAME, '<Unspecified>') + ' \ ' + isnull(dl2.NAME, '<Unspecified>') + ' \ ' + isnull(dl3.NAME, '<Unspecified>') + ' \ ' + isnull(dl4.NAME, '<Unspecified>') + ' \ ' + dl5.NAME
                    WHEN (dl4.NAME is not null) THEN isnull(dl1.NAME, '<Unspecified>') + ' \ ' + isnull(dl2.NAME, '<Unspecified>') + ' \ ' + isnull(dl3.NAME, '<Unspecified>') + ' \ ' + dl4.NAME
                    WHEN (dl3.NAME is not null) THEN isnull(dl1.NAME, '<Unspecified>') + ' \ ' + isnull(dl2.NAME, '<Unspecified>') + ' \ ' + dl3.NAME
                    WHEN (dl2.NAME is not null) THEN isnull(dl1.NAME, '<Unspecified>') + ' \ ' + dl2.NAME
                    ELSE dl1.NAME
                    END  as DESIGNATIONNAME,
                    REVENUE.ID as REVENUEID,
                    REVENUE.TRANSACTIONCURRENCYID
                    from dbo.FINANCIALTRANSACTION as REVENUE
                    inner join dbo.FINANCIALTRANSACTIONLINEITEM as REVENUESPLIT on REVENUESPLIT.FINANCIALTRANSACTIONID = REVENUE.ID
                    inner join dbo.REVENUESPLIT_EXT on REVENUESPLIT.ID = REVENUESPLIT_EXT.ID
                    inner join dbo.CONSTITUENT on REVENUE.CONSTITUENTID = CONSTITUENT.ID
                    inner join dbo.DESIGNATION on REVENUESPLIT_EXT.DESIGNATIONID = DESIGNATION.ID
                    inner join dbo.DESIGNATIONLEVEL dl1 on DESIGNATION.DESIGNATIONLEVEL1ID = dl1.id
                    left join dbo.DESIGNATIONLEVEL dl2 on DESIGNATION.DESIGNATIONLEVEL2ID = dl2.id
                    left join dbo.DESIGNATIONLEVEL dl3 on DESIGNATION.DESIGNATIONLEVEL3ID = dl3.id
                    left join dbo.DESIGNATIONLEVEL dl4 on DESIGNATION.DESIGNATIONLEVEL4ID = dl4.id
                    left join dbo.DESIGNATIONLEVEL dl5 on DESIGNATION.DESIGNATIONLEVEL5ID = dl5.id
                    where REVENUE.DELETEDON is null and REVENUESPLIT.DELETEDON is null and
                    REVENUE.TYPECODE = 0
                    and REVENUESPLIT_EXT.APPLICATIONCODE = 7 --MGCLAIM 

                    and (@NUMBERTOSHOWCODE = 0 or (REVENUE.DATE >= @STARTDATE))
                    -- Verify the payment isn't fully applied

                    and (select coalesce(sum(case when APPLICATIONEXCHANGERATEID is null then AMOUNT else dbo.UFN_CURRENCY_CONVERTINVERSE(AMOUNT,APPLICATIONEXCHANGERATEID) end), 0) from dbo.INSTALLMENTSPLITPAYMENT where PAYMENTID = REVENUESPLIT.ID) < REVENUESPLIT.TRANSACTIONAMOUNT