USP_DATAFORMTEMPLATE_EDIT_SPONSORSHIPREASSIGN_4

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@REVENUECONSTITUENTID uniqueidentifier IN
@SPONSORSHIPCONSTITUENTID uniqueidentifier IN
@SPONSORSHIPREASONID uniqueidentifier IN
@AMOUNT money IN
@PAYMENTMETHODCODE tinyint IN
@REFERENCEDATE UDT_FUZZYDATE IN
@REFERENCENUMBER nvarchar(20) IN
@CARDHOLDERNAME nvarchar(255) IN
@CREDITCARDNUMBER nvarchar(20) IN
@CREDITTYPECODEID uniqueidentifier IN
@EXPIRESON UDT_FUZZYDATE IN
@CONSTITUENTACCOUNTID uniqueidentifier IN
@FREQUENCYCODE tinyint IN
@REVENUESCHEDULEENDDATE datetime IN
@REVENUESCHEDULESTARTDATE datetime IN
@AUTOPAY bit IN
@CREDITCARDTOKEN uniqueidentifier IN
@GIFTRECIPIENT bit IN
@PLANNEDENDDATE date IN
@SENDREMINDER bit IN
@FINDERNUMBER bigint IN
@SOURCECODE nvarchar(50) IN
@APPEALID uniqueidentifier IN
@MAILINGID uniqueidentifier IN
@CHANNELCODEID uniqueidentifier IN
@REFERENCE nvarchar(255) IN
@CATEGORYCODEID uniqueidentifier IN
@CARRYFORWARDPASTDUE bit IN
@CARRYFORWARDPASTDUEAMOUNT money IN
@EXPIRATIONREASONID uniqueidentifier IN
@TRANSACTIONCURRENCYID uniqueidentifier IN
@BASEEXCHANGERATEID uniqueidentifier IN
@EXCHANGERATE decimal(20, 8) IN
@CURRENTAPPUSERID uniqueidentifier IN
@DONOTACKNOWLEDGE bit IN
@SEPAMANDATEID uniqueidentifier IN
@OTHERPAYMENTMETHODCODEID uniqueidentifier IN

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_SPONSORSHIPREASSIGN_4 (
    @ID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier = null,
    @REVENUECONSTITUENTID uniqueidentifier,
    @SPONSORSHIPCONSTITUENTID uniqueidentifier,
    @SPONSORSHIPREASONID uniqueidentifier,
    @AMOUNT money,
    @PAYMENTMETHODCODE tinyint,
    @REFERENCEDATE dbo.UDT_FUZZYDATE,
    @REFERENCENUMBER nvarchar(20),
    @CARDHOLDERNAME nvarchar(255),
    @CREDITCARDNUMBER nvarchar(20),
    @CREDITTYPECODEID uniqueidentifier,
    @EXPIRESON dbo.UDT_FUZZYDATE,
    @CONSTITUENTACCOUNTID uniqueidentifier,
    @FREQUENCYCODE tinyint,
    @REVENUESCHEDULEENDDATE datetime,
    @REVENUESCHEDULESTARTDATE datetime,
    @AUTOPAY bit,
    @CREDITCARDTOKEN uniqueidentifier,
    @GIFTRECIPIENT bit,
    @PLANNEDENDDATE date,
    @SENDREMINDER bit,
    @FINDERNUMBER bigint,
    @SOURCECODE nvarchar(50),
    @APPEALID uniqueidentifier,
    @MAILINGID uniqueidentifier,
    @CHANNELCODEID uniqueidentifier,
    @REFERENCE nvarchar(255),
    @CATEGORYCODEID uniqueidentifier,
    @CARRYFORWARDPASTDUE bit,
    @CARRYFORWARDPASTDUEAMOUNT money,
    @EXPIRATIONREASONID uniqueidentifier,
    @TRANSACTIONCURRENCYID uniqueidentifier,
    @BASEEXCHANGERATEID uniqueidentifier,
    @EXCHANGERATE decimal(20,8),
    @CURRENTAPPUSERID uniqueidentifier,
    @DONOTACKNOWLEDGE bit,
    @SEPAMANDATEID uniqueidentifier,
    @OTHERPAYMENTMETHODCODEID uniqueidentifier
)
as

set nocount on;

declare @NEWID uniqueidentifier
set @NEWID = newid()

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

declare @CURRENTDATE datetime = getdate();

begin try
    declare @ORIGINALCONSTITUENTID uniqueidentifier
    declare @SPONSORSHIPOPPORTUNITYID uniqueidentifier
    declare @SPONSORSHIPPROGRAMID uniqueidentifier
    declare @SPONSORSHIPLOCATIONID uniqueidentifier
    declare @GENDERCODE tinyint
    declare @SPROPPAGERANGEID uniqueidentifier
    declare @ISHIVPOSITIVECODE tinyint
    declare @HASCONDITIONCODE tinyint
    declare @ISORPHANEDCODE tinyint
    declare @SPROPPPROJECTCATEGORYCODEID uniqueidentifier
    declare @ISSOLESPONSORSHIP bit
    declare @REASSIGNDATE date
    set @REASSIGNDATE = @CURRENTDATE;

    select @ORIGINALCONSTITUENTID = SPONSORSHIP.CONSTITUENTID,
           @SPONSORSHIPOPPORTUNITYID = SPONSORSHIP.SPONSORSHIPOPPORTUNITYID,
           @SPONSORSHIPPROGRAMID = SPONSORSHIP.SPONSORSHIPPROGRAMID,
           @SPONSORSHIPLOCATIONID = SPONSORSHIP.SPONSORSHIPLOCATIONID,
           @GENDERCODE = SPONSORSHIP.CHILDGENDERCODE,
           @SPROPPAGERANGEID = SPONSORSHIP.SPONSORSHIPOPPORTUNITYAGERANGEID,
           @ISHIVPOSITIVECODE = SPONSORSHIP.ISHIVPOSITIVECODE,
           @HASCONDITIONCODE = SPONSORSHIP.HASCONDITIONCODE,
           @ISORPHANEDCODE = SPONSORSHIP.ISORPHANEDCODE,
           @SPROPPPROJECTCATEGORYCODEID = SPONSORSHIP.SPROPPPROJECTCATEGORYCODEID,
           @ISSOLESPONSORSHIP = SPONSORSHIP.ISSOLESPONSORSHIP,
           @REASSIGNDATE = case when STARTDATE < @REASSIGNDATE then @REASSIGNDATE else STARTDATE end
    from dbo.SPONSORSHIP
    inner join dbo.SPONSORSHIPOPPORTUNITY on SPONSORSHIPOPPORTUNITY.ID = SPONSORSHIP.SPONSORSHIPOPPORTUNITYID
    where SPONSORSHIP.ID = @ID

    if @SPONSORSHIPCONSTITUENTID = @ORIGINALCONSTITUENTID
          raiserror('BBERR_REASSIGNEDTOSAMECONSTITUENT',13,1)

    -- reverify that financial sponsor is OK w/ this opportunity

    if dbo.UFN_SPONSORSHIP_VALIDOPPORTUNITYFORFINANCIALSPONSOR(@SPONSORSHIPOPPORTUNITYID,@REVENUECONSTITUENTID,@ID) = 0
    begin
        raiserror('BBERR_OPPORTUNITYINVALIDFORFINANCIALSPONSOR',13,1)
        return 1
    end

    -- In the case of sole sponsorship, preemptively close the original sponsorship to prevent

    -- sole sponsorship errors.

    if @ISSOLESPONSORSHIP = 1
        exec dbo.USP_SPONSORSHIP_INACTIVATE
            @ID,
            @REASSIGNDATE,
            0,
            @CHANGEAGENTID
    if @FINDERNUMBER is null
       set @FINDERNUMBER = 0

    -- Create a new commitment for the new sponsor.

    exec dbo.USP_SPONSORSHIP_CREATECOMMITMENT
        @NEWID,
        @CHANGEAGENTID,
        @REVENUECONSTITUENTID,
        @SPONSORSHIPCONSTITUENTID,
        @ID,
        @SPONSORSHIPREASONID,
        @SPONSORSHIPPROGRAMID,
        @SPONSORSHIPLOCATIONID,
        @GENDERCODE,
        @SPROPPAGERANGEID,
        @ISHIVPOSITIVECODE,
        @HASCONDITIONCODE,
        @ISORPHANEDCODE,
        @SPROPPPROJECTCATEGORYCODEID,
        @SPONSORSHIPOPPORTUNITYID,
        @ISSOLESPONSORSHIP,
        @REASSIGNDATE,
        @AMOUNT,
        @PAYMENTMETHODCODE,
        @REFERENCEDATE,
        @REFERENCENUMBER,
        @CARDHOLDERNAME,
        @CREDITCARDNUMBER,
        @CREDITTYPECODEID,
        @EXPIRESON,
        @CONSTITUENTACCOUNTID,
        @FREQUENCYCODE,
        @REVENUESCHEDULEENDDATE,
        @REVENUESCHEDULESTARTDATE,
        @AUTOPAY,
        @CREDITCARDTOKEN,
        @PLANNEDENDDATE,
        @SENDREMINDER,
        @FINDERNUMBER,
        @SOURCECODE,
        @APPEALID,
        @MAILINGID,
        @CHANNELCODEID,
        @REFERENCE,
        @CATEGORYCODEID,
        @EXPIRATIONREASONID,
        @TRANSACTIONCURRENCYID,
        @BASEEXCHANGERATEID,
        @EXCHANGERATE,
        @CURRENTAPPUSERID,
        default, --@BATCHNUMBER

        @DONOTACKNOWLEDGE,
        default, --@DATA xml

        default, --BASECURRENCYID

        @SEPAMANDATEID,
        @OTHERPAYMENTMETHODCODEID;

    if @CARRYFORWARDPASTDUE = 1
  begin
    declare @RGI_ID uniqueidentifier;
    declare @BASECURRENCYID uniqueidentifier;
    declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier;
    declare @NEW_TRANSACTIONAMOUNT money;
    declare @NEW_BASEAMOUNT money;
    declare @NEW_ORGANIZATIONAMOUNT money;

    select @RGI_ID = RGI.ID,
           @NEW_TRANSACTIONAMOUNT = RGI.TRANSACTIONAMOUNT + @CARRYFORWARDPASTDUEAMOUNT,
           @BASECURRENCYID = RGI.BASECURRENCYID,
           @ORGANIZATIONEXCHANGERATEID = RGI.ORGANIZATIONEXCHANGERATEID
    from dbo.SPONSORSHIP
    inner join dbo.REVENUESPLIT on REVENUESPLIT.ID = SPONSORSHIP.REVENUESPLITID
    inner join dbo.RECURRINGGIFTINSTALLMENT as RGI on RGI.REVENUEID = REVENUESPLIT.REVENUEID
    where SPONSORSHIP.ID = @NEWID
    and RGI.DATE = @REVENUESCHEDULESTARTDATE;

    exec dbo.USP_CURRENCY_GETCURRENCYVALUES
      @NEW_TRANSACTIONAMOUNT,
      null,
      @BASECURRENCYID,
      @BASEEXCHANGERATEID,
      @TRANSACTIONCURRENCYID,
      @NEW_BASEAMOUNT output,
      null,
      @NEW_ORGANIZATIONAMOUNT output,
      @ORGANIZATIONEXCHANGERATEID,
      0

    update dbo.RECURRINGGIFTINSTALLMENT
    set TRANSACTIONAMOUNT = @NEW_TRANSACTIONAMOUNT,
        AMOUNT = @NEW_BASEAMOUNT,
        ORGANIZATIONAMOUNT = @NEW_ORGANIZATIONAMOUNT,
        CHANGEDBYID = @CHANGEAGENTID,
        DATECHANGED = @CURRENTDATE
    where ID = @RGI_ID;
  end

    -- Close the original sponsor's commitment.

    exec dbo.USP_SPONSORSHIP_CLOSECOMMITMENT
        @ID,
        @REASSIGNDATE,
        5,
        @SPONSORSHIPREASONID,
        @NEWID,
        null,
        @CHANGEAGENTID

    -- on reassign, copy over link from the sponsorship recurring additional gift

    insert into dbo.SPONSORSHIPRECURRINGADDITIONALGIFT
        (
            ID,
            SPONSORSHIPID,
            REVENUEID,
            ADDEDBYID,
            CHANGEDBYID,
            DATEADDED,
            DATECHANGED
        )
        select newid(),
        @NEWID,
        REVENUEID,
        @CHANGEAGENTID,
        @CHANGEAGENTID,
        @CURRENTDATE,
        @CURRENTDATE
        from dbo.SPONSORSHIPRECURRINGADDITIONALGIFT
        where SPONSORSHIPID = @ID;
end try

begin catch
    exec dbo.USP_RAISE_ERROR
    return 1
end catch

return 0