USP_REVENUE_DEFAULTAPPEAL

Adds an appeal to a revenue transaction.

Parameters

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

Definition

Copy


            CREATE procedure dbo.USP_REVENUE_DEFAULTAPPEAL
            (
                @REVENUEID uniqueidentifier,
                @CHANGEAGENTID uniqueidentifier = null,
                @CHANGEDATE datetime = null
            )
            as
                set nocount on

        declare @APPEALID uniqueidentifier = null;    
                declare @APPLICATIONCODE tinyint;
                declare @COUNT int =0;

                if @CHANGEAGENTID is null
                    exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output

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

        --One and only one application is applied.

                select 
                    @COUNT = count(ID)
                from dbo.UFN_REVENUE_ALLAPPLICATIONS(@REVENUEID);

        if @COUNT = 1
        begin

          --Get the application code from the revenue split.

          select @APPLICATIONCODE = APPLICATIONCODE
          from dbo.REVENUESPLIT
          where REVENUEID = @REVENUEID

          if @APPLICATIONCODE=3 -- recurring gift

          select @APPEALID = RGREVENUE.APPEALID 
                  from dbo.REVENUESPLIT
                  inner join dbo.RECURRINGGIFTACTIVITY
                      on REVENUESPLIT.ID = RECURRINGGIFTACTIVITY.PAYMENTREVENUEID
                  inner join dbo.REVENUE RGREVENUE
                      on RECURRINGGIFTACTIVITY.SOURCEREVENUEID = RGREVENUE.ID
                  where REVENUESPLIT.REVENUEID = @REVENUEID;

          if @APPLICATIONCODE=2 -- pledge

          select @APPEALID = RGREVENUE.APPEALID 
                from dbo.REVENUESPLIT
                inner join dbo.INSTALLMENTSPLITPAYMENT
                    on REVENUESPLIT.ID = INSTALLMENTSPLITPAYMENT.PAYMENTID
                inner join dbo.REVENUE RGREVENUE
                    on INSTALLMENTSPLITPAYMENT.PLEDGEID = RGREVENUE.ID
                where REVENUESPLIT.REVENUEID = @REVENUEID;

        end


        --If appeal found default if one is not present

        if @APPEALID is not null
                update dbo.REVENUE
                set APPEALID = @APPEALID,
                CHANGEDBYID = @CHANGEAGENTID,
                DATECHANGED = @CHANGEDATE
                from dbo.REVENUE
                where ID = @REVENUEID
        and APPEALID is null;