UFN_CONSTITUENTUNREALIZEDREVENUE_BYACCOUNTSYSTEM
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CONSTITUENTID | uniqueidentifier | IN | |
@PDACCOUNTSYSTEMID | uniqueidentifier | IN | |
@LOADALL | bit | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN | |
@SECURITYFEATUREID | uniqueidentifier | IN | |
@SECURITYFEATURETYPE | tinyint | IN |
Definition
Copy
CREATE function [dbo].[UFN_CONSTITUENTUNREALIZEDREVENUE_BYACCOUNTSYSTEM]
(
@CONSTITUENTID uniqueidentifier = null,
@PDACCOUNTSYSTEMID uniqueidentifier = null,
@LOADALL bit = 0,
@CURRENTAPPUSERID uniqueidentifier = null,
@SECURITYFEATUREID uniqueidentifier = null,
@SECURITYFEATURETYPE tinyint = null
)
returns @R table
(
REVENUEID uniqueidentifier,
CONSTITUENTID uniqueidentifier,
CONSTITUENTNAME nvarchar(255),
APPLIED money,
BALANCE money,
AMOUNTDUE money,
DATEDUE datetime,
REVENUETYPECODE tinyint,
DESCRIPTION nvarchar(255),
SORTORDER int,
DESIGNATIONLIST nvarchar(500),
SPONSORSHIPOPPORTUNITY nvarchar(255),
APPLICATIONCURRENCYID uniqueidentifier,
PDACCOUNTSYSTEMID uniqueidentifier,
SPONSORSHIPRGADDITIONALGIFT bit,
MEMBERSHIPPROGRAMNAME nvarchar(255),
MEMBERSHIPLEVELNAME nvarchar(255)
)
as
begin
declare @CURRENTDATE datetime = dbo.UFN_DATE_GETEARLIESTTIME(getdate());
declare @APPUSERISSYSADMIN bit = dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID);
declare @HOUSEHOLDSCANBEDONORS bit = dbo.UFN_INSTALLATIONINFO_GETHOUSEHOLDSCANBEDONORS();
declare @HOUSEHOLDID uniqueidentifier;
select top(1) @HOUSEHOLDID = GROUPMEMBER.GROUPID
from dbo.GROUPMEMBER
left outer join dbo.GROUPDATA on GROUPDATA.ID = GROUPMEMBER.GROUPID
where GROUPMEMBER.MEMBERID = @CONSTITUENTID
and GROUPDATA.GROUPTYPECODE = 0
and dbo.UFN_GROUPMEMBER_ISCURRENTMEMBER(GROUPMEMBER.ID) = 1
and @HOUSEHOLDSCANBEDONORS = 1;
/*
* The site security check was removed from the initial select because it
* considerably slowed down the query for databases with large numbers of
* revenue records. Given that only a small number of records should be
* returned for a given constituent/household's unrealized revenue, it was
* quicker to insert all the records into a table variable, then remove any
* ones the user did not have site access to.
*/
declare @REVENUECOMMITMENTS table(
REVENUEID uniqueidentifier,
CONSTITUENTID uniqueidentifier,
CONSTITUENTNAME nvarchar(255),
APPLIED money,
BALANCE money,
AMOUNTDUE money,
DATEDUE datetime,
REVENUETYPECODE tinyint,
DESCRIPTION nvarchar(255),
SORTORDER int,
DESIGNATIONLIST nvarchar(500),
SPONSORSHIPOPPORTUNITY nvarchar(255),
APPLICATIONCURRENCYID uniqueidentifier,
PDACCOUNTSYSTEMID uniqueidentifier,
SPONSORSHIPRGADDITIONALGIFT bit,
MEMBERSHIPPROGRAMNAME nvarchar(255),
MEMBERSHIPLEVELNAME nvarchar(255)
);
declare @VALIDCONSTITUENT table
(
ID uniqueidentifier
);
insert into @VALIDCONSTITUENT(ID)
(
select
@HOUSEHOLDID as ID
union
select
case when dbo.UFN_CONSTITUENT_ISHOUSEHOLD(@CONSTITUENTID) = 1 and @LOADALL = 0 then
(case when @HOUSEHOLDSCANBEDONORS = 1 then @CONSTITUENTID else null end)
else
@CONSTITUENTID
end
union
select
GROUPMEMBER.MEMBERID
from
dbo.GROUPMEMBER
left outer join dbo.GROUPMEMBERDATERANGE on GROUPMEMBER.ID = GROUPMEMBERDATERANGE.GROUPMEMBERID
where
(
GROUPMEMBER.GROUPID = @HOUSEHOLDID
or GROUPMEMBER.GROUPID = @CONSTITUENTID
)
and (
(GROUPMEMBERDATERANGE.DATEFROM is null and (GROUPMEMBERDATERANGE.DATETO is null or GROUPMEMBERDATERANGE.DATETO > @CURRENTDATE))
or (GROUPMEMBERDATERANGE.DATETO is null and (GROUPMEMBERDATERANGE.DATEFROM is null or GROUPMEMBERDATERANGE.DATEFROM <= @CURRENTDATE))
or (GROUPMEMBERDATERANGE.DATEFROM <= @CURRENTDATE and GROUPMEMBERDATERANGE.DATETO > @CURRENTDATE)
)
)
insert into @REVENUECOMMITMENTS
select
REVENUE.ID,
CONSTITUENT.ID,
case
when MGREVENUE.ID is not null then
case REVENUE.TYPECODE
when 3 then
CONSTITUENT.NAME + ' - ' + MGCONSTIT.NAME + ' (' + MGCONSTIT.LOOKUPID + ')'
else
CONSTITUENT.NAME + ' - ' + MGCONSTIT.NAME
end
else
CONSTITUENT.NAME
end as CONSTITUENTNAME,
0,
V_QUERY_REVENUE_PLEDGEBALANCE.BALANCE,
INSTALLMENTBALANCE.BALANCE,
NEXTINSTALLMENT.INSTALLMENTDATE,
case REVENUE.TYPECODE
when 6 then 9
when 8 then 10
else REVENUE.TYPECODE
end, -- handle grant awards differently to avoid type collision with event registrations
'',
case
when CONSTITUENT.ID = @CONSTITUENTID
then 1
else 0
end as SORTORDER,
null as DESIGNATIONLIST,
null as SPONSORSHIPOPPORTUNITY,
REVENUE.TRANSACTIONCURRENCYID,
REVENUE.PDACCOUNTSYSTEMID,
0,
null as MEMBERSHIPPROGRAMNAME,
null as MEMBERSHIPLEVELNAME
from
dbo.FINANCIALTRANSACTION REVENUE
inner join @VALIDCONSTITUENT VALIDCONSTITUENT on VALIDCONSTITUENT.ID = REVENUE.CONSTITUENTID
inner join dbo.CONSTITUENT on CONSTITUENT.ID = REVENUE.CONSTITUENTID
inner join dbo.UFN_REVENUE_GETNEXTINSTALLMENT_BULK() as NEXTINSTALLMENT on NEXTINSTALLMENT.REVENUEID = REVENUE.ID
inner join dbo.REVENUESCHEDULE on REVENUESCHEDULE.ID = REVENUE.ID
left join dbo.REVENUEMATCHINGGIFT on REVENUE.ID = REVENUEMATCHINGGIFT.ID
left join dbo.FINANCIALTRANSACTION MGREVENUE on MGREVENUE.ID = REVENUEMATCHINGGIFT.MGSOURCEREVENUEID
left join dbo.CONSTITUENT MGCONSTIT on MGCONSTIT.ID = MGREVENUE.CONSTITUENTID
left join V_QUERY_REVENUE_PLEDGEBALANCE on V_QUERY_REVENUE_PLEDGEBALANCE.ID = REVENUE.ID
left join dbo.UFN_INSTALLMENT_GETINSTALLMENTBALANCE_BULK() as INSTALLMENTBALANCE on INSTALLMENTBALANCE.ID = NEXTINSTALLMENT.INSTALLMENTID
outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(MGCONSTIT.ID) NF
where
case
when V_QUERY_REVENUE_PLEDGEBALANCE.BALANCE > 0
then 1
else 0
end = 1
and REVENUESCHEDULE.ISPENDING = 0 --Isn't Pending
and( REVENUEMATCHINGGIFT.ISACTIVE = 1
or REVENUE.TYPECODE <> 3
)
and REVENUE.TYPECODE in (0,1,2,3,4,5,6,7,8,9)
and REVENUE.DELETEDON is null
and NEXTINSTALLMENT.INSTALLMENTID is not null
and
(
REVENUE.TYPECODE in (2,3,8) --account system not valid for RG, MGC, and donor challenge claim.
or REVENUE.PDACCOUNTSYSTEMID = @PDACCOUNTSYSTEMID or @PDACCOUNTSYSTEMID is null
)
union all
select
REVENUE.ID,
CONSTITUENT.ID,
CONSTITUENT.NAME,
0,
REVENUE.TRANSACTIONAMOUNT,
NEXTINSTALLMENT.BALANCE,
NEXTINSTALLMENT.DATE,
REVENUE.TYPECODE,
'',
case
when CONSTITUENT.ID = @CONSTITUENTID
then 1
else 0
end,
null,
SPONSORSHIPINFO.SPONSORSHIPOPPORTUNITY as SPONSORSHIPOPPORTUNITY,
REVENUE.TRANSACTIONCURRENCYID,
null as PDACCOUNTSYSTEMID,
case
when exists(
select 1
from dbo.FINANCIALTRANSACTIONLINEITEM
inner join dbo.REVENUESPLIT_EXT on FINANCIALTRANSACTIONLINEITEM.ID = REVENUESPLIT_EXT.ID
where FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID = REVENUE.ID
and REVENUESPLIT_EXT.TYPECODE = 17
)
then 1
else 0
end,
MEMBERSHIPINFO.PROGRAMNAME as MEMBERSHIPPROGRAMNAME,
MEMBERSHIPINFO.LEVELNAME as MEMBERSHIPLEVELNAME
from
dbo.FINANCIALTRANSACTION REVENUE
inner join @VALIDCONSTITUENT VALIDCONSTITUENT on VALIDCONSTITUENT.ID = REVENUE.CONSTITUENTID
inner join dbo.REVENUESCHEDULE on REVENUE.ID = REVENUESCHEDULE.ID
inner join dbo.CONSTITUENT on CONSTITUENT.ID = REVENUE.CONSTITUENTID
left outer join(
select
SP.REVENUEID,
coalesce(
(
select NAME
from SPONSORSHIPOPPORTUNITYCHILD
where ID=S.SPONSORSHIPOPPORTUNITYID
),
(
select NAME
from SPONSORSHIPOPPORTUNITYPROJECT
where ID = S.SPONSORSHIPOPPORTUNITYID
)
) SPONSORSHIPOPPORTUNITY
from dbo.REVENUESPLIT SP
inner join SPONSORSHIP S on S.REVENUESPLITID = SP.ID
inner join SPONSORSHIPOPPORTUNITY SO on SO.ID = S.SPONSORSHIPOPPORTUNITYID
where S.ISMOSTRECENTFORCOMMITMENT = 1
) SPONSORSHIPINFO on SPONSORSHIPINFO.REVENUEID = REVENUE.ID
left outer join(
select
MS.REVENUEID,
MP.NAME as [PROGRAMNAME],
ML.NAME as [LEVELNAME]
from
dbo.REVENUESPLIT MS
inner join MEMBERSHIPTRANSACTION MT on MT.REVENUESPLITID = MS.ID
inner join MEMBERSHIP M on M.ID = MT.MEMBERSHIPID
inner join MEMBERSHIPPROGRAM MP on MP.ID = M.MEMBERSHIPPROGRAMID
inner join MEMBERSHIPLEVEL ML on ML.ID = M.MEMBERSHIPLEVELID
) MEMBERSHIPINFO on MEMBERSHIPINFO.REVENUEID = REVENUE.ID
outer apply dbo.UFN_RECURRINGGIFT_GETNEXTINSTALLMENTINFO(REVENUE.ID,null) NEXTINSTALLMENT
where
REVENUE.TYPECODE = 2 --Recurring Gift
and REVENUESCHEDULE.STATUSCODE in (0,5) --Active & Lapsed
and REVENUESCHEDULE.ISPENDING = 0 --Isn't pending
and REVENUE.BASEAMOUNT > 0 --Has Base Value
and REVENUE.DELETEDON is null
if @APPUSERISSYSADMIN = 0
begin
-- Remove records that the user does not have site access to.
delete from @REVENUECOMMITMENTS
where not exists (
select 1
from dbo.UFN_SITEID_MAPFROM_REVENUEID(REVENUEID) as SITE
where exists (
select 1
from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE)
where SITEID=[SITE].[SITEID]
or (SITEID is null
and [SITE].[SITEID] is null
)
)
);
end
-- Set DESIGNATIONLIST separately from the insert to get a better query plan.
update REVENUECOMMITMENTS
set
DESIGNATIONLIST = (
select
left(dbo.UDA_BUILDLIST(DESIGNATION.USERID), 500) as DESIGNATIONLIST
from dbo.REVENUESPLIT
inner join dbo.DESIGNATION on DESIGNATION.ID = REVENUESPLIT.DESIGNATIONID
where REVENUESPLIT.REVENUEID = REVENUECOMMITMENTS.REVENUEID
)
from
@REVENUECOMMITMENTS REVENUECOMMITMENTS;
insert into @REVENUECOMMITMENTS
select
REGISTRANT.ID,
CONSTITUENT.ID,
CONSTITUENT.NAME,
0,
REGISTRANTBALANCE.BALANCE,
REGISTRANTBALANCE.BALANCE,
[EVENT].STARTDATE, --JamesWill CR260844-113006 2007/03/15 Use the event start date as the due date
6, --Event Registration
[EVENT].NAME,
case
when CONSTITUENT.ID = @CONSTITUENTID
then 1
else 0
end,
'' as DESIGNATIONLIST,
null as SPONSORSHIPOPPORTUNITY,
EVENT.BASECURRENCYID,
null as PDACCOUNTSYSTEMID,
0,
null as MEMBERSHIPPROGRAMNAME,
null as MEMBERSHIPLEVELNAME
from
dbo.REGISTRANT
inner join @VALIDCONSTITUENT VALIDCONSTITUENT on VALIDCONSTITUENT.ID = REGISTRANT.CONSTITUENTID
inner join dbo.CONSTITUENT on CONSTITUENT.ID = REGISTRANT.CONSTITUENTID
inner join dbo.[EVENT] on [EVENT].ID = REGISTRANT.EVENTID
left join V_QUERY_EVENTREGISTRANT_BALANCE REGISTRANTBALANCE on REGISTRANTBALANCE.REGISTRANTID = REGISTRANT.ID
where
REGISTRANTBALANCE.BALANCE > 0
and (--Check site security
@APPUSERISSYSADMIN = 1
or exists (
select 1
from dbo.UFN_SITEID_MAPFROM_EVENTID([EVENT].ID) as SITE
where exists (
select 1
from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE)
where SITEID=[SITE].[SITEID]
or (SITEID is null
and [SITE].[SITEID] is null
)
)
)
)
--if @LOADALL = 0
--begin
-- insert into @REVENUECOMMITMENTS
-- select --only pull primary members, due for renewal
-- MEMBERSHIP.ID,
-- CONSTITUENT.ID,
-- CONSTITUENT.NAME,
-- 0,
-- MEMBERSHIPLEVELTERM.AMOUNT,
-- MEMBERSHIPLEVELTERM.AMOUNT,
-- MEMBERSHIP.EXPIRATIONDATE,
-- 5, --Membership
-- dbo.UFN_MEMBERSHIPPROGRAM_GETNAME(MEMBERSHIP.MEMBERSHIPPROGRAMID) + ' - ' + dbo.UFN_MEMBERSHIPLEVEL_GETNAME(MEMBERSHIP.MEMBERSHIPLEVELID),
-- case when CONSTITUENT.ID = @CONSTITUENTID then 1 else 0 end,
-- '' as DESIGNATIONLIST,
-- null as SPONSORSHIPOPPORTUNITY,
-- MEMBERSHIPLEVELTERM.BASECURRENCYID,
-- null as PDACCOUNTSYSTEMID,
-- 0
-- from
-- dbo.MEMBERSHIP
-- inner join dbo.MEMBERSHIPLEVEL on MEMBERSHIP.MEMBERSHIPLEVELID = MEMBERSHIPLEVEL.ID
-- inner join dbo.MEMBER on MEMBERSHIP.ID = MEMBER.MEMBERSHIPID
-- inner join @VALIDCONSTITUENT VALIDCONSTITUENT on VALIDCONSTITUENT.ID = MEMBER.CONSTITUENTID
-- inner join dbo.CONSTITUENT on MEMBER.CONSTITUENTID = CONSTITUENT.ID
-- inner join dbo.MEMBERSHIPLEVELTERM on MEMBERSHIP.MEMBERSHIPLEVELTERMID = MEMBERSHIPLEVELTERM.ID
-- where
-- MEMBER.ISPRIMARY = 1
-- and MEMBER.ISDROPPED = 0
-- and (MEMBERSHIP.ISGIFT = 0
-- or MEMBERSHIP.SENDRENEWALCODE <> 0
-- )
-- and (
-- @APPUSERISSYSADMIN = 1
-- or exists (
-- select 1
-- from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE)
-- where SITEID = dbo.UFN_SITEID_MAPFROM_MEMBERSHIPID(MEMBERSHIP.ID)
-- or (SITEID is null
-- and dbo.UFN_SITEID_MAPFROM_MEMBERSHIPID(MEMBERSHIP.ID) is null
-- )
-- )
-- )
-- insert into @REVENUECOMMITMENTS
-- select
-- MEMBERSHIP.ID,
-- CONSTITUENT.ID,
-- CONSTITUENT.NAME,
-- 0,
-- MEMBERSHIPLEVELTERM.AMOUNT,
-- MEMBERSHIPLEVELTERM.AMOUNT,
-- MEMBERSHIP.EXPIRATIONDATE,
-- 5, --Membership
-- dbo.UFN_MEMBERSHIPPROGRAM_GETNAME(MEMBERSHIP.MEMBERSHIPPROGRAMID) + ' - ' + dbo.UFN_MEMBERSHIPLEVEL_GETNAME(MEMBERSHIP.MEMBERSHIPLEVELID),
-- case
-- when CONSTITUENT.ID = @CONSTITUENTID
-- then 1
-- else 0
-- end,
-- '' as DESIGNATIONLIST,
-- null as SPONSORSHIPOPPORTUNITY,
-- MEMBERSHIPLEVELTERM.BASECURRENCYID,
-- null as PDACCOUNTSYSTEMID,
-- 0
-- from
-- dbo.MEMBERSHIP
-- inner join dbo.MEMBERSHIPLEVEL on MEMBERSHIP.MEMBERSHIPLEVELID = MEMBERSHIPLEVEL.ID
-- inner join dbo.MEMBER on MEMBERSHIP.ID = MEMBER.MEMBERSHIPID
-- inner join @VALIDCONSTITUENT VALIDCONSTITUENT on VALIDCONSTITUENT.ID = MEMBERSHIP.GIVENBYID
-- inner join dbo.CONSTITUENT on MEMBERSHIP.GIVENBYID = CONSTITUENT.ID
-- inner join dbo.MEMBERSHIPLEVELTERM on MEMBERSHIP.MEMBERSHIPLEVELTERMID = MEMBERSHIPLEVELTERM.ID
-- where
-- MEMBERSHIP.SENDRENEWALCODE <> 1
-- and (
-- @APPUSERISSYSADMIN = 1
-- or exists (
-- select 1
-- from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE)
-- where SITEID = dbo.UFN_SITEID_MAPFROM_MEMBERSHIPID(MEMBERSHIP.ID)
-- or (SITEID is null
-- and dbo.UFN_SITEID_MAPFROM_MEMBERSHIPID(MEMBERSHIP.ID) is null
-- )
-- )
-- )
--end
--if @LOADALL <> 0
--begin
-- insert into @REVENUECOMMITMENTS
-- select --only pull primary members, due for renewal
-- MEMBERSHIP.ID,
-- CONSTITUENT.ID,
-- CONSTITUENT.NAME,
-- 0,
-- MEMBERSHIPLEVELTERM.AMOUNT,
-- MEMBERSHIPLEVELTERM.AMOUNT,
-- MEMBERSHIP.EXPIRATIONDATE,
-- 5, --Membership
-- dbo.UFN_MEMBERSHIPPROGRAM_GETNAME(MEMBERSHIP.MEMBERSHIPPROGRAMID) + ' - ' + dbo.UFN_MEMBERSHIPLEVEL_GETNAME(MEMBERSHIP.MEMBERSHIPLEVELID),
-- case
-- when CONSTITUENT.ID = @CONSTITUENTID
-- then 1
-- else 0
-- end,
-- '' as DESIGNATIONLIST,
-- null as SPONSORSHIPOPPORTUNITY,
-- MEMBERSHIPLEVELTERM.BASECURRENCYID,
-- null as PDACCOUNTSYSTEMID,
-- 0
-- from
-- dbo.MEMBERSHIP
-- inner join dbo.MEMBER on MEMBERSHIP.ID = MEMBER.MEMBERSHIPID
-- inner join @VALIDCONSTITUENT VALIDCONSTITUENT on VALIDCONSTITUENT.ID = MEMBER.CONSTITUENTID
-- inner join dbo.CONSTITUENT on MEMBER.CONSTITUENTID = CONSTITUENT.ID
-- inner join dbo.MEMBERSHIPLEVELTERM on MEMBERSHIP.MEMBERSHIPLEVELTERMID = MEMBERSHIPLEVELTERM.ID
-- where
-- MEMBER.ISDROPPED = 0
-- and
-- (
-- @APPUSERISSYSADMIN = 1
-- or exists (
-- select 1
-- from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE)
-- where
-- SITEID = dbo.UFN_SITEID_MAPFROM_MEMBERSHIPID(MEMBERSHIP.ID)
-- or (SITEID is null
-- and dbo.UFN_SITEID_MAPFROM_MEMBERSHIPID(MEMBERSHIP.ID) is null
-- )
-- )
-- )
--end
-- THIS SECTION MAY NOT BE USED, PLEASE CONSIDER FOR REMOVAL - DavidHe
insert into @REVENUECOMMITMENTS
select
OPPORTUNITY.ID,
CONSTITUENT.ID,
CONSTITUENT.NAME,
0,
OPPORTUNITY.AMOUNT - dbo.UFN_OPPORTUNITY_GETAMOUNTPAID(OPPORTUNITY.ID),
null, -- amount due
null, -- date due
100, -- arbitrary application type code for opportunities, resolved in USP_REVENUE_APPLYTOREVENUESTREAMS
dbo.UFN_OPPORTUNITY_GETDESCRIPTION(OPPORTUNITY.ID),
case
when CONSTITUENT.ID = @CONSTITUENTID
then 1
else 0
end,
(
select top 1 left(dbo.UDA_BUILDLIST(DESIGNATION.USERID), 500) as DESIGNATIONLIST
from dbo.DESIGNATION
inner join dbo.OPPORTUNITYDESIGNATION on DESIGNATION.ID = OPPORTUNITYDESIGNATION.DESIGNATIONID
where OPPORTUNITYDESIGNATION.OPPORTUNITYID = OPPORTUNITY.ID
) as DESIGNATIONLIST,
null as SPONSORSHIPOPPORTUNITY,
null as APPLCATIONCURRENCYID ,
null as PDACCOUNTSYSTEMID,
0,
null as MEMBERSHIPPROGRAMNAME,
null as MEMBERSHIPLEVELNAME
from
dbo.OPPORTUNITY
inner join dbo.PROSPECTPLAN on PROSPECTPLAN.ID = OPPORTUNITY.PROSPECTPLANID
inner join @VALIDCONSTITUENT VALIDCONSTITUENT on VALIDCONSTITUENT.ID = PROSPECTPLAN.PROSPECTID
-- CR298118-041508 Only include opportunities which have designations associated with them so that
-- when we go to fill in a payment for them we have something to apply them to.
-- DavidHe (removed inner join and made a where exists clause to prevent multiple rows from pulling where only one should).
left outer join dbo.CONSTITUENT on CONSTITUENT.ID = PROSPECTPLAN.PROSPECTID
where
exists (
select ID
from dbo.OPPORTUNITYDESIGNATION
where OPPORTUNITYDESIGNATION.OPPORTUNITYID = OPPORTUNITY.ID
)
-- sort order elevates the constituent being queried for to the top
insert into @R
(
REVENUEID,
CONSTITUENTID,
CONSTITUENTNAME,
APPLIED,
BALANCE,
AMOUNTDUE,
DATEDUE,
REVENUETYPECODE,
DESCRIPTION,
SORTORDER,
DESIGNATIONLIST,
SPONSORSHIPOPPORTUNITY,
APPLICATIONCURRENCYID,
PDACCOUNTSYSTEMID,
SPONSORSHIPRGADDITIONALGIFT,
MEMBERSHIPPROGRAMNAME,
MEMBERSHIPLEVELNAME
)
select
REVENUEID,
CONSTITUENTID,
CONSTITUENTNAME,
APPLIED,
BALANCE,
AMOUNTDUE,
DATEDUE,
REVENUETYPECODE,
DESCRIPTION,
SORTORDER,
DESIGNATIONLIST,
SPONSORSHIPOPPORTUNITY,
APPLICATIONCURRENCYID,
PDACCOUNTSYSTEMID,
SPONSORSHIPRGADDITIONALGIFT,
MEMBERSHIPPROGRAMNAME,
MEMBERSHIPLEVELNAME
from
@REVENUECOMMITMENTS
order by SORTORDER desc;
return;
end