USP_SIMPLEDATALIST_CONSTITUENTLETTERADDRESS

Returns a list of a given constituent's street addresses.

Parameters

Parameter Parameter Type Mode Description
@INCOMINGID nvarchar(37) IN Incoming ID

Definition

Copy


                CREATE procedure dbo.USP_SIMPLEDATALIST_CONSTITUENTLETTERADDRESS
                (
                    @INCOMINGID nvarchar(37)
                )
                as
                    set nocount on;

                    declare @ID uniqueidentifier;
                    declare @TYPE tinyint;
                    declare @CONSTITUENTID uniqueidentifier;
                    declare @RELATIONSHIPID uniqueidentifier;

                    set @ID = substring(@INCOMINGID,1,36);
                    set @TYPE = substring(@INCOMINGID,37,1)

                    if @TYPE = 0
                    begin
                        select @CONSTITUENTID = CONSTITUENTID
                        from dbo.ADDRESS
                        where ID = @ID;
                    end
                    if @TYPE = 1 or @TYPE =''
                    begin
                        select @CONSTITUENTID = CONSTITUENT.ID
                        from dbo.CONSTITUENT
                        where CONSTITUENT.ID = @ID;
                    end
                    if @TYPE = 2
                    begin
                        select @RELATIONSHIPID = RELATIONSHIP.ID,
                            @CONSTITUENTID = RELATIONSHIP.RELATIONSHIPCONSTITUENTID
                        from dbo.RELATIONSHIP
                        inner join dbo.CONSTITUENT on CONSTITUENT.ID = RELATIONSHIP.RELATIONSHIPCONSTITUENTID
                        where RELATIONSHIP.ID = @ID;
                    end

                    select ADDRESS.ID as VALUE,
                        case when RELATIONSHIPID is not null then '(Contact) - ' else (case when ISPRIMARY = 1 then '(Primary) - ' else '' end) end
                        + coalesce(dbo.UFN_ADDRESSTYPECODE_GETDESCRIPTION(ADDRESSTYPECODEID),'')
                        + case when ADDRESSTYPECODEID is not null then ' - ' else '' end
                        + case
                            when len(ADDRESSBlOCK) > 0 then substring(ADDRESSBLOCK, 0, case when charindex(char(10),ADDRESSBLOCK) = 0 then len(addressblock) + 1 else charindex(char(10),ADDRESSBLOCK) end)
                            when len(CITY) > 0 then CITY
                            when STATEID is not null then dbo.UFN_STATE_GETABBREVIATION(STATEID)
                            when len(POSTCODE) > 0 then POSTCODE
                        end as LABEL
                    from dbo.ADDRESS
                    where (CONSTITUENTID = @CONSTITUENTID or RELATIONSHIPID = @RELATIONSHIPID)
                        and (len(ADDRESSBLOCK) > 0 or len(CITY) > 0 or STATEID is not null or len(POSTCODE) > 0)
                        and DONOTMAIL = 0;