USP_FAFADDRESSBOOK_CONSTITUENT_ADD
Adds a constituent to FAF participant's address book.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@OWNERCONSTITUENTID | uniqueidentifier | IN | |
@CONSTITUENTID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN |
Definition
Copy
create procedure dbo.USP_FAFADDRESSBOOK_CONSTITUENT_ADD (
@OWNERCONSTITUENTID uniqueidentifier,
@CONSTITUENTID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null
)
as
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime;
set @CURRENTDATE = getdate();
declare @SequenceID int;
select @SequenceID = C.SEQUENCEID from dbo.CONSTITUENT C(nolock) where C.ID = @OWNERCONSTITUENTID;
declare @ClientUsersID int;
set @ClientUsersID = dbo.fnGetUserIDFromLinkedRecordID(@SequenceID, 0);
begin try
if @ClientUsersID is not null
begin
if not exists (select ID from ADDRESSBOOKFAF(nolock) where CLIENTUSERSID = @ClientUsersID and CONSTITUENTID = @CONSTITUENTID)
begin
declare @AddressBookFafID uniqueidentifier = null;
set @AddressBookFafID = dbo.UFN_FAFADDRESSBOOK_CONSTITUENT_LOOKUP(@ClientUsersID, @CONSTITUENTID);
if @AddressBookFafID is not null
begin
update
dbo.ADDRESSBOOKFAF
set
CONSTITUENTID = @CONSTITUENTID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
ID = @AddressBookFafID;
end
else
begin
insert into dbo.ADDRESSBOOKFAF
(
ID,
CLIENTUSERSID,
CONSTITUENTID,
FIRSTNAME,
LASTNAME,
MIDDLENAME,
TITLECODEID,
--SALUTATION,
EMAILADDRESS,
HOMEPHONE,
--CELLPHONE,
ADDRESSBLOCK,
CITY,
STATEID,
COUNTRYID,
POSTCODE,
--PREFERREDCOMMUNICATIONCODE,
--PREFERREDCOMMUNICATION,
--CONTACTTYPECODE,
--CONTACTTYPE,
--TEXTMESSAGESEND,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
select top 1
newid(),
@ClientUsersID,
C.ID,
C.FIRSTNAME,
C.KEYNAME,
C.MIDDLENAME,
C.TITLECODEID,
isnull(E.EMAILADDRESS, '') as EMAILADDRESS,
isnull(P.NUMBER, '') as NUMBER,
isnull(A.ADDRESSBLOCK, '') as ADDRESSBLOCK,
isnull(A.CITY, '') as CITY,
A.STATEID,
A.COUNTRYID,
isnull(A.POSTCODE, '') as POSTCODE,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
from
dbo.CONSTITUENT C(nolock)
left outer join
dbo.EMAILADDRESS E(nolock) on E.CONSTITUENTID = C.ID and E.ISPRIMARY = 1
left outer join
dbo.PHONE P(nolock) on P.CONSTITUENTID = C.ID and P.ISPRIMARY = 1
left outer join
dbo.ADDRESS A(nolock) on A.CONSTITUENTID = C.ID and A.ISPRIMARY = 1
where
C.ID= @CONSTITUENTID;
end
end
end
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;