USP_DATAFORMTEMPLATE_ADD_ADDRESS_PRELOAD

The load procedure used by the edit dataform template "Address Add Form"

Parameters

Parameter Parameter Type Mode Description
@CONSTITUENTID uniqueidentifier IN Input parameter indicating the context ID for the record being added.
@PRIMARY bit INOUT Set as primary address
@COUNTRYID uniqueidentifier INOUT Country
@SPOUSENAME nvarchar(154) INOUT
@ZIPLOOKUPCOUNTRIES xml INOUT
@ISHOUSEHOLD bit INOUT
@ISHOUSEHOLDMEMBER bit INOUT

Definition

Copy


                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_ADDRESS_PRELOAD (
                        @CONSTITUENTID uniqueidentifier,
                        @PRIMARY bit = null output,
                        @COUNTRYID uniqueidentifier = null output,
                        @SPOUSENAME nvarchar(154) = null output,
                        @ZIPLOOKUPCOUNTRIES xml = null output,
                        @ISHOUSEHOLD bit = null output,
                        @ISHOUSEHOLDMEMBER bit = null output
                    ) as 
                        set nocount on;

                        exec @COUNTRYID = dbo.UFN_COUNTRY_GETDEFAULT;

                        if exists(select object_id from sys.objects where type = 'U' and name = 'RELATIONSHIP')
                            select
                                @PRIMARY = case when count(ADDRESS.ID) = 0 then 1 else 0 end,
                                @SPOUSENAME = SPOUSE.NAME
                            from
                                dbo.CONSTITUENT
                            left join dbo.ADDRESS on ADDRESS.CONSTITUENTID = CONSTITUENT.ID and ADDRESS.ISPRIMARY = 1
                            left join dbo.RELATIONSHIP on RELATIONSHIP.RELATIONSHIPCONSTITUENTID = CONSTITUENT.ID and RELATIONSHIP.ISSPOUSE = 1
                            left join dbo.CONSTITUENT as SPOUSE on SPOUSE.ID = RELATIONSHIP.RECIPROCALCONSTITUENTID
                            where
                                CONSTITUENT.ID = @CONSTITUENTID
                            group by
                                SPOUSE.NAME;
                        else
                            select
                                @PRIMARY = case when count(ADDRESS.ID) = 0 then 1 else 0 end
                            from
                                dbo.ADDRESS
                            where
                                ADDRESS.CONSTITUENTID = @CONSTITUENTID;

                        select @ZIPLOOKUPCOUNTRIES = dbo.UFN_ZIPCITYSTATE_GETCOUNTRIES_TOITEMLISTXML();

                        declare @CURRENTDATE date;
                        set @CURRENTDATE = getdate();

                        set @ISHOUSEHOLD = dbo.UFN_CONSTITUENT_ISHOUSEHOLD(@CONSTITUENTID);
                        set @ISHOUSEHOLDMEMBER = case when exists (
                            select 1 
                            from dbo.GROUPMEMBER GM 
                            left outer join dbo.GROUPMEMBERDATERANGE GMDR on GMDR.GROUPMEMBERID = GM.ID
                            left outer join dbo.GROUPDATA GD on GD.ID = GM.GROUPID
                            where GM.MEMBERID = @CONSTITUENTID 
                            and GD.GROUPTYPECODE = 0
                            and ((GMDR.DATEFROM is null and (GMDR.DATETO is null or GMDR.DATETO > @CURRENTDATE))
                                or (GMDR.DATETO is null and (GMDR.DATEFROM is null or GMDR.DATEFROM <= @CURRENTDATE)) 
                                or (GMDR.DATEFROM <= @CURRENTDATE and GMDR.DATETO > @CURRENTDATE))
                        ) then 1 else 0 end;

                        return 0;