USP_STUDENT_ADDRELATION
Relate an existing individual or a new individual to a new student.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CONSTITUENTID | uniqueidentifier | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@CURRENTDATE | datetime | IN | |
@SKIP_ADDING_SITES | bit | IN | |
@SKIP_ADDING_SECURITYGROUPS | bit | IN | |
@RELATION_CONSTITUENTID | uniqueidentifier | INOUT | |
@RELATION_LASTNAME | nvarchar(100) | IN | |
@RELATION_FIRSTNAME | nvarchar(50) | IN | |
@RELATION_MIDDLENAME | nvarchar(50) | IN | |
@RELATION_TITLECODEID | uniqueidentifier | IN | |
@RELATION_TITLE2CODEID | uniqueidentifier | IN | |
@RELATION_SUFFIXCODEID | uniqueidentifier | IN | |
@RELATION_SUFFIX2CODEID | uniqueidentifier | IN | |
@RELATION_NICKNAME | nvarchar(50) | IN | |
@RELATION_MAIDENNAME | nvarchar(50) | IN | |
@RELATION_MARITALSTATUSCODEID | uniqueidentifier | IN | |
@RELATION_GENDERCODE | tinyint | IN | |
@RELATION_BIRTHDATE | UDT_FUZZYDATE | IN | |
@RELATION_PHONE_PHONETYPECODEID | uniqueidentifier | IN | |
@RELATION_PHONE_NUMBER | nvarchar(100) | IN | |
@RELATION_PHONE_PHONETYPECODEID_2 | uniqueidentifier | IN | |
@RELATION_PHONE_NUMBER_2 | nvarchar(100) | IN | |
@RELATION_EMAILADDRESS_EMAILADDRESSTYPECODEID | uniqueidentifier | IN | |
@RELATION_EMAILADDRESS_EMAILADDRESS | UDT_EMAILADDRESS | IN | |
@RELATION_RELATIONSHIPTYPECODEID | uniqueidentifier | IN | |
@RELATION_RECIPROCALTYPECODEID | uniqueidentifier | IN | |
@RELATION_COPYPRIMARYINFORMATION | bit | IN | |
@RELATION_ISSPOUSE | bit | IN | |
@RELATION_COMMENTS | nvarchar(max) | IN | |
@RELATION_RELATIONSHIPID | uniqueidentifier | INOUT | |
@RELATION_ADDRESSCOUNTRYID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_STUDENT_ADDRELATION
(
@CONSTITUENTID uniqueidentifier,
@CURRENTAPPUSERID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@CURRENTDATE datetime = null,
@SKIP_ADDING_SITES bit = 0,
@SKIP_ADDING_SECURITYGROUPS bit = 0,
@RELATION_CONSTITUENTID uniqueidentifier = null output,
@RELATION_LASTNAME nvarchar(100) = '',
@RELATION_FIRSTNAME nvarchar(50) = '',
@RELATION_MIDDLENAME nvarchar(50) = '',
@RELATION_TITLECODEID uniqueidentifier = null,
@RELATION_TITLE2CODEID uniqueidentifier = null,
@RELATION_SUFFIXCODEID uniqueidentifier = null,
@RELATION_SUFFIX2CODEID uniqueidentifier = null,
@RELATION_NICKNAME nvarchar(50) = '',
@RELATION_MAIDENNAME nvarchar(50) = '',
@RELATION_MARITALSTATUSCODEID uniqueidentifier = null,
@RELATION_GENDERCODE tinyint = 0,
@RELATION_BIRTHDATE dbo.UDT_FUZZYDATE = '00000000',
@RELATION_PHONE_PHONETYPECODEID uniqueidentifier = null,
@RELATION_PHONE_NUMBER nvarchar(100) = '',
@RELATION_PHONE_PHONETYPECODEID_2 uniqueidentifier = null,
@RELATION_PHONE_NUMBER_2 nvarchar(100) = '',
@RELATION_EMAILADDRESS_EMAILADDRESSTYPECODEID uniqueidentifier = null,
@RELATION_EMAILADDRESS_EMAILADDRESS dbo.UDT_EMAILADDRESS = '',
@RELATION_RELATIONSHIPTYPECODEID uniqueidentifier,
@RELATION_RECIPROCALTYPECODEID uniqueidentifier,
@RELATION_COPYPRIMARYINFORMATION bit = 1,
@RELATION_ISSPOUSE bit = 0,
@RELATION_COMMENTS nvarchar(max) = null,
@RELATION_RELATIONSHIPID uniqueidentifier = null output,
@RELATION_ADDRESSCOUNTRYID uniqueidentifier = null
)
as
begin
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
if @CURRENTDATE is null
set @CURRENTDATE = getdate();
if (@RELATION_CONSTITUENTID is null) and (@RELATION_LASTNAME is not null and len(@RELATION_LASTNAME) > 0)
begin
set @RELATION_CONSTITUENTID = newid();
--Use the education version so ISCONSTITUENT = 0
--exec dbo.USP_DATAFORMTEMPLATE_INDIVIDUALRECORDSIMPLIFIED_ADD @RELATION_CONSTITUENTID, @CURRENTAPPUSERID, @CHANGEAGENTID, @RELATION_LASTNAME, @RELATION_FIRSTNAME, @RELATION_MIDDLENAME, @RELATION_NICKNAME, @RELATION_TITLECODEID, @RELATION_SUFFIXCODEID, @RELATION_TITLE2CODEID, @RELATION_SUFFIX2CODEID, @RELATION_MAIDENNAME, @RELATION_GENDERCODE, @RELATION_BIRTHDATE, @SKIP_ADDING_SECURITYGROUPS, @SKIP_ADDING_SITES
exec dbo.USP_DATAFORMTEMPLATE_ADD_EDUCATIONINDIVIDUALRECORD
@RELATION_CONSTITUENTID,
@CURRENTAPPUSERID,
@CHANGEAGENTID,
@RELATION_LASTNAME,
@RELATION_FIRSTNAME,
@RELATION_MIDDLENAME,
@RELATION_MAIDENNAME,
@RELATION_NICKNAME,
@RELATION_TITLECODEID,
@RELATION_SUFFIXCODEID,
@RELATION_GENDERCODE,
@RELATION_BIRTHDATE,
@ADDRESS_COUNTRYID = @RELATION_ADDRESSCOUNTRYID,
@PHONE_PHONETYPECODEID = @RELATION_PHONE_PHONETYPECODEID,
@PHONE_NUMBER = @RELATION_PHONE_NUMBER,
@EMAILADDRESS_EMAILADDRESSTYPECODEID = @RELATION_EMAILADDRESS_EMAILADDRESSTYPECODEID,
@EMAILADDRESS_EMAILADDRESS = @RELATION_EMAILADDRESS_EMAILADDRESS,
@MARITALSTATUSCODEID = @RELATION_MARITALSTATUSCODEID,
@TITLE2CODEID = @RELATION_TITLE2CODEID,
@SUFFIX2CODEID = @RELATION_SUFFIX2CODEID,
@SKIP_ADDING_SECURITYGROUPS = @SKIP_ADDING_SECURITYGROUPS,
@SKIP_ADDING_SITES = @SKIP_ADDING_SITES,
@PHONE2_PHONETYPECODEID = @RELATION_PHONE_PHONETYPECODEID_2,
@PHONE2_NUMBER = @RELATION_PHONE_NUMBER_2
end
-- throw an error if @Relation_ConstituentID has not been set
if @RELATION_CONSTITUENTID is null
begin
raiserror('ERR_RELATION_NOTSPECIFIED', 13, 1)
return 0
end
-- Validate the user has permission for the relation
if dbo.UFN_CONSTITUENT_CANAPPUSERMODIFY(@RELATION_CONSTITUENTID, @CURRENTAPPUSERID) = 0
begin
raiserror('ERR_RELATION_NOACCESS', 13, 1)
return 0
end
-- If this is the spousal relationship, we have to check the spouse too
if @RELATION_ISSPOUSE = 1
begin
if dbo.UFN_CONSTITUENT_CANAPPUSERMODIFY(@CONSTITUENTID, @CURRENTAPPUSERID) = 0
begin
raiserror('ERR_RELATION_NOACCESS', 13, 1)
return 0
end
end
declare @SETID uniqueidentifier
-- start second member relationship with primary
-- These are required fields to create a relationship and we don't want to create a new set if the relationship will fail
if (@CONSTITUENTID is not null) or (@RELATION_CONSTITUENTID is not null) or (@RELATION_RELATIONSHIPTYPECODEID is not null) or (@RELATION_RECIPROCALTYPECODEID is not null)
begin
set @SETID = newid();
insert into dbo.RELATIONSHIPSET
(
ID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values
(
@SETID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
end
set @RELATION_RELATIONSHIPID = newid();
insert into dbo.RELATIONSHIP
(
ID,
RELATIONSHIPCONSTITUENTID,
RECIPROCALCONSTITUENTID,
RELATIONSHIPTYPECODEID,
RECIPROCALTYPECODEID,
ISSPOUSE,
RELATIONSHIPSETID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values
(
@RELATION_RELATIONSHIPID,
@CONSTITUENTID,
@RELATION_CONSTITUENTID,
@RELATION_RELATIONSHIPTYPECODEID,
@RELATION_RECIPROCALTYPECODEID,
@RELATION_ISSPOUSE,
@SETID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
--Spouse constituency
if @RELATION_ISSPOUSE = 1
begin
update dbo.CONSTITUENT
set
ISCONSTITUENT = case
when (select ISCONSTITUENT from dbo.CONSTITUENT where ID = @CONSTITUENTID) = 1
then dbo.UFN_CONSTITUENCYCRITERIASPOUSE_SPOUSEISCONSTITUENT()
else 0 end,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
from dbo.CONSTITUENT
where ID = @RELATION_CONSTITUENTID
end
--Update comments if it's passed in
if @RELATION_COMMENTS is not null
begin
update dbo.RELATIONSHIP
set COMMENTS = @RELATION_COMMENTS
where ID = @RELATION_RELATIONSHIPID
end
exec dbo.USP_RELATIONSHIPCONFIGURATION_CONFIGURE @CONSTITUENTID, @RELATION_CONSTITUENTID, @RELATION_RELATIONSHIPTYPECODEID, @RELATION_RECIPROCALTYPECODEID, @CHANGEAGENTID, @CURRENTDATE
/*Start Relation Copy Primary Contact information*/
if @RELATION_COPYPRIMARYINFORMATION = 1
exec dbo.USP_CONSTITUENT_COPYPRIMARYCONTACTINFO @CHANGEAGENTID, @CONSTITUENTID, @RELATION_CONSTITUENTID
end