V_QUERY_REVENUE_GIFTAID_CALCULATED

Fields

Field Field Type Null Description
ID uniqueidentifier
GROSSAMOUNT money yes
CLAIMABLEGIFTAIDAMOUNT money yes
RECEIVEDGIFTAIDAMOUNT money yes
TRANSACTIONGROSSAMOUNT money yes
ORGANIZATIONGROSSAMOUNT money yes
TRANSACTIONCLAIMABLEGIFTAIDAMOUNT money yes
ORGANIZATIONCLAIMABLEGIFTAIDAMOUNT money yes
TRANSACTIONRECEIVEDGIFTAIDAMOUNT money yes
ORGANIZATIONRECEIVEDGIFTAIDAMOUNT money yes
ADDEDBY_USERNAME nvarchar(128) yes
CHANGEDBY_USERNAME nvarchar(128) yes
DATEADDED datetime
DATECHANGED datetime
TSLONG bigint yes
ORGANIZATIONEXCHANGERATEID uniqueidentifier yes
BASEEXCHANGERATEID uniqueidentifier yes
BASECURRENCYID uniqueidentifier yes
TRANSACTIONCURRENCYID uniqueidentifier
POTENTIALGROSSAMOUNT money yes
TRANSACTIONPOTENTIALGROSSAMOUNT money yes
ORGANIZATIONPOTENTIALGROSSAMOUNT money yes

Definition

Copy
/*
Generated by Blackbaud AppFx Platform
Date:  11/11/2014 4:28:57 PM
Assembly Version:  Blackbaud.AppFx.Platform.SqlClr, Version=4.0.2.0, Culture=neutral, PublicKeyToken=null
Copyright Blackbaud
*/
CREATE VIEW dbo.V_QUERY_REVENUE_GIFTAID_CALCULATED AS



                select
                    REVENUE.ID,
                    sum(    
                        case
                            when REVENUESPLITGIFTAID.DECLINESGIFTAID is null or REVENUESPLITGIFTAIDELIGIBILITY.ELIGIBILITY not in (2,3,4) or REVENUESPLITGIFTAID.DECLINESGIFTAID = 1 or RULES_STATUS = 0 or ATTRIBUTES_STATUS = 0 or CONSTITUENT.ISGROUP = 1 or CONSTITUENT.ISORGANIZATION = 1 
                                then REVENUESPLIT.BASEAMOUNT
                            when REVENUE.TYPECODE = 0
                                then REVENUESPLIT.BASEAMOUNT + case 
                                                                    when REVENUESPLITGIFTAID.TRANSITIONALTAXCLAIMAMOUNT = 0 then REVENUESPLITGIFTAID.BASETAXCLAIMAMOUNT
                                                                    when TRANSITIONALRELIEFEXPIRED.ID is not null then BASETAXCLAIMAMOUNT + TRANSITIONALTAXCLAIMAMOUNT
                                                                    else coalesce(REVENUESPLITGIFTAID.BASETAXCLAIMAMOUNT,0)
                                                                end
                            when REVENUE.TYPECODE = 1
                                then REVENUESPLIT.BASEAMOUNT + coalesce(PLEDGETAXCLAIMAMOUNT.TAXCLAIMAMOUNT, 0)
                            when REVENUE.TYPECODE = 2
                                then REVENUESPLIT.BASEAMOUNT + coalesce(RECURRINGGIFTTAXCLAIMAMOUNT.TAXCLAIMAMOUNT, 0)
                            else REVENUESPLIT.BASEAMOUNT
                        end) as [GROSSAMOUNT],
                    sum(    case 
                                when    REVENUE.TYPECODE = 0 and 
                                        CONSTITUENT.ISGROUP = 0 and 
                                        CONSTITUENT.ISORGANIZATION = 0 and 
                                        -- Ensure the split hasn't already been received

                                        TAXCLAIMNUMBER = '' and 
                                        -- Make sure the constituent is eligible

                                        REVENUESPLITGIFTAIDELIGIBILITY.ELIGIBILITY in (2,3,4) and
                                        REVENUESPLITGIFTAID.DECLINESGIFTAID = 0 and
                                        RULES_STATUS = 1 and
                                        ATTRIBUTES_STATUS = 1
                                    then case 
                                            when REVENUESPLITGIFTAID.TRANSITIONALTAXCLAIMAMOUNT = 0 then REVENUESPLITGIFTAID.BASETAXCLAIMAMOUNT
                                            when TRANSITIONALRELIEFEXPIRED.ID is not null then BASETAXCLAIMAMOUNT + TRANSITIONALTAXCLAIMAMOUNT
                                            else REVENUESPLITGIFTAID.BASETAXCLAIMAMOUNT
                                        end
                                else 0
                            end) as CLAIMABLEGIFTAIDAMOUNT,
                    sum(    case 
                                when TAXCLAIMNUMBER <> '' then case 
                                                                    when REVENUESPLITGIFTAID.TRANSITIONALTAXCLAIMAMOUNT = 0 then REVENUESPLITGIFTAID.BASETAXCLAIMAMOUNT
                                                                    when TRANSITIONALRELIEFEXPIRED.ID is not null then BASETAXCLAIMAMOUNT + TRANSITIONALTAXCLAIMAMOUNT
                                                                    else REVENUESPLITGIFTAID.BASETAXCLAIMAMOUNT
                                                                end
                                else 0
                            end) as RECEIVEDGIFTAIDAMOUNT,
                    sum(
                        case
                            when REVENUESPLITGIFTAID.DECLINESGIFTAID is null or REVENUESPLITGIFTAIDELIGIBILITY.ELIGIBILITY not in (2,3,4) or REVENUESPLITGIFTAID.DECLINESGIFTAID = 1 or RULES_STATUS = 0 or ATTRIBUTES_STATUS = 0 or CONSTITUENT.ISGROUP = 1 or CONSTITUENT.ISORGANIZATION = 1 
                                then REVENUESPLIT.TRANSACTIONAMOUNT
                            when REVENUE.TYPECODE = 0
                                then REVENUESPLIT.TRANSACTIONAMOUNT + case 
                                                                            when REVENUESPLITGIFTAID.TRANSACTIONTRANSITIONALTAXCLAIMAMOUNT = 0 then REVENUESPLITGIFTAID.TRANSACTIONBASETAXCLAIMAMOUNT
                                                                            when TRANSITIONALRELIEFEXPIRED.ID is not null then TRANSACTIONBASETAXCLAIMAMOUNT + TRANSACTIONTRANSITIONALTAXCLAIMAMOUNT
                                                                            else REVENUESPLITGIFTAID.TRANSACTIONBASETAXCLAIMAMOUNT
                                                                        end
                            when REVENUE.TYPECODE = 1
                                then REVENUESPLIT.TRANSACTIONAMOUNT + coalesce(PLEDGETAXCLAIMAMOUNT.TRANSACTIONTAXCLAIMAMOUNT, 0)
                            when REVENUE.TYPECODE = 2
                                then REVENUESPLIT.TRANSACTIONAMOUNT + coalesce(RECURRINGGIFTTAXCLAIMAMOUNT.TRANSACTIONTAXCLAIMAMOUNT, 0)
                            else REVENUESPLIT.TRANSACTIONAMOUNT
                        end) as [TRANSACTIONGROSSAMOUNT],
                    sum(
                        case
                            when REVENUESPLITGIFTAID.DECLINESGIFTAID is null or REVENUESPLITGIFTAIDELIGIBILITY.ELIGIBILITY not in (2,3,4) or REVENUESPLITGIFTAID.DECLINESGIFTAID = 1 or RULES_STATUS = 0 or ATTRIBUTES_STATUS = 0 or CONSTITUENT.ISGROUP = 1 or CONSTITUENT.ISORGANIZATION = 1 
                                then REVENUESPLIT.ORGAMOUNT
                            when REVENUE.TYPECODE = 0 and CONSTITUENT.ISGROUP = 0 and CONSTITUENT.ISORGANIZATION = 0
                                then REVENUESPLIT.ORGAMOUNT + case 
                                                                    when REVENUESPLITGIFTAID.ORGANIZATIONTRANSITIONALTAXCLAIMAMOUNT = 0 then REVENUESPLITGIFTAID.ORGANIZATIONBASETAXCLAIMAMOUNT
                                                                    when TRANSITIONALRELIEFEXPIRED.ID is not null then ORGANIZATIONBASETAXCLAIMAMOUNT + ORGANIZATIONTRANSITIONALTAXCLAIMAMOUNT
                                                                    else REVENUESPLITGIFTAID.ORGANIZATIONBASETAXCLAIMAMOUNT
                                                                end
                            when REVENUE.TYPECODE = 1 and CONSTITUENT.ISGROUP = 0 and CONSTITUENT.ISORGANIZATION = 0
                                then REVENUESPLIT.ORGAMOUNT + coalesce(PLEDGETAXCLAIMAMOUNT.ORGANIZATIONTAXCLAIMAMOUNT, 0)
                            when REVENUE.TYPECODE = 2 and CONSTITUENT.ISGROUP = 0 and CONSTITUENT.ISORGANIZATION = 0
                                    and ((RULES_STATUS & ATTRIBUTES_STATUS = 1) and DECLINESGIFTAID = 0) --Qualified for Gift Aid

                                then REVENUESPLIT.ORGAMOUNT + coalesce(RECURRINGGIFTTAXCLAIMAMOUNT.ORGANIZATIONTAXCLAIMAMOUNT, 0)
                            else REVENUESPLIT.ORGAMOUNT
                        end) as [ORGANIZATIONGROSSAMOUNT],                            
                    sum(    case 
                                when    REVENUE.TYPECODE = 0 and 
                                        CONSTITUENT.ISGROUP = 0 and 
                                        CONSTITUENT.ISORGANIZATION = 0 and 
                                        -- Ensure the split hasn't already been received

                                        TAXCLAIMNUMBER = '' and 
                                        -- Make sure the constituent is eligible

                                        REVENUESPLITGIFTAIDELIGIBILITY.ELIGIBILITY in (2,3,4) and
                                        REVENUESPLITGIFTAID.DECLINESGIFTAID = 0 and
                                        RULES_STATUS = 1 and
                                        ATTRIBUTES_STATUS = 1
                                    then case 
                                            when REVENUESPLITGIFTAID.TRANSACTIONTRANSITIONALTAXCLAIMAMOUNT = 0 then REVENUESPLITGIFTAID.TRANSACTIONBASETAXCLAIMAMOUNT
                                            when TRANSITIONALRELIEFEXPIRED.ID is not null then TRANSACTIONBASETAXCLAIMAMOUNT + TRANSACTIONTRANSITIONALTAXCLAIMAMOUNT
                                            else REVENUESPLITGIFTAID.TRANSACTIONBASETAXCLAIMAMOUNT
                                        end
                                else 0
                            end) as TRANSACTIONCLAIMABLEGIFTAIDAMOUNT,
                    sum(    case 
                                when    REVENUE.TYPECODE = 0 and 
                                        CONSTITUENT.ISGROUP = 0 and 
                                        CONSTITUENT.ISORGANIZATION = 0 and 
                                        -- Ensure the split hasn't already been received

                                        TAXCLAIMNUMBER = '' and 
                                        -- Make sure the constituent is eligible

                                        REVENUESPLITGIFTAIDELIGIBILITY.ELIGIBILITY in (2,3,4) and
                                        REVENUESPLITGIFTAID.DECLINESGIFTAID = 0 and
                                        RULES_STATUS = 1 and
                                        ATTRIBUTES_STATUS = 1
                                    then case 
                                            when REVENUESPLITGIFTAID.ORGANIZATIONTRANSITIONALTAXCLAIMAMOUNT = 0 then REVENUESPLITGIFTAID.ORGANIZATIONBASETAXCLAIMAMOUNT
                                            when TRANSITIONALRELIEFEXPIRED.ID is not null then ORGANIZATIONBASETAXCLAIMAMOUNT + ORGANIZATIONTRANSITIONALTAXCLAIMAMOUNT
                                            else REVENUESPLITGIFTAID.ORGANIZATIONBASETAXCLAIMAMOUNT
                                        end
                                else 0
                            end) as ORGANIZATIONCLAIMABLEGIFTAIDAMOUNT,                            
                    sum(    case 
                                when TAXCLAIMNUMBER <> '' then case 
                                                                    when REVENUESPLITGIFTAID.TRANSACTIONTRANSITIONALTAXCLAIMAMOUNT = 0 then REVENUESPLITGIFTAID.TRANSACTIONBASETAXCLAIMAMOUNT
                                                                    when TRANSITIONALRELIEFEXPIRED.ID is not null then TRANSACTIONBASETAXCLAIMAMOUNT + TRANSACTIONTRANSITIONALTAXCLAIMAMOUNT
                                                                    else REVENUESPLITGIFTAID.TRANSACTIONBASETAXCLAIMAMOUNT
                                                                end
                                else 0
                            end) as TRANSACTIONRECEIVEDGIFTAIDAMOUNT,
                    sum(    case 
                                when TAXCLAIMNUMBER <> '' then case 
                                                                    when REVENUESPLITGIFTAID.ORGANIZATIONTRANSITIONALTAXCLAIMAMOUNT = 0 then REVENUESPLITGIFTAID.ORGANIZATIONBASETAXCLAIMAMOUNT
                                                                    when TRANSITIONALRELIEFEXPIRED.ID is not null then ORGANIZATIONBASETAXCLAIMAMOUNT + ORGANIZATIONTRANSITIONALTAXCLAIMAMOUNT
                                                                    else REVENUESPLITGIFTAID.ORGANIZATIONBASETAXCLAIMAMOUNT
                                                                end
                                else 0
                            end) as ORGANIZATIONRECEIVEDGIFTAIDAMOUNT,
                    [ADDEDBY].USERNAME as [ADDEDBY_USERNAME],
                    [CHANGEDBY].USERNAME as [CHANGEDBY_USERNAME],
                    REVENUE.DATEADDED,
                    REVENUE.DATECHANGED,
                    REVENUE.TSLONG,
                    REVENUE.ORGEXCHANGERATEID as ORGANIZATIONEXCHANGERATEID,
                    REVENUE.BASEEXCHANGERATEID,
                    isnull(REVENUE_EXT.NONPOSTABLEBASECURRENCYID, V.BASECURRENCYID) as BASECURRENCYID,
                    REVENUE.TRANSACTIONCURRENCYID,
                    sum(    case 
                                when REVENUESPLITGIFTAID.DECLINESGIFTAID is null or REVENUESPLITGIFTAID.DECLINESGIFTAID = 1 or RULES_STATUS = 0 or ATTRIBUTES_STATUS = 0 or CONSTITUENT.ISGROUP = 1 or CONSTITUENT.ISORGANIZATION = 1 
                                    then REVENUESPLIT.BASEAMOUNT
                                when REVENUE.TYPECODE = 0 and CONSTITUENT.ISGROUP = 0 and CONSTITUENT.ISORGANIZATION = 0
                                    then REVENUESPLIT.BASEAMOUNT + case 
                                                                        when REVENUESPLITGIFTAID.TRANSITIONALTAXCLAIMAMOUNT = 0 then REVENUESPLITGIFTAID.BASETAXCLAIMAMOUNT
                                                                        when TRANSITIONALRELIEFEXPIRED.ID is not null then BASETAXCLAIMAMOUNT + TRANSITIONALTAXCLAIMAMOUNT
                                                                        else REVENUESPLITGIFTAID.BASETAXCLAIMAMOUNT
                                                                    end
                                when REVENUE.TYPECODE = 1 and CONSTITUENT.ISGROUP = 0 and CONSTITUENT.ISORGANIZATION = 0
                                    then REVENUESPLIT.BASEAMOUNT + coalesce(PLEDGETAXCLAIMAMOUNT.TAXCLAIMAMOUNT, 0)
                                when REVENUE.TYPECODE = 2 and CONSTITUENT.ISGROUP = 0 and CONSTITUENT.ISORGANIZATION = 0 
                                    then REVENUESPLIT.BASEAMOUNT + coalesce(RECURRINGGIFTTAXCLAIMAMOUNT.TAXCLAIMAMOUNT, 0)
                                else REVENUESPLIT.BASEAMOUNT
                            end) as [POTENTIALGROSSAMOUNT],
                    sum(    case 
                                when REVENUESPLITGIFTAID.DECLINESGIFTAID is null or REVENUESPLITGIFTAID.DECLINESGIFTAID = 1 or RULES_STATUS = 0 or ATTRIBUTES_STATUS = 0 or CONSTITUENT.ISGROUP = 1 or CONSTITUENT.ISORGANIZATION = 1 
                                    then REVENUESPLIT.TRANSACTIONAMOUNT
                                when REVENUE.TYPECODE = 0 and CONSTITUENT.ISGROUP = 0 and CONSTITUENT.ISORGANIZATION = 0
                                    then REVENUESPLIT.TRANSACTIONAMOUNT + case 
                                                                                when REVENUESPLITGIFTAID.TRANSACTIONTRANSITIONALTAXCLAIMAMOUNT = 0 then REVENUESPLITGIFTAID.TRANSACTIONBASETAXCLAIMAMOUNT
                                                                                when TRANSITIONALRELIEFEXPIRED.ID is not null then TRANSACTIONBASETAXCLAIMAMOUNT + TRANSACTIONTRANSITIONALTAXCLAIMAMOUNT
                                                                                else REVENUESPLITGIFTAID.TRANSACTIONBASETAXCLAIMAMOUNT
                                                                            end
                                when REVENUE.TYPECODE = 1 and CONSTITUENT.ISGROUP = 0 and CONSTITUENT.ISORGANIZATION = 0
                                    then REVENUESPLIT.TRANSACTIONAMOUNT + coalesce(PLEDGETAXCLAIMAMOUNT.TRANSACTIONTAXCLAIMAMOUNT, 0)
                                when REVENUE.TYPECODE = 2 and CONSTITUENT.ISGROUP = 0 and CONSTITUENT.ISORGANIZATION = 0
                                    then REVENUESPLIT.TRANSACTIONAMOUNT + coalesce(RECURRINGGIFTTAXCLAIMAMOUNT.TRANSACTIONTAXCLAIMAMOUNT, 0)
                                else REVENUESPLIT.TRANSACTIONAMOUNT
                            end) as [TRANSACTIONPOTENTIALGROSSAMOUNT],
                    sum(    case 
                                when REVENUESPLITGIFTAID.DECLINESGIFTAID is null or REVENUESPLITGIFTAID.DECLINESGIFTAID = 1 or RULES_STATUS = 0 or ATTRIBUTES_STATUS = 0 or CONSTITUENT.ISGROUP = 1 or CONSTITUENT.ISORGANIZATION = 1 
                                    then REVENUESPLIT.ORGAMOUNT
                                when REVENUE.TYPECODE = 0 and CONSTITUENT.ISGROUP = 0 and CONSTITUENT.ISORGANIZATION = 0
                                    then REVENUESPLIT.ORGAMOUNT + case 
                                                                        when REVENUESPLITGIFTAID.ORGANIZATIONTRANSITIONALTAXCLAIMAMOUNT = 0 then REVENUESPLITGIFTAID.ORGANIZATIONBASETAXCLAIMAMOUNT
                                                                        when TRANSITIONALRELIEFEXPIRED.ID is not null then ORGANIZATIONBASETAXCLAIMAMOUNT + ORGANIZATIONTRANSITIONALTAXCLAIMAMOUNT
                                                                        else REVENUESPLITGIFTAID.ORGANIZATIONBASETAXCLAIMAMOUNT
                                                                    end
                                when REVENUE.TYPECODE = 1 and CONSTITUENT.ISGROUP = 0 and CONSTITUENT.ISORGANIZATION = 0
                                    then REVENUESPLIT.ORGAMOUNT + coalesce(PLEDGETAXCLAIMAMOUNT.ORGANIZATIONTAXCLAIMAMOUNT, 0)
                                when REVENUE.TYPECODE = 2 and CONSTITUENT.ISGROUP = 0 and CONSTITUENT.ISORGANIZATION = 0
                                    then REVENUESPLIT.ORGAMOUNT + coalesce(RECURRINGGIFTTAXCLAIMAMOUNT.ORGANIZATIONTAXCLAIMAMOUNT, 0)
                                else REVENUESPLIT.ORGAMOUNT
                            end) as [ORGANIZATIONPOTENTIALGROSSAMOUNT]
                    /*#EXTENSION*/
                from dbo.FINANCIALTRANSACTIONLINEITEM as REVENUESPLIT
                    left join dbo.REVENUESPLITGIFTAID  on REVENUESPLITGIFTAID.ID = REVENUESPLIT.ID
                    inner join dbo.REVENUESPLIT_EXT on REVENUESPLIT.ID = REVENUESPLIT_EXT.ID
                    inner join dbo.FINANCIALTRANSACTION REVENUE on REVENUESPLIT.FINANCIALTRANSACTIONID = REVENUE.ID
                    inner join dbo.REVENUE_EXT on REVENUE_EXT.ID = REVENUE.ID
                    inner join dbo.CONSTITUENT on REVENUE.CONSTITUENTID = CONSTITUENT.ID
                    outer apply dbo.UFN_GIFTAIDREVENUESPLIT_GETTAXCLAIMELIGIBILITYSTATUS_INLINE_2(REVENUESPLIT.ID) as REVENUESPLITGIFTAIDELIGIBILITY
                    left join dbo.UFN_GIFTAIDREVENUESPLIT_CALCULATEPLEDGETAXCLAIMAMOUNT_ALLCURRENCYTYPES() as PLEDGETAXCLAIMAMOUNT on REVENUESPLIT.ID = PLEDGETAXCLAIMAMOUNT.REVENUESPLITID
                    left join dbo.UFN_GIFTAIDREVENUESPLIT_CALCULATERECURRINGGIFTTAXCLAIMAMOUNT_INLINE() as RECURRINGGIFTTAXCLAIMAMOUNT on REVENUESPLIT.ID = RECURRINGGIFTTAXCLAIMAMOUNT.REVENUESPLITID
                    left join dbo.UFN_REVENUESPLITGIFTAID_GETTRANSITIONALRELIEFNOTEXPIRED() as TRANSITIONALRELIEFEXPIRED on TRANSITIONALRELIEFEXPIRED.ID = REVENUESPLITGIFTAID.ID
                    left outer join  dbo.V_BASECURRENCYFORFINANCIALTRANSACTION_I V with (noexpand) on REVENUE.ID = V.FINANCIALTRANSACTIONID
                    left join dbo.CHANGEAGENT as [ADDEDBY] on ADDEDBY.ID = REVENUE.ADDEDBYID
                    left join dbo.CHANGEAGENT as [CHANGEDBY] on CHANGEDBY.ID = REVENUE.CHANGEDBYID
                    left join dbo.MEMBERSHIPTRANSACTION on REVENUESPLIT.ID = MEMBERSHIPTRANSACTION.REVENUESPLITID
                    left join dbo.MEMBERSHIPLEVEL on MEMBERSHIPTRANSACTION.MEMBERSHIPLEVELID = MEMBERSHIPLEVEL.ID
                    left join dbo.EVENTREGISTRANTPAYMENT on REVENUESPLIT.ID = EVENTREGISTRANTPAYMENT.PAYMENTID
                where 
                    REVENUE.DELETEDON is null
                    and REVENUESPLIT.DELETEDON is null
                    and REVENUESPLIT.TYPECODE <> 1
                group by REVENUE.ID,
                    [ADDEDBY].USERNAME,
                    [CHANGEDBY].USERNAME,
                    REVENUE.DATECHANGED,
                    REVENUE.DATEADDED,
                    REVENUE.DATECHANGED,
                    REVENUE.TSLONG,
                    REVENUE.ORGEXCHANGERATEID,
                    REVENUE.BASEEXCHANGERATEID,
                    isnull(REVENUE_EXT.NONPOSTABLEBASECURRENCYID, V.BASECURRENCYID),
                    REVENUE.TRANSACTIONCURRENCYID