USP_RECURRINGGIFT_ROLLBACK

Executes the "Transaction: Rollback" record operation.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN Input parameter indicating the ID of the record being updated.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the update.

Definition

Copy


                    create procedure dbo.USP_RECURRINGGIFT_ROLLBACK
                    (
                        @ID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier
                    )
                    as
                    set nocount on;

                    declare @CREATEDATE datetime;
                    declare @STARTDATE datetime;
                    declare @NEXTDATE datetime;
                    declare @CURRENTTRANSACTIONDATE datetime;
                    declare @SCHEDULEID uniqueidentifier;

                    set @CREATEDATE = getdate();

                    select top 1
                        @SCHEDULEID = REVENUESCHEDULE.ID,
                        @NEXTDATE = dbo.[UFN_REVENUE_GETPREVIOUSTRANSACTIONDATE_BYID_1_1](@ID, NEXTTRANSACTIONDATE),
                        @STARTDATE = STARTDATE,
                        @CURRENTTRANSACTIONDATE = REVENUESCHEDULE.NEXTTRANSACTIONDATE
                    from
                        dbo.REVENUESCHEDULE                        
                    where
                        REVENUESCHEDULE.ID = @ID;

                    if @NEXTDATE < @STARTDATE 
                        raiserror('Transactions cannot be rolled back prior to the start date.', 13, 1)

                    --log activity

                    insert into dbo.RecurringGiftActivity([TYPECODE], [SOURCEREVENUEID], [AMOUNT], [SCHEDULEDATE], [ADDEDBYID], [CHANGEDBYID], [DATEADDED], [DATECHANGED])
                    select 2, R.ID, R.AMOUNT, @CURRENTTRANSACTIONDATE, @CHANGEAGENTID, @CHANGEAGENTID, @CREATEDATE, @CREATEDATE    
                    from dbo.REVENUE R
                    where R.ID = @SCHEDULEID;

                    update dbo.REVENUESCHEDULE set
                        NEXTTRANSACTIONDATE = @NEXTDATE,
                        [CHANGEDBYID] = @CHANGEAGENTID,
                        DATECHANGED = getdate()
                    from
                        dbo.REVENUESCHEDULE
                    where
                        ID = @SCHEDULEID;

                    return 0;