USP_DATAFORMTEMPLATE_VIEW_RELATIONSHIP

The load procedure used by the view dataform template "Relationship View Form"

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter used to load the fields defined on the form.
@DATALOADED bit INOUT Output parameter indicating whether or not data was actually loaded.
@RECIPROCALCONSTITUENTID uniqueidentifier INOUT Reciprocal constituent ID
@RELATIONSHIPCONSTITUENTID uniqueidentifier INOUT Relationship constituent ID
@CONSTITUENTNAME nvarchar(700) INOUT Constituent name
@RECIPROCALCONSTITUENTNAME nvarchar(700) INOUT Related constituent
@RELATIONSHIPTYPECODE nvarchar(100) INOUT Constituent is the
@RECIPROCALTYPECODE nvarchar(100) INOUT Constituent is the
@STARTDATE datetime INOUT Start date
@ENDDATE datetime INOUT End date
@ISSPOUSE bit INOUT Spouse
@PRIMARYRECOGNITIONRELATIONSHIPEXISTS bit INOUT Apply to constituent from relationship
@PRIMARYRECOGNITIONTYPECODE nvarchar(100) INOUT Recognition credit type
@PRIMARYRECOGNITIONMATCHFACTOR decimal(5, 2) INOUT Recognition credit match percent
@RECIPROCALRECOGNITIONRELATIONSHIPEXISTS bit INOUT Apply to relationship from constituent
@RECIPROCALRECOGNITIONTYPECODE nvarchar(100) INOUT Recognition credit type
@RECIPROCALRECOGNITIONMATCHFACTOR decimal(5, 2) INOUT Recognition credit match percent
@RECOGNITIONSSETTHROUGHMEMBERDEFAULTALLOTHERMEMBERS bit INOUT Are recognition defaults set through household's members matching all other members
@ISCONTACT bit INOUT Contact
@ISPRIMARYCONTACT bit INOUT Primary contact
@CONTACTTYPECODE nvarchar(100) INOUT Contact type
@HASJOBINFO bit INOUT HASJOBINFO
@JOBTITLE nvarchar(100) INOUT Job title
@CAREERLEVELCODE nvarchar(100) INOUT Career level
@JOBCATEGORYCODE nvarchar(100) INOUT Category
@INDUSTRYCODE nvarchar(100) INOUT Industry
@JOBSTARTDATE date INOUT Start date
@JOBENDDATE date INOUT End date
@COMMENTS nvarchar(max) INOUT Comments

Definition

Copy


                CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_RELATIONSHIP
                (
                    @ID uniqueidentifier,
                    @DATALOADED bit = 0 output,
                    @RECIPROCALCONSTITUENTID uniqueidentifier = null output,
                    @RELATIONSHIPCONSTITUENTID uniqueidentifier = null output,    
                    @CONSTITUENTNAME nvarchar(700) = null output,
                    @RECIPROCALCONSTITUENTNAME nvarchar(700) = null output,
                    @RELATIONSHIPTYPECODE nvarchar(100) = null output,
                    @RECIPROCALTYPECODE nvarchar(100) = null output,    
                    @STARTDATE datetime = null output,
                    @ENDDATE datetime = null output,
                    --ind <> ind

                    @ISSPOUSE bit = null output,
                    @PRIMARYRECOGNITIONRELATIONSHIPEXISTS bit = null output,
                    @PRIMARYRECOGNITIONTYPECODE nvarchar(100) = null output,                        
                    @PRIMARYRECOGNITIONMATCHFACTOR decimal(5,2) = null output,
                    @RECIPROCALRECOGNITIONRELATIONSHIPEXISTS bit = null output,                        
                    @RECIPROCALRECOGNITIONTYPECODE nvarchar(100) = null output,
                    @RECIPROCALRECOGNITIONMATCHFACTOR decimal(5,2) = null output,
                    @RECOGNITIONSSETTHROUGHMEMBERDEFAULTALLOTHERMEMBERS bit = null output,
                    --ind <> org

                    @ISCONTACT bit = null output,
                    @ISPRIMARYCONTACT bit = null output,
                    @CONTACTTYPECODE nvarchar(100) = null output,
                    @HASJOBINFO bit = null output,
                    @JOBTITLE nvarchar(100) = null output,
                    @CAREERLEVELCODE nvarchar(100) = null output,
                    @JOBCATEGORYCODE nvarchar(100) = null output,
                    @INDUSTRYCODE nvarchar(100) = null output,
                    @JOBSTARTDATE date = null output,
                    @JOBENDDATE date = null output,

                    @COMMENTS nvarchar(max) = null output

                )
                as
                set nocount on;

                set @DATALOADED = 0;

                declare @RELATIONSHIPSETID uniqueidentifier;

                select 
                    @DATALOADED = 1,
                    @RELATIONSHIPSETID = RELATIONSHIP.RELATIONSHIPSETID,
                    @RECIPROCALCONSTITUENTID = RELATIONSHIP.RECIPROCALCONSTITUENTID,
                    @RELATIONSHIPCONSTITUENTID = RELATIONSHIP.RELATIONSHIPCONSTITUENTID,
                    @CONSTITUENTNAME = CONSTIT1_NF.NAME,
                    @RECIPROCALCONSTITUENTNAME = CONSTIT2_NF.NAME,
                    @RELATIONSHIPTYPECODE = dbo.UFN_RELATIONSHIPTYPECODE_GETDESCRIPTION(RELATIONSHIP.RELATIONSHIPTYPECODEID),
                    @RECIPROCALTYPECODE = dbo.UFN_RELATIONSHIPTYPECODE_GETDESCRIPTION(RELATIONSHIP.RECIPROCALTYPECODEID),
                    @STARTDATE = RELATIONSHIP.STARTDATE,
                    @ENDDATE = RELATIONSHIP.ENDDATE,
                    @ISSPOUSE = RELATIONSHIP.ISSPOUSE,
                    @ISCONTACT = RELATIONSHIP.ISCONTACT,
                    @ISPRIMARYCONTACT = RELATIONSHIP.ISPRIMARYCONTACT,
                    @CONTACTTYPECODE = dbo.UFN_CONTACTTYPECODE_GETDESCRIPTION(RELATIONSHIP.CONTACTTYPECODEID),
                    @COMMENTS = case when len(RELATIONSHIP.COMMENTS) > 256 then left(RELATIONSHIP.COMMENTS,256) + '...' else RELATIONSHIP.COMMENTS end
                from
                    dbo.RELATIONSHIP 
                    outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(RELATIONSHIP.RELATIONSHIPCONSTITUENTID) CONSTIT1_NF
                    outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(RELATIONSHIP.RECIPROCALCONSTITUENTID) CONSTIT2_NF
                where 
                    RELATIONSHIP.ID = @ID;            


                set @PRIMARYRECOGNITIONRELATIONSHIPEXISTS = 0;
                set @RECIPROCALRECOGNITIONRELATIONSHIPEXISTS = 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 @PRIMARYRECOGNITIONRELATIONSHIPEXISTS = 1
                                set @RECIPROCALRECOGNITIONRELATIONSHIPEXISTS = 1
                                set @PRIMARYRECOGNITIONMATCHFACTOR = 100
                                set @RECIPROCALRECOGNITIONMATCHFACTOR = 100
                                set @RECOGNITIONSSETTHROUGHMEMBERDEFAULTALLOTHERMEMBERS = 1
                            end
                    end

                if @RECOGNITIONSSETTHROUGHMEMBERDEFAULTALLOTHERMEMBERS is null
                    begin
                        select
                            @PRIMARYRECOGNITIONRELATIONSHIPEXISTS = 1,
                            @PRIMARYRECOGNITIONMATCHFACTOR = MATCHFACTOR,
                            @PRIMARYRECOGNITIONTYPECODE = dbo.UFN_REVENUERECOGNITIONTYPECODE_GETDESCRIPTION(REVENUERECOGNITIONTYPECODEID)
                        from 
                            dbo.REVENUERECOGNITIONDEFAULT
                        where
                            SOURCECONSTITUENTID = @RELATIONSHIPCONSTITUENTID 
                        and
                            RECIPIENTCONSTITUENTID = @RECIPROCALCONSTITUENTID

                        set @PRIMARYRECOGNITIONMATCHFACTOR = coalesce(@PRIMARYRECOGNITIONMATCHFACTOR, 100)

                        select
                            @RECIPROCALRECOGNITIONRELATIONSHIPEXISTS = 1,
                            @RECIPROCALRECOGNITIONMATCHFACTOR = MATCHFACTOR,
                            @RECIPROCALRECOGNITIONTYPECODE = dbo.UFN_REVENUERECOGNITIONTYPECODE_GETDESCRIPTION(REVENUERECOGNITIONTYPECODEID)
                        from 
                            dbo.REVENUERECOGNITIONDEFAULT
                        where
                            SOURCECONSTITUENTID = @RECIPROCALCONSTITUENTID 
                        and
                            RECIPIENTCONSTITUENTID = @RELATIONSHIPCONSTITUENTID

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

                    set @HASJOBINFO = 0;

                    select top 1
                        @HASJOBINFO = 1,
                        @JOBTITLE = JOBTITLE,
                        @CAREERLEVELCODE = dbo.UFN_CAREERLEVELCODE_GETDESCRIPTION(CAREERLEVELCODEID),
                        @JOBCATEGORYCODE = dbo.UFN_JOBCATEGORYCODE_GETDESCRIPTION(JOBCATEGORYCODEID),
                        @JOBSTARTDATE = STARTDATE,
                        @JOBENDDATE = ENDDATE
                    from RELATIONSHIPJOBINFO
                    where RELATIONSHIPSETID = @RELATIONSHIPSETID
                    order by RELATIONSHIPJOBINFO.STARTDATE desc;

                    --This field is only displayed for IND-ORG relations so just get the industry for either.

                    select
                        @INDUSTRYCODE = dbo.UFN_INDUSTRYCODE_GETDESCRIPTION(INDUSTRYCODEID)
                    from dbo.ORGANIZATIONDATA
                    where ID in (@RECIPROCALCONSTITUENTID, @RELATIONSHIPCONSTITUENTID);


                return 0;