USP_DATAFORMTEMPLATE_EDITLOAD_MKTSEGMENTATIONTESTSEGMENT_MULTIPLE_3

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

Parameters

Parameter Parameter Type Mode Description
@ID nvarchar(max) 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 Marketing effort
@ASKLADDER xml INOUT Ask ladder
@ASKLADDERLOADED bit INOUT Ask ladder loaded
@ASKLADDERLOCKED bit INOUT Ask ladder locked
@PACKAGEID uniqueidentifier INOUT Package
@PACKAGECODE nvarchar(10) INOUT Package code
@PACKAGELOADED bit INOUT Package loaded
@RESPONSERATE decimal(5, 2) INOUT Response rate
@RESPONSERATELOADED bit INOUT Response rate loaded
@GIFTAMOUNT money INOUT Gift amount
@GIFTAMOUNTLOADED bit INOUT Gift amount loaded
@SAMPLESIZE int INOUT Sample size
@SAMPLESIZETYPECODE tinyint INOUT Sample size type
@SAMPLESIZEMETHODCODE tinyint INOUT Sample size method
@SAMPLESIZELOADED bit INOUT Sample size loaded
@SOURCECODEID uniqueidentifier INOUT Source code 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.
@MAILINGTYPECODE tinyint INOUT Marketing effort type code
@TESTSEGMENTCODE nvarchar(10) INOUT Test segment
@TESTSEGMENTCODELOADED bit INOUT Test segment code loaded
@PREFIXCODE tinyint INOUT Prepend list
@PREFIXCODELOADED bit INOUT
@TESTSEGMENTCODEVALUEID uniqueidentifier INOUT Test segment code value ID
@PACKAGECODEVALUEID uniqueidentifier INOUT Package code value ID
@ITEMLIST xml INOUT Items
@CHANNELSOURCECODE nvarchar(10) INOUT Channel source code
@CHANNELSOURCECODEVALUEID uniqueidentifier INOUT Channel code value ID
@USERDEFINEDLOADEDSOURCECODES xml INOUT Items
@FRACTION nvarchar(10) INOUT Fraction
@OVERRIDEBUSINESSUNITSLOADED bit INOUT Override business units loaded
@OVERRIDEBUSINESSUNITS bit INOUT Override business units
@BUSINESSUNITS xml INOUT Business units
@ISBBEC bit INOUT Is BBEC?
@SEGMENTTYPECODE tinyint INOUT Segment type code
@BASECURRENCYID uniqueidentifier INOUT Base currency ID
@SEGMENTEDHOUSEFILEEXISTS bit INOUT Segmented house file exists
@PACKAGEADDDATAFORMCONTEXT nvarchar(128) INOUT Package add data form context
@PACKAGECHANNELCODE tinyint INOUT
@ISBBAC bit INOUT
@ISHISTORICAL bit INOUT
@CHANNELCODE tinyint INOUT
@ALLOWEFFORTBUSINESSUNITSOVERRIDE bit INOUT

Definition

Copy


CREATE procedure dbo.[USP_DATAFORMTEMPLATE_EDITLOAD_MKTSEGMENTATIONTESTSEGMENT_MULTIPLE_3]
(
  @ID nvarchar(max),
  @DATALOADED bit = 0 output,
  @SEGMENTATIONID uniqueidentifier = null output,
  @ASKLADDER xml = null output,
  @ASKLADDERLOADED bit = null output,
  @ASKLADDERLOCKED bit = null output,
  @PACKAGEID uniqueidentifier = null output,
  @PACKAGECODE nvarchar(10) = null output,
  @PACKAGELOADED bit = null output,
  @RESPONSERATE decimal(5,2) = null output,
  @RESPONSERATELOADED bit = null output,
  @GIFTAMOUNT money = null output,
  @GIFTAMOUNTLOADED bit = null output,
  @SAMPLESIZE int = null output,
  @SAMPLESIZETYPECODE tinyint = null output,
  @SAMPLESIZEMETHODCODE tinyint = null output,
  @SAMPLESIZELOADED bit = null output,
  @SOURCECODEID uniqueidentifier = null output,
  @TSLONG bigint = 0 output,
  @MAILINGTYPECODE tinyint = null output,
  @TESTSEGMENTCODE nvarchar(10) = null output,
  @TESTSEGMENTCODELOADED bit = null output,
  @PREFIXCODE tinyint = null output,
  @PREFIXCODELOADED bit = null output,
  @TESTSEGMENTCODEVALUEID uniqueidentifier = null output,
  @PACKAGECODEVALUEID uniqueidentifier = null output,
  @ITEMLIST xml = null output,
  @CHANNELSOURCECODE nvarchar(10) = null output,
  @CHANNELSOURCECODEVALUEID uniqueidentifier = null output,
  @USERDEFINEDLOADEDSOURCECODES xml = null output,
  @FRACTION nvarchar(10) = null output,
  @OVERRIDEBUSINESSUNITSLOADED  bit = null output,
  @OVERRIDEBUSINESSUNITS bit = null output,
  @BUSINESSUNITS xml = null output,
  @ISBBEC bit = null output,
  @SEGMENTTYPECODE tinyint = null output,
  @BASECURRENCYID uniqueidentifier = null output,
  @SEGMENTEDHOUSEFILEEXISTS bit = null output,
  @PACKAGEADDDATAFORMCONTEXT nvarchar(128) = null output,
  @PACKAGECHANNELCODE tinyint = null output,
  @ISBBAC bit = null output,
  @ISHISTORICAL bit = 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);
  set @ISBBAC = dbo.[UFN_MKTCOMMON_PRODUCTISALTRU]();

  declare @SEGMENTATIONTESTSEGMENTS table([ID] uniqueidentifier primary key, [SEGMENTTYPECODE] tinyint);
  declare @START integer;
  declare @POS integer;
  declare @SEGMENTATIONTESTSEGMENTIDS xml;

  /* parse out the multiple test segment IDs */
  set @START = 0;
  select @POS = charindex(',', @ID, @START);

  while (@POS <> 0)
    begin
      insert into @SEGMENTATIONTESTSEGMENTS ([ID])
        select substring(@ID, @START, @POS - @START);

      set @START = @POS + 1;
      select @POS = charindex(',', @ID, @START);
    end;

  if len(@ID) > 0
    insert into @SEGMENTATIONTESTSEGMENTS ([ID])
    select substring(@ID, @START, 37);

  update @SEGMENTATIONTESTSEGMENTS
    set [SEGMENTTYPECODE] = [MKTSEGMENT].[SEGMENTTYPECODE]
  from @SEGMENTATIONTESTSEGMENTS as [S]
  inner join dbo.[MKTSEGMENTATIONTESTSEGMENT] on [MKTSEGMENTATIONTESTSEGMENT].[ID] = [S].[ID]
  inner join dbo.[MKTSEGMENTATIONSEGMENT] on [MKTSEGMENTATIONSEGMENT].[ID] = [MKTSEGMENTATIONTESTSEGMENT].[SEGMENTID]
  inner join dbo.[MKTSEGMENT] on [MKTSEGMENT].[ID] = [MKTSEGMENTATIONSEGMENT].[SEGMENTID];

  select 
    @SEGMENTTYPECODE = min([SEGMENTTYPECODE])
  from @SEGMENTATIONTESTSEGMENTS;

  set @SEGMENTATIONTESTSEGMENTIDS = (select [ID] from @SEGMENTATIONTESTSEGMENTS for xml raw('ITEM'), type, elements, root('ITEMLIST'), binary base64);

  select top 1
    @DATALOADED = 1,
    @SEGMENTATIONID = [MKTSEGMENTATION].[ID],
    @SOURCECODEID = [MKTSEGMENTATION].[SOURCECODEID],
    @MAILINGTYPECODE = [MKTSEGMENTATION].[MAILINGTYPECODE],
    @SEGMENTEDHOUSEFILEEXISTS = dbo.[UFN_MKTCONSTITUENTFILEIMPORT_IMPORTTABLEEXISTS]([MKTSEGMENTATION].[ID]),
    @PACKAGEADDDATAFORMCONTEXT = convert(nvarchar(3), [MKTSEGMENTATION].[MAILINGTYPECODE]) + '|' + convert(nvarchar(36), [MKTSEGMENTATION].[BASECURRENCYID]),
    @ISHISTORICAL = [MKTSEGMENT].[ISHISTORICAL],
    @ALLOWEFFORTBUSINESSUNITSOVERRIDE = isnull([MKTCOMMUNICATIONTEMPLATE].[ALLOWEFFORTBUSINESSUNITSOVERRIDE], 1),
    @CHANNELCODE = isnull([MKTSEGMENTATION].[CHANNELCODE], 255)
  from dbo.[MKTSEGMENTATIONTESTSEGMENT]
  inner join @SEGMENTATIONTESTSEGMENTS as [T] on [T].[ID] = [MKTSEGMENTATIONTESTSEGMENT].[ID]
  inner join dbo.[MKTSEGMENTATIONSEGMENT] on [MKTSEGMENTATIONSEGMENT].[ID] = [MKTSEGMENTATIONTESTSEGMENT].[SEGMENTID]
  inner join dbo.[MKTSEGMENT] on [MKTSEGMENT].[ID] = [MKTSEGMENTATIONSEGMENT].[SEGMENTID]
  inner join dbo.[MKTSEGMENTATION] on [MKTSEGMENTATION].[ID] = [MKTSEGMENTATIONSEGMENT].[SEGMENTATIONID]
  left outer join dbo.[MKTCOMMUNICATIONTEMPLATE] on [MKTCOMMUNICATIONTEMPLATE].[MKTSEGMENTATIONID] = [MKTSEGMENTATION].[ID];

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

      /* common record source and common ask ladder */
      if (select count(distinct([MKTSEGMENT].[QUERYVIEWCATALOGID])) from dbo.[MKTSEGMENTATIONTESTSEGMENT] inner join @SEGMENTATIONTESTSEGMENTS as [T] on [T].[ID] = [MKTSEGMENTATIONTESTSEGMENT].[ID] inner join dbo.[MKTSEGMENTATIONSEGMENT] on [MKTSEGMENTATIONSEGMENT].[ID] = [MKTSEGMENTATIONTESTSEGMENT].[SEGMENTID] inner join dbo.[MKTSEGMENT] on [MKTSEGMENT].[ID] = [MKTSEGMENTATIONSEGMENT].[SEGMENTID]) = 1
        begin
          if (select count(distinct(isnull([MKTSEGMENTATIONTESTSEGMENT].[ASKLADDERID], '00000000-0000-0000-0000-000000000000'))) from dbo.[MKTSEGMENTATIONTESTSEGMENT] inner join @SEGMENTATIONTESTSEGMENTS as [T] on [T].[ID] = [MKTSEGMENTATIONTESTSEGMENT].[ID]) = 1
            select top 1
              @ASKLADDER = (select 
                              [QUERYVIEWCATALOG].[ID] as [RECORDSOURCEID],
                              [QUERYVIEWCATALOG].[DISPLAYNAME] as [RECORDSOURCENAME],
                              (select top 1 [T1].[ASKLADDERID] from dbo.[MKTSEGMENTATIONTESTSEGMENT] as [T1] inner join @SEGMENTATIONTESTSEGMENTS as [T2] on [T2].[ID] = [T1].[ID]) as [ASKLADDERID]
                            from dbo.[MKTRECORDSOURCE]
                            inner join dbo.[QUERYVIEWCATALOG] on [QUERYVIEWCATALOG].[ID] = [MKTRECORDSOURCE].[ID]
                            where [QUERYVIEWCATALOG].[ID] = [MKTSEGMENT].[QUERYVIEWCATALOGID]
                            and dbo.[UFN_MKTRECORDSOURCE_VALIDFORPRODUCT]([MKTRECORDSOURCE].[ID]) = 1
                            for xml raw('ITEM'), type, elements, root('ASKLADDER'), BINARY BASE64),
              @ASKLADDERLOADED = 1,
              @ASKLADDERLOCKED = 0
            from dbo.[MKTSEGMENTATIONTESTSEGMENT]
            inner join @SEGMENTATIONTESTSEGMENTS as [T] on [T].[ID] = [MKTSEGMENTATIONTESTSEGMENT].[ID]
            inner join dbo.[MKTSEGMENTATIONSEGMENT] on [MKTSEGMENTATIONSEGMENT].[ID] = [MKTSEGMENTATIONTESTSEGMENT].[SEGMENTID]
            inner join dbo.[MKTSEGMENT] on [MKTSEGMENT].[ID] = [MKTSEGMENTATIONSEGMENT].[SEGMENTID];
          else
            select top 1
              @ASKLADDER = (select 
                              [QUERYVIEWCATALOG].[ID] as [RECORDSOURCEID],
                              [QUERYVIEWCATALOG].[DISPLAYNAME] as [RECORDSOURCENAME]
                            from dbo.[MKTRECORDSOURCE]
                            inner join dbo.[QUERYVIEWCATALOG] on [QUERYVIEWCATALOG].[ID] = [MKTRECORDSOURCE].[ID]
                            where [QUERYVIEWCATALOG].[ID] = [MKTSEGMENT].[QUERYVIEWCATALOGID]
                            and dbo.[UFN_MKTRECORDSOURCE_VALIDFORPRODUCT]([MKTRECORDSOURCE].[ID]) = 1
                            for xml raw('ITEM'), type, elements, root('ASKLADDER'), BINARY BASE64),
              @ASKLADDERLOADED = 0,
              @ASKLADDERLOCKED = 0
            from dbo.[MKTSEGMENTATIONTESTSEGMENT]
          inner join @SEGMENTATIONTESTSEGMENTS as [T] on [T].[ID] = [MKTSEGMENTATIONTESTSEGMENT].[ID]
            inner join dbo.[MKTSEGMENTATIONSEGMENT] on [MKTSEGMENTATIONSEGMENT].[ID] = [MKTSEGMENTATIONTESTSEGMENT].[SEGMENTID]
            inner join dbo.[MKTSEGMENT] on [MKTSEGMENT].[ID] = [MKTSEGMENTATIONSEGMENT].[SEGMENTID];
        end
      else
        begin
          set @ASKLADDERLOADED = 0;
          set @ASKLADDERLOCKED = 1;
        end

      /* common prefix */
      if (select COUNT(distinct([PREFIXCODE])) FROM dbo.[MKTSEGMENTATIONTESTSEGMENT] inner join @SEGMENTATIONTESTSEGMENTS as [S] on [S].[ID] = [MKTSEGMENTATIONTESTSEGMENT].[ID]) = 1
        select top 1
          @PREFIXCODE = [MKTSEGMENTATIONTESTSEGMENT].[PREFIXCODE],
          @PREFIXCODELOADED = 1
        from dbo.[MKTSEGMENTATIONTESTSEGMENT]
        inner join @SEGMENTATIONTESTSEGMENTS as [S] on [S].[ID] = [MKTSEGMENTATIONTESTSEGMENT].[ID];
      else
        set @PREFIXCODELOADED = 0;

      /* common test segment code */
      if (select COUNT(distinct([TESTSEGMENTCODE])) from dbo.[MKTSEGMENTATIONTESTSEGMENT] inner join @SEGMENTATIONTESTSEGMENTS as [S] on [S].[ID] = [MKTSEGMENTATIONTESTSEGMENT].[ID]) = 1
        select top 1
          @TESTSEGMENTCODE = [MKTSEGMENTATIONTESTSEGMENT].[TESTSEGMENTCODE],
          @TESTSEGMENTCODEVALUEID = [MKTSEGMENTATIONTESTSEGMENT].[TESTPARTDEFINITIONVALUESID],
          @TESTSEGMENTCODELOADED = 1
        from dbo.[MKTSEGMENTATIONTESTSEGMENT]
        inner join @SEGMENTATIONTESTSEGMENTS as [S] on [S].[ID] = [MKTSEGMENTATIONTESTSEGMENT].[ID];
      else
        set @TESTSEGMENTCODELOADED = 0;

      /* common package */
      if @MAILINGTYPECODE <> 1 and (select count(distinct([PACKAGEID])) from dbo.[MKTSEGMENTATIONTESTSEGMENT] inner join @SEGMENTATIONTESTSEGMENTS as [T] on [T].[ID] = [MKTSEGMENTATIONTESTSEGMENT].[ID]) = 1
        select top 1
          @PACKAGEID = [MKTSEGMENTATIONTESTSEGMENT].[PACKAGEID],
          @PACKAGECHANNELCODE = [MKTPACKAGE].[CHANNELCODE],
          @PACKAGECODE = [MKTPACKAGE].[CODE],
          @PACKAGECODEVALUEID = [MKTPACKAGE].[PARTDEFINITIONVALUESID],
          @CHANNELSOURCECODE = [MKTPACKAGE].[CHANNELSOURCECODE],
          @CHANNELSOURCECODEVALUEID = [MKTPACKAGE].[CHANNELPARTDEFINITIONVALUESID],
          @PACKAGELOADED = 1
        from dbo.[MKTSEGMENTATIONTESTSEGMENT]
        inner join @SEGMENTATIONTESTSEGMENTS as [T] on [T].[ID] = [MKTSEGMENTATIONTESTSEGMENT].[ID]
        inner join [MKTPACKAGE] on [MKTPACKAGE].[ID] = [MKTSEGMENTATIONTESTSEGMENT].[PACKAGEID];
      else
        begin
          set @PACKAGELOADED = 0;
          set @PACKAGECHANNELCODE = 255;
        end

      /* common response rate */
      if (select count(distinct([RESPONSERATE])) from dbo.[MKTSEGMENTATIONTESTSEGMENT] inner join @SEGMENTATIONTESTSEGMENTS as [T] on [T].[ID] = [MKTSEGMENTATIONTESTSEGMENT].[ID]) = 1
        select top 1
          @RESPONSERATE = [RESPONSERATE],
          @RESPONSERATELOADED = 1
        from dbo.[MKTSEGMENTATIONTESTSEGMENT]
        inner join @SEGMENTATIONTESTSEGMENTS as [T] on [T].[ID] = [MKTSEGMENTATIONTESTSEGMENT].[ID];
      else
        begin
          set @RESPONSERATE = 5;
          set @RESPONSERATELOADED = 0;
        end

      /* common gift amount */
      if (select count(distinct([GIFTAMOUNT])) from dbo.[MKTSEGMENTATIONTESTSEGMENT] inner join @SEGMENTATIONTESTSEGMENTS as [T] on [T].[ID] = [MKTSEGMENTATIONTESTSEGMENT].[ID]) = 1
        select top 1
          @GIFTAMOUNT = [GIFTAMOUNT],
          @GIFTAMOUNTLOADED = 1
        from dbo.[MKTSEGMENTATIONTESTSEGMENT]
        inner join @SEGMENTATIONTESTSEGMENTS as [T] on [T].[ID] = [MKTSEGMENTATIONTESTSEGMENT].[ID];
      else
        set @GIFTAMOUNTLOADED = 0;

      /* common sample size - where sample size is the same and type is not fraction.  Or type is fraction and fractions are the same. */
      if @SEGMENTEDHOUSEFILEEXISTS = 0 and
         (select count(distinct([SAMPLESIZEMETHODCODE])) from dbo.[MKTSEGMENTATIONTESTSEGMENT] inner join @SEGMENTATIONTESTSEGMENTS as [T] on [T].[ID] = [MKTSEGMENTATIONTESTSEGMENT].[ID]) = 1 and
         (select count(distinct([SAMPLESIZETYPECODE])) from dbo.[MKTSEGMENTATIONTESTSEGMENT] inner join @SEGMENTATIONTESTSEGMENTS as [T] on [T].[ID] = [MKTSEGMENTATIONTESTSEGMENT].[ID]) = 1 and
         (
          (select count(distinct([SAMPLESIZE])) from dbo.[MKTSEGMENTATIONTESTSEGMENT] inner join @SEGMENTATIONTESTSEGMENTS as [T] on [T].[ID] = [MKTSEGMENTATIONTESTSEGMENT].[ID]) = 1 and
          (select count([SAMPLESIZETYPECODE]) from dbo.[MKTSEGMENTATIONTESTSEGMENT] inner join @SEGMENTATIONTESTSEGMENTS as [T] on [T].[ID] = [MKTSEGMENTATIONTESTSEGMENT].[ID] where [SAMPLESIZETYPECODE] <> 2) > 0 
          or
          (select count(distinct([FRACTION])) from dbo.[MKTSEGMENTATIONTESTSEGMENT] inner join @SEGMENTATIONTESTSEGMENTS as [T] on [T].[ID] = [MKTSEGMENTATIONTESTSEGMENT].[ID]) = 1 and
          (select count([SAMPLESIZETYPECODE]) from dbo.[MKTSEGMENTATIONTESTSEGMENT] inner join @SEGMENTATIONTESTSEGMENTS as [T] on [T].[ID] = [MKTSEGMENTATIONTESTSEGMENT].[ID] where [SAMPLESIZETYPECODE] = 2) > 0
         )
        select top 1
          @SAMPLESIZE = [SAMPLESIZE],
          @SAMPLESIZETYPECODE = [SAMPLESIZETYPECODE],
          @SAMPLESIZEMETHODCODE = [SAMPLESIZEMETHODCODE],
          @SAMPLESIZELOADED = 1,
          @FRACTION = [FRACTION]
        from dbo.[MKTSEGMENTATIONTESTSEGMENT]
        inner join @SEGMENTATIONTESTSEGMENTS as [T] on [T].[ID] = [MKTSEGMENTATIONTESTSEGMENT].[ID];
      else
        begin
          set @SAMPLESIZE = 100;
          set @SAMPLESIZETYPECODE = 0;
          set @SAMPLESIZEMETHODCODE = 0;
          set @SAMPLESIZELOADED = 0;
          set @FRACTION = '1/3';
        end

      /* common user defined source codes for the selected segments */
      exec dbo.[USP_MKTSOURCECODEPART_SEGMENTATIONTESTSEGMENTS_GETITEMLIST] @SEGMENTATIONTESTSEGMENTIDS, @ITEMLIST output;

      select @TSLONG = max([TSLONG])
      from dbo.[MKTSEGMENTATIONTESTSEGMENT]
      inner join @SEGMENTATIONTESTSEGMENTS as [T] on [T].[ID] = [MKTSEGMENTATIONTESTSEGMENT].[ID];

      /* common business units */
      if @SEGMENTTYPECODE in (1, 2)
        begin
          declare @TEMPSEGMENTID uniqueidentifier;

          select top 1 @TEMPSEGMENTID = [STS].[ID]
          from dbo.[MKTSEGMENTATIONTESTSEGMENT] as [STS]
          inner join @SEGMENTATIONTESTSEGMENTS as [S] on [S].[ID] = [STS].[ID];

          declare @BUSINESSUNITSTABLE table([ID] uniqueidentifier, [PERCENTVALUE] float);

          insert into @BUSINESSUNITSTABLE([ID], [PERCENTVALUE])
          select [BUSINESSUNITCODEID], [PERCENTVALUE]
          from dbo.[MKTSEGMENTATIONTESTSEGMENTBUSINESSUNIT] as [STSBU]
          inner join @SEGMENTATIONTESTSEGMENTS as [S] on [S].[ID] = [STSBU].[MKTSEGMENTATIONTESTSEGMENTID]
          where [STSBU].[MKTSEGMENTATIONTESTSEGMENTID] = @TEMPSEGMENTID;

          if (select count(distinct([OVERRIDEBUSINESSUNITS])) 
              from dbo.[MKTSEGMENTATIONTESTSEGMENT] 
              inner join @SEGMENTATIONTESTSEGMENTS as [S] on [S].[ID] = [MKTSEGMENTATIONTESTSEGMENT].[ID]) = 1 
             and
              select count(*)
              from dbo.[MKTSEGMENTATIONTESTSEGMENTBUSINESSUNIT] as [STSBU]
              inner join @SEGMENTATIONTESTSEGMENTS as [S] on [S].[ID] = [STSBU].[MKTSEGMENTATIONTESTSEGMENTID]
              inner join @BUSINESSUNITSTABLE as [BU] on [BU].[ID] = [STSBU].[BUSINESSUNITCODEID]
              where [STSBU].[PERCENTVALUE] = [BU].[PERCENTVALUE]
             ) = (select count(*) from @BUSINESSUNITSTABLE) * (select COUNT(*) from @SEGMENTATIONTESTSEGMENTS)
            select top 1
              @OVERRIDEBUSINESSUNITSLOADED = 1,
              @OVERRIDEBUSINESSUNITS = [MKTSEGMENTATIONTESTSEGMENT].[OVERRIDEBUSINESSUNITS],
              @BUSINESSUNITS = dbo.[UFN_MKTSEGMENTATIONTESTSEGMENTBUSINESSUNIT_GETBUSINESSUNITS_TOITEMLISTXML]([MKTSEGMENTATIONTESTSEGMENT].[ID])
            from dbo.[MKTSEGMENTATIONTESTSEGMENT]
            inner join @SEGMENTATIONTESTSEGMENTS as [S] on [S].[ID] = [MKTSEGMENTATIONTESTSEGMENT].[ID]
          else
            begin
              set @OVERRIDEBUSINESSUNITSLOADED = 0;
              set @OVERRIDEBUSINESSUNITS = 0;
            end
        end
      else
        begin
          set @OVERRIDEBUSINESSUNITSLOADED = 0;
          set @OVERRIDEBUSINESSUNITS = 0;
        end

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

      -- this is obsolete in WebUI; leaving in so WebUI can be compared to WinForms

      exec dbo.[USP_MKTSEGMENTATIONTESTSEGMENT_GETCOMMONUSERDEFINEDCODES] @SEGMENTATIONTESTSEGMENTIDS, @SOURCECODEID, @USERDEFINEDLOADEDSOURCECODES output
    end

  return 0;