UFN_CAMPAIGNPRIORITY_GETTOTALRECEIVEDINCURRENCY_FORCAMPAIGN
Returns total revenue received for a campaign priority converting amounts to the specified currency.
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@HIERARCHYPATH | hierarchyid | IN | |
@PRIORITYID | uniqueidentifier | IN | |
@STARTDATE | datetime | IN | |
@ENDDATE | datetime | IN | |
@CURRENCYID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.UFN_CAMPAIGNPRIORITY_GETTOTALRECEIVEDINCURRENCY_FORCAMPAIGN(
@HIERARCHYPATH hierarchyid,
@PRIORITYID uniqueidentifier,
@STARTDATE datetime = null,
@ENDDATE datetime = null,
@CURRENCYID uniqueidentifier = null
) returns table as
return
(
with CAMPAIGNPRIORITY_REVENUESPLIT_CTE as (
select
distinct REVENUESPLITCAMPAIGN.REVENUESPLITID
from
dbo.REVENUESPLITCAMPAIGN
inner join
dbo.CAMPAIGN on REVENUESPLITCAMPAIGN.CAMPAIGNID = CAMPAIGN.ID
inner join
CAMPAIGNSUBPRIORITY on REVENUESPLITCAMPAIGN.CAMPAIGNSUBPRIORITYID = CAMPAIGNSUBPRIORITY.ID
where
CAMPAIGN.HIERARCHYPATH.IsDescendantOf(@HIERARCHYPATH) = 1
and
CAMPAIGNSUBPRIORITY.CAMPAIGNPRIORITYID = @PRIORITYID
)
select
coalesce(sum(dbo.UFN_REVENUESPLIT_GETAMOUNTINCURRENCY(REVENUESPLIT.ID, @CURRENCYID)), 0) TOTALRECEIVED
from
dbo.REVENUESPLIT
inner join
CAMPAIGNPRIORITY_REVENUESPLIT_CTE on REVENUESPLIT.ID = CAMPAIGNPRIORITY_REVENUESPLIT_CTE.REVENUESPLITID
left outer join
dbo.REVENUE on REVENUESPLIT.REVENUEID = REVENUE.ID
where
(@STARTDATE <= REVENUE.DATE or @STARTDATE is null)
and
(REVENUE.DATE <= @ENDDATE or @ENDDATE is null)
and
REVENUE.TRANSACTIONTYPECODE = 0
and
REVENUESPLIT.APPLICATIONCODE in (0, 1, 5, 6, 7, 3, 10, 13)
and
(REVENUESPLIT.APPLICATIONCODE not in (10, 1) or REVENUESPLIT.TYPECODE = 0)
)