USP_DATAFORMTEMPLATE_EDITLOAD_MKTSEGMENTATIONSEGMENT_4

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

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter used to load the fields defined on the form.
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@DATALOADED bit INOUT Output parameter indicating whether or not data was actually loaded.
@SEGMENTATIONID uniqueidentifier INOUT Marketing effort
@MARKETINGPLANBRIEFID uniqueidentifier INOUT Marketing plan brief ID
@SEGMENTATIONACTIVE bit INOUT Marketing effort active?
@SEGMENTID uniqueidentifier INOUT Segment
@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
@SAMPLESIZEEXCLUDEREMAINDER bit INOUT Exclude remaining records from the marketing effort
@SOURCECODEID uniqueidentifier INOUT Source code ID
@ASKLADDERID uniqueidentifier INOUT Ask ladder
@SEQUENCE int INOUT Sequence
@SEGMENTATIONSITEID uniqueidentifier INOUT Marketing effort site 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
@ISTESTMAILING bit INOUT Is test marketing effort
@PACKAGECHANNELCODE tinyint INOUT Package channel code
@USEADDRESSPROCESSING bit INOUT Use address processing?
@ADDRESSPROCESSINGOPTIONID uniqueidentifier INOUT Address processing options
@SEGMENTDATECHANGED datetime INOUT Segment date last changed
@ISBBEC bit INOUT Is BBEC?
@OVERRIDEADDRESSPROCESSING bit INOUT Override address processing / name format rules
@ADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE tinyint INOUT Consider seasonal addresses as of
@ADDRESSPROCESSINGOPTIONSEASONALASOFDATE datetime INOUT Consider seasonal addresses as of
@NAMEFORMATPARAMETERID uniqueidentifier INOUT Name format options
@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
@EXCLUDESPOUSE bit INOUT Exclude spouse (invalid)
@OVERRIDEBUSINESSUNITS bit INOUT Override business units
@BUSINESSUNITS xml INOUT Business units
@BASECURRENCYID uniqueidentifier INOUT Base currency ID
@PACKAGEADDDATAFORMCONTEXT nvarchar(128) INOUT Package add data form context
@EXCLUDE bit INOUT Exclude from effort but show counts
@ISBBAC bit INOUT
@RECORDSOURCEID uniqueidentifier INOUT
@LISTCODEVALUEID uniqueidentifier INOUT
@LISTCODE nvarchar(10) INOUT
@EFFORTOVERRIDESBUSINESSUNITS bit INOUT
@ISHISTORICAL bit INOUT
@HISTORICALQUANTITY int INOUT
@SOURCECODEISHISTORICAL bit INOUT
@SOURCECODE nvarchar(50) INOUT
@CHANNELCODE tinyint INOUT
@ALLOWEFFORTBUSINESSUNITSOVERRIDE bit INOUT
@ALLOWEFFORTADDRESSPROCESSINGOVERRIDE bit INOUT

Definition

Copy


CREATE procedure dbo.[USP_DATAFORMTEMPLATE_EDITLOAD_MKTSEGMENTATIONSEGMENT_4]
(
  @ID uniqueidentifier,
  @CURRENTAPPUSERID uniqueidentifier,
  @DATALOADED bit = 0 output,
  @SEGMENTATIONID uniqueidentifier = null output,
  @MARKETINGPLANBRIEFID uniqueidentifier = null output,
  @SEGMENTATIONACTIVE bit = null output,
  @SEGMENTID uniqueidentifier = 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,
  @SAMPLESIZEEXCLUDEREMAINDER bit = null output,
  @SOURCECODEID uniqueidentifier = null output,
  @ASKLADDERID uniqueidentifier = null output,
  @SEQUENCE int = null output,
  @SEGMENTATIONSITEID uniqueidentifier = null output,
  @TSLONG bigint = 0 output,
  @MAILINGTYPECODE tinyint = null output,
  @ISTESTMAILING bit = null output,
  @PACKAGECHANNELCODE tinyint = null output,
  @USEADDRESSPROCESSING bit = null output,
  @ADDRESSPROCESSINGOPTIONID uniqueidentifier = null output,
  @SEGMENTDATECHANGED datetime = null output,
  @ISBBEC bit = null output,
  @OVERRIDEADDRESSPROCESSING bit = null output,
  @ADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE tinyint = null output,
  @ADDRESSPROCESSINGOPTIONSEASONALASOFDATE datetime = null output,
  @NAMEFORMATPARAMETERID uniqueidentifier = 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,
  @EXCLUDESPOUSE bit = null output,
  @OVERRIDEBUSINESSUNITS bit = null output,
  @BUSINESSUNITS xml = null output,
  @BASECURRENCYID uniqueidentifier = null output,
  @PACKAGEADDDATAFORMCONTEXT nvarchar(128) = null output,
  @EXCLUDE bit = null output,
  @ISBBAC bit = null output,
  @RECORDSOURCEID uniqueidentifier = null output,
  @LISTCODEVALUEID uniqueidentifier = null output,
  @LISTCODE nvarchar(10) = null output,
  @EFFORTOVERRIDESBUSINESSUNITS bit = null output,
  @ISHISTORICAL bit = null output,
  @HISTORICALQUANTITY int = null output,
  @SOURCECODEISHISTORICAL bit = null output,
  @SOURCECODE nvarchar(50) = null output,
  @CHANNELCODE tinyint = null output,
  @ALLOWEFFORTBUSINESSUNITSOVERRIDE bit = null output,
  @ALLOWEFFORTADDRESSPROCESSINGOVERRIDE 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]();

  /* Load the segment */
  select 
    @DATALOADED = 1,
    @SEGMENTATIONID = [MKTSEGMENTATIONSEGMENT].[SEGMENTATIONID],
    @MAILINGTYPECODE = [MKTSEGMENTATION].[MAILINGTYPECODE],
    @ISTESTMAILING = case when [MKTSEGMENTATION].[PARENTSEGMENTATIONID] is not null then 1 else 0 end,
    @SEGMENTATIONSITEID = [MKTSEGMENTATION].[SITEID],
    @SEGMENTATIONACTIVE = [MKTSEGMENTATION].[ACTIVE],
    @MARKETINGPLANBRIEFID = [MKTSEGMENTATIONSEGMENT].[MARKETINGPLANBRIEFID],
    @BASECURRENCYID = [MKTSEGMENTATIONSEGMENT].[BASECURRENCYID],
    @SEQUENCE = [MKTSEGMENTATIONSEGMENT].[SEQUENCE],
    @SEGMENTID = [MKTSEGMENTATIONSEGMENT].[SEGMENTID],
    @RECORDSOURCEID = [MKTSEGMENT].[QUERYVIEWCATALOGID],
    @SEGMENTDATECHANGED = [MKTSEGMENT].[DATECHANGED],
    @EXCLUDE = [MKTSEGMENTATIONSEGMENT].[EXCLUDE],
    @PACKAGEID = [MKTSEGMENTATIONSEGMENT].[PACKAGEID],
    @PACKAGECHANNELCODE = isnull([MKTPACKAGE].[CHANNELCODE], 255),
    @PACKAGEADDDATAFORMCONTEXT = '0|' + convert(nvarchar(36), [MKTSEGMENTATIONSEGMENT].[BASECURRENCYID]),
    @ASKLADDERID = [MKTSEGMENTATIONSEGMENT].[ASKLADDERID],
    @SAMPLESIZE = [MKTSEGMENTATIONSEGMENT].[SAMPLESIZE],
    @SAMPLESIZETYPECODE = [MKTSEGMENTATIONSEGMENT].[SAMPLESIZETYPECODE],
    @SAMPLESIZEMETHODCODE = [MKTSEGMENTATIONSEGMENT].[SAMPLESIZEMETHODCODE],
    @SAMPLESIZEEXCLUDEREMAINDER = [MKTSEGMENTATIONSEGMENT].[SAMPLESIZEEXCLUDEREMAINDER],
    @RESPONSERATE = [MKTSEGMENTATIONSEGMENT].[RESPONSERATE],
    @GIFTAMOUNT = [MKTSEGMENTATIONSEGMENT].[GIFTAMOUNT],
    @SOURCECODEID = [MKTSEGMENTATION].[SOURCECODEID],
    @SOURCECODE = dbo.[UFN_MKTSOURCECODE_BUILDCODE](@ID, default, default),
    @CODEVALUEID = [MKTSEGMENTATIONSEGMENT].[PARTDEFINITIONVALUESID],
    @CODE = [MKTSEGMENTATIONSEGMENT].[CODE],
    @TESTSEGMENTCODEVALUEID = [MKTSEGMENTATIONSEGMENT].[TESTPARTDEFINITIONVALUESID],
    @TESTSEGMENTCODE = [MKTSEGMENTATIONSEGMENT].[TESTSEGMENTCODE],
    @LISTCODEVALUEID = [MKTRECORDSOURCE].[PARTDEFINITIONVALUESID],
    @LISTCODE = isnull([MKTRECORDSOURCE].[CODE], ''),
    @PACKAGECODEVALUEID = case when [MKTSEGMENTATIONSEGMENT].[EXCLUDE] = 0 then case when [MKTSEGMENTATION].[ACTIVE] = 1 then [MKTSEGMENTATIONPACKAGE].[PARTDEFINITIONVALUESID] else [MKTPACKAGE].[PARTDEFINITIONVALUESID] end else null end,
    @PACKAGECODE = case when [MKTSEGMENTATIONSEGMENT].[EXCLUDE] = 0 then case when [MKTSEGMENTATION].[ACTIVE] = 1 then [MKTSEGMENTATIONPACKAGE].[CODE] else [MKTPACKAGE].[CODE] end else '' end,
    @CHANNELSOURCECODEVALUEID = case when [MKTSEGMENTATIONSEGMENT].[EXCLUDE] = 0 then case when [MKTSEGMENTATION].[ACTIVE] = 1 then [MKTSEGMENTATIONPACKAGE].[CHANNELPARTDEFINITIONVALUESID] else [MKTPACKAGE].[CHANNELPARTDEFINITIONVALUESID] end else null end,
    @CHANNELSOURCECODE = case when [MKTSEGMENTATIONSEGMENT].[EXCLUDE] = 0 then case when [MKTSEGMENTATION].[ACTIVE] = 1 then [MKTSEGMENTATIONPACKAGE].[CHANNELSOURCECODE] else [MKTPACKAGE].[CHANNELSOURCECODE] end else '' end,
    @ITEMLIST = dbo.[UFN_MKTSOURCECODEPART_SEGMENTATIONSEGMENT_GETITEMLIST3_TOITEMLISTXML]([MKTSEGMENTATIONSEGMENT].[ID]),
    @OVERRIDEADDRESSPROCESSING = [MKTSEGMENTATIONSEGMENT].[OVERRIDEADDRESSPROCESSING],
    @USEADDRESSPROCESSING = case when [MKTSEGMENTATIONSEGMENT].[OVERRIDEADDRESSPROCESSING] = 1 then [MKTSEGMENTATIONSEGMENT].[USEADDRESSPROCESSING] else [MKTSEGMENTATION].[USEADDRESSPROCESSING] end,
    @ADDRESSPROCESSINGOPTIONID = case when [MKTSEGMENTATIONSEGMENT].[OVERRIDEADDRESSPROCESSING] = 1 then [MKTSEGMENTATIONSEGMENT].[ADDRESSPROCESSINGOPTIONID] else [MKTSEGMENTATION].[ADDRESSPROCESSINGOPTIONID] end,
    @ADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE = case when [MKTSEGMENTATIONSEGMENT].[OVERRIDEADDRESSPROCESSING] = 1 then [MKTSEGMENTATIONSEGMENT].[ADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE] else [MKTSEGMENTATION].[ADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE] end,
    @ADDRESSPROCESSINGOPTIONSEASONALASOFDATE = case when [MKTSEGMENTATIONSEGMENT].[OVERRIDEADDRESSPROCESSING] = 1 then [MKTSEGMENTATIONSEGMENT].[ADDRESSPROCESSINGOPTIONSEASONALASOFDATE] else [MKTSEGMENTATION].[ADDRESSPROCESSINGOPTIONSEASONALASOFDATE] end,
    @NAMEFORMATPARAMETERID = case when [MKTSEGMENTATIONSEGMENT].[OVERRIDEADDRESSPROCESSING] = 1 then [MKTSEGMENTATIONSEGMENT].[NAMEFORMATPARAMETERID] else [MKTSEGMENTATION].[NAMEFORMATPARAMETERID] end,
    @ALLOWEFFORTADDRESSPROCESSINGOVERRIDE = isnull([MKTCOMMUNICATIONTEMPLATE].[ALLOWEFFORTADDRESSPROCESSINGOVERRIDE], 1),
    @OVERRIDEBUSINESSUNITS = [MKTSEGMENTATIONSEGMENT].[OVERRIDEBUSINESSUNITS],
    @BUSINESSUNITS = dbo.[UFN_MKTSEGMENTATIONSEGMENTBUSINESSUNIT_GETBUSINESSUNITS_TOITEMLISTXML](@ID),
    @EFFORTOVERRIDESBUSINESSUNITS = [MKTSEGMENTATION].[OVERRIDEBUSINESSUNITS],
    @ALLOWEFFORTBUSINESSUNITSOVERRIDE = isnull([MKTCOMMUNICATIONTEMPLATE].[ALLOWEFFORTBUSINESSUNITSOVERRIDE], 1),
    @EXCLUDESPOUSE = 0,
    @ISHISTORICAL = [MKTSEGMENT].[ISHISTORICAL],
    @HISTORICALQUANTITY = (case when [MKTSEGMENTATIONSEGMENT].[HISTORICALQUANTITY] > 0 then [MKTSEGMENTATIONSEGMENT].[HISTORICALQUANTITY] else [MKTSEGMENT].[HISTORICALQUANTITY] end),
    @SOURCECODEISHISTORICAL = isnull([MKTSOURCECODE].[ISHISTORICAL], 0),
    @CHANNELCODE = isnull([MKTSEGMENTATION].[CHANNELCODE], 255),
    @TSLONG = [MKTSEGMENTATIONSEGMENT].[TSLONG]
  from dbo.[MKTSEGMENTATIONSEGMENT]
  inner join dbo.[MKTSEGMENT] on [MKTSEGMENT].[ID] = [MKTSEGMENTATIONSEGMENT].[SEGMENTID]
  inner join dbo.[MKTRECORDSOURCE] on [MKTRECORDSOURCE].[ID] = [MKTSEGMENT].[QUERYVIEWCATALOGID]
  inner join dbo.[MKTSEGMENTATION] on [MKTSEGMENTATION].[ID] = [MKTSEGMENTATIONSEGMENT].[SEGMENTATIONID]
  left outer join dbo.[MKTCOMMUNICATIONTEMPLATE] on [MKTCOMMUNICATIONTEMPLATE].[MKTSEGMENTATIONID] = [MKTSEGMENTATION].[ID]
  left outer join dbo.[MKTPACKAGE] on [MKTPACKAGE].[ID] = [MKTSEGMENTATIONSEGMENT].[PACKAGEID]
  left outer join dbo.[MKTSEGMENTATIONPACKAGE] on [MKTSEGMENTATIONPACKAGE].[SEGMENTATIONID] = [MKTSEGMENTATION].[ID] and [MKTSEGMENTATIONPACKAGE].[PACKAGEID] = [MKTPACKAGE].[ID]
  left outer join dbo.[MKTSOURCECODE] on [MKTSOURCECODE].[ID] = [MKTSEGMENTATION].[SOURCECODEID]
  where [MKTSEGMENTATIONSEGMENT].[ID] = @ID;

  if @ADDRESSPROCESSINGOPTIONID is null
    select top 1 @ADDRESSPROCESSINGOPTIONID = [ID] from dbo.[ADDRESSPROCESSINGOPTION] where [ISDEFAULT] = 1 and dbo.[UFN_SITEALLOWEDFORUSER](@CURRENTAPPUSERID, [SITEID]) = 1;

  if @NAMEFORMATPARAMETERID is null
    select top 1 @NAMEFORMATPARAMETERID = [ID] from dbo.[NAMEFORMATPARAMETER] where [ISDEFAULT] = 1 and dbo.[UFN_SITEALLOWEDFORUSER](@CURRENTAPPUSERID, [SITEID]) = 1;

  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;