USP_DATAFORMTEMPLATE_EDITLOAD_EMAILADDRESS
The load procedure used by the edit dataform template "Email Address Edit 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. |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_EMAILADDRESS (
@ID uniqueidentifier,
@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
)
as
set nocount on;
declare @SPOUSEID uniqueidentifier;
set @DATALOADED = 0;
set @TSLONG = 0;
set @SPOUSEHASMATCHINGEMAILADDRESS = 0;
set @UPDATEMATCHINGSPOUSEEMAILADDRESS = 0;
if exists(select object_id from sys.objects where type = 'U' and name = 'RELATIONSHIP') begin
select
@DATALOADED = 1,
@EMAILADDRESSTYPECODEID = EMAILADDRESS.EMAILADDRESSTYPECODEID,
@EMAILADDRESS = EMAILADDRESS.EMAILADDRESS,
@PRIMARY = EMAILADDRESS.ISPRIMARY,
@DONOTEMAIL = EMAILADDRESS.DONOTEMAIL,
@SPOUSEID = SPOUSE.ID,
@SPOUSENAME = SPOUSE.NAME,
@TSLONG = EMAILADDRESS.TSLONG
from
dbo.EMAILADDRESS
left join dbo.RELATIONSHIP on RELATIONSHIP.RELATIONSHIPCONSTITUENTID = EMAILADDRESS.CONSTITUENTID and RELATIONSHIP.ISSPOUSE = 1
left join dbo.CONSTITUENT as SPOUSE on SPOUSE.ID = RELATIONSHIP.RECIPROCALCONSTITUENTID
where
EMAILADDRESS.ID = @ID;
if exists (
select EMAILADDRESS.ID
from dbo.EMAILADDRESS
where
EMAILADDRESS.CONSTITUENTID = @SPOUSEID and
EMAILADDRESS.EMAILADDRESS = @EMAILADDRESS
) begin
set @SPOUSEHASMATCHINGEMAILADDRESS = 1;
set @UPDATEMATCHINGSPOUSEEMAILADDRESS = 1;
end
end
else begin
select
@DATALOADED = 1,
@EMAILADDRESSTYPECODEID = EMAILADDRESS.EMAILADDRESSTYPECODEID,
@EMAILADDRESS = EMAILADDRESS.EMAILADDRESS,
@PRIMARY = EMAILADDRESS.ISPRIMARY,
@DONOTEMAIL = EMAILADDRESS.DONOTEMAIL,
@TSLONG = EMAILADDRESS.TSLONG
from
dbo.EMAILADDRESS
where
EMAILADDRESS.ID = @ID;
end
declare @CURRENTDATE date;
set @CURRENTDATE = getdate();
declare @CONSTITUENTID uniqueidentifier;
select @CONSTITUENTID = CONSTITUENTID from dbo.EMAILADDRESS where ID = @ID;
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
);
return 0;