USP_DATAFORMTEMPLATE_EDIT_RELATIONSHIP_INDTOIND_6

The save 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 indicating the ID of the record being edited.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@RELATIONSHIPTYPECODEID uniqueidentifier IN Relationship type
@RECIPROCALTYPECODEID uniqueidentifier IN Reciprocal relationship type
@STARTDATE datetime IN Start date
@ENDDATE datetime IN End date
@ISSPOUSE bit IN Is spouse?
@PRIMARYSOFTCREDITRELATIONSHIPEXISTS bit IN Apply to <Constituent> for revenue from <Reciprocal>
@PRIMARYSOFTCREDITMATCHFACTOR decimal(5, 2) IN Recognition credit match percent
@RECIPROCALSOFTCREDITRELATIONSHIPEXISTS bit IN Apply to <Reciprocal> for revenue from <Constituent>
@RECIPROCALSOFTCREDITMATCHFACTOR decimal(5, 2) IN Recognition credit match percent
@PRIMARYRECOGNITIONTYPECODEID uniqueidentifier IN Recognition credit type
@RECIPROCALRECOGNITIONTYPECODEID uniqueidentifier IN Recognition credit type
@COMMENTS nvarchar(max) IN Comments
@MEMBERSOFSAMEHOUSEHOLD bit IN These individuals are members of the same household
@COPYCONTACTINFO bit IN Copy primary contact information
@SKIP_ADDING_SECURITYGROUPS bit IN Skip adding security groups
@IS_NEW_SPOUSE bit IN
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_RELATIONSHIP_INDTOIND_6
(
  @ID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier = null,
  @RELATIONSHIPTYPECODEID uniqueidentifier,
  @RECIPROCALTYPECODEID uniqueidentifier,                                                
  @STARTDATE datetime,
  @ENDDATE datetime,
  @ISSPOUSE bit,
  @PRIMARYSOFTCREDITRELATIONSHIPEXISTS bit,
  @PRIMARYSOFTCREDITMATCHFACTOR decimal(5,2),
  @RECIPROCALSOFTCREDITRELATIONSHIPEXISTS bit,
  @RECIPROCALSOFTCREDITMATCHFACTOR decimal(5,2),
  @PRIMARYRECOGNITIONTYPECODEID uniqueidentifier,
  @RECIPROCALRECOGNITIONTYPECODEID uniqueidentifier,
  @COMMENTS nvarchar(max),
  @MEMBERSOFSAMEHOUSEHOLD bit,
  @COPYCONTACTINFO bit,
  @SKIP_ADDING_SECURITYGROUPS bit,
  @IS_NEW_SPOUSE bit,
  @CURRENTAPPUSERID uniqueidentifier = null
)
as
  set nocount on;

  declare @CURRENTDATE datetime
  set @CURRENTDATE = getdate()

  declare @CONSTITUENTID uniqueidentifier, @RECIPROCALCONSTITUENTID uniqueidentifier;
  select
    @CONSTITUENTID = RELATIONSHIPCONSTITUENTID,
    @RECIPROCALCONSTITUENTID = RECIPROCALCONSTITUENTID
  from dbo.RELATIONSHIP 
  where
    ID = @ID

  declare @RECOGNITIONSSETTHROUGHMEMBERDEFAULTALLOTHERMEMBERS bit = 0;

  begin try
    if @CHANGEAGENTID is null  
      exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;

    update
      dbo.RELATIONSHIP    
    set    
      RELATIONSHIPTYPECODEID = @RELATIONSHIPTYPECODEID,
      RECIPROCALTYPECODEID = @RECIPROCALTYPECODEID,
      STARTDATE = @STARTDATE,
      ENDDATE = @ENDDATE,
      ISSPOUSE = @ISSPOUSE
      COMMENTS = @COMMENTS,
      CHANGEDBYID = @CHANGEAGENTID,
      DATECHANGED = @CURRENTDATE
    where
      ID = @ID;


    -- If the two constituents are members of the same household, then update the household name

    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
      GM1.MEMBERID = @CONSTITUENTID 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 @RECOGNITIONSSETTHROUGHMEMBERDEFAULTALLOTHERMEMBERS = 1
        end
      end


    if @RECOGNITIONSSETTHROUGHMEMBERDEFAULTALLOTHERMEMBERS = 0 
      exec dbo.USP_RECOGNITIONDEFAULTSUPDATE @CONSTITUENTID, @RECIPROCALCONSTITUENTID,
        @STARTDATE, @ENDDATE, @PRIMARYSOFTCREDITRELATIONSHIPEXISTS, @PRIMARYSOFTCREDITMATCHFACTOR,
        @PRIMARYRECOGNITIONTYPECODEID, @RECIPROCALSOFTCREDITRELATIONSHIPEXISTS
        @RECIPROCALSOFTCREDITMATCHFACTOR, @RECIPROCALRECOGNITIONTYPECODEID, @CHANGEAGENTID;

    if @HOUSEHOLDID is not null
      update dbo.[CONSTITUENT]
        set
          [KEYNAME] = left(dbo.UFN_NAMEFORMAT_FROMID(dbo.GROUPDATA.NAMEFORMATFUNCTIONID, PM.MEMBERID), 100),
          [DATECHANGED] = @CURRENTDATE,
          [CHANGEDBYID] = @CHANGEAGENTID
        from dbo.GROUPDATA
          inner join dbo.GROUPMEMBER PM on dbo.GROUPDATA.ID = PM.GROUPID and PM.ISPRIMARY <> 0
        where [GROUPDATA].ID = @HOUSEHOLDID
          and [CONSTITUENT].ID = @HOUSEHOLDID
          and dbo.GROUPDATA.NAMEFORMATFUNCTIONID is not null;                                    

    exec dbo.USP_RELATIONSHIPCONFIGURATION_CONFIGURE 
      @CONSTITUENTID
      @RECIPROCALCONSTITUENTID
      @RELATIONSHIPTYPECODEID
      @RECIPROCALTYPECODEID
      @CHANGEAGENTID
      @CURRENTDATE

    if @ISSPOUSE = 1
      exec dbo.USP_SPOUSERELATIONSHIP_SETUPHOUSEHOLD @CONSTITUENTID, @RECIPROCALCONSTITUENTID
        @COPYCONTACTINFO, @CHANGEAGENTID, @CURRENTDATE,    @SKIP_ADDING_SECURITYGROUPS, @CHANGEAGENTID;

    if (@MEMBERSOFSAMEHOUSEHOLD = 1) and (@ISSPOUSE = 0)
      exec dbo.USP_RELATIONSHIP_SETUPHOUSEHOLD 
        @CONSTITUENTID
        @RECIPROCALCONSTITUENTID
        @COPYCONTACTINFO
        @CHANGEAGENTID
        @CURRENTDATE,    
        @SKIP_ADDING_SECURITYGROUPS,
        @CURRENTAPPUSERID,
        '753F5883-1BF9-428f-A7D2-866C5CDFAFC1'
        0,
        1,
        1,
        0;

    if @MEMBERSOFSAMEHOUSEHOLD = 1
    begin
      exec dbo.USP_RELATIONSHIPCONFIGURATION_CONFIGURE 
        @CONSTITUENTID
        @RECIPROCALCONSTITUENTID
        @RELATIONSHIPTYPECODEID
        @RECIPROCALTYPECODEID
        @CHANGEAGENTID
        @CURRENTDATE
    end

    if @IS_NEW_SPOUSE = 1 and @ISSPOUSE = 1
      exec dbo.USP_RELATIONSHIPS_MANAGELIFECHANGES @ID, @CONSTITUENTID, @RECIPROCALCONSTITUENTID, @CHANGEAGENTID

  end try
  begin catch
    exec dbo.USP_RAISE_ERROR;
    return 1;
  end catch

  return 0;