USP_DATAFORMTEMPLATE_EDITLOAD_RELATIONSHIP_INDTOIND_3

The load procedure used by the edit dataform template "Relationship Individual to Individual Edit Form 3"

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 Related constituent
@RELATIONSHIPCONSTITUENTID uniqueidentifier INOUT
@RELATIONSHIPTYPECODEID uniqueidentifier INOUT Relationship type
@RECIPROCALTYPECODEID uniqueidentifier INOUT Reciprocal relationship type
@CONSTITUENTNAME nvarchar(700) INOUT
@RECIPROCALCONSTITUENTNAME nvarchar(700) 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
@TSLONG bigint INOUT Output parameter indicating the TSLONG value of the record being edited. This is used to manage multi-user concurrency issues when multiple users access the same record.
@COMMENTS nvarchar(max) INOUT Comments
@CONSTITUENTTYPE int INOUT
@PRIMARYISCONSTITUENT bit INOUT
@MEMBERSOFSAMEHOUSEHOLD bit INOUT These individuals are members of the same household
@COPYCONTACTINFO bit INOUT Copy primary contact information
@SKIP_ADDING_SECURITYGROUPS bit INOUT Skip adding security groups
@IS_NEW_SPOUSE bit INOUT

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_RELATIONSHIP_INDTOIND_3
(
  @ID uniqueidentifier,
  @DATALOADED bit = 0 output,
  @RECIPROCALCONSTITUENTID uniqueidentifier = null output,
  @RELATIONSHIPCONSTITUENTID uniqueidentifier = null output,                        
  @RELATIONSHIPTYPECODEID uniqueidentifier = null output,
  @RECIPROCALTYPECODEID uniqueidentifier = null output,
  @CONSTITUENTNAME nvarchar(700) = null output,
  @RECIPROCALCONSTITUENTNAME nvarchar(700) = 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,
  @TSLONG bigint = 0 output,
  @COMMENTS nvarchar(max) = null output,
  @CONSTITUENTTYPE int = null output,
  @PRIMARYISCONSTITUENT bit = null output,
  @MEMBERSOFSAMEHOUSEHOLD bit = null output,
  @COPYCONTACTINFO bit = null output,
  @SKIP_ADDING_SECURITYGROUPS bit = null output,
  @IS_NEW_SPOUSE bit = null output
)
as
  set nocount on;

  set @DATALOADED = 0;
  set @TSLONG = 0;

  set @MEMBERSOFSAMEHOUSEHOLD = 0;
  set @COPYCONTACTINFO = 0;
  set @SKIP_ADDING_SECURITYGROUPS = 0;

  select 
    @DATALOADED = 1,
    @CONSTITUENTNAME = CONSTIT1_NF.NAME,
    @RECIPROCALCONSTITUENTNAME = CONSTIT2_NF.NAME,
    @RECIPROCALCONSTITUENTID = RECIPROCALCONSTITUENTID,
    @RELATIONSHIPCONSTITUENTID = RELATIONSHIPCONSTITUENTID,
    @RELATIONSHIPTYPECODEID = RELATIONSHIPTYPECODEID,
    @RECIPROCALTYPECODEID = RECIPROCALTYPECODEID,                             
    @STARTDATE = STARTDATE,
    @ENDDATE = ENDDATE,
    @ISSPOUSE = ISSPOUSE,
    @TSLONG = RELATIONSHIP.TSLONG,
    @COMMENTS = RELATIONSHIP.COMMENTS,
    @PRIMARYISCONSTITUENT = CONSTIT1.ISCONSTITUENT
  from dbo.RELATIONSHIP 
  left join dbo.CONSTITUENT as CONSTIT1 on RELATIONSHIP.RELATIONSHIPCONSTITUENTID = CONSTIT1.ID
  left join dbo.CONSTITUENT as CONSTIT2 on RELATIONSHIP.RECIPROCALCONSTITUENTID = CONSTIT2.ID
  outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(CONSTIT1.ID) CONSTIT1_NF
  outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(CONSTIT2.ID) CONSTIT2_NF

  where 
    RELATIONSHIP.ID = @ID;

  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

        select
          @PRIMARYSOFTCREDITMATCHFACTOR = MATCHFACTOR,
          @PRIMARYRECOGNITIONTYPECODEID = REVENUERECOGNITIONTYPECODEID
        from dbo.UFN_CONSTITUENT_GETRECOGNITIONDEFAULTSBYSOURCE(@RELATIONSHIPCONSTITUENTID, 0, 1) RECDEF
        where RECDEF.RECIPIENTCONSTITUENTID = @RECIPROCALCONSTITUENTID

        select
  @RECIPROCALSOFTCREDITMATCHFACTOR = MATCHFACTOR,
          @RECIPROCALRECOGNITIONTYPECODEID = REVENUERECOGNITIONTYPECODEID
        from dbo.UFN_CONSTITUENT_GETRECOGNITIONDEFAULTSBYSOURCE(@RECIPROCALCONSTITUENTID, 0, 1) RECDEF
        where RECDEF.RECIPIENTCONSTITUENTID = @RELATIONSHIPCONSTITUENTID

      set @PRIMARYSOFTCREDITRELATIONSHIPEXISTS = 1
      set @RECIPROCALSOFTCREDITRELATIONSHIPEXISTS = 1
      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 and
      PREVENTRECOGNITIONSDEFAULTING = 0

    set @PRIMARYSOFTCREDITMATCHFACTOR = coalesce(@PRIMARYSOFTCREDITMATCHFACTOR, 100)

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

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

  return 0;