USP_DATAFORMTEMPLATE_EDIT_BIOGRAPHICALDEMOGRAPHIC
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@FIRSTNAME | nvarchar(100) | IN | |
@MIDDLENAME | nvarchar(100) | IN | |
@LASTNAME | nvarchar(100) | IN | |
@SUFFIXCODEID | uniqueidentifier | IN | |
@TITLECODEID | uniqueidentifier | IN | |
@BIRTHDATE | UDT_FUZZYDATE | IN | |
@MARITALSTATUSCODEID | uniqueidentifier | IN | |
@OCCUPATION | nvarchar(100) | IN | |
@CNOTES | nvarchar(1024) | IN | |
@HHMEMBER_FIRSTNAME | nvarchar(100) | IN | |
@HHMEMBER_MIDDLENAME | nvarchar(100) | IN | |
@HHMEMBER_LASTNAME | nvarchar(100) | IN | |
@HHMEMBER_SUFFIXCODEID | uniqueidentifier | IN | |
@HHMEMBER_TITLECODEID | uniqueidentifier | IN | |
@HHMEMBER_BIRTHDATE | UDT_FUZZYDATE | IN | |
@HHMEMBER_MARITALSTATUSCODEID | uniqueidentifier | IN | |
@HHMEMBER_OCCUPATION | nvarchar(100) | IN |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_BIOGRAPHICALDEMOGRAPHIC
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@FIRSTNAME nvarchar(100),
@MIDDLENAME nvarchar(100),
@LASTNAME nvarchar(100),
@SUFFIXCODEID uniqueidentifier,
@TITLECODEID uniqueidentifier,
@BIRTHDATE dbo.UDT_FUZZYDATE,
@MARITALSTATUSCODEID uniqueidentifier,
@OCCUPATION nvarchar(100),
@CNOTES nvarchar(1024),
@HHMEMBER_FIRSTNAME nvarchar(100),
@HHMEMBER_MIDDLENAME nvarchar(100),
@HHMEMBER_LASTNAME nvarchar(100),
@HHMEMBER_SUFFIXCODEID uniqueidentifier,
@HHMEMBER_TITLECODEID uniqueidentifier,
@HHMEMBER_BIRTHDATE dbo.UDT_FUZZYDATE,
@HHMEMBER_MARITALSTATUSCODEID uniqueidentifier,
@HHMEMBER_OCCUPATION nvarchar(100)
)
as
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
begin try
declare @FULLNAME nvarchar(500);
declare @EMPTYGUID uniqueidentifier = '00000000-0000-0000-0000-000000000000';
if not exists(select * from dbo.WPBIOGRAPHICALDEMOGRAPHIC
where ID = @ID
and @FIRSTNAME = FIRSTNAME
and @MIDDLENAME = MIDDLENAME
and @LASTNAME = LASTNAME
and COALESCE(@SUFFIXCODEID,@EMPTYGUID) = COALESCE(SUFFIXCODEID,@EMPTYGUID)
and COALESCE(@TITLECODEID,@EMPTYGUID) = COALESCE(TITLECODEID,@EMPTYGUID)
)
begin
set @FULLNAME =
case @TITLECODEID when null then '' else dbo.UFN_TITLECODE_GETDESCRIPTION(@TITLECODEID) + ' ' end
+
case @FIRSTNAME when '' then '' else @FIRSTNAME + ' ' end
+
case @MIDDLENAME when '' then '' else @MIDDLENAME + ' ' end
+
case @LASTNAME when '' then '' else @LASTNAME end
+
case @SUFFIXCODEID when null then '' else ' ' + dbo.UFN_SUFFIXCODE_GETDESCRIPTION(@SUFFIXCODEID) end
end
update dbo.WPBIOGRAPHICALDEMOGRAPHIC set
FULLNAME = COALESCE(NULLIF(@FULLNAME,''),FULLNAME),
FIRSTNAME = @FIRSTNAME,
MIDDLENAME = @MIDDLENAME,
LASTNAME = @LASTNAME,
SUFFIXCODEID = @SUFFIXCODEID,
TITLECODEID = @TITLECODEID,
BIRTHDATE = @BIRTHDATE,
MARITALSTATUSCODEID = @MARITALSTATUSCODEID,
OCCUPATION = @OCCUPATION,
CNOTES = @CNOTES,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @ID;
declare @HHMEMBERID uniqueidentifier;
select top 1 @HHMEMBERID = ID
from dbo.WPBIOGRAPHICALHHMEMBER
where WPBIOGRAPHICALDEMOGRAPHICID = @ID
order by LASTNAME asc, FIRSTNAME asc, AGE desc;
if @HHMEMBERID is not null
begin
if @HHMEMBER_LASTNAME = ''
begin
--Delete HHMember
delete from dbo.WPBIOGRAPHICALHHMEMBER where ID = @HHMEMBERID;
end
else
begin
declare @HHMEMBERFULLNAME nvarchar(500);
if not exists(select * from dbo.WPBIOGRAPHICALHHMEMBER
where ID = @HHMEMBERID
and @HHMEMBER_FIRSTNAME = FIRSTNAME
and @HHMEMBER_MIDDLENAME = MIDDLENAME
and @HHMEMBER_LASTNAME = LASTNAME
and COALESCE(@HHMEMBER_SUFFIXCODEID,@EMPTYGUID) = COALESCE(SUFFIXCODEID,@EMPTYGUID)
and COALESCE(@HHMEMBER_TITLECODEID,@EMPTYGUID) = COALESCE(TITLECODEID,@EMPTYGUID)
)
begin
set @HHMEMBERFULLNAME =
case @HHMEMBER_TITLECODEID when null then '' else dbo.UFN_TITLECODE_GETDESCRIPTION(@HHMEMBER_TITLECODEID) + ' ' end
+
case @HHMEMBER_FIRSTNAME when '' then '' else @HHMEMBER_FIRSTNAME + ' ' end
+
case @HHMEMBER_MIDDLENAME when '' then '' else @HHMEMBER_MIDDLENAME + ' ' end
+
case @HHMEMBER_LASTNAME when '' then '' else @HHMEMBER_LASTNAME end
+
case @HHMEMBER_SUFFIXCODEID when null then '' else ' ' + dbo.UFN_SUFFIXCODE_GETDESCRIPTION(@HHMEMBER_SUFFIXCODEID) end
end
--Update existing HHMember
update dbo.WPBIOGRAPHICALHHMEMBER set
FULLNAME = COALESCE(NULLIF(@HHMEMBERFULLNAME,''),FULLNAME),
FIRSTNAME = @HHMEMBER_FIRSTNAME,
MIDDLENAME = @HHMEMBER_MIDDLENAME,
LASTNAME = @HHMEMBER_LASTNAME,
SUFFIXCODEID = @HHMEMBER_SUFFIXCODEID,
TITLECODEID = @HHMEMBER_TITLECODEID,
BIRTHDATE = @HHMEMBER_BIRTHDATE,
MARITALSTATUSCODEID = @HHMEMBER_MARITALSTATUSCODEID,
OCCUPATION = @HHMEMBER_OCCUPATION,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @HHMEMBERID;
end
end
else
begin
if @HHMEMBER_LASTNAME <> ''
begin
--Create new HHMember record
insert into dbo.WPBIOGRAPHICALHHMEMBER (ID,
WPBIOGRAPHICALDEMOGRAPHICID,
FULLNAME,
FIRSTNAME,
MIDDLENAME,
LASTNAME,
SUFFIXCODEID,
TITLECODEID,
BIRTHDATE,
MARITALSTATUSCODEID,
OCCUPATION,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED)
values
(
newid(),
@ID,
case @HHMEMBER_TITLECODEID when null then '' else dbo.UFN_TITLECODE_GETDESCRIPTION(@HHMEMBER_TITLECODEID) + ' ' end
+
case @HHMEMBER_FIRSTNAME when '' then '' else @HHMEMBER_FIRSTNAME + ' ' end
+
case @HHMEMBER_MIDDLENAME when '' then '' else @HHMEMBER_MIDDLENAME + ' ' end
+
case @HHMEMBER_LASTNAME when '' then '' else @HHMEMBER_LASTNAME end
+
case @HHMEMBER_SUFFIXCODEID when null then '' else ' ' + dbo.UFN_SUFFIXCODE_GETDESCRIPTION(@HHMEMBER_SUFFIXCODEID) end,
@HHMEMBER_FIRSTNAME,
@HHMEMBER_MIDDLENAME,
@HHMEMBER_LASTNAME,
@HHMEMBER_SUFFIXCODEID,
@HHMEMBER_TITLECODEID,
@HHMEMBER_BIRTHDATE,
@HHMEMBER_MARITALSTATUSCODEID,
@HHMEMBER_OCCUPATION,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
end
end
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0;