USP_RECOGNITIONDEFAULTSUPDATE

Updates recognition defaults between two constituents.

Parameters

Parameter Parameter Type Mode Description
@CONSTITUENTID uniqueidentifier IN
@RECIPROCALCONSTITUENTID uniqueidentifier IN
@STARTDATE datetime IN
@ENDDATE datetime IN
@PRIMARYRECOGNITIONDEFAULTEXISTS bit IN
@PRIMARYRECOGNITIONDEFAULTMATCHFACTOR decimal(5, 2) IN
@PRIMARYRECOGNITIONDEFAULTTYPECODEID uniqueidentifier IN
@RECIPROCALRECOGNITIONDEFAULTEXISTS bit IN
@RECIPROCALRECOGNITIONDEFAULTMATCHFACTOR decimal(5, 2) IN
@RECIPROCALRECOGNITIONDEFAULTTYPECODEID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@PREVENTDEFAULTING bit IN

Definition

Copy


CREATE procedure dbo.USP_RECOGNITIONDEFAULTSUPDATE
(
  @CONSTITUENTID uniqueidentifier,
  @RECIPROCALCONSTITUENTID uniqueidentifier,
  @STARTDATE datetime = null,
  @ENDDATE datetime = null,
  @PRIMARYRECOGNITIONDEFAULTEXISTS bit = 0,
  @PRIMARYRECOGNITIONDEFAULTMATCHFACTOR decimal(5,2) = 100,
  @PRIMARYRECOGNITIONDEFAULTTYPECODEID uniqueidentifier = null,
  @RECIPROCALRECOGNITIONDEFAULTEXISTS bit = 0,
  @RECIPROCALRECOGNITIONDEFAULTMATCHFACTOR decimal(5,2) = 100,
  @RECIPROCALRECOGNITIONDEFAULTTYPECODEID uniqueidentifier = null,
  @CHANGEAGENTID uniqueidentifier = null,
  @PREVENTDEFAULTING bit = 1
)
as
  set nocount on;

  declare @CURRENTDATE datetime = getdate();
  declare @ERRORMESSAGE nvarchar(4000);
  declare @INFOMESSAGE nvarchar(100);
  declare @ERRORSEVERITY int;
  declare @ERRORSTATE int;

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

  begin try

    begin try
      if @PRIMARYRECOGNITIONDEFAULTEXISTS = 1
      begin
        update
          dbo.REVENUERECOGNITIONDEFAULT
        set
          MATCHFACTOR = @PRIMARYRECOGNITIONDEFAULTMATCHFACTOR,
          REVENUERECOGNITIONTYPECODEID = @PRIMARYRECOGNITIONDEFAULTTYPECODEID,
          STARTDATE = @STARTDATE,
          ENDDATE = @ENDDATE,
          CHANGEDBYID = @CHANGEAGENTID,
          DATECHANGED = @CURRENTDATE,
          PREVENTRECOGNITIONSDEFAULTING = 0
        where
          SOURCECONSTITUENTID = @CONSTITUENTID and
          RECIPIENTCONSTITUENTID = @RECIPROCALCONSTITUENTID;

        if @@ROWCOUNT = 0
        begin
          insert into dbo.REVENUERECOGNITIONDEFAULT
          (
            SOURCECONSTITUENTID,
            RECIPIENTCONSTITUENTID,
            MATCHFACTOR,
            REVENUERECOGNITIONTYPECODEID,
            STARTDATE,
            ENDDATE,
            ADDEDBYID,
            CHANGEDBYID,
            DATEADDED,
            DATECHANGED
          )
          values
          (
            @CONSTITUENTID,
            @RECIPROCALCONSTITUENTID,
            @PRIMARYRECOGNITIONDEFAULTMATCHFACTOR,
            @PRIMARYRECOGNITIONDEFAULTTYPECODEID,
            @STARTDATE,
            @ENDDATE,
            @CHANGEAGENTID,
            @CHANGEAGENTID,
            @CURRENTDATE,
            @CURRENTDATE
          );
        end
      end
      else
      begin
        if @PREVENTDEFAULTING =1
          exec dbo.USP_CONSTITUENTRECOGNITIONDEFAULT_PREVENTDEFAULTING @ID = null, @SOURCECONSTITUENTID = @CONSTITUENTID,
            @RECIPIENTCONSTITUENTID = @RECIPROCALCONSTITUENTID, @CHANGEAGENTID = @CHANGEAGENTID;
      end

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

    begin try
      if @RECIPROCALRECOGNITIONDEFAULTEXISTS = 1
      begin
        update
          dbo.REVENUERECOGNITIONDEFAULT
        set
          MATCHFACTOR = @RECIPROCALRECOGNITIONDEFAULTMATCHFACTOR,
          REVENUERECOGNITIONTYPECODEID = @RECIPROCALRECOGNITIONDEFAULTTYPECODEID,
          STARTDATE = @STARTDATE,
          ENDDATE = @ENDDATE,
          CHANGEDBYID = @CHANGEAGENTID,
          DATECHANGED = @CURRENTDATE,
          PREVENTRECOGNITIONSDEFAULTING = 0
        where
          SOURCECONSTITUENTID = @RECIPROCALCONSTITUENTID and
          RECIPIENTCONSTITUENTID = @CONSTITUENTID;

        if @@ROWCOUNT = 0
        begin
          insert into dbo.REVENUERECOGNITIONDEFAULT
          (
            SOURCECONSTITUENTID,
            RECIPIENTCONSTITUENTID,
            MATCHFACTOR,
            REVENUERECOGNITIONTYPECODEID,
            STARTDATE,
            ENDDATE,
            ADDEDBYID,
            CHANGEDBYID,
            DATEADDED,
            DATECHANGED
          )
          values
          (
            @RECIPROCALCONSTITUENTID,
            @CONSTITUENTID,
            @RECIPROCALRECOGNITIONDEFAULTMATCHFACTOR,
            @RECIPROCALRECOGNITIONDEFAULTTYPECODEID,
            @STARTDATE,
            @ENDDATE,
            @CHANGEAGENTID,
            @CHANGEAGENTID,
            @CURRENTDATE,
            @CURRENTDATE
          );
        end
      end
      else
      begin
        if @PREVENTDEFAULTING =1
          exec dbo.USP_CONSTITUENTRECOGNITIONDEFAULT_PREVENTDEFAULTING @ID = null, @SOURCECONSTITUENTID = @RECIPROCALCONSTITUENTID,
            @RECIPIENTCONSTITUENTID = @CONSTITUENTID, @CHANGEAGENTID = @CHANGEAGENTID;
      end

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

    /*Check if either one of the constituents is a household and the other is a member or both are members of the 
      same household.  If either of those conditions are true, the household's recognition settings have been overridden
      and they should no longer use the global recognition settings.*/

    if @PRIMARYRECOGNITIONDEFAULTEXISTS = 1 or @RECIPROCALRECOGNITIONDEFAULTEXISTS = 1
      exec dbo.USP_HOUSEHOLDRECOGNITIONSETTINGS_OVERRIDEIFNEEDED @CONSTITUENTID, @RECIPROCALCONSTITUENTID, @CHANGEAGENTID;

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