UFN_REVENUEUPDATEBATCH_GETMATCHINGGIFTS

Returns all matching gifts for a given revenue update batch record.

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@REVENUEID uniqueidentifier IN

Definition

Copy


CREATE function dbo.UFN_REVENUEUPDATEBATCH_GETMATCHINGGIFTS(@REVENUEID uniqueidentifier)
    returns table
    as return
    (
        select
            '00000000-0000-0000-0000-000000000000' as ID, 
            SOURCEREVENUE.CONSTITUENTID as MATCHINGCONSTITUENTID, 
            MGREVENUE.CONSTITUENTID as ORGANIZATIONID, 
            REVENUEMATCHINGGIFT.RELATIONSHIPID,  
            '' as RELATIONSHIPCONTEXTID,
            REVENUEMATCHINGGIFT.MATCHINGGIFTCONDITIONID,
            MGREVENUE.TRANSACTIONAMOUNT as AMOUNT, 
            MGREVENUE.DATE,
            case 
                when (select count(*) from dbo.REVENUESPLIT where REVENUEID = MGREVENUE.ID) <> 1 then null
                else (select DESIGNATIONID from dbo.REVENUESPLIT where REVENUEID = MGREVENUE.ID)
            end as SINGLEDESIGNATIONID,
            (
                select
                    '00000000-0000-0000-0000-000000000000' as ID,
                    DESIGNATIONID,
                    TRANSACTIONAMOUNT as AMOUNT,
                    ROW_NUMBER() OVER(order by dateadded) as SEQUENCE,
                    ID as REVENUESPLITID,
                    TRANSACTIONCURRENCYID
                from dbo.REVENUESPLIT
                where REVENUEID = MGREVENUE.ID
                for xml raw('ITEM'),type,elements,BINARY BASE64
            ) as SPLITS,
            0 as COULDNOTDEFAULTMATCHINGGIFT,
            REVENUEMATCHINGGIFT.ID as REVENUEMATCHINGGIFTID,
            MGREVENUE.BASECURRENCYID,
            MGREVENUE.TRANSACTIONCURRENCYID,
            MGREVENUE.BASEEXCHANGERATEID,
            case
                when MGREVENUE.BASEEXCHANGERATEID is not null
                    then CURRENCYEXCHANGERATE.RATE
                when MGREVENUE.TRANSACTIONCURRENCYID = MGREVENUE.BASECURRENCYID
                    then 1
                else 0
            end EXCHANGERATE,
            SOURCEREVENUE.TRANSACTIONCURRENCYID as ORIGINALGIFTTRANSACTIONCURRENCYID,
            0 as APPLYBYPERCENT,
            case
                when exists
                    (select 1
                        from dbo.INSTALLMENTSPLITPAYMENT 
                        where
                            INSTALLMENTSPLITPAYMENT.PLEDGEID = REVENUEMATCHINGGIFT.ID
                            and INSTALLMENTSPLITPAYMENT.ID is not null
                    )
                    then 1
                else 0
            end as HASPAIDMATCHINGGIFT,
      (
        select top 1
          REVENUEOPPORTUNITY.OPPORTUNITYID
        from
          dbo.REVENUEOPPORTUNITY
          inner join dbo.FINANCIALTRANSACTIONLINEITEM on REVENUEOPPORTUNITY.ID = FINANCIALTRANSACTIONLINEITEM.ID
        where
          FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID = MGREVENUE.ID
      ) as OPPORTUNITYID
        from
            dbo.REVENUEMATCHINGGIFT
            inner join dbo.REVENUE SOURCEREVENUE on SOURCEREVENUE.ID = REVENUEMATCHINGGIFT.MGSOURCEREVENUEID
            inner join dbo.REVENUE MGREVENUE on MGREVENUE.ID = REVENUEMATCHINGGIFT.ID
            left join dbo.CURRENCYEXCHANGERATE on CURRENCYEXCHANGERATE.ID = MGREVENUE.BASEEXCHANGERATEID
        where REVENUEMATCHINGGIFT.MGSOURCEREVENUEID = @REVENUEID
    )