USP_DATAFORMTEMPLATE_EDITLOAD_CONSTITUENTDATAREVIEW_EMAILADDRESS
The load procedure used by the edit dataform template "Constituent Data Review Email Address Edit Data Form"
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter used to load the fields defined on the form. |
@DATALOADED | bit | INOUT | Output parameter indicating whether or not data was actually loaded. |
@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 | |
@SPOUSEHASMATCHINGEMAILADDRESS | bit | INOUT | |
@UPDATEMATCHINGSPOUSEEMAILADDRESS | bit | INOUT | Update matching email information for spouse |
@ISHOUSEHOLD | bit | INOUT | |
@ISHOUSEHOLDMEMBER | bit | INOUT | |
@UPDATEMATCHINGHOUSEHOLDEMAILADDRESS | bit | INOUT | Update matching email addresses in household |
@MATCHINGHOUSEHOLDMEMBERS | xml | INOUT | Household members |
@TSLONG | bigint | INOUT | Output parameter indicating the TSLONG value of the record being edited. This is used to manage multi-user concurrency issues when multiple users access the same record. |
@INFOSOURCECODEID | uniqueidentifier | INOUT | Information source |
@INFOSOURCECOMMENTS | nvarchar(256) | INOUT | Comments |
@CONSTITUENTDATAREVIEWROLLBACKREASONID | uniqueidentifier | INOUT | Reason |
@FORCEDPRIMARY | bit | INOUT | |
@CANEDITPRIMARY | bit | INOUT | |
@INVALIDFIELDS | nvarchar(256) | INOUT | |
@ORIGINCODE | tinyint | INOUT | Origin |
@STARTDATE | date | INOUT | Start date |
@ENDDATE | date | INOUT | End date |
@EMAILISCONFIDENTIAL | bit | INOUT | |
@DONOTEMAILREASONCODEID | uniqueidentifier | INOUT |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_CONSTITUENTDATAREVIEW_EMAILADDRESS (
@ID uniqueidentifier, -- this is EMAILADDRESSAUDIT.ID
@DATALOADED bit = 0 output,
@EMAILADDRESSTYPECODEID uniqueidentifier = null output,
@EMAILADDRESS dbo.UDT_EMAILADDRESS = null output,
@PRIMARY bit = null output,
@DONOTEMAIL bit = null output,
@SPOUSENAME nvarchar(154) = null output,
@SPOUSEHASMATCHINGEMAILADDRESS bit = null output,
@UPDATEMATCHINGSPOUSEEMAILADDRESS bit = null output,
@ISHOUSEHOLD bit = null output,
@ISHOUSEHOLDMEMBER bit = null output,
@UPDATEMATCHINGHOUSEHOLDEMAILADDRESS bit = null output,
@MATCHINGHOUSEHOLDMEMBERS xml = null output,
@TSLONG bigint = 0 output,
@INFOSOURCECODEID uniqueidentifier = null output,
@INFOSOURCECOMMENTS nvarchar(256) = null output,
@CONSTITUENTDATAREVIEWROLLBACKREASONID uniqueidentifier = null output,
@FORCEDPRIMARY bit = null output,
@CANEDITPRIMARY bit = null output,
@INVALIDFIELDS nvarchar(256) = null output,
@ORIGINCODE tinyint = null output,
@STARTDATE date = null output,
@ENDDATE date = null output,
@EMAILISCONFIDENTIAL bit = null output,
@DONOTEMAILREASONCODEID uniqueidentifier = null output
)
as
set nocount on;
declare @CONSTITUENTID uniqueidentifier;
declare @EMAILADDRESSID uniqueidentifier;
set @FORCEDPRIMARY = 0;
set @CANEDITPRIMARY = 0;
exec dbo.USP_CONSTITUENTDATAREVIEW_EMAILADDRESS_LOADAUDITDATA
@ID, @DATALOADED output, @EMAILADDRESSID output,
@CONSTITUENTID output, @EMAILADDRESSTYPECODEID output,
@EMAILADDRESS output, @PRIMARY output, @DONOTEMAIL output,
@SPOUSENAME output, @SPOUSEHASMATCHINGEMAILADDRESS output,
@UPDATEMATCHINGSPOUSEEMAILADDRESS output,
@UPDATEMATCHINGHOUSEHOLDEMAILADDRESS output,
@INFOSOURCECODEID output, @INFOSOURCECOMMENTS output,
@ORIGINCODE output, @STARTDATE output, @ENDDATE output, @EMAILISCONFIDENTIAL output,
@DONOTEMAILREASONCODEID = @DONOTEMAILREASONCODEID;
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;
set @MATCHINGHOUSEHOLDMEMBERS = (
select
CONSTITUENTID,
NAME,
RELATIONSHIPTOPRIMARY
from
dbo.UFN_EMAILADDRESS_MATCHINGHOUSEHOLDRECORDS(@CONSTITUENTID, @EMAILADDRESS, @EMAILADDRESSTYPECODEID)
for xml raw('ITEM'), type, elements, root('MATCHINGHOUSEHOLDMEMBERS'), binary base64
);
-- handle primary
declare @CURRENTPRIMARY bit;
select @CURRENTPRIMARY = ISPRIMARY
from dbo.EMAILADDRESS
where ID = @EMAILADDRESSID;
if @PRIMARY = 0 and @CURRENTPRIMARY = 1
begin
set @PRIMARY = 1;
set @FORCEDPRIMARY = 1;
end
else
begin
-- if current primary is 0, there must be another
-- primary record, allow user to edit primary checkbox
if @PRIMARY = 1 and @CURRENTPRIMARY = 0
set @CANEDITPRIMARY = 1;
end
exec dbo.USP_CONSTITUENTDATAREVIEW_EMAILADDRESS_CHECKGUIDS
@INVALIDFIELDS output,
@EMAILADDRESSTYPECODEID output,
@INFOSOURCECODEID output
return 0;