USP_DATALIST_CONSTITUENTSRECOGNITIONDEFAULTSWITHHOUSEHOLDMEMBERS

Returns recognition defaults where the constituent is either the source or recipient constituent and the other constituent is a member of the household.

Parameters

Parameter Parameter Type Mode Description
@CONSTITUENTID uniqueidentifier IN Constituent
@GROUPID uniqueidentifier IN Household

Definition

Copy


                    CREATE procedure dbo.USP_DATALIST_CONSTITUENTSRECOGNITIONDEFAULTSWITHHOUSEHOLDMEMBERS
                    (
                        @CONSTITUENTID uniqueidentifier,
                        @GROUPID uniqueidentifier
                    )
                    as
                        set nocount on;

                        declare @CURRENTDATEEARLIESTTIME date;
                        set @CURRENTDATEEARLIESTTIME = getdate();

                        with GROUPMEMBERSCTE as
                        (
                            select
                                GM.MEMBERID 
                            from dbo.GROUPMEMBER GM
                            left join dbo.GROUPMEMBERDATERANGE GMDR on GM.ID = GMDR.GROUPMEMBERID
                            where GM.GROUPID = @GROUPID
                            -- 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))                                    
                        )
                        select
                            SOURCECONSTITUENTID,
                            RECIPIENTCONSTITUENTID,
                            MATCHFACTOR
                        from dbo.REVENUERECOGNITIONDEFAULT RM
                        left join dbo.CONSTITUENT SC on SC.ID = RM.SOURCECONSTITUENTID
                        left join dbo.CONSTITUENT RC on RC.ID = RM.RECIPIENTCONSTITUENTID
                        where
                            (SOURCECONSTITUENTID = @CONSTITUENTID and
                            RECIPIENTCONSTITUENTID in (select MEMBERID from GROUPMEMBERSCTE)) or
                            (SOURCECONSTITUENTID in (select MEMBERID from GROUPMEMBERSCTE) and
                            RECIPIENTCONSTITUENTID = @CONSTITUENTID)
                        order by SC.KEYNAME, SC.FIRSTNAME, RC.KEYNAME, RC.FIRSTNAME