USP_DATAFORMTEMPLATE_MKTMARKETINGPLANITEM_VIEW
The load procedure used by the view dataform template "Marketing Plan Item View Form"
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | nvarchar(38) | IN | The input ID parameter used to load the fields defined on the form. |
@DATALOADED | bit | INOUT | Output parameter indicating whether or not data was actually loaded. |
@MARKETINGPLANID | uniqueidentifier | INOUT | Marketing plan ID |
@PARENTMARKETINGPLANITEMID | uniqueidentifier | INOUT | Parent marketing plan item ID |
@CAPTION | nvarchar(50) | INOUT | Caption |
@NAME | nvarchar(100) | INOUT | Name |
@SOURCECODE | nvarchar(100) | INOUT | Source code layout |
@CODE | nvarchar(10) | INOUT | Code |
@STATUS | nvarchar(25) | INOUT | Approval status |
@CATEGORY | nvarchar(25) | INOUT | Category |
@GOALS | nvarchar(max) | INOUT | Goals |
@STARTDATE | UDT_FUZZYDATE | INOUT | Start date |
@ENDDATE | UDT_FUZZYDATE | INOUT | End date |
@BACKCOLOR | int | INOUT | Back color |
@FORECOLOR | int | INOUT | Fore color |
@LEVEL0NAME | nvarchar(50) | INOUT | Level 0 name |
@LEVEL0ID | uniqueidentifier | INOUT | Level 0 ID |
@LEVEL1CAPTION | nvarchar(50) | INOUT | Level 1 caption |
@LEVEL1NAME | nvarchar(50) | INOUT | Level 1 name |
@LEVEL1ID | uniqueidentifier | INOUT | Level 1 ID |
@LEVEL1COUNT | int | INOUT | Level 1 count |
@LEVEL2CAPTION | nvarchar(50) | INOUT | Level 2 caption |
@LEVEL2NAME | nvarchar(50) | INOUT | Level 2 name |
@LEVEL2ID | uniqueidentifier | INOUT | Level 2 ID |
@LEVEL2COUNT | int | INOUT | Level 2 count |
@LEVEL3CAPTION | nvarchar(50) | INOUT | Level 3 caption |
@LEVEL3NAME | nvarchar(50) | INOUT | Level 3 name |
@LEVEL3ID | uniqueidentifier | INOUT | Level 3 ID |
@LEVEL3COUNT | int | INOUT | Level 3 count |
@LEVEL4CAPTION | nvarchar(50) | INOUT | Level 4 caption |
@LEVEL4NAME | nvarchar(50) | INOUT | Level 4 name |
@LEVEL4ID | uniqueidentifier | INOUT | Level 4 ID |
@LEVEL4COUNT | int | INOUT | Level 4 count |
@LEVEL | int | INOUT | Level |
@APPEALLEVEL | int | INOUT | Appeal level |
@APPEALCAPTION | nvarchar(100) | INOUT | Appeal caption |
@ASSUMEDBUDGET | decimal(18, 0) | INOUT | Assumed budget |
@ALLOCATEDBUDGET | decimal(18, 0) | INOUT | Allocated budget |
@ASSUMEDREVENUE | decimal(18, 0) | INOUT | Assumed total revenue |
@ALLOCATEDREVENUE | decimal(18, 0) | INOUT | Allocated total revenue |
@ASSUMEDRESPONSE | int | INOUT | Assumed total responses |
@ALLOCATEDRESPONSE | int | INOUT | Allocated total responses |
@ASSUMEDQUANTITY | int | INOUT | Assumed quantity |
@ALLOCATEDQUANTITY | int | INOUT | Allocated quantity |
@EXPENSES | money | INOUT | Expenses |
@AVGGIFT | money | INOUT | Average gift |
@COSTPERPIECE | money | INOUT | Cost per piece |
@SEGMENTATIONNAME | nvarchar(100) | INOUT | Marketing effort name |
@SEGMENTATIONID | uniqueidentifier | INOUT | Effort ID |
@ISLINKED | bit | INOUT | Linked to marketing effort? |
@MAILINGLEVEL | int | INOUT | Marketing effort level |
@MAILDATE | datetime | INOUT | Date |
@HASACTIVATEDMAILING | bit | INOUT | Has activated marketing effort? |
@ALERTSENABLED | bit | INOUT | Alerts enabled? |
@BASECURRENCYID | uniqueidentifier | INOUT | Base currency ID |
@BASECURRENCYCANBECHANGED | bit | INOUT | Base currency can be changed? |
Definition
Copy
CREATE procedure dbo.[USP_DATAFORMTEMPLATE_MKTMARKETINGPLANITEM_VIEW]
(
@ID nvarchar(38),
@DATALOADED bit = 0 output,
@MARKETINGPLANID uniqueidentifier = null output,
@PARENTMARKETINGPLANITEMID uniqueidentifier = null output,
@CAPTION nvarchar(50) = null output,
@NAME nvarchar(100) = null output,
@SOURCECODE nvarchar(100) = null output,
@CODE nvarchar(10) = null output,
@STATUS nvarchar(25) = null output,
@CATEGORY nvarchar(25) = null output,
@GOALS nvarchar(max) = null output,
@STARTDATE dbo.UDT_FUZZYDATE = null output,
@ENDDATE dbo.UDT_FUZZYDATE = null output,
@BACKCOLOR integer = null output,
@FORECOLOR integer = null output,
@LEVEL0NAME nvarchar(50) = null output,
@LEVEL0ID uniqueidentifier = null output,
@LEVEL1CAPTION nvarchar(50) = null output,
@LEVEL1NAME nvarchar(50) = null output,
@LEVEL1ID uniqueidentifier = null output,
@LEVEL1COUNT integer = null output,
@LEVEL2CAPTION nvarchar(50) = null output,
@LEVEL2NAME nvarchar(50) = null output,
@LEVEL2ID uniqueidentifier = null output,
@LEVEL2COUNT integer = null output,
@LEVEL3CAPTION nvarchar(50) = null output,
@LEVEL3NAME nvarchar(50) = null output,
@LEVEL3ID uniqueidentifier = null output,
@LEVEL3COUNT integer = null output,
@LEVEL4CAPTION nvarchar(50) = null output,
@LEVEL4NAME nvarchar(50) = null output,
@LEVEL4ID uniqueidentifier = null output,
@LEVEL4COUNT integer = null output,
@LEVEL integer = null output,
@APPEALLEVEL integer = null output,
@APPEALCAPTION nvarchar(100) = null output,
@ASSUMEDBUDGET decimal = null output,
@ALLOCATEDBUDGET decimal = null output,
@ASSUMEDREVENUE decimal = null output,
@ALLOCATEDREVENUE decimal = null output,
@ASSUMEDRESPONSE integer = null output,
@ALLOCATEDRESPONSE integer = null output,
@ASSUMEDQUANTITY integer = null output,
@ALLOCATEDQUANTITY integer = null output,
@EXPENSES money = null output,
@AVGGIFT money = null output,
@COSTPERPIECE money = null output,
@SEGMENTATIONNAME nvarchar(100) = null output,
@SEGMENTATIONID uniqueidentifier = null output,
@ISLINKED bit = null output,
@MAILINGLEVEL integer = null output,
@MAILDATE datetime = null output,
@HASACTIVATEDMAILING bit = null output,
@ALERTSENABLED bit = null output,
@BASECURRENCYID uniqueidentifier = null output,
@BASECURRENCYCANBECHANGED bit = null output
)
as
set nocount on;
declare @MARKETINGPLANITEMID uniqueidentifier;
declare @CURRENCYCODE tinyint;
set @DATALOADED = 0;
if charindex('|', @ID, 1) > 0
begin
set @MARKETINGPLANITEMID = convert(uniqueidentifier, substring(@ID, 1, 36));
set @CURRENCYCODE = convert(tinyint, substring(@ID, 38, 1));
end
else
begin
set @MARKETINGPLANITEMID = convert(uniqueidentifier, @ID);
set @CURRENCYCODE = 0;
end
select
@DATALOADED = 1,
@MARKETINGPLANID = [MPI].[MARKETINGPLANID],
@PARENTMARKETINGPLANITEMID = [MPI].[PARENTMARKETINGPLANITEMID],
@CAPTION = [MPITI].[CAPTION],
@NAME = [MPI].[NAME],
@SOURCECODE = (coalesce((select [NAME] from dbo.[MKTSOURCECODE] where [ID] = [MPI].[SOURCECODEID]), '<none>')),
@CODE = [MPI].[CODE],
@STATUS = (case [MP].[ISAPPROVED] when 0 then 'Not approved' else 'Approved' end),
@CATEGORY = [CODE].[DESCRIPTION],
@GOALS = [MPI].[GOALS],
@STARTDATE = [MPI].[STARTDATE],
@ENDDATE = [MPI].[ENDDATE],
@BACKCOLOR = [MPITI].[BACKCOLOR],
@FORECOLOR = [MPITI].[FORECOLOR],
@LEVEL0NAME = coalesce((select top 1 [NAME] from dbo.[UFN_MKTMARKETINGPLANITEMHIERARCHY]([MPI].[ID]) as [SUB] where [SUB].[LEVEL] = [MPI].[LEVEL] - 5), ''),
@LEVEL0ID = (select top 1 [ID] from dbo.[UFN_MKTMARKETINGPLANITEMHIERARCHY]([MPI].[ID]) as [SUB] where [SUB].[LEVEL] = [MPI].[LEVEL] - 5),
@LEVEL1CAPTION = (select [CAPTION] from dbo.[MKTMARKETINGPLANITEMTEMPLATEITEM] as [SUB] where ([MPI].[MARKETINGPLANID] = [SUB].[MARKETINGPLANID] and [SUB].[LEVEL] = [MPITI].[LEVEL] + 1)),
@LEVEL1NAME = coalesce((select top 1 [NAME] from dbo.[UFN_MKTMARKETINGPLANITEMHIERARCHY]([MPI].[ID]) as [SUB] where [SUB].[LEVEL] = [MPI].[LEVEL] - 4), ''),
@LEVEL1ID = (select top 1 [ID] from dbo.[UFN_MKTMARKETINGPLANITEMHIERARCHY]([MPI].[ID]) as [SUB] where [SUB].[LEVEL] = [MPI].[LEVEL] - 4),
@LEVEL1COUNT = (select count(*) from dbo.[UFN_MKTMARKETINGPLANITEMHIERARCHYFROMID]([MPI].[ID]) as [SUB] where [SUB].[LEVEL] = [MPITI].[LEVEL] + 1),
@LEVEL2CAPTION = (select [CAPTION] from dbo.[MKTMARKETINGPLANITEMTEMPLATEITEM] as [SUB] where ([MPI].[MARKETINGPLANID] = [SUB].[MARKETINGPLANID] and [SUB].[LEVEL] = [MPITI].[LEVEL] + 2)),
@LEVEL2NAME = coalesce((select top 1 [NAME] from dbo.[UFN_MKTMARKETINGPLANITEMHIERARCHY]([MPI].[ID]) as [SUB] where [SUB].[LEVEL] = [MPI].[LEVEL] - 3), ''),
@LEVEL2ID = (select top 1 [ID] from dbo.[UFN_MKTMARKETINGPLANITEMHIERARCHY]([MPI].[ID]) as [SUB] where [SUB].[LEVEL] = [MPI].[LEVEL] - 3),
@LEVEL2COUNT = (select count(*) from dbo.[UFN_MKTMARKETINGPLANITEMHIERARCHYFROMID]([MPI].[ID]) as [SUB] where [SUB].[LEVEL] = [MPITI].[LEVEL] + 2),
@LEVEL3CAPTION = (select [CAPTION] from dbo.[MKTMARKETINGPLANITEMTEMPLATEITEM] as [SUB] where ([MPI].[MARKETINGPLANID] = [SUB].[MARKETINGPLANID] and [SUB].[LEVEL] = [MPITI].[LEVEL] + 3)),
@LEVEL3NAME = coalesce((select top 1 [NAME] from dbo.[UFN_MKTMARKETINGPLANITEMHIERARCHY]([MPI].[ID]) as [SUB] where [SUB].[LEVEL] = [MPI].[LEVEL] - 2), ''),
@LEVEL3ID = (select top 1 [ID] from dbo.[UFN_MKTMARKETINGPLANITEMHIERARCHY]([MPI].[ID]) as [SUB] where [SUB].[LEVEL] = [MPI].[LEVEL] - 2),
@LEVEL3COUNT = (select count(*) from dbo.[UFN_MKTMARKETINGPLANITEMHIERARCHYFROMID]([MPI].[ID]) as [SUB] where [SUB].[LEVEL] = [MPITI].[LEVEL] + 3),
@LEVEL4CAPTION = (select [CAPTION] from dbo.[MKTMARKETINGPLANITEMTEMPLATEITEM] as [SUB] where ([MPI].[MARKETINGPLANID] = [SUB].[MARKETINGPLANID] and [SUB].[LEVEL] = [MPITI].[LEVEL] + 4)),
@LEVEL4NAME = coalesce((select top 1 [NAME] from dbo.[UFN_MKTMARKETINGPLANITEMHIERARCHY]([MPI].[ID]) as [SUB] where [SUB].[LEVEL] = [MPI].[LEVEL] - 1), ''),
@LEVEL4ID = (select top 1 [ID] from dbo.[UFN_MKTMARKETINGPLANITEMHIERARCHY]([MPI].[ID]) as [SUB] where [SUB].[LEVEL] = [MPI].[LEVEL] - 1),
@LEVEL4COUNT = (select count(*) from dbo.[UFN_MKTMARKETINGPLANITEMHIERARCHYFROMID]([MPI].[ID]) as [SUB] where [SUB].[LEVEL] = [MPITI].[LEVEL] + 4),
@LEVEL = [MPI].[LEVEL],
@APPEALLEVEL = (select max([LEVEL]) - 1 from dbo.[MKTMARKETINGPLANITEMTEMPLATEITEM] as [SUB] where [MPI].[MARKETINGPLANID] = [SUB].[MARKETINGPLANID]),
@APPEALCAPTION = (select [CAPTION] from dbo.[MKTMARKETINGPLANITEMTEMPLATEITEM] as [SUB] where ([MPI].[MARKETINGPLANID] = [SUB].[MARKETINGPLANID] and [SUB].[LEVEL] = (select max([LEVEL]) from dbo.[MKTMARKETINGPLANITEMTEMPLATEITEM] as [SUB] where [MPI].[MARKETINGPLANID] = [SUB].[MARKETINGPLANID]))),
@BASECURRENCYID = case @CURRENCYCODE when 1 then dbo.[UFN_CURRENCY_GETORGANIZATIONCURRENCY]() else [MPI].[BASECURRENCYID] end,
@ASSUMEDBUDGET = case @CURRENCYCODE when 1 then [MPI].[ORGANIZATIONBUDGETAMOUNT] else [MPI].[BUDGETAMOUNT] end,
@ALLOCATEDBUDGET = coalesce((select sum(case @CURRENCYCODE when 1 then [SUB].[ORGANIZATIONBUDGETAMOUNT] else [SUB].[BUDGETAMOUNT] end) from dbo.[MKTMARKETINGPLANITEM] as [SUB] where [SUB].[PARENTMARKETINGPLANITEMID] = [MPI].[ID]), 0) +
coalesce((select sum(case @CURRENCYCODE when 1 then [SUB].[ORGANIZATIONBUDGETAMOUNT] else [SUB].[BUDGETAMOUNT] end) from dbo.[MKTMARKETINGPLANBRIEF] as [SUB] where [SUB].[MARKETINGPLANITEMID] = [MPI].[ID]), 0),
@ASSUMEDREVENUE = case @CURRENCYCODE when 1 then [MPI].[ORGANIZATIONTOTALREVENUEGOAL] else [MPI].[TOTALREVENUEGOAL] end,
@ALLOCATEDREVENUE = coalesce((select sum(case @CURRENCYCODE when 1 then [SUB].[ORGANIZATIONTOTALREVENUEGOAL] else [SUB].[TOTALREVENUEGOAL] end) from dbo.[MKTMARKETINGPLANITEM] as [SUB] where [SUB].[PARENTMARKETINGPLANITEMID] = [MPI].[ID]), 0) +
coalesce((select sum(case @CURRENCYCODE when 1 then [SUB].[ORGANIZATIONTOTALREVENUEGOAL] else [SUB].[TOTALREVENUEGOAL] end) from dbo.[MKTMARKETINGPLANBRIEF] as [SUB] where [SUB].[MARKETINGPLANITEMID] = [MPI].[ID]), 0),
@ASSUMEDRESPONSE = [MPI].[TOTALTRANSACTIONSGOAL],
@ALLOCATEDRESPONSE = coalesce((select sum([SUB].[TOTALTRANSACTIONSGOAL]) from dbo.[MKTMARKETINGPLANITEM] as [SUB] where [SUB].[PARENTMARKETINGPLANITEMID] = [MPI].[ID]), 0) +
coalesce((select sum([SUB].[TOTALTRANSACTIONSGOAL]) from dbo.[MKTMARKETINGPLANBRIEF] as [SUB] where [SUB].[MARKETINGPLANITEMID] = [MPI].[ID]), 0),
@ASSUMEDQUANTITY = [MPI].[QUANTITY],
@ALLOCATEDQUANTITY = coalesce((select sum([SUB].[QUANTITY]) from dbo.[MKTMARKETINGPLANITEM] as [SUB] where [SUB].[PARENTMARKETINGPLANITEMID] = [MPI].[ID]), 0) +
coalesce((select sum([SUB].[QUANTITY]) from dbo.[MKTMARKETINGPLANBRIEF] as [SUB] where [SUB].[MARKETINGPLANITEMID] = [MPI].[ID]), 0),
@EXPENSES = coalesce((select sum(case @CURRENCYCODE when 1 then [SUB].[ORGANIZATIONBUDGETAMOUNT] else [SUB].[BUDGETAMOUNT] end) from dbo.[MKTMARKETINGPLANITEMEXPENSE] as [SUB] where [SUB].[MARKETINGPLANITEMID] = [MPI].[ID]), 0) +
coalesce((select sum(case @CURRENCYCODE when 1 then [SUB].[ORGANIZATIONBUDGETAMOUNT] else [SUB].[BUDGETAMOUNT] end) from dbo.[MKTMARKETINGPLANBRIEF] as [SUB] where [SUB].[MARKETINGPLANITEMID] = [MPI].[ID]), 0),
@AVGGIFT = case when [MPI].[TOTALTRANSACTIONSGOAL] > 0
then case @CURRENCYCODE when 1 then [MPI].[ORGANIZATIONTOTALREVENUEGOAL] else [MPI].[TOTALREVENUEGOAL] end / [MPI].[TOTALTRANSACTIONSGOAL]
else 0 end,
@COSTPERPIECE = case when [MPI].[QUANTITY] > 0
then case @CURRENCYCODE when 1 then [MPI].[ORGANIZATIONBUDGETAMOUNT] else [MPI].[BUDGETAMOUNT] end / [MPI].[QUANTITY]
else 0 end,
@SEGMENTATIONNAME = (select top 1 [MKTSEGMENTATION].[NAME] from dbo.[MKTSEGMENTATION] where ([MPI].[ID] = [MKTSEGMENTATION].[MARKETINGPLANITEMID])),
@SEGMENTATIONID = (select top 1 [MKTSEGMENTATION].[ID] from dbo.[MKTSEGMENTATION] where ([MPI].[ID] = [MKTSEGMENTATION].[MARKETINGPLANITEMID])),
@ISLINKED = (case when exists ((select [MKTSEGMENTATION].[ID] from dbo.[MKTSEGMENTATION] where ([MPI].[ID] = [MKTSEGMENTATION].[MARKETINGPLANITEMID]))) then 1 else 0 end),
@MAILINGLEVEL = (select max([LEVEL]) from dbo.[MKTMARKETINGPLANITEMTEMPLATEITEM] as [SUB] where [MPI].[MARKETINGPLANID] = [SUB].[MARKETINGPLANID]),
@MAILDATE = [MPI].[MAILDATE]
from dbo.[MKTMARKETINGPLANITEM] as [MPI]
inner join dbo.[MKTMARKETINGPLAN] as [MP] on [MP].[ID] = [MPI].[MARKETINGPLANID]
left join dbo.[MKTMARKETINGPLANITEMTEMPLATEITEM] as [MPITI] on ([MPITI].[MARKETINGPLANID] = [MPI].[MARKETINGPLANID] and [MPITI].[LEVEL] = [MPI].[LEVEL])
left outer join dbo.[MKTPLANITEMCATEGORYCODE] as [CODE] on [CODE].[ID] = [MPI].[PLANITEMCATEGORYCODEID]
where [MPI].[ID] = @MARKETINGPLANITEMID;
with [PLANS] ([ID], [IDTREE]) as
(
select [MPI].[ID], convert(nvarchar(max), [MPI].[ID]) as [IDTREE]
from dbo.[MKTMARKETINGPLANITEM] as [MPI]
where [MPI].[PARENTMARKETINGPLANITEMID] is null
union all
select [MPI].[ID], convert(nvarchar(max), [PLANS].[IDTREE] + '\' + convert(nvarchar(36), [MPI].[ID]))
from dbo.[MKTMARKETINGPLANITEM] as [MPI]
inner join [PLANS] on [MPI].[PARENTMARKETINGPLANITEMID] = [PLANS].[ID]
)
select @HASACTIVATEDMAILING = 1
from [PLANS]
where
[ID] in (select [MARKETINGPLANITEMID] from dbo.[MKTSEGMENTATION] where [MARKETINGPLANITEMID] is not null and [ACTIVE] = 1)
and charindex(convert(varchar(36), @MARKETINGPLANITEMID), [IDTREE]) > 0;
if @HASACTIVATEDMAILING is null set @HASACTIVATEDMAILING = 0;
if @AVGGIFT is null set @AVGGIFT = 0;
if @COSTPERPIECE is null set @COSTPERPIECE = 0;
if exists(select object_id from sys.objects where type = 'U' and name = 'DATABASEMAILSETTINGS')
select @ALERTSENABLED = [ENABLED] from dbo.[DATABASEMAILSETTINGS];
declare @PLANLINKEDTOMAILING bit;
set @PLANLINKEDTOMAILING = case when exists (select *
from dbo.[MKTMARKETINGPLAN]
inner join [MKTMARKETINGPLANITEM] on [MKTMARKETINGPLANITEM].[MARKETINGPLANID] = [MKTMARKETINGPLAN].[ID]
left join [MKTSEGMENTATION] on [MKTSEGMENTATION].[MARKETINGPLANITEMID] = [MKTMARKETINGPLANITEM].[ID]
where [MKTMARKETINGPLAN].[ID] = @MARKETINGPLANID and [MKTSEGMENTATION].[ID] is not null) then 1 else 0 end;
set @BASECURRENCYCANBECHANGED = case when exists (select top 1 1
from dbo.[MKTMARKETINGPLANBRIEF]
where
[MKTMARKETINGPLANBRIEF].[MARKETINGPLANID] = @MARKETINGPLANID and
[MKTMARKETINGPLANBRIEF].[PACKAGEID] is not null) or @PLANLINKEDTOMAILING = 1 then 0 else 1 end;
return 0;