UFN_GETRECOGNITIONDEFAULTSBETWEENMEMBERSBYSOURCE

Returns recognition defaults for the constituent where the constituent is the source and the recipient is a member of the household.

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@GROUPID uniqueidentifier IN
@SOURCECONSTITUENTID uniqueidentifier IN

Definition

Copy


            CREATE function dbo.UFN_GETRECOGNITIONDEFAULTSBETWEENMEMBERSBYSOURCE
            (
                @GROUPID uniqueidentifier,
                @SOURCECONSTITUENTID uniqueidentifier
            )
            returns @specifiedmembers table
            (
                ID uniqueidentifier,
                RECIPIENTCONSTITUENTID uniqueidentifier,
                MATCHFACTOR decimal(5, 2),
                REVENUERECOGNITIONTYPECODEID uniqueidentifier
            )
            as
            begin          
                declare @CURRENTDATEEARLIESTTIME date;
                set @CURRENTDATEEARLIESTTIME = getdate();

                insert into @specifiedmembers
                (
                    ID,
                    RECIPIENTCONSTITUENTID,
                    MATCHFACTOR,
                    REVENUERECOGNITIONTYPECODEID
                )
                select
                    RD.ID,
                    RD.RECIPIENTCONSTITUENTID,
                    RD.MATCHFACTOR,
                    RD.REVENUERECOGNITIONTYPECODEID
                from dbo.GROUPMEMBER GM
                inner join dbo.REVENUERECOGNITIONDEFAULT RD on GM.MEMBERID = RD.SOURCECONSTITUENTID
                left join dbo.GROUPMEMBERDATERANGE GMDR on GM.ID = GMDR.GROUPMEMBERID
                where 
                    GM.GROUPID = @GROUPID and
                    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))

                return
            end