USP_DATAFORMTEMPLATE_EDITLOAD_APPEALMAILINGSETUP_MINIMAL

The load procedure used by the edit dataform template "Appeal Mailing Edit Data Form For Minimal Data Ext"

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.
@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.
@NAME nvarchar(100) INOUT Name
@DESCRIPTION nvarchar(255) INOUT Description
@MAILDATE datetime INOUT Mail date
@MAILINGBUDGET money INOUT Budget
@APPEALID uniqueidentifier INOUT Appeal
@SELECTIONLISTS xml INOUT
@SELECTEDSELECTIONS xml INOUT
@SELECTEDEXCLUSIONS xml INOUT Exclude constituents with these
@EXCLUDESELECTIONS xml INOUT Exclude records in these selections
@EXCLUSIONLISTS xml INOUT
@EXCLUSIONDATETYPECODE tinyint INOUT Consider exclusions as of
@EXCLUSIONASOFDATE datetime INOUT Consider exclusions as of
@CONSTITUENTRECORDTYPEID uniqueidentifier INOUT Constituent record type
@CHANNELCODE tinyint INOUT
@CHANNELPREFERENCECODE tinyint INOUT If the constituent does not have a preference, attempt to send...
@MAILPACKAGEID uniqueidentifier INOUT Mail package
@EMAILPACKAGEID uniqueidentifier INOUT Email package
@ADDRESSPROCESSINGOPTIONID uniqueidentifier INOUT Address processing
@NAMEFORMATPARAMETERID uniqueidentifier INOUT Name format
@HOUSEHOLDINGTYPECODE tinyint INOUT Include
@HOUSEHOLDINGINCLUDEINDIVIDUALSWITHNOHOUSEHOLD bit INOUT Also include qualifying individuals who are not members of any household
@HOUSEHOLDINGINCLUDEHOUSEHOLDSWITHNOMEMBERS bit INOUT Also include qualifying households which do not have any members
@HOUSEHOLDINGONERECORDPERHOUSEHOLD bit INOUT Send to one person per household
@CREATEOUTPUTIDSET bit INOUT Create selection from results
@OUTPUTIDSETNAME nvarchar(100) INOUT Selection name
@OVERWRITEOUTPUTIDSET bit INOUT Overwrite existing selection
@FINALSAVECODE tinyint INOUT
@OUTPUTPATH nvarchar(max) INOUT
@TASKS xml INOUT
@SELECTIONS xml INOUT Selection
@MKTASKLADDERID uniqueidentifier INOUT Ask ladder
@EXCLUSIONS xml INOUT Exclusions

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_APPEALMAILINGSETUP_MINIMAL(
    @ID uniqueidentifier,
    @CURRENTAPPUSERID uniqueidentifier,
    @DATALOADED bit = 0 output,
    @TSLONG bigint = 0 output,
    @NAME nvarchar(100) = null output,
    @DESCRIPTION nvarchar(255) = null output,
    @MAILDATE datetime = null output,
    @MAILINGBUDGET money = null output,
    @APPEALID uniqueidentifier = null output,
    @SELECTIONLISTS xml = null output,
    @SELECTEDSELECTIONS xml = null output,
      @SELECTEDEXCLUSIONS xml = null output,
      @EXCLUDESELECTIONS xml = null output,
    @EXCLUSIONLISTS xml = null output,
    @EXCLUSIONDATETYPECODE tinyint = null output,
    @EXCLUSIONASOFDATE datetime = null output,
    @CONSTITUENTRECORDTYPEID uniqueidentifier = null output,
    @CHANNELCODE tinyint = null output,
    @CHANNELPREFERENCECODE tinyint = null output,
    @MAILPACKAGEID uniqueidentifier = null output,
    @EMAILPACKAGEID uniqueidentifier = null output,
    @ADDRESSPROCESSINGOPTIONID uniqueidentifier = null output,
    @NAMEFORMATPARAMETERID uniqueidentifier = null output,
    @HOUSEHOLDINGTYPECODE tinyint = null output,
    @HOUSEHOLDINGINCLUDEINDIVIDUALSWITHNOHOUSEHOLD bit = null output,
    @HOUSEHOLDINGINCLUDEHOUSEHOLDSWITHNOMEMBERS bit = null output,
    @HOUSEHOLDINGONERECORDPERHOUSEHOLD bit = null output,
    @CREATEOUTPUTIDSET bit = null output,
    @OUTPUTIDSETNAME nvarchar(100) = null output,
    @OVERWRITEOUTPUTIDSET bit = null output,
    @FINALSAVECODE tinyint = null output,
    @OUTPUTPATH nvarchar(max) = null output,
    @TASKS xml = null output,
    @SELECTIONS xml = null output,
    @MKTASKLADDERID uniqueidentifier = null output,
    @EXCLUSIONS xml = null output
)
as
  begin
    set nocount on;
  declare @TempTbl table ([ID] uniqueidentifier);

    set @DATALOADED = 0
    set @TSLONG = 0

    select @CONSTITUENTRECORDTYPEID = [ID] from dbo.[RECORDTYPE] where upper([NAME]) = 'CONSTITUENT';

    select top(1)
    @DATALOADED = 1,
    @TSLONG = APPEALMAILING.TSLONG,
        @NAME = [MKTSEGMENTATION].[NAME],
        @DESCRIPTION = [MKTSEGMENTATION].[DESCRIPTION],
        @MAILDATE = [MKTSEGMENTATION].[MAILDATE],
        @MAILINGBUDGET = [MKTSEGMENTATIONBUDGET].[BUDGETAMOUNT],
        @APPEALID = [APPEALMAILING].[APPEALID],
        @SELECTIONLISTS = (select [NAME] as GROUPNAME from dbo.[UFN_SELECTION_GETGROUPNAMES](@CONSTITUENTRECORDTYPEID) for xml raw('ITEM'),type,elements,root('SELECTIONLISTS'),binary base64),
        --@SELECTEDSELECTIONS = coalesce([APPEALMAILINGSETUP].[SELECTEDSELECTIONS], dbo.[UFN_MKTSEGMENT_GETSELECTIONS_TOITEMLISTXML]([MKTSEGMENTATIONSEGMENT].[SEGMENTID], @CURRENTAPPUSERID)),
    @SELECTEDSELECTIONS = coalesce(dbo.UFN_APPEALMAILINGSETUP_GETSELECTIONS_TOITEMLISTXML(APPEALMAILINGSETUP.ID), dbo.[UFN_MKTSEGMENT_GETSELECTIONS_TOITEMLISTXML]([MKTSEGMENTATIONSEGMENT].[SEGMENTID], @CURRENTAPPUSERID)),    
        @SELECTEDEXCLUSIONS = dbo.[UFN_MKTSEGMENTATION_GETREQUIREDANDSELECTEDSOLICITCODEEXCLUSIONS_TOITEMLISTXML]([MKTSEGMENTATIONACTIVATEPROCESS].[ID]),
        @HOUSEHOLDINGTYPECODE = [MKTSEGMENTATION].[HOUSEHOLDINGTYPECODE],
        @HOUSEHOLDINGINCLUDEINDIVIDUALSWITHNOHOUSEHOLD = [MKTSEGMENTATION].[HOUSEHOLDINGINCLUDEINDIVIDUALSWITHNOHOUSEHOLD],
        @HOUSEHOLDINGINCLUDEHOUSEHOLDSWITHNOMEMBERS = [MKTSEGMENTATION].[HOUSEHOLDINGINCLUDEHOUSEHOLDSWITHNOMEMBERS],
        @HOUSEHOLDINGONERECORDPERHOUSEHOLD = [MKTSEGMENTATION].[HOUSEHOLDINGONERECORDPERHOUSEHOLD],
        @EXCLUSIONDATETYPECODE = [BUSINESSPROCESSCOMMPREF].[DATETYPECODE],
        @EXCLUSIONASOFDATE = [BUSINESSPROCESSCOMMPREF].[ASOFDATE],
        @CONSTITUENTRECORDTYPEID = (select [ID] from dbo.[RECORDTYPE] where upper([NAME]) = 'CONSTITUENT'),
        @EXCLUDESELECTIONS = dbo.[UFN_MKTSEGMENTATIONFILTERSELECTION_GETEXCLUDESELECTIONS_TOITEMLISTXML]([MKTSEGMENTATION].[ID]),
        @CHANNELCODE = coalesce
        (
            [APPEALMAILINGSETUP].[CHANNELCODE], 
            case
                when [MAILPACKAGE].[CHANNELCODE] = 0 then 2
                when [MAILPACKAGE].[CHANNELCODE] = 1 then 1
                else 0
            end
        ),
        @CHANNELPREFERENCECODE = coalesce
        (
            [APPEALMAILINGSETUP].[CHANNELPREFERENCECODE],
            case
                when (select top(1) [MKTPACKAGE].[CHANNELCODE] from dbo.[MKTPACKAGE] inner join dbo.[MKTSEGMENTATIONSEGMENT] on [MKTSEGMENTATIONSEGMENT].[PACKAGEID] = [MKTPACKAGE].[ID] where [MKTSEGMENTATIONSEGMENT].[SEGMENTATIONID] = [MKTSEGMENTATION].[ID]) = 0 then 1
                else 0
            end
        ),
        @MAILPACKAGEID = coalesce
        (
            [APPEALMAILINGSETUP].[MAILPACKAGEID],
            case
                when [MAILPACKAGE].[ID] is not null and [MAILPACKAGE].[CHANNELCODE] = 0 then [MAILPACKAGE].[ID]
                else null
            end
        ),
        @EMAILPACKAGEID = coalesce
        (
            [APPEALMAILINGSETUP].[EMAILPACKAGEID],
            case
                when [MAILPACKAGE].[ID] is not null and [MAILPACKAGE].[CHANNELCODE] = 1 then [MAILPACKAGE].[ID]
                else null
            end
        ),
        @ADDRESSPROCESSINGOPTIONID = coalesce
        (
            [MKTSEGMENTATION].[ADDRESSPROCESSINGOPTIONID],
            (select top(1) [ID] from dbo.[ADDRESSPROCESSINGOPTION] where [ISDEFAULT] = 1 and dbo.[UFN_SITEALLOWEDFORUSER](@CURRENTAPPUSERID, [SITEID]) = 1)
        ),
        @NAMEFORMATPARAMETERID = coalesce
        (
            [MKTSEGMENTATION].[NAMEFORMATPARAMETERID],
            (select top(1) [ID] from dbo.[NAMEFORMATPARAMETER] where [ISDEFAULT] = 1 and dbo.[UFN_SITEALLOWEDFORUSER](@CURRENTAPPUSERID, [SITEID]) = 1)
        ),
        @CREATEOUTPUTIDSET = [APPEALMAILING].[CREATEOUTPUTIDSET],
        @OUTPUTIDSETNAME = [APPEALMAILING].[OUTPUTIDSETNAME],
        @OVERWRITEOUTPUTIDSET = [APPEALMAILING].[OVERWRITEOUTPUTIDSET],
    @MKTASKLADDERID = [APPEALMAILINGSETUP].[MKTASKLADDERID]
  from
        dbo.[APPEALMAILING]
    left join
        dbo.[APPEALMAILINGSETUP] on [APPEALMAILINGSETUP].[ID] = [APPEALMAILING].[ID]
    inner join
        dbo.[MKTSEGMENTATION] on [MKTSEGMENTATION].[ID] = [APPEALMAILING].[ID]
    inner join
        dbo.[MKTSEGMENTATIONBUDGET] on [MKTSEGMENTATIONBUDGET].[ID] = [MKTSEGMENTATION].[ID]
    inner join
        dbo.[MKTSEGMENTATIONACTIVATEPROCESS] on [MKTSEGMENTATIONACTIVATEPROCESS].[SEGMENTATIONID] = [MKTSEGMENTATION].[ID]
    inner join
        dbo.[BUSINESSPROCESSCOMMPREF] on [BUSINESSPROCESSCOMMPREF].[BUSINESSPROCESSPARAMETERSETID] = [MKTSEGMENTATIONACTIVATEPROCESS].[ID]
    left join
        dbo.[MKTSEGMENTATIONSEGMENT] on [MKTSEGMENTATIONSEGMENT].[SEGMENTATIONID] = [MKTSEGMENTATION].[ID]
    left join
        dbo.[MKTPACKAGE] as [MAILPACKAGE] on [MAILPACKAGE].[ID] = [MKTSEGMENTATIONSEGMENT].[PACKAGEID]
    where
        [APPEALMAILING].[ID] = @ID;

  insert into @TempTbl
  select
    T.c.value('(SELECTIONID)[1]', 'uniqueidentifier') as ID
  from    
    @SELECTEDSELECTIONS.nodes('/SELECTIONS/ITEM') T(c);

  set @SELECTIONS = (
    select TEMP.ID as SELECTIONID
      from @TempTbl as TEMP
    for xml raw('ITEM'),type,elements,root('SELECTIONS'),BINARY BASE64);

  set @TASKS = (
    SELECT
      ID as TASKID,
      SUBJECT,
      NOTES,
      STATUSCODE,
      DATEDUE,
      DATECOMPLETED,
      OWNERID,      
      (
            SELECT
                  [APPEALMAILINGTASKID] as TASKID,
                  [NAME],
                  [SENDDATE]
            FROM
                  dbo.APPEALMAILINGTASKREMINDER
            WHERE
                  APPEALMAILINGTASKREMINDER.APPEALMAILINGTASKID = APPEALMAILINGTASK.ID
            for xml raw('ITEM'),type,elements,root('REMINDERS'),BINARY BASE64
      )
        FROM
          dbo.APPEALMAILINGTASK
        where
            APPEALMAILINGTASK.SEGMENTATIONID = @ID

  for xml raw('ITEM'),type,elements,root('TASKS'),BINARY BASE64)

    return 0;
  end