UFN_RECOGNITIONDEFAULTS_GETBETWEENTWOCONSTITUENTS

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@CONSTITUENTONEID uniqueidentifier IN
@CONSTITUENTTWOID uniqueidentifier IN

Definition

Copy


            create function dbo.UFN_RECOGNITIONDEFAULTS_GETBETWEENTWOCONSTITUENTS
            (
                @CONSTITUENTONEID uniqueidentifier,
                @CONSTITUENTTWOID uniqueidentifier
            )
            returns @RECOGNITIONDEFAULT table 
            (
                SOURCECONSTITUENTID uniqueidentifier,
                RECIPIENTCONSTITUENTID uniqueidentifier,
                MATCHFACTOR decimal(5, 2),
                REVENUERECOGNITIONTYPECODEID uniqueidentifier,
                ARESETTHROUGHMEMBERDEFAULTINGALLOTHERMEMBERS bit
            )
            with execute as caller
            as
            begin
                declare    @SOURCETORECIPIENTMATCHFACTOR decimal(5, 2), 
                        @SOURCETORECIPIENTREVENUERECOGNITIONTYPECODEID uniqueidentifier, 
                        @SOURCETORECIPIENTARESETTHROUGHMEMBERDEFAULTINGALLOTHERMEMBERS bit,
                        @SOURCETORECIPIENTPREVENTRECOGNITIONDEFAULTS bit,
                        @RECIPIENTTOSOURCEMATCHFACTOR decimal(5, 2), 
                        @RECIPIENTTOSOURCEREVENUERECOGNITIONTYPECODEID uniqueidentifier,
                        @RECIPIENTTOSOURCEARESETTHROUGHMEMBERDEFAULTINGALLOTHERMEMBERS bit,
                        @RECIPIENTTOSOURCEPREVENTRECOGNITIONDEFAULTS bit

                -- Check to see if there is a record setting up a recognition default just the two constituents

                select
                    @SOURCETORECIPIENTMATCHFACTOR = MATCHFACTOR,
                    @SOURCETORECIPIENTREVENUERECOGNITIONTYPECODEID = REVENUERECOGNITIONTYPECODEID,
                    @SOURCETORECIPIENTPREVENTRECOGNITIONDEFAULTS = PREVENTRECOGNITIONSDEFAULTING
                from dbo.REVENUERECOGNITIONDEFAULT
                where
                    SOURCECONSTITUENTID = @CONSTITUENTONEID and
                    RECIPIENTCONSTITUENTID = @CONSTITUENTTWOID

                select
                    @RECIPIENTTOSOURCEMATCHFACTOR = MATCHFACTOR,
                    @RECIPIENTTOSOURCEREVENUERECOGNITIONTYPECODEID = REVENUERECOGNITIONTYPECODEID,
                    @RECIPIENTTOSOURCEPREVENTRECOGNITIONDEFAULTS = PREVENTRECOGNITIONSDEFAULTING
                from dbo.REVENUERECOGNITIONDEFAULT
                where
                    SOURCECONSTITUENTID = @CONSTITUENTTWOID and
                    RECIPIENTCONSTITUENTID = @CONSTITUENTONEID

                if @SOURCETORECIPIENTMATCHFACTOR is null or @RECIPIENTTOSOURCEMATCHFACTOR is null
                begin
                    -- If the two constituents are members of the same household and that same household recognizes all members

                    -- for any member's revenue, then the two both have recognition defaults setup and the percent is 100%

                    declare @HOUSEHOLDID uniqueidentifier
                    select 
                        @HOUSEHOLDID = GM1.GROUPID 
                    from dbo.GROUPMEMBER GM1
                    inner join dbo.GROUPMEMBER GM2 on GM1.GROUPID = GM2.GROUPID
                    inner join dbo.GROUPDATA GD on GM1.GROUPID = GD.ID
                    where
                        GD.GROUPTYPECODE = 0 and
                        GM1.MEMBERID = @CONSTITUENTONEID and
                        GM2.MEMBERID = @CONSTITUENTTWOID

                    if @HOUSEHOLDID is not null
                    begin
                        declare @MEMBERRECOGNIZEOTHERMEMBERSCODE tinyint
                        set @MEMBERRECOGNIZEOTHERMEMBERSCODE = dbo.UFN_HOUSEHOLD_GETMEMBERRECOGNIZEOTHERMEMBERSSETTING(@HOUSEHOLDID)

                        if @MEMBERRECOGNIZEOTHERMEMBERSCODE = 1 -- All other members

                        begin
                            if @SOURCETORECIPIENTMATCHFACTOR is null
                            begin
                                set @SOURCETORECIPIENTMATCHFACTOR = 100
                                set @SOURCETORECIPIENTARESETTHROUGHMEMBERDEFAULTINGALLOTHERMEMBERS = 1
                            end

                            if @RECIPIENTTOSOURCEMATCHFACTOR is null
                            begin
                                set @RECIPIENTTOSOURCEMATCHFACTOR = 100
                                set @RECIPIENTTOSOURCEARESETTHROUGHMEMBERDEFAULTINGALLOTHERMEMBERS = 1
                            end
                        end
                    end
                end

                insert into @RECOGNITIONDEFAULT
                (
                    SOURCECONSTITUENTID,
                    RECIPIENTCONSTITUENTID,
                    MATCHFACTOR,
                    REVENUERECOGNITIONTYPECODEID,
                    ARESETTHROUGHMEMBERDEFAULTINGALLOTHERMEMBERS
                )
                select
                    @CONSTITUENTONEID,
                    @CONSTITUENTTWOID,
                    @SOURCETORECIPIENTMATCHFACTOR,
                    @SOURCETORECIPIENTREVENUERECOGNITIONTYPECODEID,
                    coalesce(@SOURCETORECIPIENTARESETTHROUGHMEMBERDEFAULTINGALLOTHERMEMBERS, 0)
                where
                    @SOURCETORECIPIENTMATCHFACTOR is not null and 
                    coalesce(@SOURCETORECIPIENTPREVENTRECOGNITIONDEFAULTS, 0) = 0

                union all

                select
                    @CONSTITUENTTWOID,
                    @CONSTITUENTONEID,
                    @RECIPIENTTOSOURCEMATCHFACTOR,
                    @RECIPIENTTOSOURCEREVENUERECOGNITIONTYPECODEID,
                    coalesce(@RECIPIENTTOSOURCEARESETTHROUGHMEMBERDEFAULTINGALLOTHERMEMBERS, 0)
                where
                    @RECIPIENTTOSOURCEMATCHFACTOR is not null and 
                    coalesce(@RECIPIENTTOSOURCEPREVENTRECOGNITIONDEFAULTS, 0) = 0

                return
            end