USP_DATAFORMTEMPLATE_ADD_CONSTITUENTBATCHCOMMIT
The save procedure used by the add dataform template "Constituent Batch Row Commit Add Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | The output parameter indicating the ID of the record added. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@ISORGANIZATION | tinyint | IN | Constituent type |
@KEYNAME | nvarchar(100) | IN | Last/org/group/household name |
@FIRSTNAME | nvarchar(50) | IN | First name |
@MIDDLENAME | nvarchar(50) | IN | Middle name |
@MAIDENNAME | nvarchar(100) | IN | Maiden name |
@NICKNAME | nvarchar(50) | IN | Nickname |
@TITLECODEID | uniqueidentifier | IN | Title |
@SUFFIXCODEID | uniqueidentifier | IN | Suffix |
@BIRTHDATE | UDT_FUZZYDATE | IN | Birth date |
@GENDERCODE | tinyint | IN | Gender |
@WEBADDRESS | UDT_WEBADDRESS | IN | Web site address |
@INDUSTRYCODEID | uniqueidentifier | IN | Industry |
@PARENTCORPID | uniqueidentifier | IN | Parent org |
@NUMEMPLOYEES | int | IN | No. of employees |
@NUMSUBSIDIARIES | int | IN | No. of subsidiary orgs |
@ADDRESS_ADDRESSTYPECODEID | uniqueidentifier | IN | Address type |
@ADDRESS_COUNTRYID | uniqueidentifier | IN | Country |
@ADDRESS_ADDRESSBLOCK | nvarchar(150) | IN | Address |
@ADDRESS_CITY | nvarchar(50) | IN | City |
@ADDRESS_STATEID | uniqueidentifier | IN | State |
@ADDRESS_POSTCODE | nvarchar(12) | IN | ZIP |
@ADDRESS_DONOTMAIL | bit | IN | Do not send mail to this address |
@PHONES | xml | IN | Phones |
@EMAILADDRESS_EMAILADDRESSTYPECODEID | uniqueidentifier | IN | Email type |
@EMAILADDRESS_EMAILADDRESS | UDT_EMAILADDRESS | IN | Email address |
@CUSTOMIDENTIFIER | nvarchar(100) | IN | Lookup ID |
@VALIDATEONLY | bit | IN | Validate only |
@BATCHNUMBER | nvarchar(100) | IN | |
@ADDRESS_CART | nvarchar(10) | IN | CART |
@ADDRESS_DPC | nvarchar(8) | IN | DPC |
@ADDRESS_LOT | nvarchar(5) | IN | LOT |
@ADDRESS_STARTDATE | UDT_MONTHDAY | IN | Address start date |
@ADDRESS_ENDDATE | UDT_MONTHDAY | IN | Address end date |
@PRIMARYADDRESSEE_NAMEFORMATTYPECODEID | uniqueidentifier | IN | Addressee type |
@PRIMARYADDRESSEE_NAMEFORMATFUNCTIONID | uniqueidentifier | IN | Addressee name format |
@PRIMARYSALUTATION_NAMEFORMATTYPECODEID | uniqueidentifier | IN | Salutation type |
@PRIMARYSALUTATION_NAMEFORMATFUNCTIONID | uniqueidentifier | IN | Salutation name format |
@ISDECEASED | bit | IN | Is deceased |
@DECEASEDDATE | UDT_FUZZYDATE | IN | Deceased date |
@EDUCATIONALHISTORY_EDUCATIONALINSTITUTIONID | uniqueidentifier | IN | Educational institution |
@EDUCATIONALHISTORY_ISPRIMARYRECORD | bit | IN | Educational is primary |
@EDUCATIONALHISTORY_EDUCATIONALHISTORYTYPECODEID | uniqueidentifier | IN | Educational type |
@EDUCATIONALHISTORY_EDUCATIONALHISTORYSTATUSCODEID | uniqueidentifier | IN | Educational detail |
@EDUCATIONALHISTORY_CONSTITUENCYSTATUSCODE | tinyint | IN | Educational status |
@EDUCATIONALHISTORY_CLASSOF | UDT_YEAR | IN | Class year |
@EDUCATIONALHISTORY_EDUCATIONALDEGREECODEID | uniqueidentifier | IN | Educational degree |
@EDUCATIONALHISTORY_GPA | decimal(3, 2) | IN | GPA |
@EDUCATIONALHISTORY_STARTDATE | UDT_FUZZYDATE | IN | Educational start date |
@EDUCATIONALHISTORY_ENDDATE | UDT_FUZZYDATE | IN | Educational end date |
@EDUCATIONALHISTORY_KNOWNNAME | nvarchar(50) | IN | Known name |
@EDUCATIONALHISTORY_FRATERNITY | nvarchar(50) | IN | Fraternity |
@SPOUSEID | uniqueidentifier | IN | Spouse |
@SPOUSE_RELATIONSHIPTYPECODEID | uniqueidentifier | IN | Spouse relationship type |
@SPOUSE_RECIPROCALTYPECODEID | uniqueidentifier | IN | Spouse reciprocal type |
@SPOUSE_KEYNAME | nvarchar(100) | IN | Spouse last name |
@SPOUSE_FIRSTNAME | nvarchar(50) | IN | Spouse first name |
@SPOUSE_MIDDLENAME | nvarchar(50) | IN | Spouse middle name |
@SPOUSE_MAIDENNAME | nvarchar(100) | IN | Spouse maiden name |
@SPOUSE_NICKNAME | nvarchar(50) | IN | Spouse nickname |
@SPOUSE_TITLECODEID | uniqueidentifier | IN | Spouse title |
@SPOUSE_SUFFIXCODEID | uniqueidentifier | IN | Spouse suffix |
@SPOUSE_GENDERCODE | tinyint | IN | Spouse gender |
@SPOUSE_BIRTHDATE | UDT_FUZZYDATE | IN | Spouse birth date |
@SPOUSE_EMAILADDRESS_EMAILADDRESSTYPECODEID | uniqueidentifier | IN | Spouse email address type |
@SPOUSE_EMAILADDRESS_EMAILADDRESS | UDT_EMAILADDRESS | IN | Spouse email address |
@PRIMARYBUSINESSID | uniqueidentifier | IN | Business |
@PRIMARYBUSINESS_RELATIONSHIPTYPECODEID | uniqueidentifier | IN | Business relationship type |
@PRIMARYBUSINESS_RECIPROCALTYPECODEID | uniqueidentifier | IN | Business reciprocal type |
@PRIMARYBUSINESS_KEYNAME | nvarchar(100) | IN | Business name |
@PRIMARYBUSINESS_PHONE_PHONETYPECODEID | uniqueidentifier | IN | Business phone type |
@PRIMARYBUSINESS_PHONE_NUMBER | nvarchar(100) | IN | Business phone number |
@PRIMARYBUSINESS_EMAILADDRESS_EMAILADDRESSTYPECODEID | uniqueidentifier | IN | Business email type |
@PRIMARYBUSINESS_EMAILADDRESS_EMAILADDRESS | UDT_EMAILADDRESS | IN | Business email address |
@PRIMARYBUSINESS_ADDRESS_ADDRESSTYPECODEID | uniqueidentifier | IN | Business address type |
@PRIMARYBUSINESS_ADDRESS_COUNTRYID | uniqueidentifier | IN | Business country |
@PRIMARYBUSINESS_ADDRESS_ADDRESSBLOCK | nvarchar(150) | IN | Business address |
@PRIMARYBUSINESS_ADDRESS_CITY | nvarchar(50) | IN | Business city |
@PRIMARYBUSINESS_ADDRESS_STATEID | uniqueidentifier | IN | Business state |
@PRIMARYBUSINESS_ADDRESS_POSTCODE | nvarchar(12) | IN | Business ZIP |
@PRIMARYBUSINESS_ADDRESS_CART | nvarchar(10) | IN | Business CART |
@PRIMARYBUSINESS_ADDRESS_DPC | nvarchar(8) | IN | Business DPC |
@PRIMARYBUSINESS_ADDRESS_LOT | nvarchar(5) | IN | Business LOT |
@PRIMARYBUSINESS_ADDRESS_DONOTMAIL | bit | IN | Business do not mail |
@PRIMARYBUSINESS_INDUSTRYCODEID | uniqueidentifier | IN | Business industry |
@PRIMARYBUSINESS_NUMEMPLOYEES | int | IN | Business no. of employees |
@PRIMARYBUSINESS_NUMSUBSIDIARIES | int | IN | Business no. of subsidiary orgs |
@PRIMARYBUSINESS_WEBADDRESS | UDT_WEBADDRESS | IN | Business web site address |
@PRIMARYBUSINESS_PARENTCORPID | uniqueidentifier | IN | Business parent org |
@CONSTITUENCY | xml | IN | User defined constituencies |
@INTEREST | xml | IN | Interests |
@EDUCATIONALMAJOR | xml | IN | Major |
@EDUCATIONALMINOR | xml | IN | Minor |
@SPOUSE_COPY_ADDRESS | bit | IN | Spouse copy address |
@SPOUSE_COPY_PHONENUMBER | bit | IN | Spouse copy phone number |
@SPOUSE_COPY_EMAILADDRESS | bit | IN | Spouse copy email address |
@CONSTIT_SECURITY_ATTRIBUTEID | uniqueidentifier | IN | Constituent Security Attribute |
@ADDRESS_COUNTYCODEID | uniqueidentifier | IN | County |
@ADDRESS_OMITFROMVALIDATION | bit | IN | Omit from validation |
@ADDRESS_CONGRESSIONALDISTRICTCODEID | uniqueidentifier | IN | Congressional district |
@ADDRESS_STATEHOUSEDISTRICTCODEID | uniqueidentifier | IN | State house district |
@ADDRESS_STATESENATEDISTRICTCODEID | uniqueidentifier | IN | State senate district |
@ADDRESS_LOCALPRECINCTCODEID | uniqueidentifier | IN | Local precinct |
@ADDRESS_INFOSOURCECODEID | uniqueidentifier | IN | Info source |
@ADDRESS_REGIONCODEID | uniqueidentifier | IN | Region |
@ADDRESS_LASTVALIDATIONATTEMPTDATE | datetime | IN | Last validation attempt date |
@ADDRESS_VALIDATIONMESSAGE | nvarchar(200) | IN | Validation message |
@ADDRESS_CERTIFICATIONDATA | int | IN | Certification data |
@GROUPTYPEID | uniqueidentifier | IN | Group type |
@GROUPSTARTDATE | datetime | IN | Group start date |
@GROUPDESCRIPTION | nvarchar(300) | IN | Group description |
@GROUPMEMBERS | xml | IN | Group members |
@ADDRESS_DONOTMAILREASONCODEID | uniqueidentifier | IN | Do not mail reason |
@PRIMARYBUSINESS_ADDRESS_DONOTMAILREASONCODEID | uniqueidentifier | IN | Business do not mail reason |
@EDUCATIONALHISTORY_ACADEMICCATALOGPROGRAMID | uniqueidentifier | IN | Academic catalog program |
@EDUCATIONALHISTORY_EDUCATIONALPROGRAMCODEID | uniqueidentifier | IN | Educational program |
@EDUCATIONALHISTORY_ACADEMICCATALOGDEGREEID | uniqueidentifier | IN | Academic catalog degree |
@EDUCATIONALHISTORY_EDUCATIONALAWARDCODEID | uniqueidentifier | IN | Awarded |
@EDUCATIONALHISTORY_PREFERREDCLASSYEAR | UDT_YEAR | IN | Preferred class year |
@EDUCATIONALHISTORY_EDUCATIONALSOURCECODEID | uniqueidentifier | IN | Source |
@EDUCATIONALHISTORY_EDUCATIONALSOURCEDATE | UDT_FUZZYDATE | IN | Source date |
@EDUCATIONALHISTORY_COMMENT | nvarchar(500) | IN | Comment |
@AFFILIATEDADDITIONALINFORMATION | xml | IN | Affiliated additional information |
@UNAFFILIATEDADDITIONALINFORMATION | xml | IN | Unaffiliated additional information |
@EDUCATIONALINVOLVEMENT | xml | IN | Involvement |
@ALTERNATELOOKUPIDS | xml | IN | Alternate lookup IDs |
@EDUCATIONALHISTORY_DATEGRADUATED | UDT_FUZZYDATE | IN | Date graduated |
@EDUCATIONALHISTORY_DATELEFT | UDT_FUZZYDATE | IN | Date left |
@EDUCATIONALHISTORY_LEVELCODEID | uniqueidentifier | IN | Level |
@EDUCATIONALHISTORY_REASONCODEID | uniqueidentifier | IN | Reason |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_CONSTITUENTBATCHCOMMIT
(
@ID uniqueidentifier = null output,
@CHANGEAGENTID uniqueidentifier,
@ISORGANIZATION tinyint,
@KEYNAME nvarchar(100),
@FIRSTNAME nvarchar(50) = '',
@MIDDLENAME nvarchar(50) = '',
@MAIDENNAME nvarchar(100) = '',
@NICKNAME nvarchar(50) = '',
@TITLECODEID uniqueidentifier = null,
@SUFFIXCODEID uniqueidentifier = null,
@BIRTHDATE dbo.UDT_FUZZYDATE = '00000000',
@GENDERCODE tinyint = 0,
@WEBADDRESS dbo.UDT_WEBADDRESS = '',
@INDUSTRYCODEID uniqueidentifier = null,
@PARENTCORPID uniqueidentifier = null,
@NUMEMPLOYEES int = 0,
@NUMSUBSIDIARIES int = 0,
@ADDRESS_ADDRESSTYPECODEID uniqueidentifier = null,
@ADDRESS_COUNTRYID uniqueidentifier = null,
@ADDRESS_ADDRESSBLOCK nvarchar(150) = '',
@ADDRESS_CITY nvarchar(50) = '',
@ADDRESS_STATEID uniqueidentifier = null,
@ADDRESS_POSTCODE nvarchar(12) = '',
@ADDRESS_DONOTMAIL bit = 0,
@PHONES xml = null,
@EMAILADDRESS_EMAILADDRESSTYPECODEID uniqueidentifier = null,
@EMAILADDRESS_EMAILADDRESS dbo.UDT_EMAILADDRESS = '',
@CUSTOMIDENTIFIER nvarchar(100) = '',
@VALIDATEONLY bit = 0,
@BATCHNUMBER nvarchar(100),
@ADDRESS_CART nvarchar(10) = '',
@ADDRESS_DPC nvarchar(8) = '',
@ADDRESS_LOT nvarchar(5) = '',
@ADDRESS_STARTDATE dbo.UDT_MONTHDAY = '0000',
@ADDRESS_ENDDATE dbo.UDT_MONTHDAY = '0000',
@PRIMARYADDRESSEE_NAMEFORMATTYPECODEID uniqueidentifier = null,
@PRIMARYADDRESSEE_NAMEFORMATFUNCTIONID uniqueidentifier = null,
@PRIMARYSALUTATION_NAMEFORMATTYPECODEID uniqueidentifier = null,
@PRIMARYSALUTATION_NAMEFORMATFUNCTIONID uniqueidentifier = null,
@ISDECEASED bit = 0,
@DECEASEDDATE dbo.UDT_FUZZYDATE = '00000000',
@EDUCATIONALHISTORY_EDUCATIONALINSTITUTIONID uniqueidentifier = null,
@EDUCATIONALHISTORY_ISPRIMARYRECORD bit = 0,
@EDUCATIONALHISTORY_EDUCATIONALHISTORYTYPECODEID uniqueidentifier = null,
@EDUCATIONALHISTORY_EDUCATIONALHISTORYSTATUSCODEID uniqueidentifier = null,
@EDUCATIONALHISTORY_CONSTITUENCYSTATUSCODE tinyint = 0,
@EDUCATIONALHISTORY_CLASSOF dbo.UDT_YEAR = 0,
@EDUCATIONALHISTORY_EDUCATIONALDEGREECODEID uniqueidentifier = null,
@EDUCATIONALHISTORY_GPA decimal(3,2) = 0,
@EDUCATIONALHISTORY_STARTDATE dbo.UDT_FUZZYDATE = '00000000',
@EDUCATIONALHISTORY_ENDDATE dbo.UDT_FUZZYDATE = '00000000',
@EDUCATIONALHISTORY_KNOWNNAME nvarchar(50) = '',
@EDUCATIONALHISTORY_FRATERNITY nvarchar(50) = '',
@SPOUSEID uniqueidentifier = null,
@SPOUSE_RELATIONSHIPTYPECODEID uniqueidentifier = null,
@SPOUSE_RECIPROCALTYPECODEID uniqueidentifier = null,
@SPOUSE_KEYNAME nvarchar(100) = '',
@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_EMAILADDRESS_EMAILADDRESSTYPECODEID uniqueidentifier = null,
@SPOUSE_EMAILADDRESS_EMAILADDRESS dbo.UDT_EMAILADDRESS = '',
@PRIMARYBUSINESSID uniqueidentifier = null,
@PRIMARYBUSINESS_RELATIONSHIPTYPECODEID uniqueidentifier = null,
@PRIMARYBUSINESS_RECIPROCALTYPECODEID uniqueidentifier = null,
@PRIMARYBUSINESS_KEYNAME nvarchar(100) = '',
@PRIMARYBUSINESS_PHONE_PHONETYPECODEID uniqueidentifier = null,
@PRIMARYBUSINESS_PHONE_NUMBER nvarchar(100) = '',
@PRIMARYBUSINESS_EMAILADDRESS_EMAILADDRESSTYPECODEID uniqueidentifier = null,
@PRIMARYBUSINESS_EMAILADDRESS_EMAILADDRESS dbo.UDT_EMAILADDRESS = '',
@PRIMARYBUSINESS_ADDRESS_ADDRESSTYPECODEID uniqueidentifier = null,
@PRIMARYBUSINESS_ADDRESS_COUNTRYID uniqueidentifier = null,
@PRIMARYBUSINESS_ADDRESS_ADDRESSBLOCK nvarchar(150) = '',
@PRIMARYBUSINESS_ADDRESS_CITY nvarchar(50) = '',
@PRIMARYBUSINESS_ADDRESS_STATEID uniqueidentifier = null,
@PRIMARYBUSINESS_ADDRESS_POSTCODE nvarchar(12) = '',
@PRIMARYBUSINESS_ADDRESS_CART nvarchar(10) = '',
@PRIMARYBUSINESS_ADDRESS_DPC nvarchar(8) = '',
@PRIMARYBUSINESS_ADDRESS_LOT nvarchar(5) = '',
@PRIMARYBUSINESS_ADDRESS_DONOTMAIL bit = 0,
@PRIMARYBUSINESS_INDUSTRYCODEID uniqueidentifier = null,
@PRIMARYBUSINESS_NUMEMPLOYEES int = 0,
@PRIMARYBUSINESS_NUMSUBSIDIARIES int = 0,
@PRIMARYBUSINESS_WEBADDRESS dbo.UDT_WEBADDRESS = '',
@PRIMARYBUSINESS_PARENTCORPID uniqueidentifier = null,
@CONSTITUENCY xml = null,
@INTEREST xml = null,
@EDUCATIONALMAJOR xml = null,
@EDUCATIONALMINOR xml = null,
@SPOUSE_COPY_ADDRESS bit = 1,
@SPOUSE_COPY_PHONENUMBER bit = 1,
@SPOUSE_COPY_EMAILADDRESS bit = 1,
@CONSTIT_SECURITY_ATTRIBUTEID uniqueidentifier = null,
@ADDRESS_COUNTYCODEID uniqueidentifier = null,
@ADDRESS_OMITFROMVALIDATION bit = 0,
@ADDRESS_CONGRESSIONALDISTRICTCODEID uniqueidentifier = null,
@ADDRESS_STATEHOUSEDISTRICTCODEID uniqueidentifier = null,
@ADDRESS_STATESENATEDISTRICTCODEID uniqueidentifier = null,
@ADDRESS_LOCALPRECINCTCODEID uniqueidentifier = null,
@ADDRESS_INFOSOURCECODEID uniqueidentifier = null,
@ADDRESS_REGIONCODEID uniqueidentifier = null,
@ADDRESS_LASTVALIDATIONATTEMPTDATE datetime = null,
@ADDRESS_VALIDATIONMESSAGE nvarchar(200) = '',
@ADDRESS_CERTIFICATIONDATA int = 0,
@GROUPTYPEID uniqueidentifier = null,
@GROUPSTARTDATE datetime = null,
@GROUPDESCRIPTION nvarchar(300) = '',
@GROUPMEMBERS xml = null,
@ADDRESS_DONOTMAILREASONCODEID uniqueidentifier = null,
@PRIMARYBUSINESS_ADDRESS_DONOTMAILREASONCODEID uniqueidentifier = null,
@EDUCATIONALHISTORY_ACADEMICCATALOGPROGRAMID uniqueidentifier = null,
@EDUCATIONALHISTORY_EDUCATIONALPROGRAMCODEID uniqueidentifier = null,
@EDUCATIONALHISTORY_ACADEMICCATALOGDEGREEID uniqueidentifier = null,
@EDUCATIONALHISTORY_EDUCATIONALAWARDCODEID uniqueidentifier = null,
@EDUCATIONALHISTORY_PREFERREDCLASSYEAR dbo.UDT_YEAR = 0,
@EDUCATIONALHISTORY_EDUCATIONALSOURCECODEID uniqueidentifier = null,
@EDUCATIONALHISTORY_EDUCATIONALSOURCEDATE dbo.UDT_FUZZYDATE = '00000000',
@EDUCATIONALHISTORY_COMMENT nvarchar(500) = '',
@AFFILIATEDADDITIONALINFORMATION xml = null,
@UNAFFILIATEDADDITIONALINFORMATION xml = null,
@EDUCATIONALINVOLVEMENT xml = null,
@ALTERNATELOOKUPIDS xml = null,
@EDUCATIONALHISTORY_DATEGRADUATED dbo.UDT_FUZZYDATE = '00000000',
@EDUCATIONALHISTORY_DATELEFT dbo.UDT_FUZZYDATE = '00000000',
@EDUCATIONALHISTORY_LEVELCODEID uniqueidentifier = null,
@EDUCATIONALHISTORY_REASONCODEID uniqueidentifier = null
) as
set nocount on;
declare
@CURRENTDATE datetime,
@ErrorMessage nvarchar(1000),
@InfoMsg nvarchar(100),
@ErrorSeverity int,
@ErrorState int;
if @ID is null
set @ID = newid();
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
set @CURRENTDATE = getdate();
begin try
declare @ADDRESSINCLUDED bit;
set @ADDRESSINCLUDED = 0;
if (@ADDRESS_ADDRESSTYPECODEID is not null) or (@ADDRESS_COUNTRYID is not null) or
(@ADDRESS_STATEID is not null) or (coalesce(@ADDRESS_ADDRESSBLOCK,'') <> '') or
(coalesce(@ADDRESS_CITY,'') <> '') or (coalesce(@ADDRESS_POSTCODE,'') <> '') or
(coalesce(@ADDRESS_CART,'') <> '') or (coalesce(@ADDRESS_DPC,'') <> '') or
(coalesce(@ADDRESS_LOT,'') <> '') or (coalesce(@ADDRESS_STARTDATE,'0000') <> '0000') or
(coalesce(@ADDRESS_ENDDATE,'0000') <> '0000')
set @ADDRESSINCLUDED = 1;
if @ADDRESSINCLUDED = 1 begin
if @ADDRESS_COUNTRYID is null
exec @ADDRESS_COUNTRYID = dbo.UFN_COUNTRY_GETDEFAULT;
if dbo.UFN_STATE_GETCOUNTRY(@ADDRESS_STATEID, @ADDRESS_COUNTRYID) <> @ADDRESS_COUNTRYID begin
raiserror('Constituent - invalid state for country.', 13, 1);
return 1;
end
end
declare @PRIMARYBUSINESS_ADDRESSINCLUDED bit;
set @PRIMARYBUSINESS_ADDRESSINCLUDED = 0;
if (@PRIMARYBUSINESS_ADDRESS_ADDRESSTYPECODEID is not null) or (@PRIMARYBUSINESS_ADDRESS_COUNTRYID is not null) or
(@PRIMARYBUSINESS_ADDRESS_STATEID is not null) or (coalesce(@PRIMARYBUSINESS_ADDRESS_ADDRESSBLOCK,'') <> '') or
(coalesce(@PRIMARYBUSINESS_ADDRESS_CITY,'') <> '') or (coalesce(@PRIMARYBUSINESS_ADDRESS_POSTCODE,'') <> '') or
(coalesce(@PRIMARYBUSINESS_ADDRESS_CART,'') <> '') or (coalesce(@PRIMARYBUSINESS_ADDRESS_DPC,'') <> '') or
(coalesce(@PRIMARYBUSINESS_ADDRESS_LOT,'') <> '')
set @PRIMARYBUSINESS_ADDRESSINCLUDED = 1;
if @PRIMARYBUSINESS_ADDRESSINCLUDED = 1 begin
if @PRIMARYBUSINESS_ADDRESS_COUNTRYID is null
exec @PRIMARYBUSINESS_ADDRESS_COUNTRYID = dbo.UFN_COUNTRY_GETDEFAULT;
if dbo.UFN_STATE_GETCOUNTRY(@PRIMARYBUSINESS_ADDRESS_STATEID, @PRIMARYBUSINESS_ADDRESS_COUNTRYID) <> @PRIMARYBUSINESS_ADDRESS_COUNTRYID begin
raiserror('Primary business - invalid state for country.', 13, 1);
return 1;
end
end
if (@PRIMARYADDRESSEE_NAMEFORMATTYPECODEID is not null) and (@PRIMARYADDRESSEE_NAMEFORMATFUNCTIONID is not null) and
(@PRIMARYSALUTATION_NAMEFORMATTYPECODEID is not null) and (@PRIMARYSALUTATION_NAMEFORMATFUNCTIONID is not null) and
(@PRIMARYADDRESSEE_NAMEFORMATTYPECODEID = @PRIMARYSALUTATION_NAMEFORMATTYPECODEID) and
(@PRIMARYADDRESSEE_NAMEFORMATFUNCTIONID <> @PRIMARYSALUTATION_NAMEFORMATFUNCTIONID) begin
raiserror('Only one name format can be specified per name format type.',13,1);
return 1;
end
exec dbo.USP_PHONES_VALIDATEPHONES @PHONES;
exec dbo.USP_CONSTITUENCIES_VALIDATECONSTITUENCIES @CONSTITUENCY;
-- If the constituent is a group or household, verify only one member was set as primary
declare @GROUPMEMBERSTABLE table
(
CONSTITUENTID uniqueidentifier,
ISPRIMARY bit
)
if @ISORGANIZATION = 2 or @ISORGANIZATION = 3
begin
insert into @GROUPMEMBERSTABLE
(
CONSTITUENTID,
ISPRIMARY
)
select
CONSTITUENTID,
ISPRIMARY
from dbo.UFN_CONSTITUENTBATCH_GETGROUPMEMBERS_FROMITEMLISTXML(@GROUPMEMBERS)
declare @PRIMARYMEMBERCOUNT int
select @PRIMARYMEMBERCOUNT = count(*)
from @GROUPMEMBERSTABLE
where ISPRIMARY = 1
if @PRIMARYMEMBERCOUNT > 1
begin
raiserror('Only one constituent can be the primary member.', 13, 1)
return 1
end
if exists(select CONSTITUENTID from @GROUPMEMBERSTABLE group by CONSTITUENTID having count(*) > 1)
begin
raiserror('A constituent can only be added as a member once.', 13, 1)
return 1
end
-- If this is a household, verify the members being added aren't already in an existing household
if @ISORGANIZATION = 2
begin
if exists ( select 1 from @GROUPMEMBERSTABLE GROUPMEMBERSTABLE
inner join dbo.GROUPMEMBER on GROUPMEMBER.MEMBERID = GROUPMEMBERSTABLE.CONSTITUENTID
inner join dbo.GROUPDATA on GROUPMEMBER.GROUPID = GROUPDATA.ID
where GROUPDATA.GROUPTYPECODE = 0)
begin
raiserror('A member already belongs to a household.', 13, 1)
return 1
end
end
end
if @VALIDATEONLY = 1 begin
if exists
(select 1
from dbo.CONSTITUENT
where @CUSTOMIDENTIFIER <> '' and CONSTITUENT.CUSTOMIDENTIFIER = @CUSTOMIDENTIFIER
) begin
raiserror('Lookup ID must be unique.', 13, 1);
return 1;
end
else if
(select count(BATCHCONSTITUENT.ID)
from dbo.BATCHCONSTITUENT
inner join dbo.BATCH on BATCH.ID = BATCHCONSTITUENT.BATCHID and BATCH.BATCHNUMBER = @BATCHNUMBER
where @CUSTOMIDENTIFIER <> '' and BATCHCONSTITUENT.CUSTOMID = @CUSTOMIDENTIFIER
) > 1 begin
raiserror('The Lookup ID has multiple occurrences in this batch.', 13, 1);
return 1;
end
if (not @EDUCATIONALHISTORY_STARTDATE is null and not @EDUCATIONALHISTORY_DATEGRADUATED is null) and @EDUCATIONALHISTORY_CONSTITUENCYSTATUSCODE = 3 and ((dbo.UFN_DATE_EARLIESTFROMFUZZYDATE(@EDUCATIONALHISTORY_STARTDATE) > dbo.UFN_DATE_LATESTFROMFUZZYDATE(@EDUCATIONALHISTORY_DATEGRADUATED))) begin
raiserror('Educational date graduated must not be earlier than educational start date.',13,1);
return 1;
end
if (not @EDUCATIONALHISTORY_STARTDATE is null and not @EDUCATIONALHISTORY_DATELEFT is null) and @EDUCATIONALHISTORY_CONSTITUENCYSTATUSCODE = 2 and ((dbo.UFN_DATE_EARLIESTFROMFUZZYDATE(@EDUCATIONALHISTORY_STARTDATE) > dbo.UFN_DATE_LATESTFROMFUZZYDATE(@EDUCATIONALHISTORY_DATELEFT))) begin
raiserror('Educational date left must not be earlier than educational start date.',13,1);
return 1;
end
end
else if @VALIDATEONLY = 0 begin
if @ISORGANIZATION = 0 -- individual
begin
insert into dbo.CONSTITUENT
(
[ID],
[KEYNAME],
[FIRSTNAME],
[MIDDLENAME],
[MAIDENNAME],
[NICKNAME],
[TITLECODEID],
[SUFFIXCODEID],
[BIRTHDATE],
[GENDERCODE],
[WEBADDRESS],
[ISORGANIZATION],
[CUSTOMIDENTIFIER],
[ISCONSTITUENT],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
values
(
@ID,
@KEYNAME,
@FIRSTNAME,
@MIDDLENAME,
@MAIDENNAME,
@NICKNAME,
@TITLECODEID,
@SUFFIXCODEID,
@BIRTHDATE,
@GENDERCODE,
@WEBADDRESS,
@ISORGANIZATION,
@CUSTOMIDENTIFIER,
1, -- ISCONSTITUENT
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
end
else if @ISORGANIZATION = 1 -- organization
begin
declare @KEYNAMEBODY nvarchar(100);
declare @KEYNAMEPREFIX nvarchar(50);
exec dbo.USP_PARSE_ORGANIZATION_NAME @KEYNAME, @KEYNAMEBODY output, @KEYNAMEPREFIX output;
insert into dbo.CONSTITUENT
(
[ID],
[KEYNAME],
[KEYNAMEPREFIX],
[WEBADDRESS],
[ISORGANIZATION],
[CUSTOMIDENTIFIER],
[ISCONSTITUENT],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
values
(
@ID,
@KEYNAMEBODY,
@KEYNAMEPREFIX,
@WEBADDRESS,
@ISORGANIZATION,
@CUSTOMIDENTIFIER,
1, -- ISCONSTITUENT
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
if (@INDUSTRYCODEID is not null) or (@PARENTCORPID is not null) or
(@NUMEMPLOYEES > 0) or (@NUMSUBSIDIARIES > 0)
begin
insert into dbo.ORGANIZATIONDATA
(
[ID],
[INDUSTRYCODEID],
[PARENTCORPID],
[NUMEMPLOYEES],
[NUMSUBSIDIARIES],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
values
(
@ID,
@INDUSTRYCODEID,
@PARENTCORPID,
@NUMEMPLOYEES,
@NUMSUBSIDIARIES,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
end
end
else if (@ISORGANIZATION = 2 or @ISORGANIZATION = 3)
begin
insert into dbo.CONSTITUENT
(
[ID],
[KEYNAME],
[WEBADDRESS],
[ISORGANIZATION],
[ISGROUP],
[CUSTOMIDENTIFIER],
[ISCONSTITUENT],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
values
(
@ID,
@KEYNAME,
@WEBADDRESS,
0, -- ISORGANIZATION
1, -- ISGROUP
@CUSTOMIDENTIFIER,
1, -- ISCONSTITUENT
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
insert into dbo.GROUPDATA
(
ID,
GROUPTYPECODE,
STARTDATE,
GROUPTYPEID,
[DESCRIPTION],
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values
(
@ID,
case
when @ISORGANIZATION = 2 then 0
when @ISORGANIZATION = 3 then 1
else null
end,
@GROUPSTARTDATE,
@GROUPTYPEID,
@GROUPDESCRIPTION,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
end
if @CONSTIT_SECURITY_ATTRIBUTEID is not null
insert into dbo.[CONSTIT_SECURITY_ATTRIBUTE_ASSIGNMENT]
(
[CONSTIT_SECURITY_ATTRIBUTEID],
[CONSTITUENTID],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
values
(
@CONSTIT_SECURITY_ATTRIBUTEID,
@ID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
if @ISDECEASED = 1 begin
insert into dbo.[DECEASEDCONSTITUENT]
(
[ID],
[DECEASEDDATE],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
values
(
@ID,
@DECEASEDDATE,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
end
if @ADDRESSINCLUDED = 1 begin
declare @ADDRESSID uniqueidentifier;
set @ADDRESSID = newID();
insert into dbo.[ADDRESS]
(
[ID],
[CONSTITUENTID],
[ADDRESSTYPECODEID],
[ISPRIMARY],
[DONOTMAIL],
[DONOTMAILREASONCODEID],
[COUNTRYID],
[STATEID],
[ADDRESSBLOCK],
[CITY],
[POSTCODE],
[CART],
[DPC],
[LOT],
[STARTDATE],
[ENDDATE],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
values
(
@ADDRESSID,
@ID,
@ADDRESS_ADDRESSTYPECODEID,
1,
@ADDRESS_DONOTMAIL,
@ADDRESS_DONOTMAILREASONCODEID,
@ADDRESS_COUNTRYID,
@ADDRESS_STATEID,
@ADDRESS_ADDRESSBLOCK,
@ADDRESS_CITY,
@ADDRESS_POSTCODE,
@ADDRESS_CART,
@ADDRESS_DPC,
@ADDRESS_LOT,
@ADDRESS_STARTDATE,
@ADDRESS_ENDDATE,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
insert into dbo.ADDRESSVALIDATIONUPDATE
(
[ID],
[COUNTYCODEID],
[CONGRESSIONALDISTRICTCODEID],
[STATEHOUSEDISTRICTCODEID],
[STATESENATEDISTRICTCODEID],
[LOCALPRECINCTCODEID],
[INFOSOURCECODEID],
[REGIONCODEID],
[LASTVALIDATIONATTEMPTDATE],
[VALIDATIONMESSAGE],
[OMITFROMVALIDATION],
[CERTIFICATIONDATA],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
values
(
@ADDRESSID,
@ADDRESS_COUNTYCODEID,
@ADDRESS_CONGRESSIONALDISTRICTCODEID,
@ADDRESS_STATEHOUSEDISTRICTCODEID,
@ADDRESS_STATESENATEDISTRICTCODEID,
@ADDRESS_LOCALPRECINCTCODEID,
@ADDRESS_INFOSOURCECODEID,
@ADDRESS_REGIONCODEID,
@ADDRESS_LASTVALIDATIONATTEMPTDATE,
@ADDRESS_VALIDATIONMESSAGE,
@ADDRESS_OMITFROMVALIDATION,
@ADDRESS_CERTIFICATIONDATA,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
end
exec dbo.USP_CONSTITUENT_GETPHONES_ADDFROMXML @ID, @PHONES, @CHANGEAGENTID;
if (@EMAILADDRESS_EMAILADDRESSTYPECODEID is not null) or (coalesce(@EMAILADDRESS_EMAILADDRESS,'') <> '') begin
insert into dbo.[EMAILADDRESS]
(
[CONSTITUENTID],
[EMAILADDRESSTYPECODEID],
[EMAILADDRESS],
[ISPRIMARY],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
values
(
@ID,
@EMAILADDRESS_EMAILADDRESSTYPECODEID,
@EMAILADDRESS_EMAILADDRESS,
1,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
end
if (@PRIMARYADDRESSEE_NAMEFORMATTYPECODEID is not null) and (@PRIMARYADDRESSEE_NAMEFORMATFUNCTIONID is not null) begin
begin try
insert into dbo.[NAMEFORMAT]
(
[CONSTITUENTID],
[NAMEFORMATTYPECODEID],
[NAMEFORMATFUNCTIONID],
[PRIMARYADDRESSEE],
[PRIMARYSALUTATION],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
values
(
@ID,
@PRIMARYADDRESSEE_NAMEFORMATTYPECODEID,
@PRIMARYADDRESSEE_NAMEFORMATFUNCTIONID,
1,
case when @PRIMARYADDRESSEE_NAMEFORMATTYPECODEID = @PRIMARYSALUTATION_NAMEFORMATTYPECODEID then 1 else 0 end,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
end try
begin catch
set @InfoMsg='BBERR_ORIGINAL_ERROR:50001';
raiserror (@InfoMsg,1,11);
select
@ErrorMessage = ERROR_MESSAGE(),
@ErrorSeverity = ERROR_SEVERITY(),
@ErrorState = ERROR_STATE();
raiserror(@ErrorMessage,@ErrorSeverity,@ErrorState);
return 1;
end catch
end
if (@PRIMARYSALUTATION_NAMEFORMATTYPECODEID is not null) and (@PRIMARYSALUTATION_NAMEFORMATFUNCTIONID is not null) and
((@PRIMARYADDRESSEE_NAMEFORMATTYPECODEID is null) or (@PRIMARYADDRESSEE_NAMEFORMATTYPECODEID <> @PRIMARYSALUTATION_NAMEFORMATTYPECODEID)) begin
begin try
insert into dbo.[NAMEFORMAT]
(
[CONSTITUENTID],
[NAMEFORMATTYPECODEID],
[NAMEFORMATFUNCTIONID],
[PRIMARYADDRESSEE],
[PRIMARYSALUTATION],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
values
(
@ID,
@PRIMARYSALUTATION_NAMEFORMATTYPECODEID,
@PRIMARYSALUTATION_NAMEFORMATFUNCTIONID,
0,
1,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
end try
begin catch
set @InfoMsg='BBERR_ORIGINAL_ERROR:50002';
raiserror (@InfoMsg,1,11);
select
@ErrorMessage = ERROR_MESSAGE(),
@ErrorSeverity = ERROR_SEVERITY(),
@ErrorState = ERROR_STATE();
raiserror(@ErrorMessage,@ErrorSeverity,@ErrorState);
return 1;
end catch
end
/*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 and @ISORGANIZATION = 0))
and (((@PRIMARYADDRESSEE_NAMEFORMATTYPECODEID is null)
and (@PRIMARYADDRESSEE_NAMEFORMATFUNCTIONID is null))
or ((NFD.PRIMARYADDRESSEE <> 1)
and (NFD.NAMEFORMATTYPECODEID <> @PRIMARYADDRESSEE_NAMEFORMATTYPECODEID)))
and (((@PRIMARYSALUTATION_NAMEFORMATTYPECODEID is null)
and (@PRIMARYSALUTATION_NAMEFORMATFUNCTIONID is null))
or ((NFD.PRIMARYSALUTATION <> 1)
and (NFD.NAMEFORMATTYPECODEID <> @PRIMARYSALUTATION_NAMEFORMATTYPECODEID)))
/*End name format defaults*/
if (@EDUCATIONALHISTORY_EDUCATIONALINSTITUTIONID is not null) begin
declare @EDUCATIONALHISTORYID uniqueidentifier;
set @EDUCATIONALHISTORYID = newid();
declare @ISAFFILIATED bit;
select
@ISAFFILIATED = ISAFFILIATED
from dbo.EDUCATIONALINSTITUTION
where
ID = @EDUCATIONALHISTORY_EDUCATIONALINSTITUTIONID;
if @ISAFFILIATED = 1
begin
insert into dbo.[EDUCATIONALHISTORY]
(
[ID],
[CONSTITUENTID],
[EDUCATIONALINSTITUTIONID],
[ISPRIMARYRECORD],
[KNOWNNAME],
[EDUCATIONALHISTORYTYPECODEID],
[EDUCATIONALHISTORYSTATUSCODEID],
[CONSTITUENCYSTATUSCODE],
[STARTDATE],
[DATEGRADUATED],
[DATELEFT],
[GPA],
[CLASSOF],
[FRATERNITY],
[ACADEMICCATALOGPROGRAMID],
[ACADEMICCATALOGDEGREEID],
[EDUCATIONALAWARDCODEID],
[PREFERREDCLASSYEAR],
[EDUCATIONALSOURCECODEID],
[EDUCATIONALSOURCEDATE],
[COMMENT],
[EDUCATIONALHISTORYLEVELCODEID],
[EDUCATIONALHISTORYREASONCODEID],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
values
(
@EDUCATIONALHISTORYID,
@ID,
@EDUCATIONALHISTORY_EDUCATIONALINSTITUTIONID,
@EDUCATIONALHISTORY_ISPRIMARYRECORD,
@EDUCATIONALHISTORY_KNOWNNAME,
@EDUCATIONALHISTORY_EDUCATIONALHISTORYTYPECODEID,
@EDUCATIONALHISTORY_EDUCATIONALHISTORYSTATUSCODEID,
@EDUCATIONALHISTORY_CONSTITUENCYSTATUSCODE,
@EDUCATIONALHISTORY_STARTDATE,
@EDUCATIONALHISTORY_DATEGRADUATED,
@EDUCATIONALHISTORY_DATELEFT,
@EDUCATIONALHISTORY_GPA,
@EDUCATIONALHISTORY_CLASSOF,
@EDUCATIONALHISTORY_FRATERNITY,
@EDUCATIONALHISTORY_ACADEMICCATALOGPROGRAMID,
@EDUCATIONALHISTORY_ACADEMICCATALOGDEGREEID,
@EDUCATIONALHISTORY_EDUCATIONALAWARDCODEID,
@EDUCATIONALHISTORY_PREFERREDCLASSYEAR,
@EDUCATIONALHISTORY_EDUCATIONALSOURCECODEID,
@EDUCATIONALHISTORY_EDUCATIONALSOURCEDATE,
@EDUCATIONALHISTORY_COMMENT,
@EDUCATIONALHISTORY_LEVELCODEID,
@EDUCATIONALHISTORY_REASONCODEID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
exec dbo.USP_EDUCATIONALHISTORY_GETAFFILIATEDADDITIONALINFORMATION_ADDFROMXML @EDUCATIONALHISTORYID, @AFFILIATEDADDITIONALINFORMATION, @CHANGEAGENTID;
end
else
begin
insert into dbo.[EDUCATIONALHISTORY]
(
[ID],
[CONSTITUENTID],
[EDUCATIONALINSTITUTIONID],
[ISPRIMARYRECORD],
[KNOWNNAME],
[EDUCATIONALHISTORYTYPECODEID],
[EDUCATIONALHISTORYSTATUSCODEID],
[CONSTITUENCYSTATUSCODE],
[EDUCATIONALDEGREECODEID],
[STARTDATE],
[DATEGRADUATED],
[DATELEFT],
[GPA],
[CLASSOF],
[FRATERNITY],
[EDUCATIONALPROGRAMCODEID],
[EDUCATIONALAWARDCODEID],
[PREFERREDCLASSYEAR],
[EDUCATIONALSOURCECODEID],
[EDUCATIONALSOURCEDATE],
[COMMENT],
[EDUCATIONALHISTORYLEVELCODEID],
[EDUCATIONALHISTORYREASONCODEID],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
values
(
@EDUCATIONALHISTORYID,
@ID,
@EDUCATIONALHISTORY_EDUCATIONALINSTITUTIONID,
@EDUCATIONALHISTORY_ISPRIMARYRECORD,
@EDUCATIONALHISTORY_KNOWNNAME,
@EDUCATIONALHISTORY_EDUCATIONALHISTORYTYPECODEID,
@EDUCATIONALHISTORY_EDUCATIONALHISTORYSTATUSCODEID,
@EDUCATIONALHISTORY_CONSTITUENCYSTATUSCODE,
@EDUCATIONALHISTORY_EDUCATIONALDEGREECODEID,
@EDUCATIONALHISTORY_STARTDATE,
@EDUCATIONALHISTORY_DATEGRADUATED,
@EDUCATIONALHISTORY_DATELEFT,
@EDUCATIONALHISTORY_GPA,
@EDUCATIONALHISTORY_CLASSOF,
@EDUCATIONALHISTORY_FRATERNITY,
@EDUCATIONALHISTORY_EDUCATIONALPROGRAMCODEID,
@EDUCATIONALHISTORY_EDUCATIONALAWARDCODEID,
@EDUCATIONALHISTORY_PREFERREDCLASSYEAR,
@EDUCATIONALHISTORY_EDUCATIONALSOURCECODEID,
@EDUCATIONALHISTORY_EDUCATIONALSOURCEDATE,
@EDUCATIONALHISTORY_COMMENT,
@EDUCATIONALHISTORY_LEVELCODEID,
@EDUCATIONALHISTORY_REASONCODEID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
exec dbo.USP_EDUCATIONALHISTORY_GETUNAFFILIATEDADDITIONALINFORMATION_ADDFROMXML @EDUCATIONALHISTORYID, @UNAFFILIATEDADDITIONALINFORMATION, @CHANGEAGENTID;
end
exec dbo.USP_EDUCATIONALHISTORY_GETMAJOR_ADDFROMXML @EDUCATIONALHISTORYID, @EDUCATIONALMAJOR, @CHANGEAGENTID;
exec dbo.USP_EDUCATIONALHISTORY_GETMINOR_ADDFROMXML @EDUCATIONALHISTORYID, @EDUCATIONALMINOR, @CHANGEAGENTID;
end
exec dbo.USP_CONSTITUENT_GETEDUCATIONALINVOLVEMENT_ADDFROMXML @ID, @EDUCATIONALINVOLVEMENT, @CHANGEAGENTID;
if (@SPOUSEID is null) and (coalesce(@SPOUSE_KEYNAME,'') <> '') begin
set @SPOUSEID = newid();
begin try
insert into dbo.[CONSTITUENT]
(
[ID],
[KEYNAME],
[FIRSTNAME],
[MIDDLENAME],
[MAIDENNAME],
[NICKNAME],
[TITLECODEID],
[SUFFIXCODEID],
[GENDERCODE],
[BIRTHDATE],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
values
(
@SPOUSEID,
@SPOUSE_KEYNAME,
@SPOUSE_FIRSTNAME,
@SPOUSE_MIDDLENAME,
@SPOUSE_MAIDENNAME,
@SPOUSE_NICKNAME,
@SPOUSE_TITLECODEID,
@SPOUSE_SUFFIXCODEID,
@SPOUSE_GENDERCODE,
@SPOUSE_BIRTHDATE,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
end try
begin catch
set @InfoMsg='BBERR_ORIGINAL_ERROR:50003';
raiserror (@InfoMsg,1,11);
select
@ErrorMessage = ERROR_MESSAGE(),
@ErrorSeverity = ERROR_SEVERITY(),
@ErrorState = ERROR_STATE();
raiserror(@ErrorMessage,@ErrorSeverity,@ErrorState);
return 1;
end catch
--Bug 4965 - AdamBu - 9/23/08
-- If security on the new constituent is set and a new spouse or household
-- is created for that constituent, set them with the same security.
if @CONSTIT_SECURITY_ATTRIBUTEID is not null
insert into dbo.[CONSTIT_SECURITY_ATTRIBUTE_ASSIGNMENT]
(
[CONSTIT_SECURITY_ATTRIBUTEID],
[CONSTITUENTID],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
values
(
@CONSTIT_SECURITY_ATTRIBUTEID,
@SPOUSEID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
/*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_EMAILADDRESS_EMAILADDRESSTYPECODEID is not null) or (coalesce(@SPOUSE_EMAILADDRESS_EMAILADDRESS,'') <> '') begin
begin try
insert into dbo.[EMAILADDRESS]
(
[CONSTITUENTID],
[EMAILADDRESSTYPECODEID],
[EMAILADDRESS],
[ISPRIMARY],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
values
(
@SPOUSEID,
@SPOUSE_EMAILADDRESS_EMAILADDRESSTYPECODEID,
@SPOUSE_EMAILADDRESS_EMAILADDRESS,
1,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
end try
begin catch
set @InfoMsg='BBERR_ORIGINAL_ERROR:50004';
raiserror (@InfoMsg,1,11);
select
@ErrorMessage = ERROR_MESSAGE(),
@ErrorSeverity = ERROR_SEVERITY(),
@ErrorState = ERROR_STATE();
raiserror(@ErrorMessage,@ErrorSeverity,@ErrorState);
return 1;
end catch
end
end
if (@SPOUSEID is not null) begin
begin try
insert into dbo.RELATIONSHIP
(
[RELATIONSHIPCONSTITUENTID],
[RECIPROCALCONSTITUENTID],
[RELATIONSHIPTYPECODEID],
[RECIPROCALTYPECODEID],
[ISSPOUSE],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
values
(
@ID,
@SPOUSEID,
@SPOUSE_RELATIONSHIPTYPECODEID,
@SPOUSE_RECIPROCALTYPECODEID,
1,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
end try
begin catch
set @InfoMsg='BBERR_ORIGINAL_ERROR:50005';
raiserror (@InfoMsg,1,11);
select
@ErrorMessage = ERROR_MESSAGE(),
@ErrorSeverity = ERROR_SEVERITY(),
@ErrorState = ERROR_STATE();
raiserror(@ErrorMessage,@ErrorSeverity,@ErrorState);
return 1;
end catch
declare @SPOUSE_COPY_ISPRIMARY bit;
declare @SPOUSE_COPY_EXISTINGID uniqueidentifier;
declare @SPOUSE_COPY_SEQUENCE int;
-- Only copy the address to the spouse if it is not an "empty" address
if @SPOUSE_COPY_ADDRESS = 1
and @ADDRESSINCLUDED = 1
and not
(
@ADDRESS_ADDRESSTYPECODEID is null
and coalesce(@ADDRESS_DONOTMAIL, 0) = 0
and @ADDRESS_DONOTMAILREASONCODEID is null
and @ADDRESS_STATEID is null
and coalesce(@ADDRESS_ADDRESSBLOCK, '') = ''
and coalesce(@ADDRESS_CITY, '') = ''
and coalesce(@ADDRESS_POSTCODE, '') = ''
and coalesce(@ADDRESS_CART, '') = ''
and coalesce(@ADDRESS_DPC, '') = ''
and coalesce(@ADDRESS_LOT, '') = ''
and coalesce(@ADDRESS_STARTDATE, '0000') = '0000'
and coalesce(@ADDRESS_ENDDATE, '0000') = '0000'
)
begin try
-- Remove blank address if one was created when adding the spouse (no contact info entered on the individual add form creates blank address)
delete from dbo.ADDRESS
where
CONSTITUENTID = @SPOUSEID and
ADDRESSTYPECODEID is null and
DONOTMAIL = 0 and
STARTDATE = '0000' and
ENDDATE = '0000' and
STATEID is null and
ADDRESSBLOCK = '' and
CITY = '' and
POSTCODE = '' and
CART = '' and
DPC = '' and
LOT = '';
if exists (select ID from dbo.ADDRESS where CONSTITUENTID = @SPOUSEID and ISPRIMARY = 1)
set @SPOUSE_COPY_ISPRIMARY = 0;
else
set @SPOUSE_COPY_ISPRIMARY = 1;
select
@SPOUSE_COPY_SEQUENCE = coalesce(max(SEQUENCE), 0) + 1
from
dbo.ADDRESS
where
CONSTITUENTID = @SPOUSEID;
set @SPOUSE_COPY_EXISTINGID = null;
select
@SPOUSE_COPY_EXISTINGID = ID
from
dbo.ADDRESS
where
CONSTITUENTID = @SPOUSEID and
ADDRESSTYPECODEID = @ADDRESS_ADDRESSTYPECODEID and
DONOTMAIL = @ADDRESS_DONOTMAIL and
DONOTMAILREASONCODEID = @ADDRESS_DONOTMAILREASONCODEID and
STARTDATE = @ADDRESS_STARTDATE and
ENDDATE = @ADDRESS_ENDDATE and
COUNTRYID = @ADDRESS_COUNTRYID and
STATEID = @ADDRESS_STATEID and
ADDRESSBLOCK = @ADDRESS_ADDRESSBLOCK and
CITY = @ADDRESS_CITY and
POSTCODE = @ADDRESS_POSTCODE and
CART = @ADDRESS_CART and
DPC = @ADDRESS_DPC and
LOT = @ADDRESS_LOT;
if @SPOUSE_COPY_EXISTINGID is null
insert into dbo.[ADDRESS]
(
[CONSTITUENTID],
[ADDRESSTYPECODEID],
[ISPRIMARY],
[DONOTMAIL],
[DONOTMAILREASONCODEID],
[COUNTRYID],
[STATEID],
[ADDRESSBLOCK],
[CITY],
[POSTCODE],
[CART],
[DPC],
[LOT],
[STARTDATE],
[ENDDATE],
[SEQUENCE],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
values
(
@SPOUSEID,
@ADDRESS_ADDRESSTYPECODEID,
@SPOUSE_COPY_ISPRIMARY,
@ADDRESS_DONOTMAIL,
@ADDRESS_DONOTMAILREASONCODEID,
@ADDRESS_COUNTRYID,
@ADDRESS_STATEID,
@ADDRESS_ADDRESSBLOCK,
@ADDRESS_CITY,
@ADDRESS_POSTCODE,
@ADDRESS_CART,
@ADDRESS_DPC,
@ADDRESS_LOT,
@ADDRESS_STARTDATE,
@ADDRESS_ENDDATE,
@SPOUSE_COPY_SEQUENCE,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
else
if @SPOUSE_COPY_ISPRIMARY = 1
update dbo.ADDRESS
set
ISPRIMARY = 1,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
ID = @SPOUSE_COPY_EXISTINGID
and ISPRIMARY <> 1;
end try
begin catch
set @InfoMsg='BBERR_ORIGINAL_ERROR:50012';
raiserror (@InfoMsg,1,11);
select
@ErrorMessage = ERROR_MESSAGE(),
@ErrorSeverity = ERROR_SEVERITY(),
@ErrorState = ERROR_STATE();
raiserror(@ErrorMessage,@ErrorSeverity,@ErrorState);
return 1;
end catch
if @SPOUSE_COPY_PHONENUMBER = 1
begin try
set @SPOUSE_COPY_EXISTINGID = null;
declare @SPOUSE_COPY_PHONEINCLUDED bit;
set @SPOUSE_COPY_PHONEINCLUDED = 0;
declare @SPOUSE_COPY_PHONETYPECODEID uniqueidentifier;
declare @SPOUSE_COPY_NUMBER nvarchar(100);
select
@SPOUSE_COPY_PHONETYPECODEID = PHONETYPECODEID,
@SPOUSE_COPY_NUMBER = NUMBER,
@SPOUSE_COPY_PHONEINCLUDED = ISPRIMARY
from
dbo.PHONE
where
CONSTITUENTID = @ID and
ISPRIMARY = 1;
if @SPOUSE_COPY_PHONEINCLUDED = 1
begin
if exists (select ID from dbo.PHONE where CONSTITUENTID = @SPOUSEID and ISPRIMARY = 1)
set @SPOUSE_COPY_ISPRIMARY = 0;
else
set @SPOUSE_COPY_ISPRIMARY = 1;
select
@SPOUSE_COPY_SEQUENCE = coalesce(max(SEQUENCE), 0) + 1
from
dbo.PHONE
where
CONSTITUENTID = @SPOUSEID;
select
@SPOUSE_COPY_EXISTINGID = ID
from
dbo.PHONE
where
CONSTITUENTID = @SPOUSEID and
PHONETYPECODEID = @SPOUSE_COPY_PHONETYPECODEID and
NUMBER = @SPOUSE_COPY_NUMBER;
if @SPOUSE_COPY_EXISTINGID is null
insert into dbo.PHONE
(
CONSTITUENTID,
PHONETYPECODEID,
NUMBER,
ISPRIMARY,
SEQUENCE,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values
(
@SPOUSEID,
@SPOUSE_COPY_PHONETYPECODEID,
@SPOUSE_COPY_NUMBER,
@SPOUSE_COPY_ISPRIMARY,
@SPOUSE_COPY_SEQUENCE,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
end
end try
begin catch
set @InfoMsg='BBERR_ORIGINAL_ERROR:50013';
raiserror (@InfoMsg,1,11);
select
@ErrorMessage = ERROR_MESSAGE(),
@ErrorSeverity = ERROR_SEVERITY(),
@ErrorState = ERROR_STATE();
raiserror(@ErrorMessage,@ErrorSeverity,@ErrorState);
return 1;
end catch
if @SPOUSE_COPY_EMAILADDRESS = 1
and
(
(@EMAILADDRESS_EMAILADDRESSTYPECODEID is not null)
or (coalesce(@EMAILADDRESS_EMAILADDRESS, '') <> '')
)
begin try
set @SPOUSE_COPY_EXISTINGID = null;
if exists (select ID from dbo.EMAILADDRESS where CONSTITUENTID = @SPOUSEID and ISPRIMARY = 1)
set @SPOUSE_COPY_ISPRIMARY = 0;
else
set @SPOUSE_COPY_ISPRIMARY = 1;
select
@SPOUSE_COPY_SEQUENCE = coalesce(max(SEQUENCE), 0) + 1
from
dbo.EMAILADDRESS
where
CONSTITUENTID = @SPOUSEID;
select
@SPOUSE_COPY_EXISTINGID = ID
from
dbo.EMAILADDRESS
where
CONSTITUENTID = @SPOUSEID and
EMAILADDRESSTYPECODEID = @EMAILADDRESS_EMAILADDRESSTYPECODEID and
EMAILADDRESS = @EMAILADDRESS_EMAILADDRESS;
if @SPOUSE_COPY_EXISTINGID is null
insert into dbo.EMAILADDRESS
(
CONSTITUENTID,
EMAILADDRESSTYPECODEID,
EMAILADDRESS,
ISPRIMARY,
SEQUENCE,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values
(
@SPOUSEID,
@EMAILADDRESS_EMAILADDRESSTYPECODEID,
@EMAILADDRESS_EMAILADDRESS,
@SPOUSE_COPY_ISPRIMARY,
@SPOUSE_COPY_SEQUENCE,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
end try
begin catch
set @InfoMsg='BBERR_ORIGINAL_ERROR:50014';
raiserror (@InfoMsg,1,11);
select
@ErrorMessage = ERROR_MESSAGE(),
@ErrorSeverity = ERROR_SEVERITY(),
@ErrorState = ERROR_STATE();
raiserror(@ErrorMessage,@ErrorSeverity,@ErrorState);
return 1;
end catch
declare @CURRENTDATEEARLIESTTIME date;
set @CURRENTDATEEARLIESTTIME = @CURRENTDATE;
-- get the household of the spouse
declare @SPOUSEHOUSEHOLDID uniqueidentifier;
select
@SPOUSEHOUSEHOLDID = GM.GROUPID
from
dbo.GROUPMEMBER GM
inner join
dbo.GROUPDATA GD on GD.ID = GM.GROUPID
left join
dbo.GROUPMEMBERDATERANGE GMDR on GM.ID = GMDR.GROUPMEMBERID
where
GD.GROUPTYPECODE = 0
and
GM.MEMBERID = @SPOUSEID
and ((GMDR.DATEFROM is null and (GMDR.DATETO is null or GMDR.DATETO > @CURRENTDATEEARLIESTTIME))
or (GMDR.DATETO is null and (GMDR.DATEFROM is null or GMDR.DATEFROM <= @CURRENTDATEEARLIESTTIME))
or (GMDR.DATEFROM <= @CURRENTDATEEARLIESTTIME and GMDR.DATETO > @CURRENTDATEEARLIESTTIME));
-- if the spouse is not in a household, create a new one and add them both
if (@SPOUSEHOUSEHOLDID is null) begin
declare @NAMEFORMATFUNCTIONID uniqueidentifier;
select top(1) @NAMEFORMATFUNCTIONID = NAMEFORMATFUNCTIONID from dbo.HOUSEHOLDINFO order by DATEADDED;
declare @HOUSEHOLDNAME nvarchar(154);
select @HOUSEHOLDNAME = dbo.UFN_NAMEFORMAT_FROMID(@NAMEFORMATFUNCTIONID, @ID);
declare @HOUSEHOLDID uniqueidentifier;
set @HOUSEHOLDID = newid();
-- create the household constituent/group data records
insert into dbo.CONSTITUENT
(
[ID],
[KEYNAME],
[ISORGANIZATION],
[ISGROUP],
[ISCONSTITUENT],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
values
(
@HOUSEHOLDID,
@HOUSEHOLDNAME,
0, -- ISORGANIZATION
1, -- ISGROUP
1, -- ISCONSTITUENT
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
insert into dbo.GROUPDATA
(
ID,
GROUPTYPECODE,
STARTDATE,
GROUPTYPEID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values
(
@HOUSEHOLDID,
0,
@CURRENTDATEEARLIESTTIME,
null,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
-- create the primary group member record
declare @PRIMARYGROUPMEMBERID uniqueidentifier;
exec dbo.USP_GROUPMEMBERADD @PRIMARYGROUPMEMBERID output, @CHANGEAGENTID, @HOUSEHOLDID, @ID;
update
dbo.GROUPMEMBER
set
ISPRIMARY = 1
where
ID = @PRIMARYGROUPMEMBERID;
-- create the spouse record
declare @SPOUSEGROUPMEMBERID uniqueidentifier;
exec dbo.USP_GROUPMEMBERADD @SPOUSEGROUPMEMBERID output, @CHANGEAGENTID, @HOUSEHOLDID, @SPOUSEID;
--Bug 4965 - AdamBu - 9/23/08
-- If security on the new constituent is set and a new spouse or household
-- is created for that constituent, set them with the same security.
if @CONSTIT_SECURITY_ATTRIBUTEID is not null
insert into dbo.[CONSTIT_SECURITY_ATTRIBUTE_ASSIGNMENT]
(
[CONSTIT_SECURITY_ATTRIBUTEID],
[CONSTITUENTID],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
values
(
@CONSTIT_SECURITY_ATTRIBUTEID,
@HOUSEHOLDID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
end
-- if the spouse is in a household, add the new constituent to it
else begin
declare @SPOUSEHOUSEHOLDMEMBERID uniqueidentifier;
exec dbo.USP_GROUPMEMBERADD @SPOUSEHOUSEHOLDMEMBERID output, @CHANGEAGENTID, @SPOUSEHOUSEHOLDID, @ID;
end
end
if (@PRIMARYBUSINESSID is null) and (coalesce(@PRIMARYBUSINESS_KEYNAME,'') <> '') begin
set @PRIMARYBUSINESSID = newid();
begin try
insert into dbo.[CONSTITUENT]
(
[ID],
[ISORGANIZATION],
[KEYNAME],
[WEBADDRESS],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
values
(
@PRIMARYBUSINESSID,
-1,
@PRIMARYBUSINESS_KEYNAME,
@PRIMARYBUSINESS_WEBADDRESS,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
end try
begin catch
set @InfoMsg='BBERR_ORIGINAL_ERROR:50006';
raiserror (@InfoMsg,1,11);
select
@ErrorMessage = ERROR_MESSAGE(),
@ErrorSeverity = ERROR_SEVERITY(),
@ErrorState = ERROR_STATE();
raiserror(@ErrorMessage,@ErrorSeverity,@ErrorState);
return 1;
end catch
begin try
insert into dbo.[ORGANIZATIONDATA]
(
[ID],
[INDUSTRYCODEID],
[NUMEMPLOYEES],
[NUMSUBSIDIARIES],
[PARENTCORPID],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
values
(
@PRIMARYBUSINESSID,
@PRIMARYBUSINESS_INDUSTRYCODEID,
@PRIMARYBUSINESS_NUMEMPLOYEES,
@PRIMARYBUSINESS_NUMSUBSIDIARIES,
@PRIMARYBUSINESS_PARENTCORPID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
end try
begin catch
set @InfoMsg='BBERR_ORIGINAL_ERROR:50007';
raiserror (@InfoMsg,1,11);
select
@ErrorMessage = ERROR_MESSAGE(),
@ErrorSeverity = ERROR_SEVERITY(),
@ErrorState = ERROR_STATE();
raiserror(@ErrorMessage,@ErrorSeverity,@ErrorState);
return 1;
end catch
if (@PRIMARYBUSINESS_PHONE_PHONETYPECODEID is not null) or (coalesce(@PRIMARYBUSINESS_PHONE_NUMBER,'') <> '') begin
begin try
insert into dbo.[PHONE]
(
[CONSTITUENTID],
[PHONETYPECODEID],
[NUMBER],
[ISPRIMARY],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
values
(
@PRIMARYBUSINESSID,
@PRIMARYBUSINESS_PHONE_PHONETYPECODEID,
@PRIMARYBUSINESS_PHONE_NUMBER,
1,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
end try
begin catch
set @InfoMsg='BBERR_ORIGINAL_ERROR:50008';
raiserror (@InfoMsg,1,11);
select
@ErrorMessage = ERROR_MESSAGE(),
@ErrorSeverity = ERROR_SEVERITY(),
@ErrorState = ERROR_STATE();
raiserror(@ErrorMessage,@ErrorSeverity,@ErrorState);
return 1;
end catch
end
if (@PRIMARYBUSINESS_EMAILADDRESS_EMAILADDRESSTYPECODEID is not null) or (coalesce(@PRIMARYBUSINESS_EMAILADDRESS_EMAILADDRESS,'') <> '') begin
begin try
insert into dbo.[EMAILADDRESS]
(
[CONSTITUENTID],
[EMAILADDRESSTYPECODEID],
[EMAILADDRESS],
[ISPRIMARY],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
values
(
@PRIMARYBUSINESSID,
@PRIMARYBUSINESS_EMAILADDRESS_EMAILADDRESSTYPECODEID,
@PRIMARYBUSINESS_EMAILADDRESS_EMAILADDRESS,
1,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
end try
begin catch
set @InfoMsg='BBERR_ORIGINAL_ERROR:50009';
raiserror (@InfoMsg,1,11);
select
@ErrorMessage = ERROR_MESSAGE(),
@ErrorSeverity = ERROR_SEVERITY(),
@ErrorState = ERROR_STATE();
raiserror(@ErrorMessage,@ErrorSeverity,@ErrorState);
return 1;
end catch
end
if @PRIMARYBUSINESS_ADDRESSINCLUDED = 1 begin
begin try
insert into dbo.[ADDRESS]
(
[CONSTITUENTID],
[ADDRESSTYPECODEID],
[ISPRIMARY],
[DONOTMAIL],
[DONOTMAILREASONCODEID],
[COUNTRYID],
[STATEID],
[ADDRESSBLOCK],
[CITY],
[POSTCODE],
[CART],
[DPC],
[LOT],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
values
(
@PRIMARYBUSINESSID,
@PRIMARYBUSINESS_ADDRESS_ADDRESSTYPECODEID,
1,
@PRIMARYBUSINESS_ADDRESS_DONOTMAIL,
@PRIMARYBUSINESS_ADDRESS_DONOTMAILREASONCODEID,
@PRIMARYBUSINESS_ADDRESS_COUNTRYID,
@PRIMARYBUSINESS_ADDRESS_STATEID,
@PRIMARYBUSINESS_ADDRESS_ADDRESSBLOCK,
@PRIMARYBUSINESS_ADDRESS_CITY,
@PRIMARYBUSINESS_ADDRESS_POSTCODE,
@PRIMARYBUSINESS_ADDRESS_CART,
@PRIMARYBUSINESS_ADDRESS_DPC,
@PRIMARYBUSINESS_ADDRESS_LOT,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
end try
begin catch
set @InfoMsg='BBERR_ORIGINAL_ERROR:50010';
raiserror (@InfoMsg,1,11);
select
@ErrorMessage = ERROR_MESSAGE(),
@ErrorSeverity = ERROR_SEVERITY(),
@ErrorState = ERROR_STATE();
raiserror(@ErrorMessage,@ErrorSeverity,@ErrorState);
return 1;
end catch
end
end
if (@PRIMARYBUSINESSID is not null) begin
begin try
insert into dbo.RELATIONSHIP
(
[RELATIONSHIPCONSTITUENTID],
[RECIPROCALCONSTITUENTID],
[RELATIONSHIPTYPECODEID],
[RECIPROCALTYPECODEID],
[ISPRIMARYBUSINESS],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
values
(
@ID,
@PRIMARYBUSINESSID,
@PRIMARYBUSINESS_RELATIONSHIPTYPECODEID,
@PRIMARYBUSINESS_RECIPROCALTYPECODEID,
1,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
end try
begin catch
set @InfoMsg='BBERR_ORIGINAL_ERROR:50011';
raiserror (@InfoMsg,1,11);
select
@ErrorMessage = ERROR_MESSAGE(),
@ErrorSeverity = ERROR_SEVERITY(),
@ErrorState = ERROR_STATE();
raiserror(@ErrorMessage,@ErrorSeverity,@ErrorState);
return 1;
end catch
end
if @GROUPMEMBERS is not null
begin
declare GROUPMEMBERCURSOR cursor local fast_forward for
select
CONSTITUENTID,
ISPRIMARY
from
@GROUPMEMBERSTABLE
order by ISPRIMARY desc;
declare @MEMBERID uniqueidentifier;
declare @ISPRIMARY bit;
declare @GROUPMEMBERID uniqueidentifier;
open GROUPMEMBERCURSOR;
fetch next from GROUPMEMBERCURSOR into @MEMBERID, @ISPRIMARY;
while @@FETCH_STATUS = 0
begin
set @GROUPMEMBERID = null;
exec dbo.USP_GROUPMEMBERADD @GROUPMEMBERID output, @CHANGEAGENTID, @ID, @MEMBERID;
if @ISPRIMARY = 1
update dbo.GROUPMEMBER set ISPRIMARY = 1 where ID = @GROUPMEMBERID;
fetch next from GROUPMEMBERCURSOR into @MEMBERID, @ISPRIMARY;
end
--When a cursor is used, it should be explicitly closed/deallocated in case of blocking or USP running long
close GROUPMEMBERCURSOR;
deallocate GROUPMEMBERCURSOR;
end
exec dbo.USP_CONSTITUENT_GETCONSTITUENCIES_ADDFROMXML @ID, @CONSTITUENCY, @CHANGEAGENTID;
exec dbo.USP_CONSTITUENT_GETINTERESTS_ADDFROMXML @ID, @INTEREST, @CHANGEAGENTID;
exec dbo.USP_CONSTITUENT_GETALTERNATELOOKUPIDS_ADDFROMXML @ID, @ALTERNATELOOKUPIDS, @CHANGEAGENTID;
end
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;