UFN_DESIGNATIONLEVEL_REVENUESPLITRECORDSINCURRENCY_2
Returns the revenue split records associated with a designation level (for fundraising reporting).
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@DESIGNATIONLEVELID | uniqueidentifier | IN | |
@STARTDATE | datetime | IN | |
@ENDDATE | datetime | IN | |
@CAMPAIGNHIERARCHYPATH | hierarchyid | IN | |
@APPEALOPTION | tinyint | IN | |
@CURRENCYID | uniqueidentifier | IN | |
@ORGANIZATIONCURRENCYID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.UFN_DESIGNATIONLEVEL_REVENUESPLITRECORDSINCURRENCY_2
(
@DESIGNATIONLEVELID uniqueidentifier,
@STARTDATE datetime,
@ENDDATE datetime,
@CAMPAIGNHIERARCHYPATH hierarchyid,
@APPEALOPTION tinyint,
@CURRENCYID uniqueidentifier,
@ORGANIZATIONCURRENCYID uniqueidentifier
)
returns table
as
return(
select
REVENUESPLIT.ID as [REVENUESPLITID],
case
when (@CURRENCYID is null or @CURRENCYID = @ORGANIZATIONCURRENCYID)
then
case when @APPEALOPTION =1 then REVENUESPLITBUSINESSUNIT.ORGANIZATIONAMOUNT
else REVENUESPLIT.ORGAMOUNT
end
when @CURRENCYID = REVENUESPLITBUSINESSUNIT.BASECURRENCYID
then
case when @APPEALOPTION =1 then REVENUESPLITBUSINESSUNIT.AMOUNT
else REVENUESPLIT.BASEAMOUNT
end
else
case when @APPEALOPTION =1 then dbo.UFN_REVENUESPLITBUSINESSUNIT_GETAMOUNTINCURRENCY(REVENUESPLITBUSINESSUNIT.ID,@CURRENCYID)
else dbo.UFN_REVENUESPLIT_GETAMOUNTINCURRENCY(REVENUESPLIT.ID,@CURRENCYID)
end
end as [REVENUESPLITAMOUNT],
REVENUE.ID as [REVENUEID],
DESIGNATION.ID as [DESIGNATIONID],
case
when not @APPEALOPTION in (0, 1, 2) then null
else
case @APPEALOPTION
when 0 then APPEAL.ID
when 1 then REVENUESPLITBUSINESSUNIT.BUSINESSUNITCODEID
when 2 then APPEAL.APPEALREPORT1CODEID
end
end as [APPEALID],
REVENUE.TYPECODE [TRANSACTIONTYPECODE],
RS_EXT.TYPECODE SPLITTYPECODE,
RS_EXT.APPLICATIONCODE
from dbo.FINANCIALTRANSACTIONLINEITEM [REVENUESPLIT] with (nolock)
inner join dbo.REVENUESPLIT_EXT RS_EXT on RS_EXT.ID = REVENUESPLIT.ID
inner join dbo.FINANCIALTRANSACTION [REVENUE] with (nolock) on REVENUE.ID = REVENUESPLIT.FINANCIALTRANSACTIONID
inner join dbo.REVENUE_EXT on REVENUE.ID = REVENUE_EXT.ID
inner join dbo.DESIGNATION with (nolock) on DESIGNATION.ID = RS_EXT.DESIGNATIONID
left join dbo.REVENUESPLITBUSINESSUNIT on REVENUESPLITBUSINESSUNIT.REVENUESPLITID= REVENUESPLIT.ID and @APPEALOPTION=1
left join dbo.REVENUESPLITCAMPAIGN on REVENUESPLITCAMPAIGN.REVENUESPLITID = REVENUESPLIT.ID
left join dbo.CAMPAIGN on CAMPAIGN.ID = REVENUESPLITCAMPAIGN.CAMPAIGNID
left join dbo.APPEAL on APPEAL.ID = REVENUE_EXT.APPEALID
where (@CAMPAIGNHIERARCHYPATH is null or (CAMPAIGN.HIERARCHYPATH.IsDescendantOf(@CAMPAIGNHIERARCHYPATH) = 1))
and (@STARTDATE is null or REVENUE.DATE >= @STARTDATE)
and (@ENDDATE is null or REVENUE.DATE <= @ENDDATE)
and (
@DESIGNATIONLEVELID is null or
(
DESIGNATION.DESIGNATIONLEVEL1ID = @DESIGNATIONLEVELID
or DESIGNATION.DESIGNATIONLEVEL2ID = @DESIGNATIONLEVELID
or DESIGNATION.DESIGNATIONLEVEL3ID = @DESIGNATIONLEVELID
or DESIGNATION.DESIGNATIONLEVEL4ID = @DESIGNATIONLEVELID
or DESIGNATION.DESIGNATIONLEVEL5ID = @DESIGNATIONLEVELID
)
)
and (
@APPEALOPTION is null or
(
((@APPEALOPTION = 0 and APPEAL.ID is not null) or @APPEALOPTION <> 0) and
((@APPEALOPTION = 1 and REVENUESPLITBUSINESSUNIT.BUSINESSUNITCODEID is not null) or @APPEALOPTION <> 1) and
((@APPEALOPTION = 2 and APPEAL.APPEALREPORT1CODEID is not null) or @APPEALOPTION <> 2)
)
)
)