USP_DATALIST_MKTREVENUEREPORTSUMMARY
Retrieves summary data for the Revenue report.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SEARCHRESULT | nvarchar(64) | IN | Search Result |
@CURRENCYCODE | tinyint | IN | Currency |
Definition
Copy
CREATE procedure dbo.[USP_DATALIST_MKTREVENUEREPORTSUMMARY]
(
@SEARCHRESULT nvarchar(64),
@CURRENCYCODE tinyint = 1 /* 0 = base, 1 = organization */
)
as
set nocount on;
declare @IDTYPE nvarchar(16);
declare @ID nvarchar(36);
declare @ISAPPEALMAILING bit;
set @IDTYPE = upper(substring(@SEARCHRESULT,1,charindex('|',@SEARCHRESULT)-1));
set @ID = substring(@SEARCHRESULT,charindex('|',@SEARCHRESULT)+1,len(@SEARCHRESULT));
set @ISAPPEALMAILING = 0;
-- Get currency fields.
declare @CURRENCYISOCURRENCYCODE nvarchar(6);
declare @CURRENCYDECIMALDIGITS tinyint;
declare @CURRENCYSYMBOL nvarchar(10);
declare @CURRENCYSYMBOLDISPLAYSETTINGCODE tinyint;
select
@CURRENCYISOCURRENCYCODE = [ISO4217],
@CURRENCYDECIMALDIGITS = [DECIMALDIGITS],
@CURRENCYSYMBOL = [CURRENCYSYMBOL],
@CURRENCYSYMBOLDISPLAYSETTINGCODE = [SYMBOLDISPLAYSETTINGCODE]
from dbo.[CURRENCY]
where [ID] = dbo.[UFN_CURRENCY_GETORGANIZATIONCURRENCY]();
declare @SEGMENTATIONID uniqueidentifier;
declare @MAILINGS table (
[ID] uniqueidentifier,
[NAME] nvarchar(100),
[DESCRIPTION] nvarchar(255),
[MAILDATE] datetime
);
--Get all mailings
if @IDTYPE = 'PLANITEM'
begin
with [MAILING]([ID], [NAME], [STARTDATE]) as
(
select
[MKTMARKETINGPLANITEM].[ID],
[MKTMARKETINGPLANITEM].[NAME],
[MKTMARKETINGPLANITEM].[STARTDATE]
from
dbo.[MKTMARKETINGPLANITEM]
where
[MKTMARKETINGPLANITEM].[ID] = @ID
union all
select
[MKTMARKETINGPLANITEM].[ID],
[MAILING].[NAME],
[MAILING].[STARTDATE]
from
dbo.[MKTMARKETINGPLANITEM]
inner join [MAILING]
on [MKTMARKETINGPLANITEM].[PARENTMARKETINGPLANITEMID] = [MAILING].[ID]
)
insert into @MAILINGS
select [MKTSEGMENTATION].[ID], [MAILING].[NAME], '', [MAILING].[STARTDATE]
from dbo.[MKTSEGMENTATION]
inner join [MAILING]
on [MKTSEGMENTATION].[MARKETINGPLANITEMID] = [MAILING].[ID];
end
else
begin
if @IDTYPE = 'MARKETING EFFORT'
begin
insert into @MAILINGS
select
[ID],
[NAME],
[DESCRIPTION],
isnull([MAILDATE],[ACTIVATEDATE])
from dbo.[MKTSEGMENTATION]
where [ID] = @ID;
set @ISAPPEALMAILING = dbo.[UFN_MKTSEGMENTATION_ISAPPEALMAILING](@ID);
end
else
begin
if @IDTYPE = 'APPEAL'
begin
insert into @MAILINGS
select
[MKTSEGMENTATION].[ID],
[MKTSEGMENTATIONACTIVATE].[APPEALDESCRIPTION],
[MKTSEGMENTATIONACTIVATE].[APPEALDESCRIPTION],
isnull([MKTSEGMENTATION].[MAILDATE], [MKTSEGMENTATION].[ACTIVATEDATE])
from dbo.[MKTSEGMENTATIONACTIVATE]
inner join dbo.[MKTSEGMENTATION] on [MKTSEGMENTATIONACTIVATE].[SEGMENTATIONID] = [MKTSEGMENTATION].[ID]
where [MKTSEGMENTATION].[COMMUNICATIONTYPECODE] = 0 --Exclude appeal mailings
and [MKTSEGMENTATIONACTIVATE].[APPEALID] = @ID;
end
else
begin
raiserror('Invalid ID type.',13,1);
return 1;
end
end
end
--Display
select
dbo.[UFN_TRANSLATIONFUNCTION_MKTMAILINGHIERACHRY](@SEARCHRESULT) as [NAME],
[MAILINGS].[DESCRIPTION] as [DESCRIPTION],
min([MAILINGS].[MAILDATE]) as [START_DATE],
isnull(sum([MKTSEGMENTATIONACTIVE].[QUANTITY]),0) as [TOTAL_QUANTITY],
isnull(sum([MKTSEGMENTATIONBUDGET].[ORGANIZATIONBUDGETAMOUNT]),0) as [TOTAL_BUDGET],
isnull(sum([MKTSEGMENTATIONACTIVE].[ORGANIZATIONEXPECTEDTOTALGIFTAMOUNT]),0) as [PROJECTED_REVENUE],
isnull(sum([MKTSEGMENTATIONACTIVE].[ORGANIZATIONTOTALCOST]),0) as [FINAL_COST],
isnull(sum([MKTSEGMENTATIONACTIVE].[ORGANIZATIONTOTALGIFTAMOUNT]),0) as [REVENUE_TO_DATE],
@ISAPPEALMAILING as [ISAPPEALMAILING],
@CURRENCYISOCURRENCYCODE as [CURRENCYISOCURRENCYCODE],
@CURRENCYDECIMALDIGITS as [CURRENCYDECIMALDIGITS],
@CURRENCYSYMBOL as [CURRENCYSYMBOL],
@CURRENCYSYMBOLDISPLAYSETTINGCODE as [CURRENCYSYMBOLDISPLAYSETTINGCODE]
from
@MAILINGS [MAILINGS]
left join dbo.[MKTSEGMENTATIONACTIVE]
on [MAILINGS].[ID] = [MKTSEGMENTATIONACTIVE].[ID]
left join dbo.[MKTSEGMENTATIONBUDGET]
on [MAILINGS].[ID] = [MKTSEGMENTATIONBUDGET].[ID]
group by
[MAILINGS].[NAME],
[MAILINGS].[DESCRIPTION];
return 0;