USP_DATAFORMTEMPLATE_EDITSAVE_SPONSORSHIPREACTIVATE

The save procedure used by the edit dataform template "Reactivate Sponsorship Edit Form".

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.
@REASONID uniqueidentifier IN Reason

Definition

Copy


CREATE procedure USP_DATAFORMTEMPLATE_EDITSAVE_SPONSORSHIPREACTIVATE
(    
  @ID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier = null,
  @REASONID uniqueidentifier
)
as
  declare @CURRENTDATE datetime
  set @CURRENTDATE = getdate()

  declare @STARTDATE date;

  declare @SPONSORSHIPOPPORTUNITYID uniqueidentifier
  declare @ISSOLESPONSORSHIP bit
  declare @SPONSORSHIPCONSTITUENTID uniqueidentifier
  declare @COMMITMENTID uniqueidentifier
  declare @REVENUEID uniqueidentifier
  declare @REVENUECONSTITUENTID uniqueidentifier;

  select @SPONSORSHIPOPPORTUNITYID = SPONSORSHIP.SPONSORSHIPOPPORTUNITYID,
         @ISSOLESPONSORSHIP = SPONSORSHIP.ISSOLESPONSORSHIP,
         @SPONSORSHIPCONSTITUENTID = SPONSORSHIP.CONSTITUENTID,
         @COMMITMENTID = SPONSORSHIP.SPONSORSHIPCOMMITMENTID,
         @REVENUEID = REVENUESPLIT.REVENUEID,
         @REVENUECONSTITUENTID = REVENUE.CONSTITUENTID,
         @STARTDATE= SPONSORSHIP.STARTDATE
  from dbo.SPONSORSHIP
  left outer join dbo.REVENUESPLIT on REVENUESPLIT.ID = SPONSORSHIP.REVENUESPLITID
  left outer join dbo.REVENUE on REVENUE.ID = REVENUESPLIT.REVENUEID
  where SPONSORSHIP.ID = @ID

  begin try
    -- reactivate the sponsorship

    update dbo.SPONSORSHIP
    set STATUSCODE = 1,
        ENDDATE = null,
        CHANGEDBYID = @CHANGEAGENTID,
        DATECHANGED = @CURRENTDATE
    where ID = @ID;

    -- reopen the recurring gift

    if @REVENUEID is not null
      exec dbo.USP_RECURRINGGIFT_EDITSTATUS
        @ID = @REVENUEID,
        @STATUSCODE = 0,
        @CHANGEAGENTID = @CHANGEAGENTID,
        @STATUSCHANGETYPECODE = 11;

    -- record the reactivation

    insert into dbo.SPONSORSHIPTRANSACTION
    (
      ID,
      SPONSORSHIPCOMMITMENTID,
      TRANSACTIONSEQUENCE,
      ACTIONCODE,
      SPONSORSHIPREASONID,
      CONTEXTSPONSORSHIPID,
      TARGETSPONSORSHIPID,
      TRANSACTIONDATE,
      GIFTFINANCIALSPONSORID,
      ADDEDBYID,
      CHANGEDBYID,
      DATEADDED,
      DATECHANGED
    )
    values
    (
      newid(),
      @COMMITMENTID,
      (select max(TRANSACTIONSEQUENCE)+1 from dbo.SPONSORSHIPTRANSACTION where SPONSORSHIPCOMMITMENTID = @COMMITMENTID),
      4,
      @REASONID,
      @ID,
      @ID,
      @CURRENTDATE,
      case when @REVENUECONSTITUENTID <> @SPONSORSHIPCONSTITUENTID then @REVENUECONSTITUENTID end,
      @CHANGEAGENTID,
      @CHANGEAGENTID,
      @CURRENTDATE,
      @CURRENTDATE
    )

    -- update the sponsor constituency

    if isnull(@REVENUECONSTITUENTID,@SPONSORSHIPCONSTITUENTID) = @SPONSORSHIPCONSTITUENTID
      exec dbo.USP_SPONSOR_MAKEACTIVE @SPONSORSHIPCONSTITUENTID, @STARTDATE, 0, @CHANGEAGENTID
    else
    begin
      exec dbo.USP_SPONSOR_MAKEACTIVE @SPONSORSHIPCONSTITUENTID, @STARTDATE, 1, @CHANGEAGENTID
      exec dbo.USP_SPONSOR_MAKEACTIVE @REVENUECONSTITUENTID, @STARTDATE, 2, @CHANGEAGENTID
    end

    -- Update and unlock the opportunity.

    exec dbo.USP_SPONSORSHIPOPPORTUNITY_SPONSORSHIPADDED
      @SPONSORSHIPOPPORTUNITYID,
      @ISSOLESPONSORSHIP,
      @CHANGEAGENTID,
      @CURRENTDATE,
      1

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

  return 0;