UFN_HOUSEHOLDRECOGNITIONS_GETHOUSEHOLDSPECIFIEDMEMBERS
Returns all members of a household that should be recognized when a revenue entry is created for their household.
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SOURCECONSTITUENTID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.UFN_HOUSEHOLDRECOGNITIONS_GETHOUSEHOLDSPECIFIEDMEMBERS
(
@SOURCECONSTITUENTID uniqueidentifier
)
returns @specifiedmembers table
(
ID uniqueidentifier,
RECIPIENTCONSTITUENTID uniqueidentifier,
MATCHFACTOR decimal(5, 2),
REVENUERECOGNITIONTYPECODEID uniqueidentifier
)
as
begin
declare @CURRENTDATEEARLIESTTIME date;
set @CURRENTDATEEARLIESTTIME = getdate();
-- Return constituents that have recognition matching setup with the household and are members.
insert into @specifiedmembers
(
ID,
RECIPIENTCONSTITUENTID,
MATCHFACTOR,
REVENUERECOGNITIONTYPECODEID
)
select
RD.ID,
RD.RECIPIENTCONSTITUENTID,
RD.MATCHFACTOR,
RD.REVENUERECOGNITIONTYPECODEID
from dbo.REVENUERECOGNITIONDEFAULT RD
inner join dbo.GROUPMEMBER GM on RD.SOURCECONSTITUENTID = GM.GROUPID and RD.RECIPIENTCONSTITUENTID = GM.MEMBERID
inner join dbo.CONSTITUENT C on GM.MEMBERID = C.ID
left join dbo.GROUPMEMBERDATERANGE GMDR on GM.ID = GMDR.GROUPMEMBERID
where
RD.SOURCECONSTITUENTID = @SOURCECONSTITUENTID
-- the GMDR.DATETO is set to the earliest time on that day, so use a strictly greater than in checks using current day
and ((GMDR.DATEFROM is null and (GMDR.DATETO is null or GMDR.DATETO > @CURRENTDATEEARLIESTTIME))
or (GMDR.DATETO is null and (GMDR.DATEFROM is null or GMDR.DATEFROM <= @CURRENTDATEEARLIESTTIME))
or (GMDR.DATEFROM <= @CURRENTDATEEARLIESTTIME and GMDR.DATETO > @CURRENTDATEEARLIESTTIME)) and
-- Exclude records with PREVENTRECOGNITIONSDEFAULTING set to true
-- since that acts as flag to indicate the recognition default
-- no longer exists
PREVENTRECOGNITIONSDEFAULTING = 0
order by C.KEYNAME, C.FIRSTNAME
return
end