USP_REVENUE_DEFAULTMARKETINGINFORMATION
Adds an source code, effort, and 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_DEFAULTMARKETINGINFORMATION
(
@REVENUEID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@CHANGEDATE datetime = null
)
as
set nocount on
declare @SOURCECODE nvarchar(50) = '';
declare @MAILINGID uniqueidentifier = null;
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
@SOURCECODE = REVENUE.SOURCECODE,
@MAILINGID = REVENUE.MAILINGID,
@APPEALID = REVENUE.APPEALID
from
dbo.REVENUESPLIT
inner join dbo.RECURRINGGIFTACTIVITY on REVENUESPLIT.ID = RECURRINGGIFTACTIVITY.PAYMENTREVENUEID
inner join dbo.REVENUE on RECURRINGGIFTACTIVITY.SOURCEREVENUEID = REVENUE.ID
where
REVENUESPLIT.REVENUEID = @REVENUEID;
if @APPLICATIONCODE=2 -- pledge
select
@SOURCECODE = REVENUE.SOURCECODE,
@MAILINGID = REVENUE.MAILINGID,
@APPEALID = REVENUE.APPEALID
from dbo.REVENUESPLIT
inner join dbo.INSTALLMENTSPLITPAYMENT on REVENUESPLIT.ID = INSTALLMENTSPLITPAYMENT.PAYMENTID
inner join dbo.REVENUE on INSTALLMENTSPLITPAYMENT.PLEDGEID = REVENUE.ID
where
REVENUESPLIT.REVENUEID = @REVENUEID;
end
--If appeal found default if one is not present
if (@SOURCECODE is not null and @SOURCECODE <> '') or @MAILINGID is not null or @APPEALID is not null
update dbo.REVENUE
set
SOURCECODE = coalesce(nullif(SOURCECODE, ''), @SOURCECODE),
MAILINGID = coalesce(MAILINGID, @MAILINGID),
APPEALID = coalesce(APPEALID, @APPEALID),
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CHANGEDATE
from dbo.REVENUE
where
ID = @REVENUEID
and (
SOURCECODE is null
or SOURCECODE = ''
or MAILINGID is null
or APPEALID is null
)