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;