USP_MKTSEGMENTATION_GETTOTALPACKAGECOSTS

Returns the total package costs for a marketing effort.

Parameters

Parameter Parameter Type Mode Description
@SEGMENTATIONID uniqueidentifier IN

Definition

Copy


CREATE procedure dbo.[USP_MKTSEGMENTATION_GETTOTALPACKAGECOSTS]
(
  @SEGMENTATIONID uniqueidentifier
)
as
  set nocount on;

  declare @ACTIVE bit;

  select @ACTIVE = [ACTIVE] from dbo.[MKTSEGMENTATION] where [ID] = @SEGMENTATIONID;

  declare @PACKAGECOSTS table (
    [ID] uniqueidentifier,
    [COSTPERPIECE] money,
    [COSTPERRESPONSE] money,
    [COSTPEREFFORT] money,
    [ORGANIZATIONCOSTPERPIECE] money,
    [ORGANIZATIONCOSTPERRESPONSE] money,
    [ORGANIZATIONCOSTPEREFFORT] money);

  if @ACTIVE = 1
    insert into @PACKAGECOSTS
    select
      [MKTSEGMENTATIONPACKAGE].[PACKAGEID],
      (case [MKTSEGMENTATIONPACKAGE].[COSTDISTRIBUTIONMETHODCODE] when 0 then [MKTSEGMENTATIONPACKAGE].[UNITCOST] else 0 end) + [MKTSEGMENTATIONPACKAGE].[INSERTCOSTPERPIECE] as [COSTPERPIECE],
      (case [MKTSEGMENTATIONPACKAGE].[COSTDISTRIBUTIONMETHODCODE] when 1 then [MKTSEGMENTATIONPACKAGE].[UNITCOST] else 0 end) + [MKTSEGMENTATIONPACKAGE].[INSERTCOSTPERRESPONSE] as [COSTPERRESPONSE],
      (case [MKTSEGMENTATIONPACKAGE].[COSTDISTRIBUTIONMETHODCODE] when 2 then [MKTSEGMENTATIONPACKAGE].[UNITCOST] else 0 end) + [MKTSEGMENTATIONPACKAGE].[INSERTCOSTPEREFFORT] as [COSTPEREFFORT],
      (case [MKTSEGMENTATIONPACKAGE].[COSTDISTRIBUTIONMETHODCODE] when 0 then [MKTSEGMENTATIONPACKAGE].[ORGANIZATIONUNITCOST] else 0 end) + [MKTSEGMENTATIONPACKAGE].[ORGANIZATIONINSERTCOSTPERPIECE] as [ORGANIZATIONCOSTPERPIECE],
      (case [MKTSEGMENTATIONPACKAGE].[COSTDISTRIBUTIONMETHODCODE] when 1 then [MKTSEGMENTATIONPACKAGE].[ORGANIZATIONUNITCOST] else 0 end) + [MKTSEGMENTATIONPACKAGE].[ORGANIZATIONINSERTCOSTPERRESPONSE] as [ORGANIZATIONCOSTPERRESPONSE],
      (case [MKTSEGMENTATIONPACKAGE].[COSTDISTRIBUTIONMETHODCODE] when 2 then [MKTSEGMENTATIONPACKAGE].[ORGANIZATIONUNITCOST] else 0 end) + [MKTSEGMENTATIONPACKAGE].[ORGANIZATIONINSERTCOSTPEREFFORT] as [ORGANIZATIONCOSTPEREFFORT]
    from dbo.[MKTSEGMENTATIONPACKAGE]
    where [MKTSEGMENTATIONPACKAGE].[SEGMENTATIONID] = @SEGMENTATIONID;
  else
    insert into @PACKAGECOSTS
    exec dbo.[USP_MKTSEGMENTATION_GETPACKAGECOSTS] @SEGMENTATIONID;

  select
    isnull(sum([COSTPERPIECE]), 0) as [TOTALCOSTPERPIECE],
    isnull(sum([COSTPERRESPONSE]), 0) as [TOTALCOSTPERRESPONSE],
    isnull(sum([COSTPEREFFORT]), 0) as [TOTALCOSTPEREFFORT],
    isnull(sum([ORGANIZATIONCOSTPERPIECE]), 0) as [ORGANIZATIONTOTALCOSTPERPIECE],
    isnull(sum([ORGANIZATIONCOSTPERRESPONSE]), 0) as [ORGANIZATIONTOTALCOSTPERRESPONSE],
    isnull(sum([ORGANIZATIONCOSTPEREFFORT]), 0) as [ORGANIZATIONTOTALCOSTPEREFFORT]    
  from @PACKAGECOSTS;

  return 0;