USP_DATAFORMTEMPLATE_ADD_CONSITUENTSPOUSE_2

The save procedure used by the add dataform template "Constituent Spouse Add Form 2".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@CONSTITUENTID uniqueidentifier IN Input parameter indicating the context ID for the record being added.
@RECIPROCALCONSTITUENTID uniqueidentifier IN Spouse
@RECIPROCALTYPECODEID uniqueidentifier IN Reciprocal relationship type
@RELATIONSHIPTYPECODEID uniqueidentifier IN Relationship type
@STARTDATE datetime IN Start date
@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
@SKIP_ADDING_SECURITYGROUPS bit IN Skip adding security groups
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@SKIP_ADDING_SITES bit IN Skip adding sites
@UPDATERELATIONSHIPID uniqueidentifier IN

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_CONSITUENTSPOUSE_2(
  @ID uniqueidentifier = null output,
  @CHANGEAGENTID uniqueidentifier = null,    
  @CONSTITUENTID uniqueidentifier,
  @RECIPROCALCONSTITUENTID uniqueidentifier = null,
  @RECIPROCALTYPECODEID uniqueidentifier,
  @RELATIONSHIPTYPECODEID uniqueidentifier,
  @STARTDATE datetime = null,
  @PRIMARYSOFTCREDITRELATIONSHIPEXISTS bit = 0,
  @PRIMARYSOFTCREDITMATCHFACTOR decimal(5,2) = 100,
  @RECIPROCALSOFTCREDITRELATIONSHIPEXISTS bit = 0,
  @RECIPROCALSOFTCREDITMATCHFACTOR decimal(5,2) = 100,
  @SKIP_ADDING_SECURITYGROUPS bit=0,
  @CURRENTAPPUSERID uniqueidentifier,
  @SKIP_ADDING_SITES bit = 0,
    @UPDATERELATIONSHIPID uniqueidentifier = null
)
as
  set nocount on;

  declare @CURRENTDATE datetime;

  if @ID is null
    set @ID = newid();

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

  set @CURRENTDATE = getdate();

  begin try                            

    declare @CONSTITUENTHASSPOUSE bit, @RECIRPOCALHASSPOUSE bit;
    declare @CONSTITUENTHOUSEHOLDID uniqueidentifier, @RECIPROCALHOUSEHOLDID uniqueidentifier;

    exec dbo.USP_DATAFORMTEMPLATE_VIEW_INDIVIDUALSPOUSEHOUSEHOLD @CONSTITUENTID, @HASSPOUSE=@CONSTITUENTHASSPOUSE output, @HOUSEHOLDID=@RECIPROCALHOUSEHOLDID output
    exec dbo.USP_DATAFORMTEMPLATE_VIEW_INDIVIDUALSPOUSEHOUSEHOLD @RECIPROCALCONSTITUENTID, @HASSPOUSE=@RECIRPOCALHASSPOUSE output, @HOUSEHOLDID=@CONSTITUENTHOUSEHOLDID output

    if @CONSTITUENTHASSPOUSE = 1
        raiserror('BBERR_RELATIONSHIPCONSTITUENTID_SPOUSEEXISTS',13,1);

    if @RECIRPOCALHASSPOUSE = 1
        raiserror('BBERR_RECIPROCALCONSTITUENTID_SPOUSEEXISTS',13,1); 

    if @CONSTITUENTHOUSEHOLDID is not null and @RECIPROCALHOUSEHOLDID is not null and @CONSTITUENTHOUSEHOLDID <> @RECIPROCALHOUSEHOLDID
        raiserror('BBERR_RECIPROCALCONSTITUENTID_INDIFFERENTHOUSEHOLDS',13,1);         

    if @UPDATERELATIONSHIPID is null
    begin
      declare @SETID uniqueidentifier = newid();

      insert into dbo.RELATIONSHIPSET
      (
        ID,
        ADDEDBYID,
        CHANGEDBYID,
        DATEADDED,
        DATECHANGED
      )
      values
      (
        @SETID,
        @CHANGEAGENTID,
        @CHANGEAGENTID,
        @CURRENTDATE,
        @CURRENTDATE
      );

      insert into dbo.RELATIONSHIP
      (
        ID,
        RELATIONSHIPCONSTITUENTID,
        RECIPROCALCONSTITUENTID,
        RELATIONSHIPTYPECODEID,
        RECIPROCALTYPECODEID,
        ISSPOUSE,
        STARTDATE,
        RELATIONSHIPSETID,
        ADDEDBYID,
        CHANGEDBYID,
        DATEADDED,
        DATECHANGED
      )
      values
      (
        @ID,
        @CONSTITUENTID,
        @RECIPROCALCONSTITUENTID,
        @RELATIONSHIPTYPECODEID,
        @RECIPROCALTYPECODEID,
        1,
        @STARTDATE,
        @SETID,
        @CHANGEAGENTID,
        @CHANGEAGENTID,
        @CURRENTDATE,
        @CURRENTDATE
      );
    end
    else
    begin
      update dbo.RELATIONSHIP
      set 
        RELATIONSHIPTYPECODEID = @RELATIONSHIPTYPECODEID
        RECIPROCALTYPECODEID = @RECIPROCALTYPECODEID
        ISSPOUSE = 1
        STARTDATE = @STARTDATE
        ENDDATE = null,
        CHANGEDBYID = @CHANGEAGENTID
        DATECHANGED = @CURRENTDATE
      where RELATIONSHIP.ID = @UPDATERELATIONSHIPID;

      set @ID = @UPDATERELATIONSHIPID;
    end

    exec dbo.USP_RELATIONSHIPS_MANAGELIFECHANGES @ID, @CONSTITUENTID, @RECIPROCALCONSTITUENTID, @CHANGEAGENTID;

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

    exec dbo.USP_SPOUSERELATIONSHIP_SETUPHOUSEHOLD @CONSTITUENTID, @RECIPROCALCONSTITUENTID
      1, @CHANGEAGENTID, @CURRENTDATE,
      @SKIP_ADDING_SECURITYGROUPS,@CURRENTAPPUSERID;

    declare @PRIMARYRECOGNITIONTYPECODEID uniqueidentifier 
    declare @RECIPROCALRECOGNITIONTYPECODEID uniqueidentifier

    select @PRIMARYSOFTCREDITRELATIONSHIPEXISTS = 1,
      @PRIMARYRECOGNITIONTYPECODEID=RRD.REVENUERECOGNITIONTYPECODEID,
      @PRIMARYSOFTCREDITMATCHFACTOR= RRD.MATCHFACTOR
    from dbo.RECOGNITIONRELATIONSHIPDEFAULT as RRD      
    where RRD.CONSTITUENTTYPECODE=0 and RRD.RELATIONSHIPTYPECODEID=@RELATIONSHIPTYPECODEID

    select @RECIPROCALSOFTCREDITRELATIONSHIPEXISTS = 1,
      @RECIPROCALRECOGNITIONTYPECODEID=RRD.REVENUERECOGNITIONTYPECODEID,
      @RECIPROCALSOFTCREDITMATCHFACTOR= RRD.MATCHFACTOR
    from dbo.RECOGNITIONRELATIONSHIPDEFAULT as RRD      
    where RRD.CONSTITUENTTYPECODE=0 and RRD.RELATIONSHIPTYPECODEID=@RECIPROCALTYPECODEID

    exec dbo.USP_RECOGNITIONDEFAULTSUPDATE @CONSTITUENTID, @RECIPROCALCONSTITUENTID,
      @STARTDATE, NULL, @PRIMARYSOFTCREDITRELATIONSHIPEXISTS, @PRIMARYSOFTCREDITMATCHFACTOR,
      @PRIMARYRECOGNITIONTYPECODEID, @RECIPROCALSOFTCREDITRELATIONSHIPEXISTS
      @RECIPROCALSOFTCREDITMATCHFACTOR, @RECIPROCALRECOGNITIONTYPECODEID, @CHANGEAGENTID, 0;

  end try

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

  return 0;