USP_REPORT_CAMPAIGNRECOGNITIONCREDITINCURRENCY
Returns data for the campaign recognition report.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CAMPAIGNID | uniqueidentifier | IN | |
@GROUPBY | tinyint | IN | |
@GOALID | uniqueidentifier | IN | |
@RECOGNITIONTYPEID | uniqueidentifier | IN | |
@CURRENCYCODE | tinyint | IN |
Definition
Copy
CREATE procedure dbo.USP_REPORT_CAMPAIGNRECOGNITIONCREDITINCURRENCY
(
@CAMPAIGNID uniqueidentifier,
@GROUPBY tinyint,
@GOALID uniqueidentifier,
@RECOGNITIONTYPEID uniqueidentifier,
@CURRENCYCODE tinyint = null --0 = Record base, (null, 1) = Organization
)
as begin
--Retrieve campaign goal information we'll need later
declare @STARTDATE datetime;
declare @ENDDATE datetime;
declare @CAMPAIGNGOAL money;
declare @PARAMGOALNAME varchar(100);
declare @CAMPAIGNHIERARCHYID uniqueidentifier;
select
@STARTDATE=STARTDATE,
@ENDDATE=ENDDATE,
@CAMPAIGNGOAL=AMOUNT,
@PARAMGOALNAME=NAME,
@CAMPAIGNHIERARCHYID = CAMPAIGNID
from CAMPAIGNHIERARCHYGOAL
where ID=@GOALID;
declare @ORGANIZATIONCURRENCYID uniqueidentifier= dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
declare @SELECTEDCURRENCYID uniqueidentifier;
if coalesce(@CURRENCYCODE, 1) = 1
begin
set @SELECTEDCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
end
--Retrieve the name of the type of recognition credits we are filtering by
declare @PARAMRECOGNITIONTYPENAME nvarchar(100)
if @RECOGNITIONTYPEID is null
begin
set @PARAMRECOGNITIONTYPENAME = 'All';
end
else
begin
select @PARAMRECOGNITIONTYPENAME = DESCRIPTION from REVENUERECOGNITIONTYPECODE where ID=@RECOGNITIONTYPEID;
end
declare @HIERARCHYPATH hierarchyid;
select @HIERARCHYPATH = CAMPAIGN.HIERARCHYPATH from dbo.CAMPAIGN where CAMPAIGN.ID = @CAMPAIGNID;
if coalesce(@GROUPBY, 0) = 0
begin
-- Handle no grouping
with CAMPAIGNGOAL_CTE as (
-- pull back campaign hierarchy goal amounts for the root campaign
select
CAMPAIGNHIERARCHYGOAL.CAMPAIGNID,
case @CURRENCYCODE
when 0 then CAMPAIGNHIERARCHYGOAL.AMOUNT
else CAMPAIGNHIERARCHYGOAL.ORGANIZATIONAMOUNT
end [AMOUNT]
from
dbo.CAMPAIGNHIERARCHYGOAL
where
CAMPAIGNHIERARCHYGOAL.ID = @GOALID
union all
-- pull back campaign goal amounts for subcampaigns
select
CAMPAIGNGOAL.CAMPAIGNID,
case @CURRENCYCODE
when 0 then CAMPAIGNGOAL.AMOUNT
else CAMPAIGNGOAL.ORGANIZATIONAMOUNT
end
from
dbo.CAMPAIGNGOAL
where
CAMPAIGNGOAL.CAMPAIGNHIERARCHYGOALID = @GOALID
)
select
CAMPAIGN.NAME CAMPAIGNNAME,
CAMPAIGNGOAL_CTE.AMOUNT [GOAL],
TOTALRECEIVED.TOTALRECEIVED,
TOTALEXPECTED.TOTALRECEIVED [TOTALEXPECTED],
TOTALRECEIVED.TOTALRECEIVED as [OVERALLTOTALRECEIVED],
TOTALEXPECTED.TOTALRECEIVED as [OVERALLTOTALEXPECTED],
case when CAMPAIGN.ID=@CAMPAIGNID then 1 else 0 end [ROOT],
'' as PERIOD,
CURRENCYPROPERTIES.ISO4217 [ISOCURRENCYCODE],
CURRENCYPROPERTIES.CURRENCYSYMBOL,
CURRENCYPROPERTIES.SYMBOLDISPLAYSETTINGCODE [CURRENCYSYMBOLDISPLAYSETTINGCODE],
@PARAMGOALNAME PARAMGOALNAME,
@STARTDATE GOALSTARTDATE,
@ENDDATE GOALENDDATE,
@PARAMRECOGNITIONTYPENAME PARAMRECOGNITIONTYPENAME
from dbo.CAMPAIGN
left outer join
CAMPAIGNGOAL_CTE on CAMPAIGN.ID = CAMPAIGNGOAL_CTE.CAMPAIGNID
outer apply
dbo.UFN_CAMPAIGN_GETTOTALRECOGNITIONRECEIVEDINCURRENCY(CAMPAIGN.HIERARCHYPATH, @STARTDATE, @ENDDATE, @RECOGNITIONTYPEID, coalesce(@SELECTEDCURRENCYID, CAMPAIGN.BASECURRENCYID),@ORGANIZATIONCURRENCYID) TOTALRECEIVED
outer apply
dbo.UFN_CAMPAIGN_GETTOTALPLEDGERECOGNITIONINCURRENCY(CAMPAIGN.HIERARCHYPATH, @STARTDATE, @ENDDATE, @RECOGNITIONTYPEID, coalesce(@SELECTEDCURRENCYID, CAMPAIGN.BASECURRENCYID),@ORGANIZATIONCURRENCYID) TOTALEXPECTED
outer apply
dbo.UFN_CURRENCY_GETPROPERTIES(coalesce(@SELECTEDCURRENCYID, CAMPAIGN.BASECURRENCYID)) CURRENCYPROPERTIES
where
(CAMPAIGN.ID = @CAMPAIGNID or CAMPAIGN.HIERARCHYPATH.GetAncestor(1) = @HIERARCHYPATH)
order by
ROOT desc, PERIOD;
end
else
begin
-- Handle grouping by quarter and year
with CAMPAIGNGOAL_CTE as (
-- pull back campaign hierarchy goal amounts for the root campaign
select
CAMPAIGNHIERARCHYGOAL.CAMPAIGNID,
case @CURRENCYCODE
when 0 then CAMPAIGNHIERARCHYGOAL.AMOUNT
else CAMPAIGNHIERARCHYGOAL.ORGANIZATIONAMOUNT
end [AMOUNT]
from
dbo.CAMPAIGNHIERARCHYGOAL
where
CAMPAIGNHIERARCHYGOAL.ID = @GOALID
union all
-- pull back campaign goal amounts for subcampaigns
select
CAMPAIGNGOAL.CAMPAIGNID,
case @CURRENCYCODE
when 0 then CAMPAIGNGOAL.AMOUNT
else CAMPAIGNGOAL.ORGANIZATIONAMOUNT
end
from
dbo.CAMPAIGNGOAL
where
CAMPAIGNGOAL.CAMPAIGNHIERARCHYGOALID = @GOALID
)
select
CAMPAIGN.NAME CAMPAIGNNAME,
CAMPAIGNGOAL_CTE.AMOUNT [GOAL],
TOTALRECEIVED.TOTALRECEIVED,
TOTALEXPECTED.TOTALRECEIVED [TOTALEXPECTED],
OVERALLTOTALRECEIVED.TOTALRECEIVED as [OVERALLTOTALRECEIVED],
OVERALLTOTALEXPECTED.TOTALRECEIVED as [OVERALLTOTALEXPECTED],
case when CAMPAIGN.ID=@CAMPAIGNID then 1 else 0 end [ROOT],
case @GROUPBY
when 2
then 'Q' + convert(nvarchar(10),PERIODS.SEQUENCE) + ', '
+ convert(nvarchar(10),PERIODS.PERIODYEAR)
when 3
then convert(nvarchar(10),PERIODS.PERIODYEAR)
else '' end PERIOD,
CURRENCYPROPERTIES.ISO4217 [ISOCURRENCYCODE],
CURRENCYPROPERTIES.CURRENCYSYMBOL,
CURRENCYPROPERTIES.SYMBOLDISPLAYSETTINGCODE [CURRENCYSYMBOLDISPLAYSETTINGCODE],
@PARAMGOALNAME PARAMGOALNAME,
@STARTDATE GOALSTARTDATE,
@ENDDATE GOALENDDATE,
@PARAMRECOGNITIONTYPENAME PARAMRECOGNITIONTYPENAME
from dbo.UFN_DESIGNATIONREPORT_GETPERIODS(@STARTDATE, @ENDDATE, @GROUPBY) PERIODS
cross join
dbo.CAMPAIGN
left outer join
CAMPAIGNGOAL_CTE on CAMPAIGN.ID = CAMPAIGNGOAL_CTE.CAMPAIGNID
outer apply
dbo.UFN_CAMPAIGN_GETTOTALRECOGNITIONRECEIVEDINCURRENCY(CAMPAIGN.HIERARCHYPATH, PERIODS.STARTDATE, PERIODS.ENDDATE, @RECOGNITIONTYPEID, coalesce(@SELECTEDCURRENCYID, CAMPAIGN.BASECURRENCYID),@ORGANIZATIONCURRENCYID) TOTALRECEIVED
outer apply
dbo.UFN_CAMPAIGN_GETTOTALPLEDGERECOGNITIONINCURRENCY(CAMPAIGN.HIERARCHYPATH, PERIODS.STARTDATE, PERIODS.ENDDATE, @RECOGNITIONTYPEID, coalesce(@SELECTEDCURRENCYID, CAMPAIGN.BASECURRENCYID),@ORGANIZATIONCURRENCYID) TOTALEXPECTED
outer apply
dbo.UFN_CAMPAIGN_GETTOTALRECOGNITIONRECEIVEDINCURRENCY(CAMPAIGN.HIERARCHYPATH, @STARTDATE, @ENDDATE, @RECOGNITIONTYPEID, coalesce(@SELECTEDCURRENCYID, CAMPAIGN.BASECURRENCYID),@ORGANIZATIONCURRENCYID) OVERALLTOTALRECEIVED
outer apply
dbo.UFN_CAMPAIGN_GETTOTALPLEDGERECOGNITIONINCURRENCY(CAMPAIGN.HIERARCHYPATH, @STARTDATE, @ENDDATE, @RECOGNITIONTYPEID, coalesce(@SELECTEDCURRENCYID, CAMPAIGN.BASECURRENCYID),@ORGANIZATIONCURRENCYID) OVERALLTOTALEXPECTED
outer apply
dbo.UFN_CURRENCY_GETPROPERTIES(coalesce(@SELECTEDCURRENCYID, CAMPAIGN.BASECURRENCYID)) CURRENCYPROPERTIES
where
(CAMPAIGN.ID = @CAMPAIGNID or CAMPAIGN.HIERARCHYPATH.GetAncestor(1) = @HIERARCHYPATH)
order by
ROOT desc, PERIODYEAR, PERIOD;
end
end