USP_DATAFORMTEMPLATE_EDITLOAD_MKTSEGMENTATIONPASSIVESEGMENT

The load procedure used by the edit dataform template "Public Media Marketing Effort Segment Edit Form"

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier 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.
@SEGMENTATIONID uniqueidentifier INOUT Effort ID
@SEGMENTATIONSITEID uniqueidentifier INOUT Marketing effort site ID
@SEGMENTATIONACTIVE bit INOUT Marketing effort active?
@SOURCECODEID uniqueidentifier INOUT Source code ID
@SEGMENTTYPECODE tinyint INOUT Segment type
@SEGMENTID uniqueidentifier INOUT Segment
@CODEVALUEID uniqueidentifier INOUT Code value ID
@CODE nvarchar(10) INOUT Code
@PACKAGEID uniqueidentifier INOUT Package
@PACKAGECODEVALUEID uniqueidentifier INOUT Package code value ID
@PACKAGECODE nvarchar(10) INOUT Package code
@CHANNELCODEVALUEID uniqueidentifier INOUT Channel code value ID
@CHANNELCODE nvarchar(10) INOUT Channel code
@EXPOSURESTARTDATE date INOUT Start date
@EXPOSUREENDDATE date INOUT End date
@RESPONSERATE decimal(5, 2) INOUT Response rate
@GIFTAMOUNT money INOUT Gift amount
@ITEMLIST xml INOUT Items
@TSLONG bigint INOUT Output parameter indicating the TSLONG value of the record being edited. This is used to manage multi-user concurrency issues when multiple users access the same record.
@BASECURRENCYID uniqueidentifier INOUT Base currency ID
@PACKAGEADDDATAFORMCONTEXT nvarchar(38) INOUT Package add data form context

Definition

Copy


CREATE procedure dbo.[USP_DATAFORMTEMPLATE_EDITLOAD_MKTSEGMENTATIONPASSIVESEGMENT]
(
  @ID uniqueidentifier,
  @DATALOADED bit = 0 output,
  @SEGMENTATIONID uniqueidentifier = null output,
  @SEGMENTATIONSITEID uniqueidentifier = null output,
  @SEGMENTATIONACTIVE bit = null output,
  @SOURCECODEID uniqueidentifier = null output,
  @SEGMENTTYPECODE tinyint = null output,
  @SEGMENTID uniqueidentifier = null output,
  @CODEVALUEID uniqueidentifier = null output,
  @CODE nvarchar(10) = null output,
  @PACKAGEID uniqueidentifier = null output,
  @PACKAGECODEVALUEID uniqueidentifier = null output,
  @PACKAGECODE nvarchar(10) = null output,
  @CHANNELCODEVALUEID uniqueidentifier = null output,
  @CHANNELCODE nvarchar(10) = null output,
  @EXPOSURESTARTDATE date = null output,
  @EXPOSUREENDDATE date = null output,
  @RESPONSERATE decimal(5, 2) = null output,
  @GIFTAMOUNT money = null output,
  @ITEMLIST xml = null output,
  @TSLONG bigint = 0 output,
  @BASECURRENCYID uniqueidentifier = null output,
  @PACKAGEADDDATAFORMCONTEXT nvarchar(38) = null output
)
as
  set nocount on;

  set @DATALOADED = 0;
  set @TSLONG = 0;

  select 
    @DATALOADED = 1,
    @SEGMENTATIONID = [MKTSEGMENTATIONSEGMENT].[SEGMENTATIONID],
    @SEGMENTATIONSITEID = [MKTSEGMENTATION].[SITEID],
    @SEGMENTATIONACTIVE = [MKTSEGMENTATION].[ACTIVE],
    @SOURCECODEID = [MKTSEGMENTATION].[SOURCECODEID],
    @SEGMENTTYPECODE = [MKTSEGMENT].[SEGMENTTYPECODE],
    @SEGMENTID = [MKTSEGMENTATIONSEGMENT].[SEGMENTID],
    @CODEVALUEID = [MKTSEGMENTATIONSEGMENT].[PARTDEFINITIONVALUESID],
    @CODE = [MKTSEGMENTATIONSEGMENT].[CODE],
    @PACKAGEID = [MKTSEGMENTATIONSEGMENT].[PACKAGEID],
    @PACKAGECODEVALUEID = [MKTPACKAGE].[PARTDEFINITIONVALUESID],
    @PACKAGECODE = (case when [MKTSEGMENTATION].[ACTIVE] = 1 then [MKTSEGMENTATIONPACKAGE].[CODE] else [MKTPACKAGE].[CODE] end),
    @CHANNELCODEVALUEID = [MKTPACKAGE].[CHANNELPARTDEFINITIONVALUESID],
    @CHANNELCODE = [MKTPACKAGE].[CHANNELSOURCECODE],
    @EXPOSURESTARTDATE = [MKTSEGMENTATIONSEGMENT].[EXPOSURESTARTDATE],
    @EXPOSUREENDDATE = [MKTSEGMENTATIONSEGMENT].[EXPOSUREENDDATE],
    @RESPONSERATE = [MKTSEGMENTATIONSEGMENT].[RESPONSERATE],
    @GIFTAMOUNT = [MKTSEGMENTATIONSEGMENT].[GIFTAMOUNT],
    @TSLONG = [MKTSEGMENTATIONSEGMENT].[TSLONG],
    @BASECURRENCYID = [MKTSEGMENTATIONSEGMENT].[BASECURRENCYID],
    @PACKAGEADDDATAFORMCONTEXT = '4|' + convert(nvarchar(36), [MKTSEGMENTATIONSEGMENT].[BASECURRENCYID])
  from dbo.[MKTSEGMENTATIONSEGMENT]
  inner join dbo.[MKTSEGMENT] on [MKTSEGMENT].[ID] = [MKTSEGMENTATIONSEGMENT].[SEGMENTID]
  inner join dbo.[MKTSEGMENTATION] on [MKTSEGMENTATION].[ID] = [MKTSEGMENTATIONSEGMENT].[SEGMENTATIONID]
  inner join dbo.[MKTPACKAGE] on [MKTPACKAGE].[ID] = [MKTSEGMENTATIONSEGMENT].[PACKAGEID]
  left join dbo.[MKTSEGMENTATIONPACKAGE] on [MKTSEGMENTATIONPACKAGE].[SEGMENTATIONID] = [MKTSEGMENTATION].[ID] and [MKTSEGMENTATIONPACKAGE].[PACKAGEID] = [MKTPACKAGE].[ID]
  where [MKTSEGMENTATIONSEGMENT].[ID] = @ID;

  if @DATALOADED = 1 and @SEGMENTATIONACTIVE = 0
    begin
      -- check if the mailing is currently being activated

      declare @R int;
      exec @R = dbo.[USP_MKTSEGMENTATION_CHECKACTIVATION] @SEGMENTATIONID;
      if @R <> 0
        begin
          set @DATALOADED = 0;
          return 1;
        end
    end

  return 0;