USP_DATALIST_REVENUECOMMITMENTS
A datalist of commitments for a given constituent.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CONSTITUENTID | uniqueidentifier | IN | Input parameter indicating the context ID for the data list. |
@APPLICATIONCODE | tinyint | IN | Application |
@APPEALID | uniqueidentifier | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
@SECURITYFEATUREID | uniqueidentifier | IN | Input parameter indicating the ID of the feature to use for site security checking. |
@SECURITYFEATURETYPE | tinyint | IN | Input parameter indicating the type of the feature to use for site security checking. |
@PDACCOUNTSYSTEMID | uniqueidentifier | IN | |
@PAYMENTID | uniqueidentifier | IN | |
@EXCLUDEMEMBERSHIPS | bit | IN |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_REVENUECOMMITMENTS(
@CONSTITUENTID uniqueidentifier,
@APPLICATIONCODE tinyint = null,
@APPEALID uniqueidentifier = null,
@CURRENTAPPUSERID uniqueidentifier = null,
@SECURITYFEATUREID uniqueidentifier = null,
@SECURITYFEATURETYPE tinyint = null,
@PDACCOUNTSYSTEMID uniqueidentifier = null,
@PAYMENTID uniqueidentifier = null,
@EXCLUDEMEMBERSHIPS bit = 1
)
as
begin
set nocount on
declare @RETURNTABLE as table(
ID uniqueidentifier,
FORMID uniqueidentifier,
APPLIED bit default 0,
APPLICATIONCODE tinyint
);
declare @TMP_DATA_MATCHINGGIFTCLAIMS UDT_GENERICID;
declare @ISADMIN bit;
declare @APPUSER_IN_NONRACROLE bit;
declare @APPUSER_IN_NOSECGROUPROLE bit;
set @ISADMIN = dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID);
set @APPUSER_IN_NONRACROLE = dbo.UFN_SECURITY_APPUSER_IN_NONRACROLE(@CURRENTAPPUSERID);
set @APPUSER_IN_NOSECGROUPROLE = dbo.UFN_SECURITY_APPUSER_IN_NO_SECURITY_GROUP_ROLE(@CURRENTAPPUSERID);
declare @CONSTITUENTS as table(
ID uniqueidentifier
);
if @APPLICATIONCODE = 200 --200 = all
set @APPLICATIONCODE = null;
--Get all relevant constits
declare @CURRENTDATE datetime;
set @CURRENTDATE = dbo.UFN_DATE_GETEARLIESTTIME(getdate());
declare @HOUSEHOLDSCANBEDONORS bit;
set @HOUSEHOLDSCANBEDONORS = dbo.UFN_INSTALLATIONINFO_GETHOUSEHOLDSCANBEDONORS();
declare @HOUSEHOLDID uniqueidentifier;
select top(1) @HOUSEHOLDID = GM.GROUPID
from dbo.GROUPMEMBER as GM
left outer join dbo.GROUPDATA as GD on GD.ID = GM.GROUPID
where GM.MEMBERID = @CONSTITUENTID
and GD.GROUPTYPECODE = 0
and dbo.UFN_GROUPMEMBER_ISCURRENTMEMBER(GM.ID) = 1
and @HOUSEHOLDSCANBEDONORS = 1;
insert into @CONSTITUENTS(
ID
)
select
CONSTITUENTS.ID
from (
select @HOUSEHOLDID as ID
union
select
case
when dbo.UFN_CONSTITUENT_ISHOUSEHOLD(@CONSTITUENTID) = 1
then
case
when @HOUSEHOLDSCANBEDONORS = 1
then @CONSTITUENTID
else null
end
else @CONSTITUENTID
end
union
select
GM.MEMBERID
from dbo.GROUPMEMBER GM
left outer join dbo.GROUPMEMBERDATERANGE GMDR on GM.ID = GMDR.GROUPMEMBERID
where(
GM.GROUPID = @HOUSEHOLDID
or GM.GROUPID = @CONSTITUENTID
)
and (
(GMDR.DATEFROM is null and (GMDR.DATETO is null or GMDR.DATETO > @CURRENTDATE))
or (GMDR.DATETO is null and (GMDR.DATEFROM is null or GMDR.DATEFROM <= @CURRENTDATE))
or (GMDR.DATEFROM <= @CURRENTDATE and GMDR.DATETO > @CURRENTDATE)
)
) CONSTITUENTS
where @ISADMIN = 1
or ( --If form check by form
@SECURITYFEATURETYPE = 1
and dbo.UFN_SECURITY_APPUSER_GRANTED_FORM_FORCONSTIT(@CURRENTAPPUSERID, @SECURITYFEATUREID, CONSTITUENTS.ID) = 1
)
or ( --If datalist check by datalist
@SECURITYFEATURETYPE = 2
and dbo.UFN_SECURITY_APPUSER_GRANTED_DATALIST_FORCONSTIT(@CURRENTAPPUSERID, @SECURITYFEATUREID, CONSTITUENTS.ID) = 1
)
or ( --If otherwise check all roles
@SECURITYFEATURETYPE not in(1, 2)
and (
@APPUSER_IN_NONRACROLE = 1
or dbo.UFN_SECURITY_APPUSER_GRANTED_CONSTITID_FORREPORT(@CURRENTAPPUSERID, CONSTITUENTS.ID, @APPUSER_IN_NOSECGROUPROLE) = 1
)
);
--Events
if coalesce(@APPLICATIONCODE, 1) = 1
insert into @RETURNTABLE(
ID, FORMID, APPLICATIONCODE
)
select
REGISTRANT.ID,
'72700FCF-AFF8-4B63-8EDF-80B467EB30DB',
1
from dbo.REGISTRANT
inner join @CONSTITUENTS CONSTITUENT on CONSTITUENT.ID = REGISTRANT.CONSTITUENTID
left join V_QUERY_EVENTREGISTRANT_BALANCE REGISTRANTBALANCE on REGISTRANTBALANCE.REGISTRANTID = REGISTRANT.ID
where (
REGISTRANTBALANCE.BALANCE > 0
or (
@PAYMENTID is not null
and exists(
select 1
from dbo.EVENTREGISTRANTPAYMENT
inner join dbo.FINANCIALTRANSACTIONLINEITEM as REVENUESPLIT on REVENUESPLIT.ID = EVENTREGISTRANTPAYMENT.PAYMENTID
where EVENTREGISTRANTPAYMENT.REGISTRANTID = REGISTRANT.ID and REVENUESPLIT.DELETEDON is null
and REVENUESPLIT.FINANCIALTRANSACTIONID = @PAYMENTID
)
)
)
and REGISTRANT.ISCANCELLED = 0
and exists( --Check site security
select 1
from dbo.UFN_SITEID_MAPFROM_REGISTRANTID(REGISTRANT.ID) as SITE
where (@ISADMIN = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[SITE].[SITEID] or (SITEID is null and [SITE].[SITEID] is null)))
)
--Pledge
if coalesce(@APPLICATIONCODE, 2) = 2
insert into @RETURNTABLE(
ID, FORMID, APPLICATIONCODE
)
select
REVENUE.ID,
'6C4958A9-7A6C-4C23-A1BB-8EA0CFA267B4',
2
from dbo.FINANCIALTRANSACTION as REVENUE
inner join @CONSTITUENTS CONSTITUENT on CONSTITUENT.ID = REVENUE.CONSTITUENTID
inner join dbo.REVENUESCHEDULE on REVENUESCHEDULE.ID = REVENUE.ID
--left join dbo.PDACCOUNTSYSTEMFORREVENUE on REVENUE.ID = PDACCOUNTSYSTEMFORREVENUE.ID
left join V_QUERY_REVENUE_PLEDGEBALANCE on V_QUERY_REVENUE_PLEDGEBALANCE.ID = REVENUE.ID
where REVENUE.TYPECODE = 1 and REVENUE.DELETEDON is null
and (
V_QUERY_REVENUE_PLEDGEBALANCE.BALANCE > 0
or (
@PAYMENTID is not null
and exists(
select 1
from dbo.INSTALLMENTSPLITPAYMENT
inner join dbo.FINANCIALTRANSACTIONLINEITEM as REVENUESPLIT on REVENUESPLIT.ID = INSTALLMENTSPLITPAYMENT.PAYMENTID
where INSTALLMENTSPLITPAYMENT.PLEDGEID = REVENUE.ID and REVENUESPLIT.DELETEDON is null
and REVENUESPLIT.FINANCIALTRANSACTIONID = @PAYMENTID
)
)
)
and (REVENUE.PDACCOUNTSYSTEMID = @PDACCOUNTSYSTEMID or dbo.UFN_VALID_BASICGL_INSTALLED() = 0)
and exists(--Check site security
select 1
from dbo.UFN_SITEID_MAPFROM_REVENUEID(REVENUE.ID) as SITE
where (@ISADMIN = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[SITE].[SITEID] or (SITEID is null and [SITE].[SITEID] is null)))
)
--RG
if coalesce(@APPLICATIONCODE, 3) = 3
insert into @RETURNTABLE(
ID, FORMID, APPLICATIONCODE
)
select
REVENUE.ID,
'84D79558-F2BC-449C-A806-EA29AC9B4983',
3
from dbo.FINANCIALTRANSACTION as REVENUE
inner join @CONSTITUENTS CONSTITUENT on CONSTITUENT.ID = REVENUE.CONSTITUENTID
inner join dbo.REVENUESCHEDULE on REVENUE.ID = REVENUESCHEDULE.ID
where REVENUE.DELETEDON is null
and REVENUE.TYPECODE = 2 --Recurring Gift
and REVENUESCHEDULE.STATUSCODE in (0,5) --Active,lapsed
and REVENUESCHEDULE.ISPENDING = 0 --Isn't pending
and REVENUE.TRANSACTIONAMOUNT > 0 --Has Value??? 10.9.2014 Changing from baseamount to transaction amount WI#428649
and (@EXCLUDEMEMBERSHIPS = 0 or dbo.UFN_RECURRINGGIFT_ISMEMBERSHIP(REVENUE.ID) = 0) --Only show membership recurring gifts on the edit form #302239
and exists(--Check site security
select 1
from dbo.UFN_SITEID_MAPFROM_REVENUEID(REVENUE.ID) as SITE
where (@ISADMIN = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[SITE].[SITEID] or (SITEID is null and [SITE].[SITEID] is null)))
)
--Planned gifts with additions
if coalesce(@APPLICATIONCODE, 6) = 6
insert into @RETURNTABLE(
ID, FORMID, APPLICATIONCODE
)
select
REVENUE.ID,
'3fe5d648-e129-407c-aa83-ccdf77430e5d',
6
from dbo.FINANCIALTRANSACTION as REVENUE
inner join @CONSTITUENTS CONSTITUENT on CONSTITUENT.ID = REVENUE.CONSTITUENTID
inner join dbo.V_PLANNEDGIFTREVENUE_WITHADDITIONS PLANNEDGIFTREVENUE on PLANNEDGIFTREVENUE.REVENUEID = REVENUE.ID
inner join dbo.PLANNEDGIFT on PLANNEDGIFT.ID = PLANNEDGIFTREVENUE.PLANNEDGIFTID
--left join dbo.PDACCOUNTSYSTEMFORREVENUE on REVENUE.ID = PDACCOUNTSYSTEMFORREVENUE.ID
left join V_QUERY_REVENUE_PLEDGEBALANCE on V_QUERY_REVENUE_PLEDGEBALANCE.ID = REVENUE.ID
where REVENUE.TYPECODE = 4 and REVENUE.DELETEDON is null
and (
V_QUERY_REVENUE_PLEDGEBALANCE.BALANCE > 0
or (
@PAYMENTID is not null
and exists(
select 1
from dbo.INSTALLMENTSPLITPAYMENT
inner join dbo.FINANCIALTRANSACTIONLINEITEM as REVENUESPLIT on REVENUESPLIT.ID = INSTALLMENTSPLITPAYMENT.PAYMENTID
where INSTALLMENTSPLITPAYMENT.PLEDGEID = REVENUE.ID and REVENUESPLIT.DELETEDON is null
and REVENUESPLIT.FINANCIALTRANSACTIONID = @PAYMENTID
)
)
)
and REVENUE.BASEAMOUNT > 0
and (REVENUE.PDACCOUNTSYSTEMID = @PDACCOUNTSYSTEMID or dbo.UFN_VALID_BASICGL_INSTALLED() = 0)
and exists(--Check site security
select 1
from dbo.UFN_SITEID_MAPFROM_REVENUEID(REVENUE.ID) as SITE
where (@ISADMIN = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[SITE].[SITEID] or (SITEID is null and [SITE].[SITEID] is null)))
)
--MG Claim
if coalesce(@APPLICATIONCODE, 7) = 7
begin
declare @SITEONFEATURE table (ID uniqueidentifier)
insert into @SITEONFEATURE (ID)
select SITEID from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE)
--declare @ISSYSADMIN bit
--select @ISSYSADMIN = dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID)
if @ISADMIN = 1
insert into @RETURNTABLE(
ID, FORMID, APPLICATIONCODE
)
select
REVENUEWITHBALANCE.ID,
'2B4A336A-8774-4126-ABCF-5FAD92DFB15A',
7
from
(
-- A derived table is used rather than coalescing the sub-query directly since coalescing the sub-query directly
-- caused the INSTALLMENTSPLITPAYMENT and INSTALLMENTSPLIT tables to be hit twice: once to see if data exists and the other
-- time to calculate the result. The derived table allows those tables to be hit only once.
-- NOTE: The logic for the balance was pulled from RevenuePledgeBalance.Query.xml. It was inlined and rewritten
-- but any functional changes to balance calculation should be made in both places.
select
ID,
TYPECODE,
PAID,
cast(TRANSACTIONAMOUNT - coalesce(PAID, 0) as money) as BALANCE
from
(
select
FINANCIALTRANSACTION.ID,
TYPECODE,
TRANSACTIONAMOUNT,
(
select sum(INSTALLMENTSPLITPAYMENT.AMOUNT)
from dbo.INSTALLMENTSPLITPAYMENT
where INSTALLMENTSPLITPAYMENT.PLEDGEID = FINANCIALTRANSACTION.ID
) as PAID
from dbo.FINANCIALTRANSACTION
inner join @CONSTITUENTS CONSTITUENT on CONSTITUENT.ID = FINANCIALTRANSACTION.CONSTITUENTID
inner join dbo.REVENUEMATCHINGGIFT on FINANCIALTRANSACTION.ID = REVENUEMATCHINGGIFT.ID
where FINANCIALTRANSACTION.DELETEDON is null and REVENUEMATCHINGGIFT.ISACTIVE = 1 --Check if status for Revenue matching gift is Active
) as T
) as REVENUEWITHBALANCE
where
REVENUEWITHBALANCE.TYPECODE = 3
and (
REVENUEWITHBALANCE.BALANCE > 0
or (
@PAYMENTID is not null
and exists(
select 1
from dbo.INSTALLMENTSPLITPAYMENT
inner join dbo.FINANCIALTRANSACTIONLINEITEM as REVENUESPLIT on REVENUESPLIT.ID = INSTALLMENTSPLITPAYMENT.PAYMENTID
where INSTALLMENTSPLITPAYMENT.PLEDGEID = REVENUEWITHBALANCE.ID and REVENUESPLIT.DELETEDON is null
and REVENUESPLIT.FINANCIALTRANSACTIONID = @PAYMENTID
)
)
)
else
begin
insert into @TMP_DATA_MATCHINGGIFTCLAIMS(ID)
select
REVENUEWITHBALANCE.ID
from
(
-- A derived table is used rather than coalescing the sub-query directly since coalescing the sub-query directly
-- caused the INSTALLMENTSPLITPAYMENT and INSTALLMENTSPLIT tables to be hit twice: once to see if data exists and the other
-- time to calculate the result. The derived table allows those tables to be hit only once.
-- NOTE: The logic for the balance was pulled from RevenuePledgeBalance.Query.xml. It was inlined and rewritten
-- but any functional changes to balance calculation should be made in both places.
select
ID,
TYPECODE,
PAID,
cast(TRANSACTIONAMOUNT - coalesce(PAID, 0) as money) as BALANCE
from
(
select
FINANCIALTRANSACTION.ID,
TYPECODE,
TRANSACTIONAMOUNT,
(
select sum(INSTALLMENTSPLITPAYMENT.AMOUNT)
from dbo.INSTALLMENTSPLITPAYMENT
where INSTALLMENTSPLITPAYMENT.PLEDGEID = FINANCIALTRANSACTION.ID
) as PAID
from dbo.FINANCIALTRANSACTION
inner join @CONSTITUENTS CONSTITUENT on CONSTITUENT.ID = FINANCIALTRANSACTION.CONSTITUENTID
inner join dbo.REVENUEMATCHINGGIFT on FINANCIALTRANSACTION.ID = REVENUEMATCHINGGIFT.ID
where FINANCIALTRANSACTION.DELETEDON is null and REVENUEMATCHINGGIFT.ISACTIVE = 1 --Check if status for Revenue matching gift is Active
) as T
) as REVENUEWITHBALANCE
where
REVENUEWITHBALANCE.TYPECODE = 3
and (
REVENUEWITHBALANCE.BALANCE > 0
or (
@PAYMENTID is not null
and exists(
select 1
from dbo.INSTALLMENTSPLITPAYMENT
inner join dbo.FINANCIALTRANSACTIONLINEITEM as REVENUESPLIT on REVENUESPLIT.ID = INSTALLMENTSPLITPAYMENT.PAYMENTID
where INSTALLMENTSPLITPAYMENT.PLEDGEID = REVENUEWITHBALANCE.ID and REVENUESPLIT.DELETEDON is null
and REVENUESPLIT.FINANCIALTRANSACTIONID = @PAYMENTID
)
)
);
insert into @RETURNTABLE(
ID, FORMID, APPLICATIONCODE
)
select
REVENUEWITHBALANCE.ID,
'2B4A336A-8774-4126-ABCF-5FAD92DFB15A',
7
from @TMP_DATA_MATCHINGGIFTCLAIMS REVENUEWITHBALANCE
where
exists(
select 1
from dbo.UFN_SITEID_MAPFROM_REVENUEID(REVENUEWITHBALANCE.ID) as SITE
inner join @SITEONFEATURE as SITEONFEATURE on SITEONFEATURE.ID=[SITE].[SITEID] or (SITEONFEATURE.ID is null and [SITE].[SITEID] is null)
)
end
--Subsidiary MG Claims
insert into @RETURNTABLE(
ID, FORMID, APPLICATIONCODE
)
select
REVENUEWITHBALANCE.ID,
'2B4A336A-8774-4126-ABCF-5FAD92DFB15A',
7
from
(
-- A derived table is used rather than coalescing the sub-query directly since coalescing the sub-query directly
-- caused the INSTALLMENTSPLITPAYMENT and INSTALLMENTSPLIT tables to be hit twice: once to see if data exists and the other
-- time to calculate the result. The derived table allows those tables to be hit only once.
-- NOTE: The logic for the balance was pulled from RevenuePledgeBalance.Query.xml. It was inlined and rewritten
-- but any functional changes to balance calculation should be made in both places.
select
ID,
TYPECODE,
PAID,
cast(TRANSACTIONAMOUNT - coalesce(PAID, 0) as money) as BALANCE
from
(
select
FINANCIALTRANSACTION.ID,
TYPECODE,
TRANSACTIONAMOUNT,
(
select sum(INSTALLMENTSPLITPAYMENT.AMOUNT)
from dbo.INSTALLMENTSPLITPAYMENT
where INSTALLMENTSPLITPAYMENT.PLEDGEID = FINANCIALTRANSACTION.ID
) as PAID
from dbo.FINANCIALTRANSACTION
inner join dbo.ORGANIZATIONDATA on ORGANIZATIONDATA.ID = FINANCIALTRANSACTION.CONSTITUENTID
inner join @CONSTITUENTS CONSTITUENT on CONSTITUENT.ID = ORGANIZATIONDATA.PARENTCORPID
inner join dbo.REVENUEMATCHINGGIFT on FINANCIALTRANSACTION.ID = REVENUEMATCHINGGIFT.ID
where REVENUEMATCHINGGIFT.ISACTIVE = 1 --Check if status for Revenue matching gift is Active
) as T
) as REVENUEWITHBALANCE
where REVENUEWITHBALANCE.TYPECODE = 3
and (
REVENUEWITHBALANCE.BALANCE > 0
or (
@PAYMENTID is not null
and exists(
select 1
from dbo.INSTALLMENTSPLITPAYMENT
inner join dbo.FINANCIALTRANSACTIONLINEITEM as REVENUESPLIT on REVENUESPLIT.ID = INSTALLMENTSPLITPAYMENT.PAYMENTID
where INSTALLMENTSPLITPAYMENT.PLEDGEID = REVENUEWITHBALANCE.ID and REVENUESPLIT.DELETEDON is null
and REVENUESPLIT.FINANCIALTRANSACTIONID = @PAYMENTID
)
)
)
and (
@ISADMIN = 1
or exists (
select 1
from dbo.UFN_SITEID_MAPFROM_REVENUEID(REVENUEWITHBALANCE.ID) as SITE
where
exists (
select 1 from @SITEONFEATURE as SITEONFEATURE
where SITEONFEATURE.ID=[SITE].[SITEID] or (SITEONFEATURE.ID is null and [SITE].[SITEID] is null)
)
)
)
end
--Grant award
if coalesce(@APPLICATIONCODE, 8) = 8
insert into @RETURNTABLE(
ID, FORMID, APPLICATIONCODE
)
select
REVENUE.ID,
'3AFDF279-6EF0-43CB-BB84-86BDCA72E4E0',
8
from dbo.FINANCIALTRANSACTION as REVENUE
inner join @CONSTITUENTS CONSTITUENT on CONSTITUENT.ID = REVENUE.CONSTITUENTID
inner join dbo.REVENUESCHEDULE on REVENUESCHEDULE.ID = REVENUE.ID
--left join dbo.PDACCOUNTSYSTEMFORREVENUE on REVENUE.ID = PDACCOUNTSYSTEMFORREVENUE.ID
left join V_QUERY_REVENUE_PLEDGEBALANCE on V_QUERY_REVENUE_PLEDGEBALANCE.ID = REVENUE.ID
where REVENUE.TYPECODE = 6 and REVENUE.DELETEDON is null
and (
V_QUERY_REVENUE_PLEDGEBALANCE.BALANCE > 0
or (
@PAYMENTID is not null
and exists(
select 1
from dbo.INSTALLMENTSPLITPAYMENT
inner join dbo.FINANCIALTRANSACTIONLINEITEM as REVENUESPLIT on REVENUESPLIT.ID = INSTALLMENTSPLITPAYMENT.PAYMENTID
where INSTALLMENTSPLITPAYMENT.PLEDGEID = REVENUE.ID and REVENUESPLIT.DELETEDON is null
and REVENUESPLIT.FINANCIALTRANSACTIONID = @PAYMENTID
)
)
)
and (REVENUE.PDACCOUNTSYSTEMID = @PDACCOUNTSYSTEMID or dbo.UFN_VALID_BASICGL_INSTALLED() = 0)
and exists(--Check site security
select 1
from dbo.UFN_SITEID_MAPFROM_REVENUEID(REVENUE.ID) as SITE
where (@ISADMIN = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[SITE].[SITEID] or (SITEID is null and [SITE].[SITEID] is null)))
)
--Auction purchases
if coalesce(@APPLICATIONCODE, 12) = 12
begin
insert into @RETURNTABLE(
ID, FORMID, APPLICATIONCODE
)
select
AUCTIONITEM.ID,
'366f6c42-2b66-4c1f-9aec-60e7ab5382f6',
12
from dbo.AUCTIONITEMRESERVATION
inner join @CONSTITUENTS CONSTITUENT on CONSTITUENT.ID = AUCTIONITEMRESERVATION.PURCHASERID
inner join dbo.AUCTIONITEM on AUCTIONITEM.ID = AUCTIONITEMRESERVATION.AUCTIONITEMID
left join dbo.AUCTIONITEMREVENUEPURCHASE on AUCTIONITEM.ID = AUCTIONITEMREVENUEPURCHASE.AUCTIONITEMID
where AUCTIONITEMREVENUEPURCHASE.REVENUEPURCHASEID is null
insert into @RETURNTABLE(
ID, FORMID, APPLICATIONCODE
)
select
AUCTIONITEMREVENUEPURCHASE.AUCTIONITEMID,
'366f6c42-2b66-4c1f-9aec-60e7ab5382f6',
12
from dbo.REVENUE
inner join @CONSTITUENTS CONSTITUENT on CONSTITUENT.ID = REVENUE.CONSTITUENTID
inner join dbo.AUCTIONITEMREVENUEPURCHASE on AUCTIONITEMREVENUEPURCHASE.REVENUEPURCHASEID = REVENUE.ID
where REVENUE.ID = @PAYMENTID
end
--Donor Challenge
if coalesce(@APPLICATIONCODE, 13) = 13
insert into @RETURNTABLE(
ID, FORMID, APPLICATIONCODE
)
select
REVENUE.ID,
'59704F65-893E-4DCE-A1B2-A6912ED72DD5',
13
from dbo.REVENUE
inner join @CONSTITUENTS CONSTITUENT on CONSTITUENT.ID = REVENUE.CONSTITUENTID
left join V_QUERY_REVENUE_PLEDGEBALANCE on V_QUERY_REVENUE_PLEDGEBALANCE.ID = REVENUE.ID
where REVENUE.TRANSACTIONTYPECODE = 8
and (
V_QUERY_REVENUE_PLEDGEBALANCE.BALANCE > 0
or (
@PAYMENTID is not null
and exists(
select 1
from dbo.INSTALLMENTSPLITPAYMENT
inner join dbo.FINANCIALTRANSACTIONLINEITEM as REVENUESPLIT on REVENUESPLIT.ID = INSTALLMENTSPLITPAYMENT.PAYMENTID
where INSTALLMENTSPLITPAYMENT.PLEDGEID = REVENUE.ID and REVENUESPLIT.DELETEDON is null
and REVENUESPLIT.FINANCIALTRANSACTIONID = @PAYMENTID
)
)
)
and exists(--Check site security
select 1
from dbo.UFN_SITEID_MAPFROM_REVENUEID(REVENUE.ID) as SITE
where (@ISADMIN = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[SITE].[SITEID] or (SITEID is null and [SITE].[SITEID] is null)))
)
--Pending gift -- add for FAF
if coalesce(@APPLICATIONCODE, 17) = 17
insert into @RETURNTABLE(
ID, FORMID, APPLICATIONCODE
)
select
REVENUE.ID,
'a6ac328e-d279-4f12-9429-8d2ccbe9afd3',
17
from dbo.REVENUE R
inner join dbo.FINANCIALTRANSACTION [REVENUE] on R.ID = [REVENUE].ID
inner join @CONSTITUENTS CONSTITUENT on CONSTITUENT.ID = R.CONSTITUENTID
left join dbo.REVENUEOFFLINEDONATION on REVENUEOFFLINEDONATION.ID = R.ID
left join dbo.ADDRESSBOOKFAF on REVENUEOFFLINEDONATION.ADDRESSBOOKFAFID = ADDRESSBOOKFAF.ID
left join V_QUERY_REVENUE_PLEDGEBALANCE on V_QUERY_REVENUE_PLEDGEBALANCE.ID = [REVENUE].ID
where [REVENUE].TYPECODE = 9
and (
V_QUERY_REVENUE_PLEDGEBALANCE.BALANCE > 0
or (
@PAYMENTID is not null
and exists(
select 1
from dbo.INSTALLMENTSPLITPAYMENT
inner join dbo.FINANCIALTRANSACTIONLINEITEM [REVENUESPLIT] on [REVENUESPLIT].ID = INSTALLMENTSPLITPAYMENT.PAYMENTID
where INSTALLMENTSPLITPAYMENT.PLEDGEID = [REVENUE].ID
and [REVENUESPLIT].FINANCIALTRANSACTIONID = @PAYMENTID
)
)
)
and exists(--Check site security
select 1
from dbo.UFN_SITEID_MAPFROM_REVENUEID([REVENUE].ID) as SITE
where (@ISADMIN = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[SITE].[SITEID] or (SITEID is null and [SITE].[SITEID] is null)))
)
--where REVENUE.TRANSACTIONTYPECODE = 9
select ID, FORMID, APPLIED, APPLICATIONCODE
from @RETURNTABLE
order by APPLICATIONCODE;
end