USP_RECURRINGGIFT_SKIP
Executes the "Transaction: Skip" 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_SKIP
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier
)
as
set nocount on;
declare @CREATEDATE datetime
declare @ENDDATE datetime
declare @NEXTTRANSACTIONDATE datetime
declare @CURRENTTRANSACTIONDATE datetime
declare @STATUSCODE tinyint
declare @SCHEDULEID uniqueidentifier
set @CREATEDATE = getdate();
begin try
select top 1
@SCHEDULEID = RS.ID,
@CURRENTTRANSACTIONDATE = RS.NEXTTRANSACTIONDATE,
@NEXTTRANSACTIONDATE = dbo.[UFN_REVENUE_GETNEXTTRANSACTIONDATE_BYID_1_1](@ID, NEXTTRANSACTIONDATE),
@STATUSCODE = RS.STATUSCODE,
@ENDDATE = RS.ENDDATE
from dbo.REVENUE RD
inner join dbo.REVENUESCHEDULE RS on RD.ID = RS.ID
where RD.ID = @ID;
if @STATUSCODE = 3 --complete
raiserror('You cannot skip transactions on a completed recurring gift.', 13, 1)
if @NEXTTRANSACTIONDATE > @ENDDATE --close gift
set @STATUSCODE = 3; --complete
--log activity
insert into dbo.RECURRINGGIFTACTIVITY([TYPECODE], [SOURCEREVENUEID], [AMOUNT], [SCHEDULEDATE], [ADDEDBYID], [CHANGEDBYID], [DATEADDED], [DATECHANGED])
select 1, RD.ID, RD.AMOUNT, @CURRENTTRANSACTIONDATE, @CHANGEAGENTID, @CHANGEAGENTID, @CREATEDATE, @CREATEDATE
from dbo.REVENUE RD
where RD.ID = @SCHEDULEID;
--update date
update dbo.REVENUESCHEDULE set
NEXTTRANSACTIONDATE = @NEXTTRANSACTIONDATE,
STATUSCODE = @STATUSCODE,
[CHANGEDBYID] = @CHANGEAGENTID,
DATECHANGED = getdate()
from
dbo.REVENUESCHEDULE
where
ID = @SCHEDULEID;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;