USP_DATALIST_APPEALMAILING

Returns a list of appeal mailings associated with a given appeal.

Parameters

Parameter Parameter Type Mode Description
@APPEALID uniqueidentifier IN Input parameter indicating the context ID for the data list.
@ACTIVESTATUS bit IN Status
@MAILDATEFROM datetime IN From
@MAILDATETO datetime IN To
@SHOWUNSCHEDULED bit IN Include mailings with no date

Definition

Copy


CREATE procedure dbo.[USP_DATALIST_APPEALMAILING]
(
      @APPEALID uniqueidentifier,
      @ACTIVESTATUS bit = null,
      @MAILDATEFROM datetime = null,
      @MAILDATETO datetime = null,
      @SHOWUNSCHEDULED bit = 1
)
as
    set nocount on;

    select
        [APPEALMAILING].[ID],
        [MKTSEGMENTATIONACTIVATEPROCESS].[ID] as [MKTSEGMENTATIONACTIVATEPROCESSID],
        [MKTSEGMENTATION].[NAME],
        [MKTSEGMENTATION].[DESCRIPTION],
        [MKTSEGMENTATION].[MAILDATE],
        [MKTSEGMENTATION].[ACTIVE],
        dbo.[UFN_MKTSEGMENTATION_ISCALCULATING]([MKTSEGMENTATION].[ID]) as ISCALCULATING,
        dbo.[UFN_MKTSEGMENTATION_ISACTIVATING]([MKTSEGMENTATION].[ID]) as ISACTIVATING,
        (select count([ID]) from dbo.[MKTSEGMENTATIONSEGMENT] where [SEGMENTATIONID] = [MKTSEGMENTATION].[ID]) as NUMSEGMENTS,
        cast(case when APPEALMAILINGSETUP.ID is null or APPEALMAILINGSETUP.MAILPACKAGEID is not null or APPEALMAILINGSETUP.EMAILPACKAGEID is not null then 1 else 0 end as bit) as PACKAGEDEFINED,
        [MKTPACKAGE].[NAME] [PACKAGE],
        [APPEALMAILINGSELECTION].[NAME] [SELECTION],
        [MKTSEGMENTATION].[BASECURRENCYID],
        cast(case when exists(select COMMUNICATIONLETTER.ID from dbo.COMMUNICATIONLETTER inner join dbo.COMMUNICATIONLETTERSELECTION on COMMUNICATIONLETTER.ID = COMMUNICATIONLETTERSELECTION.COMMUNICATIONLETTERID and COMMUNICATIONLETTERSELECTION.FILTERTYPECODE = 0 where COMMUNICATIONLETTER.SEGMENTATIONID = APPEALMAILING.ID) then 1 else 0 end as bit) [HASLETTERSELECTIONS],
        cast(case when exists(select COMMUNICATIONLETTER.ID from dbo.COMMUNICATIONLETTER where COMMUNICATIONLETTER.SEGMENTATIONID = APPEALMAILING.ID and COMMUNICATIONLETTER.CHANNELCODE > 0 and (len(COMMUNICATIONLETTER.EMAILSUBJECT) = 0 or len(COMMUNICATIONLETTER.EMAILFROMADDRESS) = 0 or len(COMMUNICATIONLETTER.EMAILFROMDISPLAYNAME) = 0 or len(COMMUNICATIONLETTER.EMAILCONTENTHTML) = 0)) then 1 else 0 end as bit) [HASINCOMPLETEEMAILLETTER]
    from dbo.[APPEALMAILING]
    inner join dbo.[MKTSEGMENTATION] 
        on [MKTSEGMENTATION].[ID] = [APPEALMAILING].[ID]
    inner join dbo.[MKTSEGMENTATIONACTIVATEPROCESS] 
        on [MKTSEGMENTATIONACTIVATEPROCESS].[SEGMENTATIONID] = [MKTSEGMENTATION].[ID]
    left join dbo.APPEALMAILINGSETUP 
        on APPEALMAILINGSETUP.ID = APPEALMAILING.ID
    left join dbo.[MKTSEGMENTATIONSEGMENT] 
        on [APPEALMAILING].[MKTSEGMENTATIONSEGMENTID] = [MKTSEGMENTATIONSEGMENT].[ID]
    left join dbo.[MKTPACKAGE] 
        on [MKTSEGMENTATIONSEGMENT].[PACKAGEID] = [MKTPACKAGE].[ID]
    left join dbo.[MKTSEGMENT] 
        on [MKTSEGMENTATIONSEGMENT].[SEGMENTID] = [MKTSEGMENT].[ID]
    left outer join dbo.[MKTSEGMENTSELECTION] 
        on [MKTSEGMENTSELECTION].[SEGMENTID] = [MKTSEGMENTATIONSEGMENT].[SEGMENTID]
    left outer join dbo.[IDSETREGISTER] as [APPEALMAILINGSELECTION] 
        on [APPEALMAILINGSELECTION].[ID] = [MKTSEGMENTSELECTION].[SELECTIONID]
    where [APPEALMAILING].[APPEALID] = @APPEALID
        and (@ACTIVESTATUS is null or @ACTIVESTATUS = [MKTSEGMENTATION].[ACTIVE])
        and (@MAILDATEFROM is null or ([MKTSEGMENTATION].[MAILDATE] is not null and [MKTSEGMENTATION].[MAILDATE] >= @MAILDATEFROM) or (@SHOWUNSCHEDULED = 1 and [MKTSEGMENTATION].[MAILDATE] is null))
        and (@MAILDATETO is null or ([MKTSEGMENTATION].[MAILDATE] is not null and [MKTSEGMENTATION].[MAILDATE] <= @MAILDATETO) or (@SHOWUNSCHEDULED = 1 and [MKTSEGMENTATION].[MAILDATE] is null))
        and ((@SHOWUNSCHEDULED is null) or (@SHOWUNSCHEDULED = 1) or (@SHOWUNSCHEDULED = 0 and [MKTSEGMENTATION].[MAILDATE] is not null))
    order by [MKTSEGMENTATION].[MAILDATE] desc, [MKTSEGMENTATION].[ACTIVATEDATE] desc, [MKTSEGMENTATION].[DATEADDED] desc, [MKTSEGMENTATION].[NAME] asc;

  return 0;