USP_REVENUE_ADDCAMPAIGNS
Adds campaigns 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_ADDCAMPAIGNS
(
@REVENUEID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier,
@CHANGEDATE datetime
)
as
set nocount on
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
if @CHANGEDATE is null
set @CHANGEDATE = getdate()
insert into dbo.REVENUESPLITCAMPAIGN(REVENUESPLITID, CAMPAIGNID, CAMPAIGNSUBPRIORITYID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
select distinct
REVENUESPLIT.ID,
DESIGNATIONCAMPAIGN.CAMPAIGNID,
DESIGNATIONCAMPAIGN.CAMPAIGNSUBPRIORITYID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CHANGEDATE,
@CHANGEDATE
from dbo.FINANCIALTRANSACTION REVENUE
inner join dbo.FINANCIALTRANSACTIONLINEITEM REVENUESPLIT on REVENUE.ID = REVENUESPLIT.FINANCIALTRANSACTIONID
inner join dbo.REVENUESPLIT_EXT on REVENUESPLIT_EXT.ID = REVENUESPLIT.ID
cross apply dbo.UFN_DESIGNATION_GETCAMPAIGNSTODEFAULT(REVENUESPLIT_EXT.DESIGNATIONID, cast(REVENUE.DATE as datetime)) as DESIGNATIONCAMPAIGN
where
REVENUE.ID = @REVENUEID and REVENUE.TYPECODE in (0,1,2,3,4,5,6,7,8,9,15) and REVENUESPLIT.DELETEDON is null and REVENUESPLIT.TYPECODE != 1 and
-- For payments, only default for donations, other, and unapplied matching gift payments
(REVENUE.TYPECODE <> 0 or ((REVENUESPLIT_EXT.APPLICATIONCODE in (0,4) or (REVENUESPLIT_EXT.APPLICATIONCODE = 1 and REVENUESPLIT_EXT.TYPECODE = 0)) or
-- Verify if its a matching gift payment, it isn't applied
(REVENUESPLIT_EXT.APPLICATIONCODE = 7 and not exists (select 1 from dbo.INSTALLMENTSPLITPAYMENT where PAYMENTID = REVENUESPLIT.ID)))) and
-- Prevent duplicate campaigns from being added
not exists ( select 1
from dbo.REVENUESPLITCAMPAIGN
where
REVENUESPLITID = REVENUESPLIT.ID and
CAMPAIGNID = DESIGNATIONCAMPAIGN.CAMPAIGNID and
(CAMPAIGNSUBPRIORITYID = DESIGNATIONCAMPAIGN.CAMPAIGNSUBPRIORITYID or
(CAMPAIGNSUBPRIORITYID is null and DESIGNATIONCAMPAIGN.CAMPAIGNSUBPRIORITYID is null)))