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;