USP_RECURRINGGIFT_SETNEXTTRANSACTIONDATE

Updates the next transaction date for a recurring gift to the correct value.

Parameters

Parameter Parameter Type Mode Description
@REVENUEID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@CHANGEDATE datetime IN

Definition

Copy


CREATE procedure dbo.USP_RECURRINGGIFT_SETNEXTTRANSACTIONDATE 
(
    @REVENUEID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier = null,
    @CHANGEDATE datetime = null
)
as
begin
    if @CHANGEAGENTID is null  
        exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;

    if @CHANGEDATE is null
        set @CHANGEDATE = getdate();

    declare @NEXTTRANSACTIONDATE date;

    select 
        @NEXTTRANSACTIONDATE = RECURRINGGIFTINSTALLMENT.DATE
    from 
        dbo.RECURRINGGIFTINSTALLMENT
    where 
        RECURRINGGIFTINSTALLMENT.ID = dbo.UFN_RECURRINGGIFT_GETNEXTINSTALLMENT(@REVENUEID,null);

    if @NEXTTRANSACTIONDATE is not null
        update dbo.REVENUESCHEDULE
        set 
            REVENUESCHEDULE.NEXTTRANSACTIONDATE = @NEXTTRANSACTIONDATE,
            REVENUESCHEDULE.CHANGEDBYID = @CHANGEAGENTID,
            REVENUESCHEDULE.DATECHANGED = @CHANGEDATE,
            REVENUESCHEDULE.STATUSCODE = case STATUSCODE when 3 then 0 else STATUSCODE end --if completed then reset to active, otherwise keep at current status

        where 
            REVENUESCHEDULE.ID = @REVENUEID
            and (REVENUESCHEDULE.NEXTTRANSACTIONDATE <> @NEXTTRANSACTIONDATE or REVENUESCHEDULE.NEXTTRANSACTIONDATE is null)
            and REVENUESCHEDULE.STATUSCODE in (0,3,5);
end