UFN_STANDINGORDERSIMPORTPROCESS_GETCOMMITMENTS
Retrieves commitments for constituent with imported payment information pre-filled.
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CONSTITUENTID | uniqueidentifier | IN | |
@REVENUEID | uniqueidentifier | IN | |
@APPLICATIONAMOUNT | money | IN |
Definition
Copy
CREATE function dbo.UFN_STANDINGORDERSIMPORTPROCESS_GETCOMMITMENTS
(
@CONSTITUENTID uniqueidentifier,
@REVENUEID uniqueidentifier,
@APPLICATIONAMOUNT money
)
returns @retval table
(
ID uniqueidentifier,
FORMID uniqueidentifier,
APPLICATIONCODE tinyint,
APPLIED money
)
as
begin
declare @constits as table(ID uniqueidentifier);
--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 @constits(ID)
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))
--Pledge
insert into @retval(ID, FORMID, APPLICATIONCODE)
select
REVENUE.ID,
'6C4958A9-7A6C-4C23-A1BB-8EA0CFA267B4',
2
from dbo.REVENUE
inner join @constits C on C.ID = REVENUE.CONSTITUENTID
inner join dbo.REVENUESCHEDULE on REVENUESCHEDULE.ID = REVENUE.ID
where REVENUE.TRANSACTIONTYPECODE = 1 and
dbo.UFN_PLEDGE_GETBALANCE(REVENUE.ID) > 0
and (--Check site security
select count(*)
from dbo.UFN_SITEID_MAPFROM_REVENUEID(REVENUE.ID) as SITE
/*#SITEEXTENSION*/
) > 0
--RG
insert into @retval(ID, FORMID, APPLICATIONCODE)
select
REVENUE.ID,
'84D79558-F2BC-449C-A806-EA29AC9B4983',
3
from dbo.REVENUE
inner join @constits C on C.ID = REVENUE.CONSTITUENTID
inner join dbo.REVENUESCHEDULE on REVENUE.ID = REVENUESCHEDULE.ID
where REVENUE.TRANSACTIONTYPECODE = 2 --Recurring Gift
and REVENUESCHEDULE.STATUSCODE = 0 --Active
and REVENUESCHEDULE.ISPENDING = 0 --Isn't pending
and REVENUE.AMOUNT > 0 --Has Value
and (--Check site security
select count(*)
from dbo.UFN_SITEID_MAPFROM_REVENUEID(REVENUE.ID) as SITE
/*#SITEEXTENSION*/
) > 0
update @retval
set APPLIED = (
case
when (ID = @REVENUEID) then @APPLICATIONAMOUNT
else 0
end
);
return;
end