USP_DATAFORMTEMPLATE_ADD_EMAILADDRESS_PRELOAD

The load procedure used by the edit dataform template "Email 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 email address
@SPOUSENAME nvarchar(154) INOUT
@ISHOUSEHOLD bit INOUT
@ISHOUSEHOLDMEMBER bit INOUT
@FORCEDPRIMARY bit INOUT
@CANEDITPRIMARY bit INOUT
@INVALIDFIELDS nvarchar(256) INOUT

Definition

Copy


                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_EMAILADDRESS_PRELOAD (
                        @CONSTITUENTID uniqueidentifier,
                        @PRIMARY bit = null output,
                        @SPOUSENAME nvarchar(154) = null output,
                        @ISHOUSEHOLD bit = null output,
                        @ISHOUSEHOLDMEMBER bit = null output,
                        @FORCEDPRIMARY bit = null output,            -- used by constituent data review

                        @CANEDITPRIMARY bit = null output,            -- used by constituent data review

                        @INVALIDFIELDS nvarchar(256) = null output    -- used by constituent data review

                    ) as
                        set nocount on;

                        if exists(select object_id from sys.objects where type = 'U' and name = 'RELATIONSHIP')
                            select
                                @PRIMARY = case when count(EMAILADDRESS.ID) = 0 then 1 else 0 end,
                                @SPOUSENAME = SPOUSE.NAME
                            from
                                dbo.CONSTITUENT
                            left join dbo.EMAILADDRESS on EMAILADDRESS.CONSTITUENTID = CONSTITUENT.ID and EMAILADDRESS.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(EMAILADDRESS.ID) = 0 then 1 else 0 end
                            from
                                dbo.EMAILADDRESS
                            where
                                EMAILADDRESS.CONSTITUENTID = @CONSTITUENTID;

                        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;