USP_WPRELATIONSHIP_NPA_IND_ADD
Adds WealthPoint Nonprofit Affiliation relationship individual information.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@CONSTITUENTID | uniqueidentifier | IN | |
@LASTNAME | nvarchar(100) | IN | |
@FIRSTNAME | nvarchar(50) | IN | |
@MIDDLE | nvarchar(50) | IN | |
@SUFFIX | nvarchar(50) | IN | |
@TITLE | nvarchar(100) | IN | |
@CITY | nvarchar(50) | IN | |
@STATE | nvarchar(2) | IN | |
@ZIP | nvarchar(10) | IN | |
@LASTDATE | datetime | IN | |
@YROBSERVE | nvarchar(100) | IN | |
@EIN | nvarchar(30) | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN | |
@SPOUSEFLAG | bit | IN | |
@MATCHPROSPECT | bit | IN | |
@MATCHPRIMARYBUSINESS | bit | IN | |
@EXECCOUNT | int | IN |
Definition
Copy
CREATE procedure dbo.USP_WPRELATIONSHIP_NPA_IND_ADD
(
@ID uniqueidentifier = null output,
@CHANGEAGENTID uniqueidentifier = null,
@CONSTITUENTID uniqueidentifier = null,
@LASTNAME nvarchar(100) = '',
@FIRSTNAME nvarchar(50) = '',
@MIDDLE nvarchar(50) = '',
@SUFFIX nvarchar(50) = '',
@TITLE nvarchar(100) = '',
@CITY nvarchar(50) = '',
@STATE nvarchar(2) = '',
@ZIP nvarchar(10) = '',
@LASTDATE datetime = null,
@YROBSERVE nvarchar(100) = '',
@EIN nvarchar(30) = '',
@CURRENTAPPUSERID uniqueidentifier = null,
@SPOUSEFLAG bit = 0,
@MATCHPROSPECT bit = 0,
@MATCHPRIMARYBUSINESS bit = 0,
@EXECCOUNT int = 0
)
as
begin
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
begin try
declare @NEWRECORD bit;
declare @UPDATEDRECORD bit;
declare @CURRENTDATE datetime;
set @NEWRECORD = 0;
set @UPDATEDRECORD = 0;
set @CURRENTDATE = getdate();
declare @WPRELATIONSHIP_NPA_ID uniqueidentifier;
--Get common nonprofit association record ID
exec dbo.USP_WPRELATIONSHIP_NPA_ADD @ID = @WPRELATIONSHIP_NPA_ID output, @EIN = @EIN, @CHANGEAGENTID = @CHANGEAGENTID, @EXECCOUNT = @EXECCOUNT;
--Set constituentID to spouse ID if spouse flag set
if @SPOUSEFLAG = 1 and @CONSTITUENTID is not null begin
select
@CONSTITUENTID = RECIPROCALCONSTITUENTID
from
dbo.RELATIONSHIP
where
RELATIONSHIPCONSTITUENTID = @CONSTITUENTID and ISSPOUSE = 1
end
--Get the primary business
declare @PRIMARYBUSINESSID uniqueidentifier;
select
@PRIMARYBUSINESSID = REL.RECIPROCALCONSTITUENTID
from
dbo.RELATIONSHIP REL
where
REL.RELATIONSHIPCONSTITUENTID = @CONSTITUENTID and
REL.ISPRIMARYBUSINESS = 1
update
dbo.WPRELATIONSHIP_NPA
set
CONSTITUENTID = @PRIMARYBUSINESSID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
ID = @WPRELATIONSHIP_NPA_ID and
@MATCHPRIMARYBUSINESS = 1 and
CONSTITUENTID is null and
@PRIMARYBUSINESSID is not null;
--Get any existing individual ID
select
@ID = RNPAI.ID
from
dbo.WPRELATIONSHIP_NPA RNPA
left join dbo.WPRELATIONSHIP_NPA_IND RNPAI
on RNPA.ID = RNPAI.WPRELATIONSHIP_NPA_ID
where
RNPA.ID = @WPRELATIONSHIP_NPA_ID and
coalesce(RNPAI.FIRSTNAME, '') = coalesce(@FIRSTNAME, '') and
coalesce(RNPAI.LASTNAME, '') = coalesce(@LASTNAME, '') and
coalesce(RNPAI.MIDDLE, '') = coalesce(@MIDDLE, '') and
coalesce(RNPAI.SUFFIX, '') = coalesce(@SUFFIX, '');
-- Record exists
if @ID is not null begin
set @UPDATEDRECORD = 1;
update
dbo.WPRELATIONSHIP_NPA_IND
set
CONSTITUENTID = case when @MATCHPROSPECT = 1 then coalesce(CONSTITUENTID, @CONSTITUENTID) else CONSTITUENTID end,
LASTNAME = @LASTNAME,
FIRSTNAME = @FIRSTNAME,
MIDDLE = @MIDDLE,
SUFFIX = @SUFFIX,
TITLE = @TITLE,
CITY = @CITY,
STATE = @STATE,
ZIP = @ZIP,
LASTDATE = @LASTDATE,
YROBSERVE = @YROBSERVE,
SPOUSEFLAG = @SPOUSEFLAG,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
ID = @ID and (
(@MATCHPROSPECT = 1 and
CONSTITUENTID is null and
@CONSTITUENTID is not null) or
(TITLE <> @TITLE and (TITLE is not null or @TITLE is not null)) or
(CITY <> @CITY and (CITY is not null or @CITY is not null)) or
(STATE <> @STATE and (STATE is not null or @STATE is not null)) or
(ZIP <> @ZIP and (ZIP is not null or @ZIP is not null)) or
(LASTDATE <> @LASTDATE and (LASTDATE is not null or @LASTDATE is not null)) or
(YROBSERVE <> @YROBSERVE and (YROBSERVE is not null or @YROBSERVE is not null)) or
(SPOUSEFLAG <> @SPOUSEFLAG and (SPOUSEFLAG is not null or @SPOUSEFLAG is not null))
);
end
else begin
--Record is new and needs to be Added
set @NEWRECORD = 1;
if @ID is null
set @ID = newid();
insert into dbo.WPRELATIONSHIP_NPA_IND
(
ID,
CONSTITUENTID,
LASTNAME,
FIRSTNAME,
MIDDLE,
SUFFIX,
TITLE,
CITY,
STATE,
ZIP,
LASTDATE,
YROBSERVE,
WPRELATIONSHIP_NPA_ID,
SPOUSEFLAG,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
) values (
@ID,
case when @MATCHPROSPECT = 1 then @CONSTITUENTID else null end,
coalesce(@LASTNAME, ''),
coalesce(@FIRSTNAME, ''),
coalesce(@MIDDLE, ''),
coalesce(@SUFFIX, ''),
coalesce(@TITLE, ''),
coalesce(@CITY, ''),
coalesce(@STATE, ''),
coalesce(@ZIP, ''),
@LASTDATE,
coalesce(@YROBSERVE, ''),
@WPRELATIONSHIP_NPA_ID,
@SPOUSEFLAG,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
)
end
end try
begin catch
exec dbo.USP_RAISE_ERROR;
end catch
return 0;
end