USP_DATAFORMTEMPLATE_VIEW_CONSTITUENTMEMBERSHIPPRIMARYMEMBERINFORMATIONVIEW2

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@CURRENTAPPUSERID uniqueidentifier IN
@DATALOADED bit INOUT
@PRIMARYMEMBERNAME nvarchar(100) INOUT
@ADDRESSID uniqueidentifier INOUT
@ADDRESS nvarchar(300) INOUT
@ADDRESSTYPE nvarchar(100) INOUT
@PHONENUMBERID uniqueidentifier INOUT
@PHONENUMBER nvarchar(100) INOUT
@PHONENUMBERTYPE nvarchar(100) INOUT
@EMAILADDRESSID uniqueidentifier INOUT
@EMAILADDRESS UDT_EMAILADDRESS INOUT

Definition

Copy

                CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_CONSTITUENTMEMBERSHIPPRIMARYMEMBERINFORMATIONVIEW2
                (
                    @ID uniqueidentifier,
                    @CURRENTAPPUSERID uniqueidentifier,
                    @DATALOADED bit = 0 output,
                    @PRIMARYMEMBERNAME nvarchar(100) = null output,
                    @ADDRESSID uniqueidentifier = null output,
                    @ADDRESS nvarchar(300) = null output,
                    @ADDRESSTYPE nvarchar(100) = null output,
                    @PHONENUMBERID uniqueidentifier = null output,
                    @PHONENUMBER nvarchar(100) = null output,
                    @PHONENUMBERTYPE nvarchar(100) = null output,
                    @EMAILADDRESSID uniqueidentifier = null output,
                    @EMAILADDRESS dbo.UDT_EMAILADDRESS = null output
                )
                as
                    set nocount on;

                    set @DATALOADED = 0;

                    -- Find name
                    select
                        @PRIMARYMEMBERNAME = NAME
                    from
                        dbo.UFN_CONSTITUENT_DISPLAYNAME(@ID)

                    declare @SEASONALITEMS table
                    (
                        CONSTITUENTID uniqueidentifier,
                        ITEMID uniqueidentifier
                    )

                    -- Find seasonal addresses
                    insert into @SEASONALITEMS
                    select
                        CONSTITUENTID,
                        ADDRESSID
                    from
                        dbo.UFN_ADDRESSPROCESS_SEASONALADDRESSES(GETDATE())
                    where
                        CONSTITUENTID = @ID

                    -- Address
                    if exists (select * from @SEASONALITEMS)
                    begin
                        -- Address is seasonal
                        select
                            @ADDRESSID = SI.ITEMID,
                            @ADDRESS = dbo.UFN_BUILDFULLADDRESS(SI.ITEMID, A.ADDRESSBLOCK, A.CITY, A.STATEID, A.POSTCODE, A.COUNTRYID),
                            @ADDRESSTYPE = ATC.DESCRIPTION
                        from
                            @SEASONALITEMS SI
                            inner join dbo.ADDRESS A on SI.ITEMID = A.ID
                            left join dbo.ADDRESSTYPECODE ATC on A.ADDRESSTYPECODEID = ATC.ID
                    end
                    else
                    begin
                        -- Address is not seasonal
                        select
                            @ADDRESSID = A.ID,
                            @ADDRESS = dbo.UFN_BUILDFULLADDRESS(A.ID, A.ADDRESSBLOCK, A.CITY, A.STATEID, A.POSTCODE, A.COUNTRYID),
                            @ADDRESSTYPE = ATC.DESCRIPTION
                        from
                            dbo.ADDRESS A
                            left join dbo.ADDRESSTYPECODE ATC on A.ADDRESSTYPECODEID = ATC.ID
                        where
                            A.CONSTITUENTID = @ID
              and A.ISPRIMARY = 1
                    end

                    -- Prepare for re-use
                    delete from @SEASONALITEMS

                    -- Find seasonal phone numbers
                    insert into @SEASONALITEMS
                    select
                        CONSTITUENTID,
                        ID
                    from
                        dbo.PHONE P
                    where
                        CONSTITUENTID = @ID and
                        ((cast((right('0' + cast(month(GETDATE()) as varchar(2)), 2) + right('0' + cast(day(GETDATE()) as varchar(2)), 2)) as int) - cast(P.SEASONALSTARTDATE as int)) + 1231) % 1231 between 0 and ((cast(P.SEASONALENDDATE as int) - cast(P.SEASONALSTARTDATE as int)) + 1231) % 1231

                    -- Phone number
                    if exists (select * from @SEASONALITEMS)
                    begin
                        -- Phone number is seasonal
                        select
                            @PHONENUMBERID = SI.ITEMID,
                            @PHONENUMBER = dbo.UFN_PHONE_GETINTERNATIONALNUMBER(P.COUNTRYID, P.NUMBER),
                            @PHONENUMBERTYPE = PTC.DESCRIPTION
                        from
                            @SEASONALITEMS SI
                            inner join dbo.PHONE P on SI.ITEMID = P.ID
                            left join dbo.PHONETYPECODE PTC on P.PHONETYPECODEID = PTC.ID
                    end
                    else
                    begin
                        -- Phone number is not seasonal
                        select
                            @PHONENUMBERID = P.ID,
                            @PHONENUMBER = dbo.UFN_PHONE_GETINTERNATIONALNUMBER(P.COUNTRYID, P.NUMBER),
                            @PHONENUMBERTYPE = PTC.DESCRIPTION
                        from
                            dbo.PHONE P
                            left join dbo.PHONETYPECODE PTC on P.PHONETYPECODEID = PTC.ID
                        where
                            P.CONSTITUENTID = @ID
              and P.ISPRIMARY = 1
                    end

                    -- Email address
                    select
                        @EMAILADDRESSID = E.ID,
                        @EMAILADDRESS = EMAILADDRESS
                    from
                        dbo.EMAILADDRESS E
                    where
                        E.CONSTITUENTID = @ID and
                        E.ISPRIMARY = 1

                    set @DATALOADED = 1;

                    return 0;