USP_MKTSEGMENTATION_GETPACKAGECOSTS

Returns the package costs for a marketing effort.

Parameters

Parameter Parameter Type Mode Description
@SEGMENTATIONID uniqueidentifier IN

Definition

Copy


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

  declare @PACKAGEPERTHOUSANDAMOUNT decimal(15,5) = 1000.0;

  select
    [MKTPACKAGE].[ID],
    cast ((case [MKTPACKAGE].[COSTDISTRIBUTIONMETHODCODE] 
             when 0 then [MKTPACKAGE].[UNITCOST] 
             when 4 then [MKTPACKAGE].[UNITCOST]/@PACKAGEPERTHOUSANDAMOUNT
             else 0 end) + 
           dbo.[UFN_MKTPACKAGE_GETINSERTCOSTFORDISTRIBUTION2]([MKTPACKAGE].[ID], 0, 0) +
           -- Add any other package costs using 'Per thousand'

           dbo.[UFN_MKTPACKAGE_GETINSERTCOSTFORDISTRIBUTION2]([MKTPACKAGE].[ID], 4, 0) as decimal(30,8)) -- WI 370811 cast as decimal to be explicit about the precision

     as [COSTPERPIECE],
    (case [MKTPACKAGE].[COSTDISTRIBUTIONMETHODCODE] when 1 then [MKTPACKAGE].[UNITCOST] else 0 end) + dbo.[UFN_MKTPACKAGE_GETINSERTCOSTFORDISTRIBUTION2]([MKTPACKAGE].[ID], 1, 0) as [COSTPERRESPONSE],
    (case [MKTPACKAGE].[COSTDISTRIBUTIONMETHODCODE] when 2 then [MKTPACKAGE].[UNITCOST] else 0 end) + dbo.[UFN_MKTPACKAGE_GETINSERTCOSTFORDISTRIBUTION2]([MKTPACKAGE].[ID], 2, 0) as [COSTPEREFFORT],
    cast ((case [MKTPACKAGE].[COSTDISTRIBUTIONMETHODCODE] 
             when 0 then [MKTPACKAGE].[ORGANIZATIONUNITCOST] 
             when 4 then [MKTPACKAGE].[ORGANIZATIONUNITCOST]/@PACKAGEPERTHOUSANDAMOUNT
             else 0 end) + 
           dbo.[UFN_MKTPACKAGE_GETINSERTCOSTFORDISTRIBUTION2]([MKTPACKAGE].[ID], 0, 1) + 
           -- Add any other package costs using 'Per thousand'

           dbo.[UFN_MKTPACKAGE_GETINSERTCOSTFORDISTRIBUTION2]([MKTPACKAGE].[ID], 4, 1) as decimal(30,8)) -- WI 370811 cast as decimal to be explicit about the precision

     as [ORGANIZATIONCOSTPERPIECE],
    (case [MKTPACKAGE].[COSTDISTRIBUTIONMETHODCODE] when 1 then [MKTPACKAGE].[ORGANIZATIONUNITCOST] else 0 end) + dbo.[UFN_MKTPACKAGE_GETINSERTCOSTFORDISTRIBUTION2]([MKTPACKAGE].[ID], 1, 1) as [ORGANIZATIONCOSTPERRESPONSE],
    (case [MKTPACKAGE].[COSTDISTRIBUTIONMETHODCODE] when 2 then [MKTPACKAGE].[ORGANIZATIONUNITCOST] else 0 end) + dbo.[UFN_MKTPACKAGE_GETINSERTCOSTFORDISTRIBUTION2]([MKTPACKAGE].[ID], 2, 1) as [ORGANIZATIONCOSTPEREFFORT]

  from dbo.[MKTSEGMENTATIONPACKAGE]
  inner join dbo.[MKTPACKAGE] on [MKTPACKAGE].[ID] = [MKTSEGMENTATIONPACKAGE].[PACKAGEID]
  where [MKTSEGMENTATIONPACKAGE].[SEGMENTATIONID] = @SEGMENTATIONID;

  return 0;