USP_DATAFORMTEMPLATE_EDITLOAD_MKTSEGMENTATION_3

The load procedure used by the edit dataform template "Marketing Effort 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.
@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.
@ACTIVE bit INOUT Active
@CODE nvarchar(10) INOUT Code
@NAME nvarchar(100) INOUT Name
@DESCRIPTION nvarchar(255) INOUT Description
@SITEID uniqueidentifier INOUT Site
@SOURCECODEID uniqueidentifier INOUT Source code
@ITEMLIST xml INOUT Items
@ISTESTMAILING tinyint INOUT Is test marketing effort
@MAILDATE datetime INOUT Mail date
@PLANPATH nvarchar(max) INOUT Plan
@HOUSEHOLDINGTYPECODE tinyint INOUT Householding
@ENABLEHOUSEHOLDING bit INOUT Enable householding?
@SITEREQUIRED bit INOUT Site required?
@SITECANBECHANGED bit INOUT Site can be changed?
@MAILINGTYPECODE tinyint INOUT Marketing effort type
@ISBBEC bit INOUT Is BBEC?
@OWNERID uniqueidentifier INOUT Owner ID
@EXCLUSIONDATETYPECODE tinyint INOUT Consider exclusions as of
@EXCLUSIONASOFDATE datetime INOUT Consider exclusions as of
@EXCLUDEDECEASED bit INOUT Exclude deceased constituents
@EXCLUDEINACTIVE bit INOUT Exclude inactive constituents
@EXCLUSIONS xml INOUT Exclusions
@USEADDRESSPROCESSING bit INOUT Use address processing?
@ADDRESSPROCESSINGOPTIONID uniqueidentifier INOUT Address processing options
@NAMEFORMATPARAMETERID uniqueidentifier INOUT Name format options
@ADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE tinyint INOUT Consider seasonal addresses as of
@ADDRESSPROCESSINGOPTIONSEASONALASOFDATE datetime INOUT Consider seasonal addresses as of
@CANUPDATEEXCLUDEDECEASED bit INOUT Can update exclude deceased constituents?
@CANUPDATEEXCLUDEINACTIVE bit INOUT Can update exclude inactive constituents?
@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.

Definition

Copy


CREATE procedure dbo.[USP_DATAFORMTEMPLATE_EDITLOAD_MKTSEGMENTATION_3]
(
  @ID uniqueidentifier,
  @CURRENTAPPUSERID uniqueidentifier,
  @DATALOADED bit = 0 output,
  @ACTIVE bit = null output,
  @CODE nvarchar(10) = null output,
  @NAME nvarchar(100) = null output,
  @DESCRIPTION nvarchar(255) = null output,
  @SITEID uniqueidentifier = null output,
  @SOURCECODEID uniqueidentifier = null output,
  @ITEMLIST xml = null output,
  @ISTESTMAILING tinyint = null output,
  @MAILDATE datetime = null output,
  @PLANPATH nvarchar(max) = null output,
  @HOUSEHOLDINGTYPECODE tinyint = null output,
  @ENABLEHOUSEHOLDING bit = null output,
  @SITEREQUIRED bit = null output,
  @SITECANBECHANGED bit = null output,
  @MAILINGTYPECODE tinyint = null output,
  @ISBBEC bit = null output,
  @OWNERID uniqueidentifier = null output,
  @EXCLUSIONDATETYPECODE tinyint = null output,
  @EXCLUSIONASOFDATE datetime = null output,
  @EXCLUDEDECEASED bit = null output,
  @EXCLUDEINACTIVE bit = null output,
  @EXCLUSIONS xml = null output,
  @USEADDRESSPROCESSING bit = null output,
  @ADDRESSPROCESSINGOPTIONID uniqueidentifier = null output,
  @NAMEFORMATPARAMETERID uniqueidentifier = null output,
  @ADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE tinyint = null output,
  @ADDRESSPROCESSINGOPTIONSEASONALASOFDATE datetime = null output,
  @CANUPDATEEXCLUDEDECEASED bit = null output,
  @CANUPDATEEXCLUDEINACTIVE bit = null output,
  @TSLONG bigint = 0 output
)
as
  set nocount on;

  declare @MARKETINGPLANITEMID uniqueidentifier;

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

  if (select [ACTIVE] from dbo.[MKTSEGMENTATION] where [ID] = @ID) = 0
    begin
      --Check if the mailing is currently being activated...

      declare @R int;
      exec @R = dbo.[USP_MKTSEGMENTATION_CHECKACTIVATION] @ID;
      if @R <> 0
        return 1;
    end

  select
    @ENABLEHOUSEHOLDING = (case when sum(case when isnull([MKTRECORDSOURCEFIELDMAPPINGS].[HOUSEHOLDIDFIELD],'') = '' then 0 else 1 end) = 0 then 0 else 1 end)
  from dbo.[MKTRECORDSOURCE]
  left join dbo.[MKTRECORDSOURCEFIELDMAPPINGS] on [MKTRECORDSOURCEFIELDMAPPINGS].[ID] = [MKTRECORDSOURCE].[ID]
  where dbo.[UFN_MKTRECORDSOURCE_VALIDFORPRODUCT]([MKTRECORDSOURCE].[ID]) = 1;

  select
    @DATALOADED = 1,
    @ACTIVE = [MKTSEGMENTATION].[ACTIVE],
    @CODE = [MKTSEGMENTATION].[CODE],
    @NAME = [MKTSEGMENTATION].[NAME],
    @DESCRIPTION = [MKTSEGMENTATION].[DESCRIPTION],
    @SITEID = [MKTSEGMENTATION].[SITEID],
    @SOURCECODEID = [MKTSEGMENTATION].[SOURCECODEID],
    @ITEMLIST = dbo.[UFN_MKTSOURCECODEPART_GETITEMLIST_TOITEMLISTXML]([MKTSEGMENTATION].[ID]),
    @ISTESTMAILING = case when [MKTSEGMENTATION].[PARENTSEGMENTATIONID] is null then 0 else 1 end,
    @MAILDATE = [MKTSEGMENTATION].[MAILDATE],
    @PLANPATH = dbo.[UFN_MKTMARKETINGPLANITEM_PATH]([MKTSEGMENTATION].[MARKETINGPLANITEMID], 1),
    @ENABLEHOUSEHOLDING = (case when [MKTSEGMENTATION].[MAILINGTYPECODE] = 1 then 0 else @ENABLEHOUSEHOLDING end),
    @HOUSEHOLDINGTYPECODE = [MKTSEGMENTATION].[HOUSEHOLDINGTYPECODE],
    @MARKETINGPLANITEMID = [MKTSEGMENTATION].[MARKETINGPLANITEMID],
    @MAILINGTYPECODE = [MKTSEGMENTATION].[MAILINGTYPECODE],
    @OWNERID = dbo.[UFN_BUSINESSPROCESSINSTANCE_GETOWNER]('22C3D75C-A956-4BFC-A5FD-4B866BAEF509', [MKTSEGMENTATIONACTIVATEPROCESS].[ID]),
    @EXCLUSIONDATETYPECODE = isnull([BUSINESSPROCESSCOMMPREF].[DATETYPECODE], 0),
    @EXCLUSIONASOFDATE = [BUSINESSPROCESSCOMMPREF].[ASOFDATE],
    @EXCLUDEDECEASED = isnull([BUSINESSPROCESSCOMMPREF].[EXCLUDEDECEASED], 0),
    @EXCLUDEINACTIVE = isnull([BUSINESSPROCESSCOMMPREF].[EXCLUDEINACTIVE], 0),
    @EXCLUSIONS = dbo.[UFN_MKTSEGMENTATION_GETREQUIREDANDSELECTEDSOLICITCODEEXCLUSIONS_TOITEMLISTXML]([MKTSEGMENTATIONACTIVATEPROCESS].[ID]),
    @USEADDRESSPROCESSING = [MKTSEGMENTATION].[USEADDRESSPROCESSING],
    @ADDRESSPROCESSINGOPTIONID = [MKTSEGMENTATION].[ADDRESSPROCESSINGOPTIONID],
    @NAMEFORMATPARAMETERID = [MKTSEGMENTATION].[NAMEFORMATPARAMETERID],
    @ADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE = [MKTSEGMENTATION].[ADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE],
    @ADDRESSPROCESSINGOPTIONSEASONALASOFDATE = [MKTSEGMENTATION].[ADDRESSPROCESSINGOPTIONSEASONALASOFDATE],
    @TSLONG = [MKTSEGMENTATION].[TSLONG]
  from dbo.[MKTSEGMENTATION]
  inner join dbo.[MKTSEGMENTATIONACTIVATEPROCESS] on [MKTSEGMENTATIONACTIVATEPROCESS].[SEGMENTATIONID] = [MKTSEGMENTATION].[ID]
  left outer join dbo.[BUSINESSPROCESSCOMMPREF] on [BUSINESSPROCESSCOMMPREF].[BUSINESSPROCESSPARAMETERSETID] = [MKTSEGMENTATIONACTIVATEPROCESS].[ID]
  where [MKTSEGMENTATION].[ID] = @ID;

  set @SITEREQUIRED = dbo.[UFN_SITEREQUIREDFORUSERONFEATURE](@CURRENTAPPUSERID, 'f31b3d0e-eabd-4d04-954e-479dda79fadd', 1);
  set @SITECANBECHANGED = 1; -- obsolete


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

  set @CANUPDATEEXCLUDEDECEASED = 1;
  set @CANUPDATEEXCLUDEINACTIVE = 1;

  if dbo.[UFN_APPUSER_ISSYSADMIN](@CURRENTAPPUSERID) = 0
    begin
      set @CANUPDATEEXCLUDEDECEASED = dbo.UFN_SECURITY_APPUSER_GRANTED_SYSTEMPRIVILEGE_IN_SYSTEMROLE(@CURRENTAPPUSERID, '2EEC593D-06B1-49E0-9031-A4076B07081C');
      set @CANUPDATEEXCLUDEINACTIVE = dbo.UFN_SECURITY_APPUSER_GRANTED_SYSTEMPRIVILEGE_IN_SYSTEMROLE(@CURRENTAPPUSERID, 'C0E02A6F-DF46-460C-ACA2-CC31C9C11BFC');
    end;

  return 0;