UFN_REVENUEUPDATEBATCH_GETADDITIONALAPPLICATIONS

Additional application stream from

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@REVENUEID uniqueidentifier IN

Definition

Copy


            CREATE function dbo.UFN_REVENUEUPDATEBATCH_GETADDITIONALAPPLICATIONS(@REVENUEID uniqueidentifier)
            returns table
            as
            return
            (
            select
                '00000000-0000-0000-0000-000000000000' as ID, 
                case when REVENUESPLIT.APPLICATIONCODE = 0 and REVENUESPLIT.TYPECODE = 0 then 0 --donation

                    when REVENUESPLIT.APPLICATIONCODE = 4 and REVENUESPLIT.TYPECODE = 4 then 1 --other

                    when REVENUESPLIT.APPLICATIONCODE = 7 and REVENUESPLIT.TYPECODE = 0 then 2 --matching gift claim

                    when REVENUESPLIT.APPLICATIONCODE = 0 and REVENUESPLIT.TYPECODE = 17 then 3 --sponsorship additional gift

                end as TYPECODE,
                REVENUESPLIT.TRANSACTIONAMOUNT as APPLIED,
                DESIGNATIONID, 
                OTHERTYPECODEID,
                coalesce(REVENUESPLITGIFTAID.DECLINESGIFTAID, 0) as DECLINESGIFTAID,
                OPPORTUNITYID,
                case when REVENUESPLIT.APPLICATIONCODE = 0 and REVENUESPLIT.TYPECODE = 17 then 
                    REVENUESPLIT.ID
                   --WI 194341/208872 We are allowing more than one additional sponsorship donation.  I don't think the below will work

                   -- Instead we can track using the revenue split id in revenue update batch.

                    --(case when (select count(*) from dbo.SPONSORSHIP where CONSTITUENTID = REVENUE.CONSTITUENTID and ISMOSTRECENTFORCOMMITMENT = 1) <> 1 then null

                     --else (select ID from dbo.SPONSORSHIP where CONSTITUENTID = REVENUE.CONSTITUENTID and ISMOSTRECENTFORCOMMITMENT = 1) end)

                end SPONSORSHIPID,
                coalesce(REVENUESPLITGIFTAID.ISSPONSORSHIP, 0) as ISGIFTAIDSPONSORSHIP,
                REVENUECATEGORY.GLREVENUECATEGORYMAPPINGID as CATEGORYCODEID,
                cast(1 as bit) as DIDCAMPAIGNSDEFAULT,
                (select
                    '00000000-0000-0000-0000-000000000000' as ID,
                    CAMPAIGNID,
                    CAMPAIGNSUBPRIORITYID,
                    REVENUESPLITCAMPAIGN.ID as REVENUESPLITCAMPAIGNID   
                from dbo.REVENUESPLITCAMPAIGN
                where REVENUESPLITCAMPAIGN.REVENUESPLITID = REVENUESPLIT.ID
                for xml raw('ITEM'),type,elements,BINARY BASE64) as CAMPAIGNS,
                REVENUESPLIT.ID as REVENUESPLITID,
                REVENUESPLIT.TRANSACTIONCURRENCYID,
                case when REVENUESPLITGIFTAID.TAXCLAIMNUMBER <> '' then 1 else 0 end as GIFTAIDCOMMITTED
            from dbo.REVENUESPLIT
                inner join dbo.REVENUE 
                    on REVENUE.ID = REVENUESPLIT.REVENUEID
                left outer join dbo.REVENUECATEGORY
                    on REVENUESPLIT.ID = REVENUECATEGORY.ID
                left outer join dbo.REVENUEOPPORTUNITY 
                    on REVENUESPLIT.ID = REVENUEOPPORTUNITY.ID
                left outer join dbo.REVENUESPLITOTHER 
                    on REVENUESPLITOTHER.ID = REVENUESPLIT.ID
                left outer join dbo.INSTALLMENTSPLITPAYMENT 
                    on INSTALLMENTSPLITPAYMENT.PAYMENTID = REVENUESPLIT.ID
                left outer join dbo.REVENUESPLITGIFTAID
                    on REVENUESPLIT.ID = REVENUESPLITGIFTAID.ID
            where REVENUE.ID = @REVENUEID
                    and APPLICATIONCODE in (0,4,7)
                    and TYPECODE in (0,4,17)
                    and INSTALLMENTSPLITPAYMENT.ID is null                     
        )