USP_DATALIST_ADDRESSES_3

Parameters

Parameter Parameter Type Mode Description
@CONSTITUENTID uniqueidentifier IN
@INCLUDEFORMER bit IN

Definition

Copy


create procedure dbo.USP_DATALIST_ADDRESSES_3
(
    @CONSTITUENTID uniqueidentifier, 
    @INCLUDEFORMER bit    = 0
)
as
    set nocount on;
    declare @CURRENTDATE datetime = dbo.UFN_DATE_GETEARLIESTTIME(getdate());

    with [CONTACTINFO_CTE] as
    (
        select 
            ADDRESS.ID,
            ADDRESS.DESCRIPTION,
            ADDRESS.CITY,
            [STATE].ABBREVIATION as [STATE],
            [COUNTRY].ABBREVIATION as [COUNTRY],
            ADDRESS.POSTCODE,
            dbo.UFN_ADDRESSTYPECODE_GETDESCRIPTION(ADDRESS.ADDRESSTYPECODEID) as ADDRESSTYPE,
            ADDRESS.ISPRIMARY,
            ADDRESS.DONOTMAIL,
            ADDRESS.ISCONFIDENTIAL,
            ADDRESS.HISTORICALSTARTDATE,
            ADDRESS.HISTORICALENDDATE,
            case when ADDRESS.HISTORICALSTARTDATE is null then '0001-01-01' else ADDRESS.HISTORICALSTARTDATE end as [STARTDATE_SORT],
            case when ADDRESS.HISTORICALENDDATE is null then '0001-01-01' else ADDRESS.HISTORICALENDDATE end as [ENDDATE_SORT],
            ADDRESS.DATEADDED,
            ADDRESSCOORDINATES.ID as ADDRESSCOORDINATESID,
            ADDRESSCOORDINATES.PENDINGGEOCODE,
            ADDRESSCOORDINATES.INVALIDGEOCODE
        from dbo.ADDRESS
            left join dbo.ADDRESSCOORDINATES on ADDRESSCOORDINATES.ADDRESSID = ADDRESS.ID 
            left join dbo.[STATE] on STATE.ID=ADDRESS.STATEID
            left join dbo.[COUNTRY] on [COUNTRY].ID=ADDRESS.COUNTRYID
        where ADDRESS.CONSTITUENTID = @CONSTITUENTID
    )

    select
        CONTACTINFO.ID,
        CONTACTINFO.DESCRIPTION as ADDRESS,
        CONTACTINFO.CITY,
        CONTACTINFO.STATE,
        CONTACTINFO.COUNTRY,
        CONTACTINFO.POSTCODE,
        case
        when ((CONTACTINFO.HISTORICALENDDATE is null) or (CONTACTINFO.HISTORICALENDDATE > @CURRENTDATE))
        then coalesce(CONTACTINFO.ADDRESSTYPE, N'') + N' (Current)'
        else
        coalesce(CONTACTINFO.ADDRESSTYPE, N'') + N' (Former)'
        end as TYPE,
        CONTACTINFO.ISPRIMARY,
        CONTACTINFO.DONOTMAIL as DONOTCONTACT,
        CONTACTINFO.ISCONFIDENTIAL,
        case when ((CONTACTINFO.HISTORICALENDDATE is null) or (CONTACTINFO.HISTORICALENDDATE > @CURRENTDATE)) then 0 else 1 end as ISFORMER,
        CONTACTINFO.HISTORICALSTARTDATE,
        CONTACTINFO.HISTORICALENDDATE,
        case when CONTACTINFO.ADDRESSCOORDINATESID is null or CONTACTINFO.PENDINGGEOCODE = 1 or CONTACTINFO.INVALIDGEOCODE = 1 then 0 else 1 end as ISGEOCODED,
        case when CONTACTINFO.ADDRESSCOORDINATESID is null then 0 else CONTACTINFO.PENDINGGEOCODE end as PENDINGGEOCODE,
        case when CONTACTINFO.ADDRESSCOORDINATESID is null then 0 else CONTACTINFO.INVALIDGEOCODE end as INVALIDGEOCODE
    from
        [CONTACTINFO_CTE] CONTACTINFO
    where
        @INCLUDEFORMER = 1 or ((CONTACTINFO.HISTORICALENDDATE is null) or (CONTACTINFO.HISTORICALENDDATE > @CURRENTDATE))
    order by
        ISPRIMARY desc, ISFORMER asc, ENDDATE_SORT desc, STARTDATE_SORT desc, DATEADDED desc