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;