USP_BBNC_COMMITPROFILEUPDATEEMAILADDRESSES
Updates a constituent's email address from a Blackbaud Internet Solutions profile transaction.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CONSTITUENTID | uniqueidentifier | IN | |
@EMAILID | uniqueidentifier | IN | |
@EMAILADDRESSTYPECODEID | uniqueidentifier | IN | |
@EMAILADDRESS | nvarchar(100) | IN | |
@PREVIOUSEMAILADDRESSTYPECODEID | uniqueidentifier | IN | |
@ADDNEWEMAIL | bit | IN | |
@ISPRIMARY | bit | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@CHANGEDATE | datetime | IN | |
@STARTDATE | date | IN | |
@ENDDATE | date | IN | |
@DONOTEMAIL | bit | IN |
Definition
Copy
CREATE procedure dbo.USP_BBNC_COMMITPROFILEUPDATEEMAILADDRESSES
(
@CONSTITUENTID uniqueidentifier = null,
@EMAILID uniqueidentifier = null,
@EMAILADDRESSTYPECODEID uniqueidentifier = null,
@EMAILADDRESS nvarchar(100) = '',
@PREVIOUSEMAILADDRESSTYPECODEID uniqueidentifier = null,
@ADDNEWEMAIL bit = null,
@ISPRIMARY bit = null,
@CHANGEAGENTID uniqueidentifier = null,
@CHANGEDATE datetime = null,
@STARTDATE date = null,
@ENDDATE date = null,
@DONOTEMAIL bit = null
) as
set nocount on;
declare @SEQUENCE int;
declare @PRIMARYEMAILID uniqueidentifier;
if @CONSTITUENTID is null
begin
raiserror('The constituent ID is required',16,1);
return -2;
end
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
if @CHANGEDATE is null
set @CHANGEDATE = getdate();
declare @INFOSOURCECODEID uniqueidentifier;
select top (1)
@INFOSOURCECODEID = [INFOSOURCECODEID]
from
dbo.NETCOMMUNITYDEFAULTCODEMAP;
begin try
if @ISPRIMARY = 1
begin
select
@PRIMARYEMAILID = [ID]
from
dbo.EMAILADDRESS
where
[CONSTITUENTID] = @CONSTITUENTID
and [ISPRIMARY] = 1;
if (@PRIMARYEMAILID is not null and @PRIMARYEMAILID <> coalesce(@EMAILID, '00000000-0000-0000-0000-000000000000')) or
(@PRIMARYEMAILID is not null and @PRIMARYEMAILID = @EMAILID and @ADDNEWEMAIL = 1)
begin
update dbo.EMAILADDRESS set
[ISPRIMARY] = 0
where
[ID] = @PRIMARYEMAILID;
end
end
if @ADDNEWEMAIL = 0
begin
if @EMAILID is not null
update dbo.EMAILADDRESS set
[EMAILADDRESSTYPECODEID] = @EMAILADDRESSTYPECODEID,
[EMAILADDRESS] = @EMAILADDRESS,
[ISPRIMARY] = @ISPRIMARY,
[INFOSOURCECODEID] = @INFOSOURCECODEID,
[CHANGEDBYID] = @CHANGEAGENTID,
[DATECHANGED] = @CHANGEDATE,
[STARTDATE] = @STARTDATE,
[ENDDATE] = @ENDDATE,
[DONOTEMAIL] = @DONOTEMAIL
where
[ID] = @EMAILID
end
else
begin
if @PREVIOUSEMAILADDRESSTYPECODEID is not null
begin
if @EMAILID is not null
update dbo.EMAILADDRESS set
[EMAILADDRESSTYPECODEID] = @PREVIOUSEMAILADDRESSTYPECODEID,
[DATECHANGED] = @CHANGEDATE,
[CHANGEDBYID] = @CHANGEAGENTID
where
[ID] = @EMAILID
end
select @SEQUENCE = max([SEQUENCE])
from dbo.EMAILADDRESS
where [CONSTITUENTID] = @CONSTITUENTID;
if @SEQUENCE is null
set @SEQUENCE = 0;
insert into dbo.EMAILADDRESS
(
[ID],
[CONSTITUENTID],
[EMAILADDRESSTYPECODEID],
[EMAILADDRESS],
[ISPRIMARY],
[SEQUENCE],
[INFOSOURCECODEID],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED],
[STARTDATE],
[ENDDATE],
[DONOTEMAIL]
)
values
(
newid(),
@CONSTITUENTID,
@EMAILADDRESSTYPECODEID,
@EMAILADDRESS,
@ISPRIMARY,
@SEQUENCE + 1,
@INFOSOURCECODEID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CHANGEDATE,
@CHANGEDATE,
@STARTDATE,
@ENDDATE,
@DONOTEMAIL
);
end
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;