USP_DATAFORMTEMPLATE_PRELOAD_ADD_INDTOINDFROMHOUSEHOLD_RELATIONSHIP

The load procedure used by the edit dataform template "Relationship Individual to Individual From Household Member Add Form"

Parameters

Parameter Parameter Type Mode Description
@RELATIONSHIPANDRECIPROCALCONSTITUENTIDS nvarchar(72) IN Input parameter indicating the context ID for the record being added.
@RECIPROCALCONSTITUENTID uniqueidentifier INOUT Related constituent
@RELATIONSHIPCONSTITUENTID uniqueidentifier INOUT Relationship constituent
@RELATIONSHIPTYPECODEID uniqueidentifier INOUT Relationship type
@RECIPROCALTYPECODEID uniqueidentifier INOUT Reciprocal relationship type
@CONSTITUENTNAME nvarchar(154) INOUT
@RECIPROCALCONSTITUENTNAME nvarchar(154) INOUT Related constituent
@STARTDATE datetime INOUT Start date
@ENDDATE datetime INOUT End date
@ISSPOUSE bit INOUT Is spouse?
@PRIMARYSOFTCREDITRELATIONSHIPEXISTS bit INOUT Apply to <Constituent> for revenue from <Reciprocal>
@PRIMARYSOFTCREDITMATCHFACTOR decimal(5, 2) INOUT Recognition credit match percent
@RECIPROCALSOFTCREDITRELATIONSHIPEXISTS bit INOUT Apply to <Reciprocal> for revenue from <Constituent>
@RECIPROCALSOFTCREDITMATCHFACTOR decimal(5, 2) INOUT Recognition credit match percent
@PRIMARYRECOGNITIONTYPECODEID uniqueidentifier INOUT Recognition credit type
@RECIPROCALRECOGNITIONTYPECODEID uniqueidentifier INOUT Recognition credit type
@RECOGNITIONSSETTHROUGHMEMBERDEFAULTALLOTHERMEMBERS bit INOUT Are recognition defaults set through household's members matching all other members

Definition

Copy


                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_PRELOAD_ADD_INDTOINDFROMHOUSEHOLD_RELATIONSHIP
                    (
                        @RELATIONSHIPANDRECIPROCALCONSTITUENTIDS nvarchar(72),
                        @RECIPROCALCONSTITUENTID uniqueidentifier = null output,
                        @RELATIONSHIPCONSTITUENTID uniqueidentifier = null output,                        
                        @RELATIONSHIPTYPECODEID uniqueidentifier = null output,
                        @RECIPROCALTYPECODEID uniqueidentifier = null output,
                        @CONSTITUENTNAME nvarchar(154) = null output,
                        @RECIPROCALCONSTITUENTNAME nvarchar(154) = null output,                                            
                        @STARTDATE datetime = null output,
                        @ENDDATE datetime = null output,
                        @ISSPOUSE bit = null output,
                        @PRIMARYSOFTCREDITRELATIONSHIPEXISTS bit = null output,
                        @PRIMARYSOFTCREDITMATCHFACTOR decimal(5,2) = null output,
                        @RECIPROCALSOFTCREDITRELATIONSHIPEXISTS bit = null output,                        
                        @RECIPROCALSOFTCREDITMATCHFACTOR decimal(5,2) = null output,
                        @PRIMARYRECOGNITIONTYPECODEID uniqueidentifier = null output,
                        @RECIPROCALRECOGNITIONTYPECODEID uniqueidentifier = null output,
                        @RECOGNITIONSSETTHROUGHMEMBERDEFAULTALLOTHERMEMBERS bit = null output
                    )
                    as
                        set nocount on;

                        set @RELATIONSHIPCONSTITUENTID = left(@RELATIONSHIPANDRECIPROCALCONSTITUENTIDS, 36);
                        set @RECIPROCALCONSTITUENTID = right(@RELATIONSHIPANDRECIPROCALCONSTITUENTIDS, 36);

                        select 
                            @CONSTITUENTNAME = CONSTITUENT.NAME,
                            @RELATIONSHIPTYPECODEID = null,
                            @RECIPROCALTYPECODEID = null,                             
                            @STARTDATE = null,
                            @ENDDATE = null,
                            @ISSPOUSE = 0
                        from 
                            dbo.CONSTITUENT 
                        where
                            CONSTITUENT.ID = @RELATIONSHIPCONSTITUENTID;

                        select
                            @RECIPROCALCONSTITUENTNAME = CONSTITUENT.NAME
                        from
                            dbo.CONSTITUENT
                        where
                            CONSTITUENT.ID = @RECIPROCALCONSTITUENTID;

                        set @PRIMARYSOFTCREDITRELATIONSHIPEXISTS = 0;
                        set @RECIPROCALSOFTCREDITRELATIONSHIPEXISTS = 0;

                        -- 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 revenue defaults setup and the matchfactor 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 = @RELATIONSHIPCONSTITUENTID and
                            GM2.MEMBERID = @RECIPROCALCONSTITUENTID

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

                            if @MEMBERRECOGNIZEOTHERMEMBERSCODE = 1
                            begin
                                set @PRIMARYSOFTCREDITRELATIONSHIPEXISTS = 1
                                set @RECIPROCALSOFTCREDITRELATIONSHIPEXISTS = 1
                                set @PRIMARYSOFTCREDITMATCHFACTOR = 100
                                set @RECIPROCALSOFTCREDITMATCHFACTOR = 100
                                set @RECOGNITIONSSETTHROUGHMEMBERDEFAULTALLOTHERMEMBERS = 1
                            end
                        end

                        if @RECOGNITIONSSETTHROUGHMEMBERDEFAULTALLOTHERMEMBERS is null
                        begin
                            select
                                @PRIMARYSOFTCREDITRELATIONSHIPEXISTS = 1,
                                @PRIMARYSOFTCREDITMATCHFACTOR = MATCHFACTOR,
                                @PRIMARYRECOGNITIONTYPECODEID = REVENUERECOGNITIONTYPECODEID
                            from dbo.REVENUERECOGNITIONDEFAULT
                            where
                                SOURCECONSTITUENTID = @RELATIONSHIPCONSTITUENTID and
                                RECIPIENTCONSTITUENTID = @RECIPROCALCONSTITUENTID

                            set @PRIMARYSOFTCREDITMATCHFACTOR = coalesce(@PRIMARYSOFTCREDITMATCHFACTOR, 100)

                            select
                                @RECIPROCALSOFTCREDITRELATIONSHIPEXISTS = 1,
                                @RECIPROCALSOFTCREDITMATCHFACTOR = MATCHFACTOR,
                                @RECIPROCALRECOGNITIONTYPECODEID = REVENUERECOGNITIONTYPECODEID
                            from dbo.REVENUERECOGNITIONDEFAULT
                            where
                                SOURCECONSTITUENTID = @RECIPROCALCONSTITUENTID and
                                RECIPIENTCONSTITUENTID = @RELATIONSHIPCONSTITUENTID

                            set @RECIPROCALSOFTCREDITMATCHFACTOR = coalesce(@RECIPROCALSOFTCREDITMATCHFACTOR, 100)
                        end

                        return 0;