UFN_SELECTIVECOMMUNICATIONLETTERS_GETLETTEROPTIONS_TOITEMLISTXML

Return

Return Type
xml

Parameters

Parameter Parameter Type Mode Description
@SEGMENTATIONID uniqueidentifier IN

Definition

Copy


CREATE function dbo.UFN_SELECTIVECOMMUNICATIONLETTERS_GETLETTEROPTIONS_TOITEMLISTXML
(
    @SEGMENTATIONID uniqueidentifier
)
returns xml
as 
begin
    return (
        select
            COMMUNICATIONLETTER.ID,
            COMMUNICATIONLETTER.SEQUENCE,
            COMMUNICATIONLETTER.OUTPUTTYPECODE,
            COMMUNICATIONLETTER.CHANNELCODE,
            COMMUNICATIONLETTER.NAME,
            cast(1 as bit) as RUNNOW,                -- All letters should default to Run now for manual runs

            coalesce(MAILCACHE.OFFERCOUNT, MAILACTIVE.QUANTITY, 0) as MAILCOUNT,
            coalesce(EMAILCACHE.OFFERCOUNT, EMAILACTIVE.QUANTITY, 0) as EMAILCOUNT,
            (
                case when
                    exists (
                        select ID
                        from dbo.COMMUNICATIONLETTERSELECTION
                        where COMMUNICATIONLETTERID = COMMUNICATIONLETTER.ID
                    )
                    then 1                        
                    else 0
                end
            ) as HASSELECTION,
            case
                when COMMUNICATIONLETTER.CHANNELCODE = 0 then 0                                        -- Mail


                when COMMUNICATIONLETTER.CHANNELCODE = 1 or COMMUNICATIONLETTER.CHANNELCODE = 2        -- Email, Mail and Email

                    then 
                        case
                            when len(COMMUNICATIONLETTER.EMAILSUBJECT) > 0  
                                    and len(COMMUNICATIONLETTER.EMAILFROMDISPLAYNAME) > 0 
                                    and len(COMMUNICATIONLETTER.EMAILFROMADDRESS) > 0 
                                    and len(COMMUNICATIONLETTER.EMAILCONTENTHTML) > 0
                                then 0
                            else 1
                        end                                
                else 0
            end as MISSINGREQUIREDEMAILFIELD
        from dbo.COMMUNICATIONLETTER
        left outer join dbo.MKTSEGMENTATIONSEGMENT MAILSEGMENT
            on COMMUNICATIONLETTER.MAILSEGMENTID = MAILSEGMENT.SEGMENTID
        left outer join dbo.MKTSEGMENTATIONSEGMENTCACHEINFO MAILCACHE
            on MAILSEGMENT.ID = MAILCACHE.SEGMENTID
        left outer join dbo.MKTSEGMENTATIONSEGMENTACTIVE MAILACTIVE
            on MAILSEGMENT.ID = MAILACTIVE.SEGMENTID
        left outer join dbo.MKTSEGMENTATIONSEGMENT EMAILSEGMENT
            on COMMUNICATIONLETTER.EMAILSEGMENTID = EMAILSEGMENT.SEGMENTID
        left outer join dbo.MKTSEGMENTATIONSEGMENTCACHEINFO EMAILCACHE
            on EMAILSEGMENT.ID = EMAILCACHE.SEGMENTID
        left outer join dbo.MKTSEGMENTATIONSEGMENTACTIVE EMAILACTIVE
            on EMAILSEGMENT.ID = EMAILACTIVE.SEGMENTID
        where COMMUNICATIONLETTER.SEGMENTATIONID = @SEGMENTATIONID
        order by COMMUNICATIONLETTER.SEQUENCE        
        for xml raw('ITEM'), type,elements,root('LETTEROPTIONS'),BINARY BASE64
    )
end