USP_DATALIST_DIRECTMARKETINGEFFORTBATCHSEGMENT

Retrieves information for batch about a marketing effort segment.

Parameters

Parameter Parameter Type Mode Description
@BATCHID uniqueidentifier IN Input parameter indicating the context ID for the data list.
@SEGMENTID uniqueidentifier IN Segment
@SEGMENTATIONID uniqueidentifier IN Marketing effort

Definition

Copy


CREATE procedure dbo.[USP_DATALIST_DIRECTMARKETINGEFFORTBATCHSEGMENT]
(
  @BATCHID uniqueidentifier,
  @SEGMENTID uniqueidentifier,
  @SEGMENTATIONID uniqueidentifier = null
)
as
  set nocount on;

  if exists(select * from dbo.[MKTSEGMENT] where [ID] = @SEGMENTID)
    --Grab the data for the segment if it already exists.  This can return multiple rows since a 

    --mailing can contain the same segment more than once with different packages.

    select
      cast(1 as bit) as [EXISTINGSEGMENT],
      [MKTSEGMENT].[NAME],
      [MKTSEGMENT].[DESCRIPTION],
      [MKTSOURCECODEPARTDEFINITIONVALUES].[ID] as [CODEVALUEID],
      [MKTSOURCECODEPARTDEFINITIONVALUES].[DESCRIPTION] as [CODEVALUE],
      (select [FORMAT] from dbo.[MKTSOURCECODEPARTDEFINITIONVALUES] where [ID] = [MKTSEGMENT].[PARTDEFINITIONVALUESID]) as [CODEFORMAT],
      (select [REGEX] from dbo.[MKTSOURCECODEPARTDEFINITIONVALUES] where [ID] = [MKTSEGMENT].[PARTDEFINITIONVALUESID]) as [CODEREGEX],
      [MKTSEGMENT].[CODE],
      [TESTCODEPARTDEFINITIONVALUES].[ID] as [TESTCODEVALUEID],
      [TESTCODEPARTDEFINITIONVALUES].[DESCRIPTION] as [TESTCODEVALUE],
      (select [FORMAT] from dbo.[MKTSOURCECODEPARTDEFINITIONVALUES] where [ID] = [MKTSEGMENTATIONSEGMENT].[TESTPARTDEFINITIONVALUESID]) as [TESTCODEFORMAT],
      (select [REGEX] from dbo.[MKTSOURCECODEPARTDEFINITIONVALUES] where [ID] = [MKTSEGMENTATIONSEGMENT].[TESTPARTDEFINITIONVALUESID]) as [TESTCODEREGEX],
      [MKTSEGMENTATIONSEGMENT].[TESTSEGMENTCODE] as [TESTCODE],
      [MKTSEGMENTCATEGORYCODE].[ID] as [CATEGORYCODEID],
      [MKTSEGMENTCATEGORYCODE].[DESCRIPTION] as [CATEGORY],
      [MKTSEGMENT].[SEGMENTTYPECODE],
      [MKTSEGMENT].[SEGMENTTYPE],
      [MKTSEGMENTATIONSEGMENT].[GIFTAMOUNT] as [EXPECTEDGIFTAMOUNT],
      [MKTSEGMENTATIONSEGMENT].[RESPONSERATE] as [EXPECTEDRESPONSERATE],
      [MKTSEGMENTLIST].[RENTALQUANTITY],
      [MKTSEGMENTLIST].[EXCHANGEQUANTITY],
      (case when isnull([MKTSEGMENTATIONSEGMENTLIST].[OVERRIDEQUANTITIESANDORSEGMENTCOSTS], 0) = 1 or isnull([MKTSEGMENTATIONSEGMENTLIST].[OVERRIDELISTCOSTS], 0) = 1 then [MKTSEGMENTATIONSEGMENTLIST].[RENTALCOSTADJUSTMENT] else [MKTSEGMENTLIST].[RENTALCOSTADJUSTMENT] end) as [RENTALCOST],
      (case when isnull([MKTSEGMENTATIONSEGMENTLIST].[OVERRIDEQUANTITIESANDORSEGMENTCOSTS], 0) = 1 or isnull([MKTSEGMENTATIONSEGMENTLIST].[OVERRIDELISTCOSTS], 0) = 1 then [MKTSEGMENTATIONSEGMENTLIST].[RENTALCOSTADJUSTMENTBASISCODE] else [MKTSEGMENTLIST].[RENTALCOSTBASISCODE] end) as [RENTALCOSTBASISCODE],
      (case when isnull([MKTSEGMENTATIONSEGMENTLIST].[OVERRIDEQUANTITIESANDORSEGMENTCOSTS], 0) = 1 or isnull([MKTSEGMENTATIONSEGMENTLIST].[OVERRIDELISTCOSTS], 0) = 1 then [MKTSEGMENTATIONSEGMENTLIST].[RENTALCOSTADJUSTMENTBASIS] else [MKTSEGMENTLIST].[RENTALCOSTBASIS] end) as [RENTALCOSTBASIS],
      (case when isnull([MKTSEGMENTATIONSEGMENTLIST].[OVERRIDEQUANTITIESANDORSEGMENTCOSTS], 0) = 1 or isnull([MKTSEGMENTATIONSEGMENTLIST].[OVERRIDELISTCOSTS], 0) = 1 then [MKTSEGMENTATIONSEGMENTLIST].[EXCHANGECOSTADJUSTMENT] else [MKTSEGMENTLIST].[EXCHANGECOSTADJUSTMENT] end) as [EXCHANGECOST],
      (case when isnull([MKTSEGMENTATIONSEGMENTLIST].[OVERRIDEQUANTITIESANDORSEGMENTCOSTS], 0) = 1 or isnull([MKTSEGMENTATIONSEGMENTLIST].[OVERRIDELISTCOSTS], 0) = 1 then [MKTSEGMENTATIONSEGMENTLIST].[EXCHANGECOSTADJUSTMENTBASISCODE] else [MKTSEGMENTLIST].[EXCHANGECOSTBASISCODE] end) as [EXCHANGECOSTBASISCODE],
      (case when isnull([MKTSEGMENTATIONSEGMENTLIST].[OVERRIDEQUANTITIESANDORSEGMENTCOSTS], 0) = 1 or isnull([MKTSEGMENTATIONSEGMENTLIST].[OVERRIDELISTCOSTS], 0) = 1 then [MKTSEGMENTATIONSEGMENTLIST].[EXCHANGECOSTADJUSTMENTBASIS] else [MKTSEGMENTLIST].[EXCHANGECOSTBASIS] end) as [EXCHANGECOSTBASIS],
      [MKTSEGMENTATIONSEGMENT].[USAGECODE],
      [MKTSEGMENTATIONSEGMENT].[USAGE],
      [MKTSEGMENTATIONSEGMENT].[PACKAGEID],
      dbo.[UFN_TRANSLATIONFUNCTION_SITE_GETNAME]([MKTSEGMENT].[SITEID]) as [SITE],
      [MKTSEGMENT].[SITEID]
    from dbo.[MKTSEGMENT]
    left join dbo.[MKTSOURCECODEPARTDEFINITIONVALUES] on [MKTSOURCECODEPARTDEFINITIONVALUES].[ID] = [MKTSEGMENT].[PARTDEFINITIONVALUESID]
    left join dbo.[MKTSEGMENTCATEGORYCODE] on [MKTSEGMENTCATEGORYCODE].[ID] = [MKTSEGMENT].[SEGMENTCATEGORYCODEID]
    left join dbo.[MKTSEGMENTLIST] on [MKTSEGMENTLIST].[ID] = [MKTSEGMENT].[CURRENTSEGMENTLISTID]
    left join dbo.[MKTSEGMENTATIONSEGMENT] on [MKTSEGMENTATIONSEGMENT].[SEGMENTID] = [MKTSEGMENT].[ID] and @SEGMENTATIONID is not null and [MKTSEGMENTATIONSEGMENT].[SEGMENTATIONID] = @SEGMENTATIONID
    left join dbo.[MKTSEGMENTATIONSEGMENTLIST] on [MKTSEGMENTATIONSEGMENTLIST].[ID] = [MKTSEGMENTATIONSEGMENT].[ID]
    left join dbo.[MKTSOURCECODEPARTDEFINITIONVALUES] as [TESTCODEPARTDEFINITIONVALUES] on [TESTCODEPARTDEFINITIONVALUES].[ID] = [MKTSEGMENTATIONSEGMENT].[TESTPARTDEFINITIONVALUESID]
    where [MKTSEGMENT].[ID] = @SEGMENTID
    order by [MKTSEGMENTATIONSEGMENT].[SEQUENCE];
  else
    --If the segment does not exist yet, then grab the data from the batch table.  This should only return one row.

    select top 1
      cast(0 as bit) as [EXISTINGSEGMENT],
      [BATCHDIRECTMARKETINGEFFORTSEGMENT].[NAME],
      [BATCHDIRECTMARKETINGEFFORTSEGMENT].[DESCRIPTION],
      [MKTSOURCECODEPARTDEFINITIONVALUES].[ID] as [CODEVALUEID],
      [MKTSOURCECODEPARTDEFINITIONVALUES].[DESCRIPTION] as [CODEVALUE],
      (select [FORMAT] from dbo.[MKTSOURCECODEPARTDEFINITIONVALUES] where [ID] = [BATCHDIRECTMARKETINGEFFORTSEGMENT].[CODEPARTDEFINITIONVALUESID]) as [CODEFORMAT],
      (select [REGEX] from dbo.[MKTSOURCECODEPARTDEFINITIONVALUES] where [ID] = [BATCHDIRECTMARKETINGEFFORTSEGMENT].[CODEPARTDEFINITIONVALUESID]) as [CODEREGEX],
      [BATCHDIRECTMARKETINGEFFORTSEGMENT].[CODE],
      [TESTCODEPARTDEFINITIONVALUES].[ID] as [TESTCODEVALUEID],
      [TESTCODEPARTDEFINITIONVALUES].[DESCRIPTION] as [TESTCODEVALUE],
      (select [FORMAT] from dbo.[MKTSOURCECODEPARTDEFINITIONVALUES] where [ID] = [BATCHDIRECTMARKETINGEFFORT].[SEGMENTTESTCODEPARTDEFINITIONVALUESID]) as [TESTCODEFORMAT],
      (select [REGEX] from dbo.[MKTSOURCECODEPARTDEFINITIONVALUES] where [ID] = [BATCHDIRECTMARKETINGEFFORT].[SEGMENTTESTCODEPARTDEFINITIONVALUESID]) as [TESTCODEREGEX],
      [BATCHDIRECTMARKETINGEFFORT].[SEGMENTTESTCODE] as [TESTCODE],
      [MKTSEGMENTCATEGORYCODE].[ID] as [CATEGORYCODEID],
      [MKTSEGMENTCATEGORYCODE].[DESCRIPTION] as [CATEGORY],
      [BATCHDIRECTMARKETINGEFFORTSEGMENT].[SEGMENTTYPECODE],
      [BATCHDIRECTMARKETINGEFFORTSEGMENT].[SEGMENTTYPE],
      [BATCHDIRECTMARKETINGEFFORT].[SEGMENTEXPECTEDGIFTAMOUNT] as [EXPECTEDGIFTAMOUNT],
      [BATCHDIRECTMARKETINGEFFORT].[SEGMENTEXPECTEDRESPONSERATE] as [EXPECTEDRESPONSERATE],
      [BATCHDIRECTMARKETINGEFFORT].[SEGMENTRENTALQUANTITY] as [RENTALQUANTITY],
      [BATCHDIRECTMARKETINGEFFORT].[SEGMENTEXCHANGEQUANTITY] as [EXCHANGEQUANTITY],
      [BATCHDIRECTMARKETINGEFFORT].[SEGMENTRENTALCOST] as [RENTALCOST],
      [BATCHDIRECTMARKETINGEFFORT].[SEGMENTRENTALCOSTBASISCODE] as [RENTALCOSTBASISCODE],
      [BATCHDIRECTMARKETINGEFFORT].[SEGMENTRENTALCOSTBASIS] as [RENTALCOSTBASIS],
      [BATCHDIRECTMARKETINGEFFORT].[SEGMENTEXCHANGECOST] as [EXCHANGECOST],
      [BATCHDIRECTMARKETINGEFFORT].[SEGMENTEXCHANGECOSTBASISCODE] as [EXCHANGECOSTBASISCODE],
      [BATCHDIRECTMARKETINGEFFORT].[SEGMENTEXCHANGECOSTBASIS] as [EXCHANGECOSTBASIS],
      [BATCHDIRECTMARKETINGEFFORT].[SEGMENTUSAGECODE] as [USAGECODE],
      [BATCHDIRECTMARKETINGEFFORT].[SEGMENTUSAGE] as [USAGE],
      isnull([BATCHDIRECTMARKETINGEFFORTPACKAGE].[MKTPACKAGEID], [BATCHDIRECTMARKETINGEFFORTPACKAGE].[ID]) as [PACKAGEID],
      dbo.[UFN_TRANSLATIONFUNCTION_SITE_GETNAME]([BATCHDIRECTMARKETINGEFFORTSEGMENT].[SITEID]) as [SITE],
      [BATCHDIRECTMARKETINGEFFORTSEGMENT].[SITEID]
    from dbo.[BATCHDIRECTMARKETINGEFFORT]
    inner join dbo.[BATCHDIRECTMARKETINGEFFORTSEGMENT] on [BATCHDIRECTMARKETINGEFFORTSEGMENT].[ID] = [BATCHDIRECTMARKETINGEFFORT].[BATCHDIRECTMARKETINGEFFORTSEGMENTID]
    left join dbo.[BATCHDIRECTMARKETINGEFFORTPACKAGE] on [BATCHDIRECTMARKETINGEFFORTPACKAGE].[ID] = [BATCHDIRECTMARKETINGEFFORT].[BATCHDIRECTMARKETINGEFFORTPACKAGEID]
    left join dbo.[MKTSOURCECODEPARTDEFINITIONVALUES] on [MKTSOURCECODEPARTDEFINITIONVALUES].[ID] = [BATCHDIRECTMARKETINGEFFORTSEGMENT].[CODEPARTDEFINITIONVALUESID]
    left join dbo.[MKTSEGMENTCATEGORYCODE] on [MKTSEGMENTCATEGORYCODE].[ID] = [BATCHDIRECTMARKETINGEFFORTSEGMENT].[MKTSEGMENTCATEGORYCODEID]
    left join dbo.[MKTSOURCECODEPARTDEFINITIONVALUES] as [TESTCODEPARTDEFINITIONVALUES] on [TESTCODEPARTDEFINITIONVALUES].[ID] = [BATCHDIRECTMARKETINGEFFORT].[SEGMENTTESTCODEPARTDEFINITIONVALUESID]
    where [BATCHDIRECTMARKETINGEFFORT].[BATCHID] = @BATCHID
    and [BATCHDIRECTMARKETINGEFFORTSEGMENT].[ID] = @SEGMENTID;

  return 0;