UFN_SELECTION_CONSTITUENT_MAJORDONORS
Returns all Constituents that satisfy Major donor constituency criteria.
Return
Return Type |
---|
table |
Definition
Copy
CREATE function dbo.UFN_SELECTION_CONSTITUENT_MAJORDONORS()
returns table
as return
(
with CONSTITUENCYCRITERIASPOUSE_CTE as
(
select top 1
MAJORDONORCONSTITUENCYDEFLIFETIMEAMOUNT,
MAJORDONORCONSTITUENCYDEFLARGESTGIFTAMOUNT,
MAJORDONORCONSTITUENCYDEFCONSIDERRECOGNITION
from dbo.CONSTITUENCYCRITERIASPOUSE
)
select distinct REVENUEANDRECOGNITION.CONSTITUENTID as ID
from
(
select
REVENUE.CONSTITUENTID,
REVENUE.ORGAMOUNT as AMOUNT
from dbo.FINANCIALTRANSACTION as REVENUE with (nolock)
inner join dbo.REVENUE_EXT with (nolock) on REVENUE.ID = REVENUE_EXT.ID
inner join dbo.FINANCIALTRANSACTIONLINEITEM as FTLI with (nolock) on FTLI.FINANCIALTRANSACTIONID = REVENUE.ID
where
REVENUE.CONSTITUENTID is not null and -- Altru allows revenue without donors
REVENUE.DELETEDON is null and FTLI.DELETEDON is null and
FTLI.ID in (select ID from dbo.UFN_REVENUEFILTER_DEFAULT())
union all
select
REVENUERECOGNITION.CONSTITUENTID,
REVENUERECOGNITION.ORGANIZATIONAMOUNT as AMOUNT
from dbo.FINANCIALTRANSACTION as REVENUE with (nolock)
inner join dbo.REVENUE_EXT with (nolock) on REVENUE.ID = REVENUE_EXT.ID
inner join dbo.FINANCIALTRANSACTIONLINEITEM as REVENUESPLIT with (nolock) on REVENUE.ID = REVENUESPLIT.FINANCIALTRANSACTIONID
inner join dbo.REVENUESPLIT_EXT with (nolock) on REVENUESPLIT.ID = REVENUESPLIT_EXT.ID
inner join dbo.REVENUERECOGNITION with (nolock) on REVENUESPLIT.ID = REVENUERECOGNITION.REVENUESPLITID
where
REVENUERECOGNITION.CONSTITUENTID is not null and -- Altru allows revenue without donors
REVENUE.CONSTITUENTID <> REVENUERECOGNITION.CONSTITUENTID and
REVENUE.DELETEDON is null and
REVENUESPLIT.DELETEDON is null and
REVENUESPLIT.ID in (select ID from dbo.UFN_REVENUEFILTER_DEFAULT())
union all
select
RECOGNITIONCREDIT.CONSTITUENTID,
RECOGNITIONCREDIT.ORGANIZATIONAMOUNT as AMOUNT
from dbo.RECOGNITIONCREDIT with (nolock)
inner join dbo.DONORCHALLENGEENCUMBERED with (nolock) on RECOGNITIONCREDIT.DONORCHALLENGEENCUMBEREDID = DONORCHALLENGEENCUMBERED.ID
inner join dbo.FINANCIALTRANSACTIONLINEITEM as FTLI with (nolock) on FTLI.ID = DONORCHALLENGEENCUMBERED.REVENUESPLITID
where
RECOGNITIONCREDIT.RECOGNITIONCREDITTYPECODE = 1 and
FTLI.ID in (select ID from dbo.UFN_REVENUEFILTER_DEFAULT())
) as REVENUEANDRECOGNITION
cross join CONSTITUENCYCRITERIASPOUSE_CTE
where
MAJORDONORCONSTITUENCYDEFCONSIDERRECOGNITION = 1
group by
REVENUEANDRECOGNITION.CONSTITUENTID,
CONSTITUENCYCRITERIASPOUSE_CTE.MAJORDONORCONSTITUENCYDEFLARGESTGIFTAMOUNT,
CONSTITUENCYCRITERIASPOUSE_CTE.MAJORDONORCONSTITUENCYDEFLIFETIMEAMOUNT
having
(
CONSTITUENCYCRITERIASPOUSE_CTE.MAJORDONORCONSTITUENCYDEFLARGESTGIFTAMOUNT <> 0 and
max(REVENUEANDRECOGNITION.AMOUNT) >= CONSTITUENCYCRITERIASPOUSE_CTE.MAJORDONORCONSTITUENCYDEFLARGESTGIFTAMOUNT
) or
(
CONSTITUENCYCRITERIASPOUSE_CTE.MAJORDONORCONSTITUENCYDEFLIFETIMEAMOUNT <> 0 and
sum(REVENUEANDRECOGNITION.AMOUNT) >= CONSTITUENCYCRITERIASPOUSE_CTE.MAJORDONORCONSTITUENCYDEFLIFETIMEAMOUNT
)
union all
select distinct CONSTITUENTID as ID
from dbo.FINANCIALTRANSACTION as REVENUE with (nolock)
inner join dbo.REVENUE_EXT with (nolock) on REVENUE.ID = REVENUE_EXT.ID
inner join dbo.FINANCIALTRANSACTIONLINEITEM as FTLI with (nolock) on FTLI.FINANCIALTRANSACTIONID = REVENUE.ID
cross join CONSTITUENCYCRITERIASPOUSE_CTE
where
REVENUE.CONSTITUENTID is not null and -- Altru allows revenue without donors
MAJORDONORCONSTITUENCYDEFCONSIDERRECOGNITION = 0 and
REVENUE.DELETEDON is null and
FTLI.DELETEDON is null and
FTLI.ID in (select ID from dbo.UFN_REVENUEFILTER_DEFAULT())
group by
CONSTITUENTID,
CONSTITUENCYCRITERIASPOUSE_CTE.MAJORDONORCONSTITUENCYDEFLARGESTGIFTAMOUNT,
CONSTITUENCYCRITERIASPOUSE_CTE.MAJORDONORCONSTITUENCYDEFLIFETIMEAMOUNT
having
(
CONSTITUENCYCRITERIASPOUSE_CTE.MAJORDONORCONSTITUENCYDEFLARGESTGIFTAMOUNT <> 0 and
max(FTLI.ORGAMOUNT) >= CONSTITUENCYCRITERIASPOUSE_CTE.MAJORDONORCONSTITUENCYDEFLARGESTGIFTAMOUNT
) or
(
CONSTITUENCYCRITERIASPOUSE_CTE.MAJORDONORCONSTITUENCYDEFLIFETIMEAMOUNT <> 0 and
sum(FTLI.ORGAMOUNT) >= CONSTITUENCYCRITERIASPOUSE_CTE.MAJORDONORCONSTITUENCYDEFLIFETIMEAMOUNT
)
)