USP_DATAFORMTEMPLATE_EDITLOAD_MKTSEGMENTATIONTESTSEGMENT_3

The load procedure used by the edit dataform template "Marketing Effort Test Segment Edit Form 3"

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.
@SEGMENTID uniqueidentifier INOUT Segment
@SEGMENTATIONID uniqueidentifier INOUT Segmentation
@SEGMENTATIONACTIVE bit INOUT Marketing effort active?
@NAME nvarchar(100) INOUT Name
@DESCRIPTION nvarchar(255) INOUT Description
@CODE nvarchar(10) INOUT Code
@TESTSEGMENTCODE nvarchar(10) INOUT Test segment
@PACKAGEID uniqueidentifier INOUT Package
@PACKAGECODE nvarchar(10) INOUT Package code
@RESPONSERATE decimal(5, 2) INOUT Response rate
@GIFTAMOUNT money INOUT Gift amount
@SAMPLESIZE int INOUT Sample size
@SAMPLESIZETYPECODE tinyint INOUT Sample size type
@SAMPLESIZEMETHODCODE tinyint INOUT Sample size method
@SOURCECODEID uniqueidentifier INOUT Source code ID
@ASKLADDERID uniqueidentifier INOUT Ask ladder
@RECORDSOURCEID uniqueidentifier INOUT Ask ladder record source ID
@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.
@SEGMENTTYPECODE tinyint INOUT Segment type code
@SEGMENTATIONSITEID uniqueidentifier INOUT Marketing effort site ID
@MAILINGTYPECODE tinyint INOUT Marketing effort type code
@ISVENDORMANAGED bit INOUT Vendor managed
@SAMPLESEGMENTNAME nvarchar(100) INOUT Sample name
@SAMPLESEGMENTCODE nvarchar(10) INOUT Sample code
@PREFIXCODE tinyint INOUT Prepend list
@CODEVALUEID uniqueidentifier INOUT Code value ID
@PACKAGECODEVALUEID uniqueidentifier INOUT Package code value ID
@TESTSEGMENTCODEVALUEID uniqueidentifier INOUT Test segment code value ID
@ITEMLIST xml INOUT Items
@CHANNELSOURCECODE nvarchar(10) INOUT Channel source code
@CHANNELSOURCECODEVALUEID uniqueidentifier INOUT Channel code value ID
@FRACTION nvarchar(10) INOUT Fraction
@OVERRIDEBUSINESSUNITS bit INOUT Override business units
@BUSINESSUNITS xml INOUT Business units
@SEGMENTATIONSEGMENTID uniqueidentifier INOUT Segmentation Segment ID
@ISBBEC bit INOUT Is BBEC?
@BASECURRENCYID uniqueidentifier INOUT Base currency ID
@SEGMENTEDHOUSEFILEEXISTS bit INOUT Segmented house file exists
@PACKAGEADDDATAFORMCONTEXT nvarchar(128) INOUT Package add data form context
@LISTCODEVALUEID uniqueidentifier INOUT
@LISTCODE nvarchar(10) INOUT
@PACKAGECHANNELCODE tinyint INOUT
@EFFORTOVERRIDESBUSINESSUNITS bit INOUT
@EFFORTSEGMENTOVERRIDESBUSINESSUNITS bit INOUT
@ISHISTORICAL bit INOUT
@SOURCECODEISHISTORICAL bit INOUT
@SOURCECODE nvarchar(50) INOUT
@CHANNELCODE tinyint INOUT
@ALLOWEFFORTBUSINESSUNITSOVERRIDE bit INOUT

Definition

Copy


CREATE procedure dbo.[USP_DATAFORMTEMPLATE_EDITLOAD_MKTSEGMENTATIONTESTSEGMENT_3]
(
  @ID uniqueidentifier,
  @DATALOADED bit = 0 output,
  @SEGMENTID uniqueidentifier = null output,
  @SEGMENTATIONID uniqueidentifier = null output,
  @SEGMENTATIONACTIVE bit = null output,
  @NAME nvarchar(100) = null output,
  @DESCRIPTION nvarchar(255) = null output,
  @CODE nvarchar(10) = null output,
  @TESTSEGMENTCODE nvarchar(10) = null output,
  @PACKAGEID uniqueidentifier = null output,
  @PACKAGECODE nvarchar(10) = null output,
  @RESPONSERATE decimal(5,2) = null output,
  @GIFTAMOUNT money = null output,
  @SAMPLESIZE int = null output,
  @SAMPLESIZETYPECODE tinyint = null output,
  @SAMPLESIZEMETHODCODE tinyint = null output,
  @SOURCECODEID uniqueidentifier = null output,
  @ASKLADDERID uniqueidentifier = null output,
  @RECORDSOURCEID uniqueidentifier = null output,
  @TSLONG bigint = 0 output,
  @SEGMENTTYPECODE tinyint = null output,
  @SEGMENTATIONSITEID uniqueidentifier = null output,
  @MAILINGTYPECODE tinyint = null output,
  @ISVENDORMANAGED bit = null output,
  @SAMPLESEGMENTNAME nvarchar(100) = null output,
  @SAMPLESEGMENTCODE nvarchar(10) = null output,
  @PREFIXCODE tinyint = null output,
  @CODEVALUEID uniqueidentifier = null output,
  @PACKAGECODEVALUEID uniqueidentifier = null output,
  @TESTSEGMENTCODEVALUEID uniqueidentifier = null output,
  @ITEMLIST xml = null output,
  @CHANNELSOURCECODE nvarchar(10) = null output,
  @CHANNELSOURCECODEVALUEID uniqueidentifier = null output,
  @FRACTION nvarchar(10) = null output,
  @OVERRIDEBUSINESSUNITS bit = null output,
  @BUSINESSUNITS xml = null output,
  @SEGMENTATIONSEGMENTID uniqueidentifier = null output,
  @ISBBEC bit = null output,
  @BASECURRENCYID uniqueidentifier = null output,
  @SEGMENTEDHOUSEFILEEXISTS bit = null output,
  @PACKAGEADDDATAFORMCONTEXT nvarchar(128) = null output,
  @LISTCODEVALUEID uniqueidentifier = null output,
  @LISTCODE nvarchar(10) = null output,
  @PACKAGECHANNELCODE tinyint = null output,
  @EFFORTOVERRIDESBUSINESSUNITS bit = null output,
  @EFFORTSEGMENTOVERRIDESBUSINESSUNITS bit = null output,
  @ISHISTORICAL bit = null output,
  @SOURCECODEISHISTORICAL bit = null output,
  @SOURCECODE nvarchar(50) = null output,
  @CHANNELCODE tinyint = null output,
  @ALLOWEFFORTBUSINESSUNITSOVERRIDE bit = null output
)
as
  set nocount on;

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

  set @ISBBEC = (case when dbo.[UFN_INSTALLEDPRODUCTS_PRODUCTIS]('BB9873D7-F1ED-430A-8AB4-F09F47056538') = 0 then 1 else 0 end);

  /* Load the test segment */
  select 
    @DATALOADED = 1,
    @SEGMENTID = [MKTSEGMENTATIONTESTSEGMENT].[SEGMENTID],
    @SEGMENTATIONID = [MKTSEGMENTATION].[ID],
    @SEGMENTATIONACTIVE = [MKTSEGMENTATION].[ACTIVE],
    @PREFIXCODE = [MKTSEGMENTATIONTESTSEGMENT].[PREFIXCODE],
    @NAME = [MKTSEGMENTATIONTESTSEGMENT].[NAME],
    @DESCRIPTION = [MKTSEGMENTATIONTESTSEGMENT].[DESCRIPTION],
    @CODE = [MKTSEGMENTATIONSEGMENT].[CODE],
    @CODEVALUEID = [MKTSEGMENTATIONSEGMENT].[PARTDEFINITIONVALUESID],
    @LISTCODEVALUEID = isnull(case when [MKTSEGMENTATIONSEGMENTLIST].[SEGMENTLISTID] is not null then [MKTLISTACTIVE].[PARTDEFINITIONVALUESID] else [MKTLIST].[PARTDEFINITIONVALUESID] end, [MKTRECORDSOURCE].[PARTDEFINITIONVALUESID]),
    @LISTCODE = isnull(isnull(case when [MKTSEGMENTATIONSEGMENTLIST].[SEGMENTLISTID] is not null then [MKTLISTACTIVE].[CODE] else [MKTLIST].[CODE] end, [MKTRECORDSOURCE].[CODE]), ''),
    @TESTSEGMENTCODE = [MKTSEGMENTATIONTESTSEGMENT].[TESTSEGMENTCODE],
    @TESTSEGMENTCODEVALUEID = [MKTSEGMENTATIONTESTSEGMENT].[TESTPARTDEFINITIONVALUESID],
    @PACKAGEID = [MKTSEGMENTATIONTESTSEGMENT].[PACKAGEID],
    @PACKAGECHANNELCODE = [MKTPACKAGE].[CHANNELCODE],
    @PACKAGECODE = (case when [MKTSEGMENTATION].[ACTIVE] = 1 then [MKTSEGMENTATIONPACKAGE].[CODE] else [MKTPACKAGE].[CODE] end),
    @PACKAGECODEVALUEID = (case when [MKTSEGMENTATION].[ACTIVE] = 1 then [MKTSEGMENTATIONPACKAGE].[PARTDEFINITIONVALUESID] else [MKTPACKAGE].[PARTDEFINITIONVALUESID] end),
    @CHANNELSOURCECODE = (case when [MKTSEGMENTATION].[ACTIVE] = 1 then [MKTSEGMENTATIONPACKAGE].[CHANNELSOURCECODE] else [MKTPACKAGE].[CHANNELSOURCECODE] end),
    @CHANNELSOURCECODEVALUEID = (case when [MKTSEGMENTATION].[ACTIVE] = 1 then [MKTSEGMENTATIONPACKAGE].[CHANNELPARTDEFINITIONVALUESID] else [MKTPACKAGE].[CHANNELPARTDEFINITIONVALUESID] end),
    @RESPONSERATE = [MKTSEGMENTATIONTESTSEGMENT].[RESPONSERATE],
    @GIFTAMOUNT = [MKTSEGMENTATIONTESTSEGMENT].[GIFTAMOUNT],
    @SAMPLESIZE = [MKTSEGMENTATIONTESTSEGMENT].[SAMPLESIZE],
    @SAMPLESIZETYPECODE = [MKTSEGMENTATIONTESTSEGMENT].[SAMPLESIZETYPECODE],
    @SAMPLESIZEMETHODCODE = [MKTSEGMENTATIONTESTSEGMENT].[SAMPLESIZEMETHODCODE],
    @SOURCECODEID = [MKTSEGMENTATION].[SOURCECODEID],
    @ITEMLIST = dbo.[UFN_MKTSOURCECODEPART_SEGMENTATIONTESTSEGMENT_GETITEMLIST3_TOITEMLISTXML]([MKTSEGMENTATIONTESTSEGMENT].[ID]),
    @ASKLADDERID = [MKTSEGMENTATIONTESTSEGMENT].[ASKLADDERID],
    @RECORDSOURCEID = (select [QUERYVIEWCATALOGID] from dbo.[MKTSEGMENT] where [ID]=[MKTSEGMENTATIONSEGMENT].[SEGMENTID]),
    @TSLONG = [MKTSEGMENTATIONTESTSEGMENT].[TSLONG],
    @SEGMENTTYPECODE = [MKTSEGMENT].[SEGMENTTYPECODE],
    @SEGMENTATIONSITEID = [MKTSEGMENTATION].[SITEID],
    @MAILINGTYPECODE = [MKTSEGMENTATION].[MAILINGTYPECODE],
    @ISVENDORMANAGED = dbo.[UFN_MKTSEGMENT_ISVENDORMANAGEDLIST]([MKTSEGMENT].[ID]),
    @SAMPLESEGMENTNAME = [MKTSEGMENT].[NAME],
    @SAMPLESEGMENTCODE = [MKTSEGMENTATIONSEGMENT].[CODE],
    @FRACTION = [MKTSEGMENTATIONTESTSEGMENT].[FRACTION],
    @OVERRIDEBUSINESSUNITS = [MKTSEGMENTATIONTESTSEGMENT].[OVERRIDEBUSINESSUNITS],
    @BUSINESSUNITS = (case when @ISBBEC = 1 then
                        case [MKTSEGMENTATIONTESTSEGMENT].[OVERRIDEBUSINESSUNITS] when 1 then 
                          dbo.[UFN_MKTSEGMENTATIONTESTSEGMENTBUSINESSUNIT_GETBUSINESSUNITS_TOITEMLISTXML]([MKTSEGMENTATIONTESTSEGMENT].[ID])
                        else 
                          case [MKTSEGMENTATIONSEGMENT].[OVERRIDEBUSINESSUNITS] when 1 then
                            dbo.[UFN_MKTSEGMENTATIONSEGMENTBUSINESSUNIT_GETBUSINESSUNITS_TOITEMLISTXML]([MKTSEGMENTATIONSEGMENT].[ID]) 
                          else
                            case [MKTSEGMENTATION].[OVERRIDEBUSINESSUNITS] when 1 then
                              dbo.[UFN_MKTSEGMENTATIONBUSINESSUNIT_GETBUSINESSUNITS_TOITEMLISTXML]([MKTSEGMENTATION].[ID])
                            else
                             dbo.[UFN_APPEALBUSINESSUNIT_GETBUSINESSUNITS_TOITEMLISTXML]
                             ((
                              select 
                                convert(uniqueidentifier, [MKTSEGMENTATIONACTIVATE].[APPEALSYSTEMID])
                              from dbo.[MKTAPPEALRECORDSOURCE] 
                              inner join [QUERYVIEWCATALOG] on [MKTAPPEALRECORDSOURCE].[ID] = [QUERYVIEWCATALOG].[ID]
                              left join [MKTSEGMENTATIONACTIVATE] on ([MKTSEGMENTATIONACTIVATE].[RECORDSOURCEID] = [MKTAPPEALRECORDSOURCE].[ID] and [MKTSEGMENTATIONACTIVATE].[SEGMENTATIONID] = [MKTSEGMENTATION].[ID])
                              where ([MKTSEGMENTATION].[ACTIVE] = 0 or ([MKTSEGMENTATION].[ACTIVE] = 1 and [MKTSEGMENTATIONACTIVATE].[APPEALSYSTEMID] <> '')) and (dbo.[UFN_MKTRECORDSOURCE_VALIDFORPRODUCT]([QUERYVIEWCATALOG].[ID]) = 1)
                              ))
                            end
                          end
                        end
                      end),
    @EFFORTOVERRIDESBUSINESSUNITS = [MKTSEGMENTATION].[OVERRIDEBUSINESSUNITS],
    @EFFORTSEGMENTOVERRIDESBUSINESSUNITS = [MKTSEGMENTATIONSEGMENT].[OVERRIDEBUSINESSUNITS],
    @ALLOWEFFORTBUSINESSUNITSOVERRIDE = isnull([MKTCOMMUNICATIONTEMPLATE].[ALLOWEFFORTBUSINESSUNITSOVERRIDE], 1),
    @SEGMENTATIONSEGMENTID = [MKTSEGMENTATIONSEGMENT].[ID],
   @BASECURRENCYID = [MKTSEGMENTATIONTESTSEGMENT].[BASECURRENCYID],
    @SEGMENTEDHOUSEFILEEXISTS = dbo.[UFN_MKTCONSTITUENTFILEIMPORT_IMPORTTABLEEXISTS]([MKTSEGMENTATION].[ID]),
    @PACKAGEADDDATAFORMCONTEXT = convert(nvarchar(3), [MKTSEGMENTATION].[MAILINGTYPECODE]) + '|' + convert(nvarchar(36), [MKTSEGMENTATION].[BASECURRENCYID]),
    @ISHISTORICAL = [MKTSEGMENT].[ISHISTORICAL],
    @SOURCECODEISHISTORICAL = isnull([MKTSOURCECODE].[ISHISTORICAL], 0),
    @SOURCECODE = dbo.[UFN_MKTSOURCECODE_BUILDCODE](@ID, default, default),
    @CHANNELCODE = isnull([MKTSEGMENTATION].[CHANNELCODE], 255)
  from dbo.[MKTSEGMENTATIONTESTSEGMENT]
  inner join dbo.[MKTSEGMENTATIONSEGMENT] on [MKTSEGMENTATIONSEGMENT].[ID] = [MKTSEGMENTATIONTESTSEGMENT].[SEGMENTID]
  left outer join dbo.[MKTSEGMENTATIONSEGMENTLIST] on [MKTSEGMENTATIONSEGMENTLIST].[ID] = [MKTSEGMENTATIONSEGMENT].[ID]
  inner join dbo.[MKTSEGMENT] on [MKTSEGMENTATIONSEGMENT].[SEGMENTID] = [MKTSEGMENT].[ID]
  inner join dbo.[MKTRECORDSOURCE] on [MKTRECORDSOURCE].[ID] = [MKTSEGMENT].[QUERYVIEWCATALOGID]
  left outer join dbo.[MKTSEGMENTLIST] on [MKTSEGMENTLIST].[ID] = [MKTSEGMENT].[CURRENTSEGMENTLISTID]
  left outer join dbo.[MKTLIST] on [MKTLIST].[ID] = [MKTSEGMENTLIST].[LISTID]
  left outer join dbo.[MKTSEGMENTLIST] as [MKTSEGMENTLISTACTIVE] on [MKTSEGMENTLISTACTIVE].[ID] = [MKTSEGMENTATIONSEGMENTLIST].[SEGMENTLISTID]
  left outer join dbo.[MKTLIST] as [MKTLISTACTIVE] on [MKTLISTACTIVE].[ID] = [MKTSEGMENTLISTACTIVE].[LISTID]
  inner join dbo.[MKTSEGMENTATION] on [MKTSEGMENTATION].[ID] = [MKTSEGMENTATIONSEGMENT].[SEGMENTATIONID]
  left outer join dbo.[MKTCOMMUNICATIONTEMPLATE] on [MKTCOMMUNICATIONTEMPLATE].[MKTSEGMENTATIONID] = [MKTSEGMENTATION].[ID]
  inner join dbo.[MKTPACKAGE] on [MKTPACKAGE].[ID] = [MKTSEGMENTATIONTESTSEGMENT].[PACKAGEID]
  left join dbo.[MKTSEGMENTATIONPACKAGE] on [MKTSEGMENTATIONPACKAGE].[SEGMENTATIONID] = [MKTSEGMENTATION].[ID] and [MKTSEGMENTATIONPACKAGE].[PACKAGEID] = [MKTPACKAGE].[ID]
  left outer join dbo.[MKTSOURCECODE] on [MKTSOURCECODE].[ID] = [MKTSEGMENTATION].[SOURCECODEID]
  where [MKTSEGMENTATIONTESTSEGMENT].[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;