USP_DATAFORMTEMPLATE_ADD_CONSTITUENTDATAREVIEW_EMAILADDRESS_PRELOAD

The load procedure used by the edit dataform template "Constituent Data Review Email Address Add Data Form"

Parameters

Parameter Parameter Type Mode Description
@AUDITID uniqueidentifier IN Input parameter indicating the context ID for the record being added.
@EMAILADDRESSTYPECODEID uniqueidentifier INOUT Type
@EMAILADDRESS UDT_EMAILADDRESS INOUT Email address
@PRIMARY bit INOUT Set as primary email address
@DONOTEMAIL bit INOUT Do not send email to this address
@SPOUSENAME nvarchar(154) INOUT
@UPDATEMATCHINGSPOUSEEMAILADDRESS bit INOUT Update matching email information for spouse
@ISHOUSEHOLD bit INOUT
@ISHOUSEHOLDMEMBER bit INOUT
@UPDATEMATCHINGHOUSEHOLDEMAILADDRESS bit INOUT Copy email address information to household members
@INFOSOURCECODEID uniqueidentifier INOUT Information source
@INFOSOURCECOMMENTS nvarchar(256) INOUT Comments
@FORCEDPRIMARY bit INOUT
@CANEDITPRIMARY bit INOUT
@INVALIDFIELDS nvarchar(256) INOUT
@ORIGINCODE tinyint INOUT Origin
@STARTDATE date INOUT Start date
@EMAILISCONFIDENTIAL bit INOUT
@DONOTEMAILREASONCODEID uniqueidentifier INOUT

Definition

Copy

                CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_CONSTITUENTDATAREVIEW_EMAILADDRESS_PRELOAD (
                    @AUDITID uniqueidentifier,
                      @EMAILADDRESSTYPECODEID uniqueidentifier = null output,
                      @EMAILADDRESS dbo.UDT_EMAILADDRESS = null output,
                    @PRIMARY bit = null output,
                      @DONOTEMAIL bit = null output,
                      @SPOUSENAME nvarchar(154) = null output,
                      @UPDATEMATCHINGSPOUSEEMAILADDRESS bit = null output,
                      @ISHOUSEHOLD bit = null output,
                      @ISHOUSEHOLDMEMBER bit = null output,
                      @UPDATEMATCHINGHOUSEHOLDEMAILADDRESS bit = null output,
                      @INFOSOURCECODEID uniqueidentifier = null output,
                      @INFOSOURCECOMMENTS nvarchar(256) = null output,
                      @FORCEDPRIMARY bit = null output,
                      @CANEDITPRIMARY bit = null output,
                      @INVALIDFIELDS nvarchar(256) = null output,
                      @ORIGINCODE tinyint = null output,
            @STARTDATE date = null output,
                      @EMAILISCONFIDENTIAL bit = null output,
                        @DONOTEMAILREASONCODEID uniqueidentifier = null output
                )
                as
                    set nocount on;

                    declare @DATALOADED bit;
                    declare @CONSTITUENTID uniqueidentifier;

                    set @FORCEDPRIMARY = 0;
                    set @CANEDITPRIMARY = 0;

                    exec dbo.USP_CONSTITUENTDATAREVIEW_EMAILADDRESS_LOADAUDITDATA
                        @AUDITID, @DATALOADED output, null,
                        @CONSTITUENTID output, @EMAILADDRESSTYPECODEID output,
                        @EMAILADDRESS output, @PRIMARY output, @DONOTEMAIL output,
                        @SPOUSENAME output, null,
                        @UPDATEMATCHINGSPOUSEEMAILADDRESS output,
                        @UPDATEMATCHINGHOUSEHOLDEMAILADDRESS output,
                        @INFOSOURCECODEID output, @INFOSOURCECOMMENTS output,
                        @ORIGINCODE output, @STARTDATE output,
                        @EMAILISCONFIDENTIAL output,
                        @DONOTEMAILREASONCODEID output;

                    if @DATALOADED = 0
                        raiserror('Could not find the requested audit record.', 13, 1);

                    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;

                    -- handle primary
                    declare @COUNT smallint;

                    select @COUNT = count(*)
                    from dbo.EMAILADDRESS
                    where CONSTITUENTID = @CONSTITUENTID;

                    if @PRIMARY = 0 and @COUNT = 0
                    begin
                        set @PRIMARY = 1;
                        set @FORCEDPRIMARY = 1;
                    end
                    else
                    begin
                        -- if another record exists, it must be primary, so allow the user
                        -- to edit the primary checkbox in this scenario
                        if @PRIMARY = 1 and @COUNT > 0
                            set @CANEDITPRIMARY = 1;
                    end

                    exec dbo.USP_CONSTITUENTDATAREVIEW_EMAILADDRESS_CHECKGUIDS
                        @INVALIDFIELDS output,
                        @EMAILADDRESSTYPECODEID output,
                        @INFOSOURCECODEID output

                    return 0;