USP_INDIVIDUALSPOUSEBUSINESS_ADD
Creates an individual along with an associated spouse and business.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | |
@CURRENTAPPUSERID | uniqueidentifier | IN | |
@DATAFORMTEMPLATEID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@LASTNAME | nvarchar(100) | IN | |
@FIRSTNAME | nvarchar(50) | IN | |
@MIDDLENAME | nvarchar(50) | IN | |
@MAIDENNAME | nvarchar(100) | IN | |
@NICKNAME | nvarchar(50) | IN | |
@TITLECODEID | uniqueidentifier | IN | |
@SUFFIXCODEID | uniqueidentifier | IN | |
@GENDERCODE | tinyint | IN | |
@BIRTHDATE | UDT_FUZZYDATE | IN | |
@ADDRESS_ADDRESSTYPECODEID | uniqueidentifier | IN | |
@ADDRESS_DONOTMAIL | bit | IN | |
@ADDRESS_COUNTRYID | uniqueidentifier | IN | |
@ADDRESS_STATEID | uniqueidentifier | IN | |
@ADDRESS_ADDRESSBLOCK | nvarchar(150) | IN | |
@ADDRESS_CITY | nvarchar(50) | IN | |
@ADDRESS_POSTCODE | nvarchar(12) | IN | |
@PHONE_PHONETYPECODEID | uniqueidentifier | IN | |
@PHONE_NUMBER | nvarchar(100) | IN | |
@EMAILADDRESS_EMAILADDRESSTYPECODEID | uniqueidentifier | IN | |
@EMAILADDRESS_EMAILADDRESS | UDT_EMAILADDRESS | IN | |
@MARITALSTATUSCODEID | uniqueidentifier | IN | |
@SKIP_ADDING_SECURITYGROUPS | bit | IN | |
@SPOUSEID | uniqueidentifier | IN | |
@EXISTINGSPOUSE | bit | IN | |
@SPOUSE_LASTNAME | nvarchar(100) | IN | |
@SPOUSE_FIRSTNAME | nvarchar(50) | IN | |
@SPOUSE_MIDDLENAME | nvarchar(50) | IN | |
@SPOUSE_MAIDENNAME | nvarchar(100) | IN | |
@SPOUSE_NICKNAME | nvarchar(50) | IN | |
@SPOUSE_TITLECODEID | uniqueidentifier | IN | |
@SPOUSE_SUFFIXCODEID | uniqueidentifier | IN | |
@SPOUSE_GENDERCODE | tinyint | IN | |
@SPOUSE_BIRTHDATE | UDT_FUZZYDATE | IN | |
@SPOUSE_RECIPROCALTYPECODEID | uniqueidentifier | IN | |
@SPOUSE_RELATIONSHIPTYPECODEID | uniqueidentifier | IN | |
@COPYPRIMARYINFORMATION | bit | IN | |
@SPOUSE_STARTDATE | datetime | IN | |
@PRIMARYSOFTCREDITRELATIONSHIPEXISTS | bit | IN | |
@PRIMARYSOFTCREDITMATCHFACTOR | decimal(5, 2) | IN | |
@RECIPROCALSOFTCREDITRELATIONSHIPEXISTS | bit | IN | |
@RECIPROCALSOFTCREDITMATCHFACTOR | decimal(5, 2) | IN | |
@ORGANIZATIONID | uniqueidentifier | IN | |
@EXISTINGORGANIZATION | bit | IN | |
@ORGANIZATION_NAME | nvarchar(100) | IN | |
@ORGANIZATION_ADDRESSTYPECODEID | uniqueidentifier | IN | |
@ORGANIZATION_COUNTRYID | uniqueidentifier | IN | |
@ORGANIZATION_STATEID | uniqueidentifier | IN | |
@ORGANIZATION_ADDRESSBLOCK | nvarchar(150) | IN | |
@ORGANIZATION_CITY | nvarchar(50) | IN | |
@ORGANIZATION_POSTCODE | nvarchar(12) | IN | |
@ORGANIZATION_DONOTMAIL | bit | IN | |
@ORGANIZATION_PHONETYPECODEID | uniqueidentifier | IN | |
@ORGANIZATION_NUMBER | nvarchar(100) | IN | |
@ORGANIZATION_RECIPROCALTYPECODEID | uniqueidentifier | IN | |
@ORGANIZATION_RELATIONSHIPTYPECODEID | uniqueidentifier | IN | |
@ORGANIZATION_STARTDATE | datetime | IN | |
@ORGANIZATION_ENDDATE | datetime | IN | |
@ISCONTACT | bit | IN | |
@ISPRIMARYCONTACT | bit | IN | |
@CONTACTTYPECODEID | uniqueidentifier | IN | |
@POSITION | nvarchar(100) | IN | |
@ISMATCHINGGIFTRELATIONSHIP | bit | IN | |
@RECIPROCALRECOGNITIONTYPECODEID | uniqueidentifier | IN | |
@PRIMARYRECOGNITIONTYPECODEID | uniqueidentifier | IN | |
@ADDRESS_OMITFROMVALIDATION | bit | IN | |
@ADDRESS_CART | nvarchar(10) | IN | |
@ADDRESS_DPC | nvarchar(8) | IN | |
@ADDRESS_LOT | nvarchar(5) | IN | |
@ADDRESS_COUNTYCODEID | uniqueidentifier | IN | |
@ADDRESS_CONGRESSIONALDISTRICTCODEID | uniqueidentifier | IN | |
@ADDRESS_LASTVALIDATIONATTEMPTDATE | datetime | IN | |
@ADDRESS_VALIDATIONMESSAGE | nvarchar(200) | IN | |
@ADDRESS_CERTIFICATIONDATA | int | IN | |
@ORGANIZATION_OMITFROMVALIDATION | bit | IN | |
@ORGANIZATION_CART | nvarchar(10) | IN | |
@ORGANIZATION_DPC | nvarchar(8) | IN | |
@ORGANIZATION_LOT | nvarchar(5) | IN | |
@ORGANIZATION_COUNTYCODEID | uniqueidentifier | IN | |
@ORGANIZATION_CONGRESSIONALDISTRICTCODEID | uniqueidentifier | IN | |
@ORGANIZATION_LASTVALIDATIONATTEMPTDATE | datetime | IN | |
@ORGANIZATION_VALIDATIONMESSAGE | nvarchar(200) | IN | |
@ORGANIZATION_CERTIFICATIONDATA | int | IN | |
@ISSPOUSERELATIONSHIP | bit | IN | |
@HOUSEHOLDCOPYPRIMARYCONTACTINFO | bit | IN | |
@ADDRESS_DONOTMAILREASONCODEID | uniqueidentifier | IN | |
@ORGANIZATION_DONOTMAILREASONCODEID | uniqueidentifier | IN | |
@SKIP_ADDING_SITES | bit | IN | |
@JOBCATEGORYCODEID | uniqueidentifier | IN | |
@CAREERLEVELCODEID | uniqueidentifier | IN | |
@ADDRESS_INFOSOURCECODEID | uniqueidentifier | IN | |
@ORGANIZATION_INFOSOURCECODEID | uniqueidentifier | IN | |
@TITLE2CODEID | uniqueidentifier | IN | |
@SUFFIX2CODEID | uniqueidentifier | IN | |
@SPOUSE_TITLE2CODEID | uniqueidentifier | IN | |
@SPOUSE_SUFFIX2CODEID | uniqueidentifier | IN | |
@ISCONSTITUENT | bit | IN | |
@ORGANIZATION_PRIMARYSOFTCREDITRELATIONSHIPEXISTS | bit | IN | |
@ORGANIZATION_PRIMARYSOFTCREDITMATCHFACTOR | decimal(5, 2) | IN | |
@ORGANIZATION_RECIPROCALSOFTCREDITRELATIONSHIPEXISTS | bit | IN | |
@ORGANIZATION_RECIPROCALSOFTCREDITMATCHFACTOR | decimal(5, 2) | IN | |
@ORGANIZATION_PRIMARYRECOGNITIONTYPECODEID | uniqueidentifier | IN | |
@ORGANIZATION_RECIPROCALRECOGNITIONTYPECODEID | uniqueidentifier | IN | |
@SPOUSE_EMAILADDRESS_EMAILADDRESS | UDT_EMAILADDRESS | IN | |
@SPOUSE_PHONE_NUMBER | nvarchar(100) | IN | |
@GENDERCODEID | uniqueidentifier | IN | |
@SPOUSE_GENDERCODEID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_INDIVIDUALSPOUSEBUSINESS_ADD
(
@ID uniqueidentifier = null output,
@CURRENTAPPUSERID uniqueidentifier,
@DATAFORMTEMPLATEID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@LASTNAME nvarchar(100),
@FIRSTNAME nvarchar(50) = '',
@MIDDLENAME nvarchar(50) = '',
@MAIDENNAME nvarchar(100) = '',
@NICKNAME nvarchar(50) = '',
--10
@TITLECODEID uniqueidentifier = null,
@SUFFIXCODEID uniqueidentifier = null,
@GENDERCODE tinyint = 0,
@BIRTHDATE dbo.UDT_FUZZYDATE = '00000000',
@ADDRESS_ADDRESSTYPECODEID uniqueidentifier = null,
@ADDRESS_DONOTMAIL bit = 0,
@ADDRESS_COUNTRYID uniqueidentifier = null,
@ADDRESS_STATEID uniqueidentifier = null,
@ADDRESS_ADDRESSBLOCK nvarchar(150) = '',
@ADDRESS_CITY nvarchar(50) = '',
--20
@ADDRESS_POSTCODE nvarchar(12) = '',
@PHONE_PHONETYPECODEID uniqueidentifier = null,
@PHONE_NUMBER nvarchar(100) = '',
@EMAILADDRESS_EMAILADDRESSTYPECODEID uniqueidentifier = null,
@EMAILADDRESS_EMAILADDRESS dbo.UDT_EMAILADDRESS = '',
@MARITALSTATUSCODEID uniqueidentifier = null,
@SKIP_ADDING_SECURITYGROUPS bit = 0,
@SPOUSEID uniqueidentifier = null,
@EXISTINGSPOUSE bit = 0,
@SPOUSE_LASTNAME nvarchar(100) = '',
--30
@SPOUSE_FIRSTNAME nvarchar(50) = '',
@SPOUSE_MIDDLENAME nvarchar(50) = '',
@SPOUSE_MAIDENNAME nvarchar(100) = '',
@SPOUSE_NICKNAME nvarchar(50) = '',
@SPOUSE_TITLECODEID uniqueidentifier = null,
@SPOUSE_SUFFIXCODEID uniqueidentifier = null,
@SPOUSE_GENDERCODE tinyint = 0,
@SPOUSE_BIRTHDATE dbo.UDT_FUZZYDATE = '00000000',
@SPOUSE_RECIPROCALTYPECODEID uniqueidentifier = null,
@SPOUSE_RELATIONSHIPTYPECODEID uniqueidentifier = null,
--40
@COPYPRIMARYINFORMATION bit = 1,
@SPOUSE_STARTDATE datetime = null,
@PRIMARYSOFTCREDITRELATIONSHIPEXISTS bit = 0,
@PRIMARYSOFTCREDITMATCHFACTOR decimal(5,2) = 100,
@RECIPROCALSOFTCREDITRELATIONSHIPEXISTS bit = 0,
@RECIPROCALSOFTCREDITMATCHFACTOR decimal(5,2) = 100,
@ORGANIZATIONID uniqueidentifier = null,
@EXISTINGORGANIZATION bit = 0,
@ORGANIZATION_NAME nvarchar(100) = '',
@ORGANIZATION_ADDRESSTYPECODEID uniqueidentifier = null,
--50
@ORGANIZATION_COUNTRYID uniqueidentifier = null,
@ORGANIZATION_STATEID uniqueidentifier = null,
@ORGANIZATION_ADDRESSBLOCK nvarchar(150) = '',
@ORGANIZATION_CITY nvarchar(50) = '',
@ORGANIZATION_POSTCODE nvarchar(12) = '',
@ORGANIZATION_DONOTMAIL bit = 0,
@ORGANIZATION_PHONETYPECODEID uniqueidentifier = null,
@ORGANIZATION_NUMBER nvarchar(100) = '',
@ORGANIZATION_RECIPROCALTYPECODEID uniqueidentifier = null,
@ORGANIZATION_RELATIONSHIPTYPECODEID uniqueidentifier = null,
--60
@ORGANIZATION_STARTDATE datetime = null,
@ORGANIZATION_ENDDATE datetime = null,
@ISCONTACT bit = 0,
@ISPRIMARYCONTACT bit = 0,
@CONTACTTYPECODEID uniqueidentifier = null,
@POSITION nvarchar(100) = '',
@ISMATCHINGGIFTRELATIONSHIP bit = 0,
@RECIPROCALRECOGNITIONTYPECODEID uniqueidentifier = null,
@PRIMARYRECOGNITIONTYPECODEID uniqueidentifier = null,
@ADDRESS_OMITFROMVALIDATION bit = 0,
--70
@ADDRESS_CART nvarchar(10) = '',
@ADDRESS_DPC nvarchar(8) = '',
@ADDRESS_LOT nvarchar(5) = '',
@ADDRESS_COUNTYCODEID uniqueidentifier = null,
@ADDRESS_CONGRESSIONALDISTRICTCODEID uniqueidentifier = null,
@ADDRESS_LASTVALIDATIONATTEMPTDATE datetime = null,
@ADDRESS_VALIDATIONMESSAGE nvarchar(200) = '',
@ADDRESS_CERTIFICATIONDATA integer = 0,
@ORGANIZATION_OMITFROMVALIDATION bit = 0,
@ORGANIZATION_CART nvarchar(10) = '',
--80
@ORGANIZATION_DPC nvarchar(8) = '',
@ORGANIZATION_LOT nvarchar(5) = '',
@ORGANIZATION_COUNTYCODEID uniqueidentifier = null,
@ORGANIZATION_CONGRESSIONALDISTRICTCODEID uniqueidentifier = null,
@ORGANIZATION_LASTVALIDATIONATTEMPTDATE datetime = null,
@ORGANIZATION_VALIDATIONMESSAGE nvarchar(200) = '',
@ORGANIZATION_CERTIFICATIONDATA integer = 0,
@ISSPOUSERELATIONSHIP bit = 1,
@HOUSEHOLDCOPYPRIMARYCONTACTINFO bit = 0,
@ADDRESS_DONOTMAILREASONCODEID uniqueidentifier = null,
--90
@ORGANIZATION_DONOTMAILREASONCODEID uniqueidentifier = null,
@SKIP_ADDING_SITES bit = 0,
@JOBCATEGORYCODEID uniqueidentifier = null,
@CAREERLEVELCODEID uniqueidentifier = null,
@ADDRESS_INFOSOURCECODEID uniqueidentifier = null,
@ORGANIZATION_INFOSOURCECODEID uniqueidentifier = null,
@TITLE2CODEID uniqueidentifier = null,
@SUFFIX2CODEID uniqueidentifier = null,
@SPOUSE_TITLE2CODEID uniqueidentifier = null,
@SPOUSE_SUFFIX2CODEID uniqueidentifier = null,
--100
@ISCONSTITUENT bit = 1,
@ORGANIZATION_PRIMARYSOFTCREDITRELATIONSHIPEXISTS bit = 0,
@ORGANIZATION_PRIMARYSOFTCREDITMATCHFACTOR decimal(5,2) = 100,
@ORGANIZATION_RECIPROCALSOFTCREDITRELATIONSHIPEXISTS bit = 0,
@ORGANIZATION_RECIPROCALSOFTCREDITMATCHFACTOR decimal(5,2) = 100,
@ORGANIZATION_PRIMARYRECOGNITIONTYPECODEID uniqueidentifier = null,
@ORGANIZATION_RECIPROCALRECOGNITIONTYPECODEID uniqueidentifier = null,
@SPOUSE_EMAILADDRESS_EMAILADDRESS dbo.UDT_EMAILADDRESS = '',
@SPOUSE_PHONE_NUMBER nvarchar(100) = '',
@GENDERCODEID uniqueidentifier = null,
@SPOUSE_GENDERCODEID uniqueidentifier = null
)
as
begin -- sproc body
set nocount on;
declare @CURRENTDATE datetime = getdate();
declare @SETID uniqueidentifier;
if @ID is null
set @ID = newid();
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
if @ADDRESS_DONOTMAIL = 0
set @ADDRESS_DONOTMAILREASONCODEID = null;
if @ORGANIZATION_DONOTMAIL = 0
set @ORGANIZATION_DONOTMAILREASONCODEID = null;
if @EMAILADDRESS_EMAILADDRESSTYPECODEID = '00000000-0000-0000-0000-000000000000'
set @EMAILADDRESS_EMAILADDRESSTYPECODEID = null
-------------- Insert Individual's Information --------------
insert into dbo.CONSTITUENT
(
[ID],
[ISORGANIZATION],
[KEYNAME],
[FIRSTNAME],
[MIDDLENAME],
[MAIDENNAME],
[NICKNAME],
[TITLECODEID],
[TITLE2CODEID],
[SUFFIXCODEID],
[SUFFIX2CODEID],
[GENDERCODE],
[BIRTHDATE],
[PICTURE],
[PICTURETHUMBNAIL],
[WEBADDRESS],
[MARITALSTATUSCODEID],
[ISCONSTITUENT],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED],
[GENDERCODEID]
)
values
(
@ID,
0,
@LASTNAME,
@FIRSTNAME,
@MIDDLENAME,
@MAIDENNAME,
@NICKNAME,
@TITLECODEID,
@TITLE2CODEID,
@SUFFIXCODEID,
@SUFFIX2CODEID,
@GENDERCODE,
@BIRTHDATE,
null,
null,
'',
@MARITALSTATUSCODEID,
@ISCONSTITUENT,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE,
@GENDERCODEID
);
if @MAIDENNAME is not null and @MAIDENNAME != ''
begin
insert into dbo.ALIAS
(CONSTITUENTID, KEYNAME, FIRSTNAME, MIDDLENAME, DATEADDED, DATECHANGED, ADDEDBYID, CHANGEDBYID)
values
(@ID, @MAIDENNAME, @FIRSTNAME, @MIDDLENAME, @CURRENTDATE, @CURRENTDATE, @CHANGEAGENTID, @CHANGEAGENTID)
end
declare @ADDRESSID uniqueidentifier;
/* Start Individual Address */
if((@ADDRESS_STATEID is not null) or (coalesce(@ADDRESS_ADDRESSBLOCK,'') <> '') or (coalesce(@ADDRESS_CITY,'') <> '')
or (coalesce(@ADDRESS_POSTCODE,'') <> '') or (@ADDRESS_ADDRESSTYPECODEID is not null)
or (@ADDRESS_COUNTRYID is not null) or (@ADDRESS_DONOTMAIL = 1) or (@ADDRESS_DONOTMAILREASONCODEID is not null))
begin
set @ADDRESSID = newid();
exec dbo.USP_ADDRESS_ADD
@ID = @ADDRESSID output,
@CHANGEAGENTID = @CHANGEAGENTID,
@CONSTITUENTID = @ID,
@ADDRESSTYPECODEID = @ADDRESS_ADDRESSTYPECODEID,
@PRIMARY = 1,
@DONOTMAIL = @ADDRESS_DONOTMAIL,
--@STARTDATE = '0000',
--@ENDDATE = '0000',
@COUNTRYID = @ADDRESS_COUNTRYID,
@STATEID = @ADDRESS_STATEID,
@ADDRESSBLOCK = @ADDRESS_ADDRESSBLOCK,
@CITY = @ADDRESS_CITY,
@POSTCODE = @ADDRESS_POSTCODE,
--@HISTORICALSTARTDATE = null,
@RECENTMOVE = 0,
--@OLDADDRESSID = null,
@CART = @ADDRESS_CART,
@DPC = @ADDRESS_DPC,
@LOT = @ADDRESS_LOT,
@UPDATEMATCHINGSPOUSEADDRESSES = 0,
@UPDATEMATCHINGHOUSEHOLDADDRESSES = 0,
@OMITFROMVALIDATION = @ADDRESS_OMITFROMVALIDATION,
@COUNTYCODEID = @ADDRESS_COUNTYCODEID,
--@CONGRESSIONALDISTRICTCODEID = @ADDRESS_CONGRESSIONALDISTRICTCODEID,
--@STATEHOUSEDISTRICTCODEID = @ADDRESS_STATEHOUSEDISTRICTCODEID,
--@STATESENATEDISTRICTCODEID = @ADDRESS_STATESENATEDISTRICTCODEID,
--@LOCALPRECINCTCODEID = @ADDRESS_LOCALPRECINCTCODEID,
@INFOSOURCECODEID = @ADDRESS_INFOSOURCECODEID,
--@REGIONCODEID = @ADDRESS_REGIONCODEID,
@LASTVALIDATIONATTEMPTDATE = @ADDRESS_LASTVALIDATIONATTEMPTDATE,
@VALIDATIONMESSAGE = @ADDRESS_VALIDATIONMESSAGE,
@CERTIFICATIONDATA = @ADDRESS_CERTIFICATIONDATA,
@DONOTMAILREASONCODEID = @ADDRESS_DONOTMAILREASONCODEID;
--@INFOSOURCECOMMENTS = null,
--@ISCONFIDENTIAL = null,
--@CONSTITUENTDATAREVIEWROLLBACKREASONID = @CONSTITUENTDATAREVIEWROLLBACKREASONID,
--@ORIGINCODE = @ORIGINCODE
end
/* End Individual Address */
declare @PHONEID uniqueidentifier;
declare @COUNTRYCODE nvarchar(10);
/* Start Individual Primary Phone */
declare @PHONE_COUNTRYID uniqueidentifier = @ADDRESS_COUNTRYID;
if @ADDRESS_COUNTRYID is null
exec @PHONE_COUNTRYID = dbo.UFN_COUNTRY_GETDEFAULT;
select @COUNTRYCODE = COUNTRYCODE
from dbo.COUNTRY
where ID = @PHONE_COUNTRYID;
if left(@PHONE_NUMBER, len(@COUNTRYCODE) + 1) = '+' + @COUNTRYCODE
set @PHONE_NUMBER = ltrim(right(@PHONE_NUMBER, len(@PHONE_NUMBER) - (len(@COUNTRYCODE) + 1)));
if (@PHONE_PHONETYPECODEID is not null) or (coalesce(@PHONE_NUMBER,'') <> '')
begin
set @PHONEID = newid();
insert into dbo.[PHONE]
(
[ID],
[CONSTITUENTID],
[PHONETYPECODEID],
[NUMBER],
[ISPRIMARY],
[INFOSOURCECODEID],
[COUNTRYID],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
values
(
@PHONEID,
@ID,
@PHONE_PHONETYPECODEID,
@PHONE_NUMBER,
1,
@ADDRESS_INFOSOURCECODEID,
@PHONE_COUNTRYID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
end
/* End Primary Phone */
declare @EMAILADDRESSID uniqueidentifier;
/* Start Individual Primary Email Address */
if (@EMAILADDRESS_EMAILADDRESSTYPECODEID is not null) or (coalesce(@EMAILADDRESS_EMAILADDRESS,'') <> '')
begin
set @EMAILADDRESSID = newid();
insert into dbo.[EMAILADDRESS]
(
[ID],
[CONSTITUENTID],
[EMAILADDRESSTYPECODEID],
[EMAILADDRESS],
[ISPRIMARY],
[INFOSOURCECODEID],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
values
(
@EMAILADDRESSID,
@ID,
@EMAILADDRESS_EMAILADDRESSTYPECODEID,
@EMAILADDRESS_EMAILADDRESS,
1,
@ADDRESS_INFOSOURCECODEID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
end
/* End Primary Email Address */
/* Start security*/
if coalesce(@SKIP_ADDING_SECURITYGROUPS, 0) = 0
exec dbo.USP_CONSTITUENT_ASSIGNSECURITYGROUPS_FORNEWRECORD @APPUSERID = @CURRENTAPPUSERID,
@DATAFORMTEMPLATEID = @DATAFORMTEMPLATEID, @CONSTITUENTID = @ID, @DATEADDEDTOUSE = @CURRENTDATE,
@CHANGEAGENTID = @CHANGEAGENTID;
if coalesce(@SKIP_ADDING_SITES, 0) = 0
exec dbo.USP_CONSTITUENT_ASSIGNSITES_FORNEWRECORD @APPUSERID = @CURRENTAPPUSERID, @DATAFORMTEMPLATEID = @DATAFORMTEMPLATEID,
@CONSTITUENTID = @ID, @DATEADDEDTOUSE = @CURRENTDATE, @CHANGEAGENTID = @CHANGEAGENTID;
/* End security*/
/*Start name format defaults*/
insert into [dbo].[NAMEFORMAT]
(
[CONSTITUENTID],
[NAMEFORMATTYPECODEID],
[NAMEFORMATFUNCTIONID],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED],
[PRIMARYADDRESSEE],
[PRIMARYSALUTATION]
)
select
@ID,
NFD.NAMEFORMATTYPECODEID,
NFD.NAMEFORMATFUNCTIONID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE,
NFD.PRIMARYADDRESSEE,
NFD.PRIMARYSALUTATION
from
dbo.NAMEFORMATDEFAULT as NFD
where
NFD.APPLYTOCODE = 0
/*End name format defaults*/
-------------- Insert Household Information --------------
-- second member information (all of the biographical fields referencing 'spouse' now are just generically a second member unless @ISSPOUSERELATIONSHIP is true)
declare @RELATIONSHIPID uniqueidentifier;
if (@SPOUSEID is not null)
begin
if dbo.UFN_CONSTITUENT_CANAPPUSERMODIFY(@SPOUSEID, @CURRENTAPPUSERID) = 1
begin
set @EXISTINGSPOUSE = 1;
end
else
begin
raiserror ('ERR_SPOUSE_NOACCESS',13,1);
return 0;
end
end
-- if no existing second member is declared, but the last name field is set, create a new constituent record
if (@SPOUSEID is null) and (coalesce(@SPOUSE_LASTNAME, '') <> '')
begin
set @SPOUSEID = newid();
-- second member information
insert into dbo.CONSTITUENT
(
[ID],
[ISORGANIZATION],
[KEYNAME],
[FIRSTNAME],
[MIDDLENAME],
[MAIDENNAME],
[NICKNAME],
[TITLECODEID],
[TITLE2CODEID],
[SUFFIXCODEID],
[SUFFIX2CODEID],
[GENDERCODE],
[BIRTHDATE],
[PICTURE],
[PICTURETHUMBNAIL],
[WEBADDRESS],
[MARITALSTATUSCODEID],
[ISCONSTITUENT],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED],
[GENDERCODEID]
)
values
(
@SPOUSEID,
0,
@SPOUSE_LASTNAME,
@SPOUSE_FIRSTNAME,
@SPOUSE_MIDDLENAME,
@SPOUSE_MAIDENNAME,
@SPOUSE_NICKNAME,
@SPOUSE_TITLECODEID,
@SPOUSE_TITLE2CODEID,
@SPOUSE_SUFFIXCODEID,
@SPOUSE_SUFFIX2CODEID,
@SPOUSE_GENDERCODE,
@SPOUSE_BIRTHDATE,
null,
null,
'',
@MARITALSTATUSCODEID,
case when @ISCONSTITUENT = 1 then dbo.UFN_CONSTITUENCYCRITERIASPOUSE_SPOUSEISCONSTITUENT() else 0 end,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE,
@SPOUSE_GENDERCODEID
);
-- security
if coalesce(@SKIP_ADDING_SECURITYGROUPS, 0) = 0
exec dbo.USP_CONSTITUENT_ASSIGNSECURITYGROUPS_FORNEWRECORD @APPUSERID = @CURRENTAPPUSERID,
@DATAFORMTEMPLATEID = @DATAFORMTEMPLATEID, @CONSTITUENTID = @SPOUSEID, @DATEADDEDTOUSE = @CURRENTDATE,
@CHANGEAGENTID = @CHANGEAGENTID;
if coalesce(@SKIP_ADDING_SITES, 0) = 0
exec dbo.USP_CONSTITUENT_ASSIGNSITES_FORNEWRECORD @APPUSERID = @CURRENTAPPUSERID,
@DATAFORMTEMPLATEID = @DATAFORMTEMPLATEID, @CONSTITUENTID = @SPOUSEID, @DATEADDEDTOUSE = @CURRENTDATE,
@CHANGEAGENTID = @CHANGEAGENTID;
-- end security
-- start name format defaults
insert into [dbo].[NAMEFORMAT]
(
[CONSTITUENTID],
[NAMEFORMATTYPECODEID],
[NAMEFORMATFUNCTIONID],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED],
[PRIMARYADDRESSEE],
[PRIMARYSALUTATION]
)
select
@SPOUSEID,
NFD.NAMEFORMATTYPECODEID,
NFD.NAMEFORMATFUNCTIONID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE,
NFD.PRIMARYADDRESSEE,
NFD.PRIMARYSALUTATION
from
dbo.NAMEFORMATDEFAULT as NFD
where
NFD.APPLYTOCODE = 0
-- end name format defaults
if @SPOUSE_MAIDENNAME is not null and @SPOUSE_MAIDENNAME != ''
begin
insert into dbo.ALIAS
(CONSTITUENTID, KEYNAME, FIRSTNAME, MIDDLENAME, DATEADDED, DATECHANGED, ADDEDBYID, CHANGEDBYID)
values
(@SPOUSEID, @SPOUSE_MAIDENNAME, @SPOUSE_FIRSTNAME, @SPOUSE_MIDDLENAME, @CURRENTDATE, @CURRENTDATE, @CHANGEAGENTID, @CHANGEAGENTID)
end
end -- create spouse
declare @EXISTINGID uniqueidentifier;
-- if a second household member record exists: copy/insert contact info, create a relationship, create a household
if @SPOUSEID is not null
begin -- create household/relationship/contact info
-- copy primary contact info, If @HOUSEHOLDCOPYPRIMARY and @ISSPOUSERELATIONSHIP then the copying will take place elsewhere
if @COPYPRIMARYINFORMATION = 1 and not (@ISSPOUSERELATIONSHIP = 1 and @HOUSEHOLDCOPYPRIMARYCONTACTINFO = 1)
begin
-- start second member primary address
if((@ADDRESS_STATEID is not null) or (coalesce(@ADDRESS_ADDRESSBLOCK,'') <> '') or (coalesce(@ADDRESS_CITY,'') <> '')
or (coalesce(@ADDRESS_POSTCODE,'') <> '') or (@ADDRESS_ADDRESSTYPECODEID is not null)
or (@ADDRESS_COUNTRYID is not null) or (@ADDRESS_DONOTMAIL = 1) or (@ADDRESS_DONOTMAILREASONCODEID is not null))
begin
set @EXISTINGID = null;
if exists (select ID from dbo.ADDRESS where CONSTITUENTID = @SPOUSEID and ISPRIMARY = 1)
update
dbo.ADDRESS
set
ISPRIMARY = 0,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
CONSTITUENTID = @SPOUSEID and
ISPRIMARY = 1;
select
@EXISTINGID = ID
from
dbo.ADDRESS
where
CONSTITUENTID = @SPOUSEID and
DONOTMAIL = @ADDRESS_DONOTMAIL and
COUNTRYID = @ADDRESS_COUNTRYID and
STATEID = @ADDRESS_STATEID and
ADDRESSBLOCK = @ADDRESS_ADDRESSBLOCK and
CITY = @ADDRESS_CITY and
POSTCODE = @ADDRESS_POSTCODE and
((ADDRESSTYPECODEID is null and @ADDRESS_ADDRESSTYPECODEID is null) or
(ADDRESSTYPECODEID = @ADDRESS_ADDRESSTYPECODEID))
if @EXISTINGID is null
begin
declare @NEW_ADDRESSID as uniqueidentifier = newid();
insert into dbo.ADDRESS
(
ID,
CONSTITUENTID,
ADDRESSTYPECODEID,
ISPRIMARY,
DONOTMAIL,
COUNTRYID,
STATEID,
ADDRESSBLOCK,
CITY,
POSTCODE,
CART,
DPC,
LOT,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED,
DONOTMAILREASONCODEID
)
values
(
@NEW_ADDRESSID,
@SPOUSEID,
@ADDRESS_ADDRESSTYPECODEID,
1,
@ADDRESS_DONOTMAIL,
@ADDRESS_COUNTRYID,
@ADDRESS_STATEID,
@ADDRESS_ADDRESSBLOCK,
@ADDRESS_CITY,
@ADDRESS_POSTCODE,
@ADDRESS_CART,
@ADDRESS_DPC,
@ADDRESS_LOT,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE,
@ADDRESS_DONOTMAILREASONCODEID
)
set @EXISTINGID = @NEW_ADDRESSID;
end
else
update
dbo.ADDRESS
set
ISPRIMARY = 1,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
ID = @EXISTINGID;
if exists (select ID from dbo.ADDRESSVALIDATIONUPDATE where ID = @EXISTINGID)
update
dbo.ADDRESSVALIDATIONUPDATE
set
COUNTYCODEID = @ADDRESS_COUNTYCODEID,
INFOSOURCECODEID = @ADDRESS_INFOSOURCECODEID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
ID = @EXISTINGID
else
insert into dbo.ADDRESSVALIDATIONUPDATE
(
ID,
COUNTYCODEID,
INFOSOURCECODEID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values
(
@NEW_ADDRESSID,
@ADDRESS_COUNTYCODEID,
@ADDRESS_INFOSOURCECODEID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
)
end -- end second member primary address
-- start second member primary phone
set @EXISTINGID = null
--if we have a new phone number, add it. otherwise, copy from primary member
if (coalesce(@SPOUSE_PHONE_NUMBER, '') <> '')
begin
insert into dbo.PHONE
(
CONSTITUENTID,
NUMBER,
ISPRIMARY,
INFOSOURCECODEID,
COUNTRYID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values
(
@SPOUSEID,
@SPOUSE_PHONE_NUMBER,
1,
@ADDRESS_INFOSOURCECODEID,
@PHONE_COUNTRYID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
end
else if (@PHONE_PHONETYPECODEID is not null) or (coalesce(@PHONE_NUMBER,'') <> '')
begin
if exists (select ID from dbo.PHONE where CONSTITUENTID = @SPOUSEID and ISPRIMARY = 1)
update
dbo.PHONE
set
ISPRIMARY = 0,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
CONSTITUENTID = @SPOUSEID and
ISPRIMARY = 1;
select
@EXISTINGID = ID
from
dbo.PHONE
where
CONSTITUENTID = @SPOUSEID and
PHONETYPECODEID = @PHONE_PHONETYPECODEID and
NUMBER = @PHONE_NUMBER
if @EXISTINGID is null
insert into dbo.PHONE
(
CONSTITUENTID,
PHONETYPECODEID,
NUMBER,
ISPRIMARY,
INFOSOURCECODEID,
COUNTRYID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values
(
@SPOUSEID,
@PHONE_PHONETYPECODEID,
@PHONE_NUMBER,
1,
@ADDRESS_INFOSOURCECODEID,
@PHONE_COUNTRYID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
else
update
dbo.PHONE
set
ISPRIMARY = 1,
INFOSOURCECODEID = @ADDRESS_INFOSOURCECODEID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
ID = @EXISTINGID;
end -- end second member primary phone
-- start second member primary email address
set @EXISTINGID = null
--if we have a new phone number, add it. otherwise, copy from primary member
if (coalesce(@SPOUSE_EMAILADDRESS_EMAILADDRESS, '') <> '')
begin
insert into dbo.EMAILADDRESS
(
CONSTITUENTID,
EMAILADDRESS,
ISPRIMARY,
INFOSOURCECODEID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values
(
@SPOUSEID,
@SPOUSE_EMAILADDRESS_EMAILADDRESS,
1,
@ADDRESS_INFOSOURCECODEID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
end
else if (@EMAILADDRESS_EMAILADDRESSTYPECODEID is not null) or (coalesce(@EMAILADDRESS_EMAILADDRESS,'') <> '')
begin
if exists (select ID from dbo.EMAILADDRESS where CONSTITUENTID = @SPOUSEID and ISPRIMARY = 1)
update
dbo.EMAILADDRESS
set
ISPRIMARY = 0,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
CONSTITUENTID = @SPOUSEID and
ISPRIMARY = 1;
select
@EXISTINGID = ID
from
dbo.EMAILADDRESS
where
CONSTITUENTID = @SPOUSEID and
EMAILADDRESSTYPECODEID = @EMAILADDRESS_EMAILADDRESSTYPECODEID and
EMAILADDRESS = @EMAILADDRESS_EMAILADDRESS;
if @EXISTINGID is null
insert into dbo.EMAILADDRESS
(
CONSTITUENTID,
EMAILADDRESSTYPECODEID,
EMAILADDRESS,
ISPRIMARY,
INFOSOURCECODEID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values
(
@SPOUSEID,
@EMAILADDRESS_EMAILADDRESSTYPECODEID,
@EMAILADDRESS_EMAILADDRESS,
1,
@ADDRESS_INFOSOURCECODEID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
else
update
dbo.EMAILADDRESS
set
ISPRIMARY = 1,
INFOSOURCECODEID = @ADDRESS_INFOSOURCECODEID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
ID = @EXISTINGID;
end -- second member primary email address
end -- second member copy primary contact info
-- start second member relationship with primary
if (@SPOUSE_RECIPROCALTYPECODEID is not null) or (@SPOUSE_RELATIONSHIPTYPECODEID is not null)
begin
set @RELATIONSHIPID = newid();
set @SETID = newid();
insert into dbo.RELATIONSHIPSET
(
ID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values
(
@SETID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
insert into dbo.RELATIONSHIP
(
ID,
RELATIONSHIPCONSTITUENTID,
RECIPROCALCONSTITUENTID,
RELATIONSHIPTYPECODEID,
RECIPROCALTYPECODEID,
ISSPOUSE,
STARTDATE,
RELATIONSHIPSETID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values
(
@RELATIONSHIPID,
@ID,
@SPOUSEID,
@SPOUSE_RELATIONSHIPTYPECODEID,
@SPOUSE_RECIPROCALTYPECODEID,
@ISSPOUSERELATIONSHIP,
@SPOUSE_STARTDATE,
@SETID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
exec dbo.USP_RELATIONSHIPCONFIGURATION_CONFIGURE @ID, @SPOUSEID, @SPOUSE_RELATIONSHIPTYPECODEID,
@SPOUSE_RECIPROCALTYPECODEID, @CHANGEAGENTID, @CURRENTDATE;
--Recognition credits default information is not really passed in.
select @PRIMARYSOFTCREDITRELATIONSHIPEXISTS = 1,
@PRIMARYRECOGNITIONTYPECODEID=RRD.REVENUERECOGNITIONTYPECODEID,
@PRIMARYSOFTCREDITMATCHFACTOR= RRD.MATCHFACTOR
from dbo.RECOGNITIONRELATIONSHIPDEFAULT as RRD
where RRD.CONSTITUENTTYPECODE=0 and RRD.RELATIONSHIPTYPECODEID=@SPOUSE_RELATIONSHIPTYPECODEID
select @RECIPROCALSOFTCREDITRELATIONSHIPEXISTS = 1,
@RECIPROCALRECOGNITIONTYPECODEID=RRD.REVENUERECOGNITIONTYPECODEID,
@RECIPROCALSOFTCREDITMATCHFACTOR= RRD.MATCHFACTOR
from dbo.RECOGNITIONRELATIONSHIPDEFAULT as RRD
where RRD.CONSTITUENTTYPECODE=0 and RRD.RELATIONSHIPTYPECODEID=@SPOUSE_RECIPROCALTYPECODEID
exec dbo.USP_RECOGNITIONDEFAULTSUPDATE @ID, @SPOUSEID,
@SPOUSE_STARTDATE, NULL, @PRIMARYSOFTCREDITRELATIONSHIPEXISTS, @PRIMARYSOFTCREDITMATCHFACTOR,
@PRIMARYRECOGNITIONTYPECODEID, @RECIPROCALSOFTCREDITRELATIONSHIPEXISTS,
@RECIPROCALSOFTCREDITMATCHFACTOR, @RECIPROCALRECOGNITIONTYPECODEID, @CHANGEAGENTID, 0;
if (@ISSPOUSERELATIONSHIP = 1) and (not exists(select ID from dbo.DISABLEDWEALTHUPDATES where ID = @SPOUSEID))
insert into dbo.DISABLEDWEALTHUPDATES
(
ID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values
(
@SPOUSEID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
)
end -- second member relationship
-- begin household creation
if (@ISSPOUSERELATIONSHIP = 1)
begin
declare @UPDATECONSTITUENTMARITALSTATUS bit = 0;
if @MARITALSTATUSCODEID is null
set @UPDATECONSTITUENTMARITALSTATUS = 1;
exec dbo.USP_SPOUSERELATIONSHIP_SETUPHOUSEHOLD @ID, @SPOUSEID, @HOUSEHOLDCOPYPRIMARYCONTACTINFO,
@CHANGEAGENTID, @CURRENTDATE,@SKIP_ADDING_SECURITYGROUPS,@CURRENTAPPUSERID,@SKIP_ADDING_SITES,
@UPDATECONSTITUENTMARITALSTATUS, @COPYPRIMARYINFORMATION;
end
else
begin -- non-spousal household
-- mostly cut and paste from USP_SPOUSERELATIONSHIP_SETUPHOUSEHOLD, but processing rules might be different
declare @SECONDMEMBERHOUSEHOLDID uniqueidentifier;
select
@SECONDMEMBERHOUSEHOLDID = GD.ID
from
dbo.GROUPMEMBER GM
left outer join
dbo.GROUPDATA GD on GM.GROUPID = GD.ID
left outer join
dbo.GROUPMEMBERDATERANGE GMDR on GM.ID = GMDR.GROUPMEMBERID
where
GM.MEMBERID = @SPOUSEID and
GD.GROUPTYPECODE = 0 and
((GMDR.DATEFROM is null and (GMDR.DATETO is null or GMDR.DATETO > @CURRENTDATE))
or (GMDR.DATETO is null and (GMDR.DATEFROM is null or GMDR.DATEFROM <= @CURRENTDATE))
or (GMDR.DATEFROM <= @CURRENTDATE and GMDR.DATETO > @CURRENTDATE));
-- create a new household
if (@SECONDMEMBERHOUSEHOLDID is null)
begin -- create new non-spousal household
declare @HOUSEHOLDID uniqueidentifier = newid();
declare @NAMEFORMATFUNCTIONID uniqueidentifier;
declare @HOUSEHOLDNAME nvarchar(100);
select top(1) @NAMEFORMATFUNCTIONID = NAMEFORMATFUNCTIONID from dbo.HOUSEHOLDINFO order by DATEADDED;
select @HOUSEHOLDNAME = left(dbo.UFN_NAMEFORMAT_FROMID(@NAMEFORMATFUNCTIONID, @ID), 100);
insert into dbo.CONSTITUENT
(
ID,
KEYNAME,
ISORGANIZATION,
ISGROUP,
ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED
)
values
(
@HOUSEHOLDID,
@HOUSEHOLDNAME,
0,
1,
@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
);
if coalesce(@SKIP_ADDING_SECURITYGROUPS, 0) = 0
begin
exec dbo.USP_CONSTITUENT_ASSIGNSECURITYGROUPS_FORNEWRECORD @APPUSERID = @CURRENTAPPUSERID,
@DATAFORMTEMPLATEID = @DATAFORMTEMPLATEID, @CONSTITUENTID = @HOUSEHOLDID, @DATEADDEDTOUSE = @CURRENTDATE,
@CHANGEAGENTID = @CHANGEAGENTID;
end
if coalesce(@SKIP_ADDING_SITES, 0) = 0
exec dbo.USP_CONSTITUENT_ASSIGNSITES_FORNEWRECORD @APPUSERID = @CURRENTAPPUSERID,
@DATAFORMTEMPLATEID = @DATAFORMTEMPLATEID, @CONSTITUENTID = @HOUSEHOLDID, @DATEADDEDTOUSE = @CURRENTDATE,
@CHANGEAGENTID = @CHANGEAGENTID;
insert into dbo.GROUPDATA
(
ID,
GROUPTYPECODE,
STARTDATE,
GROUPTYPEID,
ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED
)
values
(
@HOUSEHOLDID,
0,
@CURRENTDATE,
null,
@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
);
if @HOUSEHOLDCOPYPRIMARYCONTACTINFO = 1
exec dbo.USP_CONSTITUENT_COPYPRIMARYCONTACTINFO @CHANGEAGENTID, @ID, @HOUSEHOLDID;
declare @GROUPMEMBERID uniqueidentifier;
exec dbo.USP_GROUPMEMBERADD @GROUPMEMBERID output, @CHANGEAGENTID, @HOUSEHOLDID, @ID;
update
dbo.GROUPMEMBER
set
ISPRIMARY = 1,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
GROUPMEMBER.ID = @GROUPMEMBERID;
set @GROUPMEMBERID = null;
exec dbo.USP_GROUPMEMBERADD @GROUPMEMBERID output, @CHANGEAGENTID, @HOUSEHOLDID, @SPOUSEID;
end -- create new non-spousal household
else
begin -- add the new constituent to the second member's household
exec dbo.USP_GROUPMEMBERADD @GROUPMEMBERID output, @CHANGEAGENTID, @SECONDMEMBERHOUSEHOLDID, @ID;
end -- add the new constituent to the second member's household
end -- non-spousal household
end -- create household/relationship/contact info
-------------- Insert Organization Information --------------
declare @ISORGANIZATION bit;
set @RELATIONSHIPID = null;
if (@ORGANIZATIONID is not null)
begin
if dbo.UFN_CONSTITUENT_CANAPPUSERMODIFY(@ORGANIZATIONID, @CURRENTAPPUSERID) = 1
begin
set @EXISTINGORGANIZATION = 1;
end
else
begin
raiserror ('ERR_ORGANIZATION_NOACCESS',13,1);
return 0;
end
end
if (@ORGANIZATIONID is not null) or (coalesce(@ORGANIZATION_NAME,'') <> '')
set @ISORGANIZATION = 1;
else
set @ISORGANIZATION = 0;
--If there is an organization create the relationship
if @ISORGANIZATION = 1
begin -- there is an org
declare @KEYNAME nvarchar(100);
declare @KEYNAMEPREFIX nvarchar(50);
declare @BUSINESSADDRESSID uniqueidentifier = null;
declare @BUSINESSPHONEID uniqueidentifier = null;
if @RELATIONSHIPID is null
set @RELATIONSHIPID = newid();
--if you are creating a new organization make a new constituent entry
if @EXISTINGORGANIZATION = 0
begin -- create new org
if @ORGANIZATIONID is null
set @ORGANIZATIONID = newid();
exec dbo.USP_PARSE_ORGANIZATION_NAME @ORGANIZATION_NAME, @KEYNAME output, @KEYNAMEPREFIX output;
---------Organization Constituent Information---------
exec dbo.USP_ORGANIZATION_ADD
@ID = @ORGANIZATIONID,
@CURRENTAPPUSERID = @CURRENTAPPUSERID,
@CHANGEAGENTID = @CHANGEAGENTID,
@NAME = @ORGANIZATION_NAME,
@WEBADDRESS = '',
@PICTURE = null,
@PICTURETHUMBNAIL = null,
@INDUSTRYCODEID = null,
@NUMEMPLOYEES = 0,
@NUMSUBSIDIARIES = 0,
@PARENTCORPID = null,
@ADDRESS_ADDRESSTYPECODEID = @ORGANIZATION_ADDRESSTYPECODEID,
@ADDRESS_DONOTMAIL = @ORGANIZATION_DONOTMAIL,
@ADDRESS_COUNTRYID = @ORGANIZATION_COUNTRYID,
@ADDRESS_STATEID = @ORGANIZATION_STATEID,
@ADDRESS_ADDRESSBLOCK = @ORGANIZATION_ADDRESSBLOCK,
@ADDRESS_CITY = @ORGANIZATION_CITY,
@ADDRESS_POSTCODE = @ORGANIZATION_POSTCODE,
@PHONE_PHONETYPECODEID = @ORGANIZATION_PHONETYPECODEID,
@PHONE_NUMBER = @ORGANIZATION_NUMBER,
@SKIP_ADDING_SECURITYGROUPS = @SKIP_ADDING_SECURITYGROUPS,
@EMAILADDRESS_EMAILADDRESSTYPECODEID = null,
@EMAILADDRESS_EMAILADDRESS = '',
@OMITFROMVALIDATION = @ORGANIZATION_OMITFROMVALIDATION,
@CART = @ORGANIZATION_CART,
@DPC = @ORGANIZATION_DPC,
@LOT = @ORGANIZATION_LOT,
@COUNTYCODEID = @ORGANIZATION_COUNTYCODEID,
@CONGRESSIONALDISTRICTCODEID = @ORGANIZATION_CONGRESSIONALDISTRICTCODEID,
@LASTVALIDATIONATTEMPTDATE = @ORGANIZATION_LASTVALIDATIONATTEMPTDATE,
@VALIDATIONMESSAGE = @ORGANIZATION_VALIDATIONMESSAGE,
@CERTIFICATIONDATA = @ORGANIZATION_CERTIFICATIONDATA,
@ADDRESS_DONOTMAILREASONCODEID = @ORGANIZATION_DONOTMAILREASONCODEID,
@ISPRIMARY = 0,
@SKIP_ADDING_SITES = @SKIP_ADDING_SITES,
@INFOSOURCECODEID = @ORGANIZATION_INFOSOURCECODEID,
@ISCONSTITUENT = 1;
if COALESCE(@SKIP_ADDING_SECURITYGROUPS, 0) = 0
begin
exec dbo.USP_CONSTITUENT_ASSIGNSECURITYGROUPS_FORNEWRECORD @APPUSERID = @CURRENTAPPUSERID,
@DATAFORMTEMPLATEID = @DATAFORMTEMPLATEID, @CONSTITUENTID = @ORGANIZATIONID, @DATEADDEDTOUSE = @CURRENTDATE,
@CHANGEAGENTID = @CHANGEAGENTID;
end
if coalesce(@SKIP_ADDING_SITES, 0) = 0
exec dbo.USP_CONSTITUENT_ASSIGNSITES_FORNEWRECORD @APPUSERID = @CURRENTAPPUSERID,
@DATAFORMTEMPLATEID = @DATAFORMTEMPLATEID, @CONSTITUENTID = @ORGANIZATIONID, @DATEADDEDTOUSE = @CURRENTDATE,
@CHANGEAGENTID = @CHANGEAGENTID;
end -- create new org
---------Organization Relationship---------
if @ISMATCHINGGIFTRELATIONSHIP = 1
update
dbo.RELATIONSHIP
set
ISMATCHINGGIFTRELATIONSHIP = 0,
DATECHANGED = @CURRENTDATE,
CHANGEDBYID = @CHANGEAGENTID
where
RELATIONSHIPCONSTITUENTID = @ID and
RECIPROCALCONSTITUENTID = @ORGANIZATIONID and
ISMATCHINGGIFTRELATIONSHIP = 1;
set @SETID = newid();
insert into dbo.RELATIONSHIPSET
(
ID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values
(
@SETID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
insert into dbo.RELATIONSHIP
(
ID,
RELATIONSHIPCONSTITUENTID,
RECIPROCALCONSTITUENTID,
RELATIONSHIPTYPECODEID,
RECIPROCALTYPECODEID,
ISCONTACT,
ISPRIMARYCONTACT,
CONTACTTYPECODEID,
STARTDATE,
ENDDATE,
POSITION,
ISPRIMARYBUSINESS,
ISMATCHINGGIFTRELATIONSHIP,
RELATIONSHIPSETID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values
(
@RELATIONSHIPID,
@ID,
@ORGANIZATIONID,
@ORGANIZATION_RELATIONSHIPTYPECODEID,
@ORGANIZATION_RECIPROCALTYPECODEID,
@ISCONTACT,
@ISPRIMARYCONTACT,
@CONTACTTYPECODEID,
@ORGANIZATION_STARTDATE,
@ORGANIZATION_ENDDATE,
'',
1,
@ISMATCHINGGIFTRELATIONSHIP,
@SETID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
exec dbo.USP_RELATIONSHIPCONFIGURATION_CONFIGURE @ID, @ORGANIZATIONID, @ORGANIZATION_RELATIONSHIPTYPECODEID,
@ORGANIZATION_RECIPROCALTYPECODEID, @CHANGEAGENTID, @CURRENTDATE;
if (@JOBCATEGORYCODEID is not null) or (@CAREERLEVELCODEID is not null) or (len(@POSITION) > 0)
insert into dbo.RELATIONSHIPJOBINFO
(
RELATIONSHIPSETID,
JOBTITLE,
JOBCATEGORYCODEID,
CAREERLEVELCODEID,
STARTDATE,
ENDDATE,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values
(
@SETID,
@POSITION,
@JOBCATEGORYCODEID,
@CAREERLEVELCODEID,
@ORGANIZATION_STARTDATE,
@ORGANIZATION_ENDDATE,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
exec dbo.USP_RECOGNITIONDEFAULTSUPDATE @ID, @ORGANIZATIONID, @ORGANIZATION_STARTDATE, @ORGANIZATION_ENDDATE,
@ORGANIZATION_PRIMARYSOFTCREDITRELATIONSHIPEXISTS, @ORGANIZATION_PRIMARYSOFTCREDITMATCHFACTOR,
@ORGANIZATION_PRIMARYRECOGNITIONTYPECODEID, @ORGANIZATION_RECIPROCALSOFTCREDITRELATIONSHIPEXISTS,
@ORGANIZATION_RECIPROCALSOFTCREDITMATCHFACTOR, @ORGANIZATION_RECIPROCALRECOGNITIONTYPECODEID, @CHANGEAGENTID;
--If the constituent is a contact of the organization create a contact address.
if @ISCONTACT = 1 and @ORGANIZATIONID is not null
begin
declare @ORGANIZATIONRELATIONSHIPID uniqueidentifier;
select
@ORGANIZATIONRELATIONSHIPID = [ID]
from
dbo.[RELATIONSHIP]
where
[RELATIONSHIPSETID] = @SETID and
[RECIPROCALCONSTITUENTID] = @ID;
declare @BUSINESSCONTACTADDRESSID uniqueidentifier = newid();
declare @BUSINESSPRIMARYADDRESSID uniqueidentifier = @BUSINESSADDRESSID;
declare @BUSINESSPRIMARYPHONEID uniqueidentifier = @BUSINESSPHONEID;
if @BUSINESSPRIMARYADDRESSID is null
select @BUSINESSPRIMARYADDRESSID = ID from dbo.ADDRESS where CONSTITUENTID = @ORGANIZATIONID and ISPRIMARY = 1;
if @BUSINESSPRIMARYPHONEID is null
select @BUSINESSPRIMARYPHONEID = ID from dbo.PHONE where CONSTITUENTID = @ORGANIZATIONID and ISPRIMARY = 1;
insert into dbo.ADDRESS
(
ID,
CONSTITUENTID,
RELATIONSHIPID,
ADDRESSTYPECODEID,
ISPRIMARY,
DONOTMAIL,
DONOTMAILREASONCODEID,
COUNTRYID,
STATEID,
ADDRESSBLOCK,
CITY,
POSTCODE,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
select
@BUSINESSCONTACTADDRESSID,
@ID,
@ORGANIZATIONRELATIONSHIPID,
ADDRESSTYPECODEID,
case when @ADDRESSID is null then 1 else 0 end,
DONOTMAIL,
DONOTMAILREASONCODEID,
COUNTRYID,
STATEID,
ADDRESSBLOCK,
CITY,
POSTCODE,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
from
dbo.ADDRESS
where
ID = @BUSINESSPRIMARYADDRESSID;
insert into dbo.ADDRESSVALIDATIONUPDATE
(
[ID],
[COUNTYCODEID],
[CONGRESSIONALDISTRICTCODEID],
[LASTVALIDATIONATTEMPTDATE],
[VALIDATIONMESSAGE],
[CERTIFICATIONDATA],
[OMITFROMVALIDATION],
[INFOSOURCECODEID],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
select
@BUSINESSCONTACTADDRESSID,
COUNTYCODEID,
CONGRESSIONALDISTRICTCODEID,
LASTVALIDATIONATTEMPTDATE,
VALIDATIONMESSAGE,
CERTIFICATIONDATA,
OMITFROMVALIDATION,
INFOSOURCECODEID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
from
dbo.ADDRESSVALIDATIONUPDATE
where
ID = @BUSINESSPRIMARYADDRESSID;
insert into dbo.PHONE
(
CONSTITUENTID,
RELATIONSHIPID,
ISPRIMARY,
PHONETYPECODEID,
NUMBER,
INFOSOURCECODEID,
COUNTRYID,
DONOTCALL,
DONOTCALLREASONCODEID,
STARTTIME,
ENDTIME,
STARTDATE,
ENDDATE,
ISCONFIDENTIAL,
ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED
)
select
@ID,
@ORGANIZATIONRELATIONSHIPID,
case when @PHONEID is null then 1 else 0 end,
PHONETYPECODEID,
NUMBER,
INFOSOURCECODEID,
COUNTRYID,
DONOTCALL,
DONOTCALLREASONCODEID,
STARTTIME,
ENDTIME,
STARTDATE,
ENDDATE,
ISCONFIDENTIAL,
@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
from
dbo.PHONE
where
ID = @BUSINESSPRIMARYPHONEID;
insert into dbo.EMAILADDRESS
(
CONSTITUENTID,
RELATIONSHIPID,
ISPRIMARY,
EMAILADDRESSTYPECODEID,
EMAILADDRESS,
INFOSOURCECODEID,
DONOTEMAIL,
ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED
)
select
@ID,
@ORGANIZATIONRELATIONSHIPID,
case when @EMAILADDRESSID is null then 1 else 0 end,
EMAILADDRESSTYPECODEID,
EMAILADDRESS,
INFOSOURCECODEID,
DONOTEMAIL,
@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
from
dbo.EMAILADDRESS
where
CONSTITUENTID = @ORGANIZATIONID and
ISPRIMARY = 1;
end --copy org contact to constituent
end -- there is an org
end -- sproc body