USP_ADD_BATCHCONSTITUENTUPDATEBATCHROW
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | |
@BATCHID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@SEQUENCE | int | IN | |
@PRIMARYRECORDID | uniqueidentifier | IN | |
@CONSTITUENTTYPECODE | tinyint | IN | |
@BIRTHDATE | UDT_FUZZYDATE | IN | |
@FIRSTNAME | nvarchar(50) | IN | |
@GENDERCODE | tinyint | IN | |
@GIVESANONYMOUSLY | bit | IN | |
@KEYNAME | nvarchar(100) | IN | |
@LOOKUP_ID | nvarchar(100) | IN | |
@MAIDENNAME | nvarchar(100) | IN | |
@MIDDLENAME | nvarchar(50) | IN | |
@NICKNAME | nvarchar(50) | IN | |
@SUFFIXCODEID | uniqueidentifier | IN | |
@TITLECODEID | uniqueidentifier | IN | |
@WEBADDRESS | UDT_WEBADDRESS | IN | |
@ALTERNATELOOKUPIDS | xml | IN | |
@SECURITYATTRIBUTES | xml | IN | |
@DECEASED | bit | IN | |
@DECEASEDDATE | UDT_FUZZYDATE | IN | |
@CONSTITUENT_SITEID | uniqueidentifier | IN | |
@INTERESTS | xml | IN | |
@PROSPECTMANAGERFUNDRAISERID | uniqueidentifier | IN | |
@ADDRESSES | xml | IN | |
@PHONES | xml | IN | |
@EMAILADDRESSES | xml | IN | |
@CONSTITUENCIES | xml | IN | |
@GROUPTYPEID | uniqueidentifier | IN | |
@GROUPDESCRIPTION | nvarchar(300) | IN | |
@GROUPSTARTDATE | datetime | IN | |
@ORG_INDUSTRYCODEID | uniqueidentifier | IN | |
@ORG_NUMEMPLOYEES | int | IN | |
@ORG_NUMSUBSIDIARIES | int | IN | |
@ORG_PARENTCORPID | uniqueidentifier | IN | |
@MARITALSTATUSCODEID | uniqueidentifier | IN | |
@SPOUSE_ID | uniqueidentifier | IN | |
@SPOUSE_TITLECODEID | uniqueidentifier | IN | |
@SPOUSE_FIRSTNAME | nvarchar(50) | IN | |
@SPOUSE_NICKNAME | nvarchar(50) | IN | |
@SPOUSE_MIDDLENAME | nvarchar(50) | IN | |
@SPOUSE_MAIDENNAME | nvarchar(100) | IN | |
@SPOUSE_LASTNAME | nvarchar(100) | IN | |
@SPOUSE_SUFFIXCODEID | uniqueidentifier | IN | |
@SPOUSE_BIRTHDATE | UDT_FUZZYDATE | IN | |
@SPOUSE_GENDERCODE | tinyint | IN | |
@SPOUSE_LOOKUPID | nvarchar(100) | IN | |
@SPOUSE_RELATIONSHIPTYPECODEID | uniqueidentifier | IN | |
@SPOUSE_RECIPROCALTYPECODEID | uniqueidentifier | IN | |
@BUSINESS_ID | uniqueidentifier | IN | |
@BUSINESS_ADDRESSBLOCK | nvarchar(150) | IN | |
@BUSINESS_ADDRESSTYPECODEID | uniqueidentifier | IN | |
@BUSINESS_CART | nvarchar(10) | IN | |
@BUSINESS_CITY | nvarchar(50) | IN | |
@BUSINESS_COUNTRYID | uniqueidentifier | IN | |
@BUSINESS_DONOTMAIL | bit | IN | |
@BUSINESS_DONOTMAILREASONCODEID | uniqueidentifier | IN | |
@BUSINESS_DPC | nvarchar(8) | IN | |
@BUSINESS_EMAILADDRESS | UDT_EMAILADDRESS | IN | |
@BUSINESS_EMAILADDRESSTYPECODEID | uniqueidentifier | IN | |
@BUSINESS_INDUSTRYCODEID | uniqueidentifier | IN | |
@BUSINESS_LOOKUPID | nvarchar(100) | IN | |
@BUSINESS_LOT | nvarchar(5) | IN | |
@BUSINESS_NAME | nvarchar(100) | IN | |
@BUSINESS_NUMEMPLOYEES | int | IN | |
@BUSINESS_NUMSUBSIDIARIES | int | IN | |
@BUSINESS_PARENTCORPID | uniqueidentifier | IN | |
@BUSINESS_PHONENUMBER | nvarchar(100) | IN | |
@BUSINESS_PHONE_COUNTRYID | uniqueidentifier | IN | |
@BUSINESS_PHONETYPECODEID | uniqueidentifier | IN | |
@BUSINESS_RELATIONSHIPTYPECODEID | uniqueidentifier | IN | |
@BUSINESS_RECIPROCALTYPECODEID | uniqueidentifier | IN | |
@BUSINESS_STATEID | uniqueidentifier | IN | |
@BUSINESS_WEBADDRESS | UDT_WEBADDRESS | IN | |
@BUSINESS_POSTCODE | nvarchar(12) | IN | |
@SPOUSE_RELATIONSHIPTYPECODEIDSIMPLELIST | uniqueidentifier | IN | |
@SPOUSE_RECIPROCALTYPECODEIDSIMPLELIST | uniqueidentifier | IN | |
@BUSINESS_RELATIONSHIPTYPECODEIDSIMPLELIST | uniqueidentifier | IN | |
@BUSINESS_RECIPROCALTYPECODEIDSIMPLELIST | uniqueidentifier | IN | |
@BUSINESS_PRIMARYSOFTCREDITRELATIONSHIPEXISTS | bit | IN | |
@BUSINESS_PRIMARYSOFTCREDITMATCHFACTOR | decimal(5, 2) | IN | |
@BUSINESS_RECIPROCALSOFTCREDITRELATIONSHIPEXISTS | bit | IN | |
@BUSINESS_RECIPROCALSOFTCREDITMATCHFACTOR | decimal(5, 2) | IN | |
@BUSINESS_PRIMARYRECOGNITIONTYPECODEID | uniqueidentifier | IN | |
@BUSINESS_RECIPROCALRECOGNITIONTYPECODEID | uniqueidentifier | IN | |
@BUSINESS_EMAILADDRESSSTARTDATE | date | IN | |
@SPOUSE_PRIMARYSOFTCREDITRELATIONSHIPEXISTS | bit | IN | |
@SPOUSE_PRIMARYSOFTCREDITMATCHFACTOR | decimal(5, 2) | IN | |
@SPOUSE_RECIPROCALSOFTCREDITRELATIONSHIPEXISTS | bit | IN | |
@SPOUSE_RECIPROCALSOFTCREDITMATCHFACTOR | decimal(5, 2) | IN | |
@SPOUSE_PRIMARYRECOGNITIONTYPECODEID | uniqueidentifier | IN | |
@SPOUSE_RECIPROCALRECOGNITIONTYPECODEID | uniqueidentifier | IN | |
@CONSTITUENT_SITES | xml | IN | |
@SPOUSE_ALTERNATELOOKUPIDS | xml | IN | |
@SPOUSE_IMPORTLOOKUPID | nvarchar(100) | IN | |
@ROWFROMBATCHUI | bit | IN | |
@BBNCTRANID | int | IN | |
@PAGEID | int | IN | |
@PAGENAME | nvarchar(100) | IN | |
@BBNCUSERID | int | IN | |
@REMOVESPOUSE | bit | IN | |
@DUPLICATERECORDID | uniqueidentifier | IN | |
@SOCIALMEDIAACCOUNTS | xml | IN | |
@RELATIONSHIPS | xml | IN | |
@NETCOMMUNITYTRANSACTIONPROCESSORID | uniqueidentifier | IN | |
@BBNCID | int | IN | |
@NAMECODE | tinyint | IN | |
@SIMILARADDRESSCODE | tinyint | IN | |
@UNSIMILARADDRESSCODE | tinyint | IN | |
@NEWADDRESSENDDATECODE | tinyint | IN | |
@NEWADDRESSPRIMARYCODE | tinyint | IN | |
@BIRTHDATERULECODE | tinyint | IN | |
@DIFFERENTPHONECODE | tinyint | IN | |
@NEWPHONEENDDATECODE | tinyint | IN | |
@NEWPHONEPRIMARYCODE | tinyint | IN | |
@DIFFERENTEMAILCODE | tinyint | IN | |
@NEWEMAILENDDATECODE | tinyint | IN | |
@NEWEMAILPRIMARYCODE | tinyint | IN | |
@USEGLOBALSETTINGS | bit | IN | |
@CREATEHISTORICALNAMECODE | tinyint | IN | |
@NAMEFORMATS | xml | IN | |
@SUBMITTEDLOOKUPID | nvarchar(100) | IN | |
@SUBMITTEDCLASSYEAR | nvarchar(4) | IN | |
@SUBMITTEDEDUCATIONALINSTITUTION | nvarchar(100) | IN | |
@DOMANUALREVIEWFORAUTOMATCH | bit | IN | |
@REQUESTSNOEMAIL | bit | IN | |
@ORIGINAL_KEYNAME | nvarchar(100) | IN | |
@ORIGINAL_FIRSTNAME | nvarchar(50) | IN | |
@SOLICITCODES | xml | IN | |
@GENDERCODEID | uniqueidentifier | IN | |
@SPOUSE_GENDERCODEID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_ADD_BATCHCONSTITUENTUPDATEBATCHROW(
@ID uniqueidentifier = null output,
@BATCHID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier,
@SEQUENCE int,
@PRIMARYRECORDID uniqueidentifier = null,
@CONSTITUENTTYPECODE tinyint = 0,
@BIRTHDATE dbo.UDT_FUZZYDATE = '00000000',
@FIRSTNAME nvarchar(50) = '',
@GENDERCODE tinyint = 0,
@GIVESANONYMOUSLY bit = 0,
@KEYNAME nvarchar(100),
@LOOKUP_ID nvarchar(100) = '',
@MAIDENNAME nvarchar(100) = '',
@MIDDLENAME nvarchar(50) = '',
@NICKNAME nvarchar(50) = '',
@SUFFIXCODEID uniqueidentifier = null,
@TITLECODEID uniqueidentifier = null,
@WEBADDRESS dbo.UDT_WEBADDRESS = '',
@ALTERNATELOOKUPIDS xml = null,
@SECURITYATTRIBUTES xml = null,
@DECEASED bit = 0,
@DECEASEDDATE dbo.UDT_FUZZYDATE = '00000000',
@CONSTITUENT_SITEID uniqueidentifier = null,
@INTERESTS xml = null,
@PROSPECTMANAGERFUNDRAISERID uniqueidentifier = null,
@ADDRESSES xml = null,
@PHONES xml = null,
@EMAILADDRESSES xml = null,
@CONSTITUENCIES xml = null,
@GROUPTYPEID uniqueidentifier = null,
@GROUPDESCRIPTION nvarchar(300) = '',
@GROUPSTARTDATE datetime = null,
@ORG_INDUSTRYCODEID uniqueidentifier = null,
@ORG_NUMEMPLOYEES int = 0,
@ORG_NUMSUBSIDIARIES int = 0,
@ORG_PARENTCORPID uniqueidentifier = null,
@MARITALSTATUSCODEID uniqueidentifier = null,
@SPOUSE_ID uniqueidentifier = null,
@SPOUSE_TITLECODEID uniqueidentifier = null,
@SPOUSE_FIRSTNAME nvarchar(50) = '',
@SPOUSE_NICKNAME nvarchar(50) = '',
@SPOUSE_MIDDLENAME nvarchar(50) = '',
@SPOUSE_MAIDENNAME nvarchar(100) = '',
@SPOUSE_LASTNAME nvarchar(100) = '',
@SPOUSE_SUFFIXCODEID uniqueidentifier = null,
@SPOUSE_BIRTHDATE dbo.UDT_FUZZYDATE = '00000000',
@SPOUSE_GENDERCODE tinyint = 0,
@SPOUSE_LOOKUPID nvarchar(100) = '',
@SPOUSE_RELATIONSHIPTYPECODEID uniqueidentifier = null,
@SPOUSE_RECIPROCALTYPECODEID uniqueidentifier = null,
@BUSINESS_ID uniqueidentifier = null,
@BUSINESS_ADDRESSBLOCK nvarchar(150) = '',
@BUSINESS_ADDRESSTYPECODEID uniqueidentifier = null,
@BUSINESS_CART nvarchar(10) = '',
@BUSINESS_CITY nvarchar(50) = '',
@BUSINESS_COUNTRYID uniqueidentifier = null,
@BUSINESS_DONOTMAIL bit = 0,
@BUSINESS_DONOTMAILREASONCODEID uniqueidentifier = null,
@BUSINESS_DPC nvarchar(8) = '',
@BUSINESS_EMAILADDRESS dbo.UDT_EMAILADDRESS = '',
@BUSINESS_EMAILADDRESSTYPECODEID uniqueidentifier = null,
@BUSINESS_INDUSTRYCODEID uniqueidentifier = null,
@BUSINESS_LOOKUPID nvarchar(100) = '',
@BUSINESS_LOT nvarchar(5) = '',
@BUSINESS_NAME nvarchar(100) = '',
@BUSINESS_NUMEMPLOYEES int = 0,
@BUSINESS_NUMSUBSIDIARIES int = 0,
@BUSINESS_PARENTCORPID uniqueidentifier = null,
@BUSINESS_PHONENUMBER nvarchar(100) = '',
@BUSINESS_PHONE_COUNTRYID uniqueidentifier = null,
@BUSINESS_PHONETYPECODEID uniqueidentifier = null,
@BUSINESS_RELATIONSHIPTYPECODEID uniqueidentifier = null,
@BUSINESS_RECIPROCALTYPECODEID uniqueidentifier = null,
@BUSINESS_STATEID uniqueidentifier = null,
@BUSINESS_WEBADDRESS dbo.UDT_WEBADDRESS = '',
@BUSINESS_POSTCODE nvarchar(12) = '',
@SPOUSE_RELATIONSHIPTYPECODEIDSIMPLELIST uniqueidentifier = null,
@SPOUSE_RECIPROCALTYPECODEIDSIMPLELIST uniqueidentifier = null,
@BUSINESS_RELATIONSHIPTYPECODEIDSIMPLELIST uniqueidentifier = null,
@BUSINESS_RECIPROCALTYPECODEIDSIMPLELIST uniqueidentifier = null,
@BUSINESS_PRIMARYSOFTCREDITRELATIONSHIPEXISTS bit = 0,
@BUSINESS_PRIMARYSOFTCREDITMATCHFACTOR decimal(5,2) = 100,
@BUSINESS_RECIPROCALSOFTCREDITRELATIONSHIPEXISTS bit = 0,
@BUSINESS_RECIPROCALSOFTCREDITMATCHFACTOR decimal(5,2) = 100,
@BUSINESS_PRIMARYRECOGNITIONTYPECODEID uniqueidentifier = null,
@BUSINESS_RECIPROCALRECOGNITIONTYPECODEID uniqueidentifier = null,
@BUSINESS_EMAILADDRESSSTARTDATE date = null,
@SPOUSE_PRIMARYSOFTCREDITRELATIONSHIPEXISTS bit = 0,
@SPOUSE_PRIMARYSOFTCREDITMATCHFACTOR decimal(5,2) = 100,
@SPOUSE_RECIPROCALSOFTCREDITRELATIONSHIPEXISTS bit = 0,
@SPOUSE_RECIPROCALSOFTCREDITMATCHFACTOR decimal(5,2) = 100,
@SPOUSE_PRIMARYRECOGNITIONTYPECODEID uniqueidentifier = null,
@SPOUSE_RECIPROCALRECOGNITIONTYPECODEID uniqueidentifier = null,
@CONSTITUENT_SITES xml = null,
@SPOUSE_ALTERNATELOOKUPIDS xml = null,
@SPOUSE_IMPORTLOOKUPID nvarchar(100) = '',
@ROWFROMBATCHUI bit = 0,
@BBNCTRANID int = 0,
@PAGEID int = 0,
@PAGENAME nvarchar(100) = '',
@BBNCUSERID int = 0,
@REMOVESPOUSE bit = 0,
@DUPLICATERECORDID uniqueidentifier = null,
@SOCIALMEDIAACCOUNTS xml = null,
@RELATIONSHIPS xml = null,
@NETCOMMUNITYTRANSACTIONPROCESSORID uniqueidentifier = null,
@BBNCID int = 0,
@NAMECODE tinyint = 1,
@SIMILARADDRESSCODE tinyint = 3,
@UNSIMILARADDRESSCODE tinyint = 3,
@NEWADDRESSENDDATECODE tinyint = 0,
@NEWADDRESSPRIMARYCODE tinyint = 1,
@BIRTHDATERULECODE tinyint = 1,
@DIFFERENTPHONECODE tinyint = 3,
@NEWPHONEENDDATECODE tinyint = 0,
@NEWPHONEPRIMARYCODE tinyint = 1,
@DIFFERENTEMAILCODE tinyint = 3,
@NEWEMAILENDDATECODE tinyint = 0,
@NEWEMAILPRIMARYCODE tinyint = 1,
@USEGLOBALSETTINGS bit = 1,
@CREATEHISTORICALNAMECODE tinyint = 1,
@NAMEFORMATS xml = null,
@SUBMITTEDLOOKUPID nvarchar(100) = '',
@SUBMITTEDCLASSYEAR nvarchar(4) = '',
@SUBMITTEDEDUCATIONALINSTITUTION nvarchar(100) = '',
@DOMANUALREVIEWFORAUTOMATCH bit = 0,
@REQUESTSNOEMAIL bit = 0,
@ORIGINAL_KEYNAME nvarchar(100) = '',
@ORIGINAL_FIRSTNAME nvarchar(50) = '',
@SOLICITCODES xml = null,
@GENDERCODEID uniqueidentifier = null,
@SPOUSE_GENDERCODEID uniqueidentifier = null
) as
set nocount on;
declare @CURRENTDATE datetime;
if @ID is null
set @ID = newid();
-- Check to see if this batch row is being added as part of an exception batch.
-- Used when populating ROWORIGINCODE in contact information collection fields.
declare @ISEXCEPTIONBATCH bit = 0;
select @ISEXCEPTIONBATCH = case when ORIGINATINGBATCHID is null then 0 else 1 end from dbo.BATCH where ID = @BATCHID;
-- set for use on duplicate check
set @DUPLICATERECORDID = @ID;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
if coalesce(@BUSINESS_PRIMARYSOFTCREDITRELATIONSHIPEXISTS, 0) = 0
begin
set @BUSINESS_PRIMARYSOFTCREDITMATCHFACTOR = 100;
set @BUSINESS_PRIMARYRECOGNITIONTYPECODEID = null;
end
if coalesce(@BUSINESS_RECIPROCALSOFTCREDITRELATIONSHIPEXISTS, 0) = 0
begin
set @BUSINESS_RECIPROCALSOFTCREDITMATCHFACTOR = 100;
set @BUSINESS_RECIPROCALRECOGNITIONTYPECODEID = null;
end
if coalesce(@SPOUSE_PRIMARYSOFTCREDITRELATIONSHIPEXISTS, 0) = 0
begin
set @SPOUSE_PRIMARYSOFTCREDITMATCHFACTOR = 100;
set @SPOUSE_PRIMARYRECOGNITIONTYPECODEID = null;
end
if coalesce(@SPOUSE_RECIPROCALSOFTCREDITRELATIONSHIPEXISTS, 0) = 0
begin
set @SPOUSE_RECIPROCALSOFTCREDITMATCHFACTOR = 100;
set @SPOUSE_RECIPROCALRECOGNITIONTYPECODEID = null;
end
if @CONSTITUENT_SITEID is not null and @CONSTITUENT_SITES is null
set @CONSTITUENT_SITES =
(
select @CONSTITUENT_SITEID SITEID
for xml raw('ITEM'),type,elements,root('CONSTITUENT_SITES'),BINARY BASE64
)
if LEN(@SPOUSE_IMPORTLOOKUPID) > 0
begin
set @SPOUSE_LOOKUPID = @SPOUSE_IMPORTLOOKUPID;
if @SPOUSE_ID is null
begin
with LOOKUPIDS_CTE as (
select top(2)
C.ID ID
from
dbo.CONSTITUENT C
where
LOOKUPID = @SPOUSE_IMPORTLOOKUPID
union all
select top(2)
C.ID
from
dbo.ALTERNATELOOKUPID AL
inner join
dbo.CONSTITUENT C on C.ID = AL.CONSTITUENTID
left join
dbo.ALTERNATELOOKUPIDTYPECODE ALTC on ALTC.ID = AL.ALTERNATELOOKUPIDTYPECODEID
where
AL.ALTERNATELOOKUPID = @SPOUSE_IMPORTLOOKUPID
)
select
distinct @SPOUSE_ID = ID
from
LOOKUPIDS_CTE
if @@ROWCOUNT > 1
raiserror('BBERR_MULTIPLESPOUSESWITHLOOKUPID: More than one constituent exists with the supplied spouse lookup ID.', 13, 1);
end
end
-- BBNT\RobertDi 5/6/2013 Bug 267901
-- When importing, be sure we don't accidentally blank out the gender.
--If not matched, bring constituent type forward. It will default to 0 if none.
--If matched determine existing type. Doesn't matter what is in file. Type of existing one cannot be changed.
--Combine with selection for @GENDERCODE to optimize
if @ROWFROMBATCHUI = 0
begin
if @PRIMARYRECORDID is not null
select @GENDERCODE =
case coalesce(@GENDERCODE,0)
when 0 THEN C.GENDERCODE
ELSE @GENDERCODE
end,
@GENDERCODEID = case when C.GENDERCODEID is null or (C.GENDERCODEID = (select dbo.UFN_GENDERCODEDEFAULTMAPPING_GETGENDERCODEID(0)) and @GENDERCODEID is not null)
then @GENDERCODEID
when C.GENDERCODEID is not null and @GENDERCODEID is not null and @GENDERCODEID <> (select dbo.UFN_GENDERCODEDEFAULTMAPPING_GETGENDERCODEID(0))
then @GENDERCODEID
else C.GENDERCODEID end,
@CONSTITUENTTYPECODE =
case
when C.ISORGANIZATION = 1 then 1
when (C.ISGROUP = 1 and G.GROUPTYPECODE = 0) then 2
when (C.ISGROUP = 1 and G.GROUPTYPECODE = 1) then 3
else 0
end
from dbo.CONSTITUENT C
left join dbo.GROUPDATA G on G.ID = C.ID
where C.ID = @PRIMARYRECORDID;
if @SPOUSE_ID is null
select @SPOUSE_ID = (select RECIPROCALCONSTITUENTID from dbo.CONSTITUENT
inner join dbo.RELATIONSHIP on CONSTITUENT.ID = RELATIONSHIP.RELATIONSHIPCONSTITUENTID
where CONSTITUENT.ID = @PRIMARYRECORDID and RELATIONSHIP.ISSPOUSE = 1)
if coalesce(@SPOUSE_GENDERCODE, 0) = 0
select @SPOUSE_GENDERCODE = CONSTITUENT.GENDERCODE
from dbo.CONSTITUENT where CONSTITUENT.ID = @SPOUSE_ID;
select @SPOUSE_GENDERCODEID = case when GENDERCODEID is null or (GENDERCODEID = (select dbo.UFN_GENDERCODEDEFAULTMAPPING_GETGENDERCODEID(0)) and @SPOUSE_GENDERCODEID is not null)
then @SPOUSE_GENDERCODEID
when GENDERCODEID is not null and @SPOUSE_GENDERCODEID is not null and @SPOUSE_GENDERCODEID <> (select dbo.UFN_GENDERCODEDEFAULTMAPPING_GETGENDERCODEID(0))
then @SPOUSE_GENDERCODEID
else GENDERCODEID end
from dbo.CONSTITUENT where CONSTITUENT.ID = @SPOUSE_ID;
end
--bug fix for ALTRU 305484
if @SIMILARADDRESSCODE is null
set @SIMILARADDRESSCODE = 3
if @UNSIMILARADDRESSCODE is null
set @UNSIMILARADDRESSCODE = 3
if @NEWADDRESSENDDATECODE is null
set @NEWADDRESSENDDATECODE = 0
if @NEWADDRESSPRIMARYCODE is null
set @NEWADDRESSPRIMARYCODE = 1
if @BIRTHDATERULECODE is null
set @BIRTHDATERULECODE = 1
if @DIFFERENTPHONECODE is null
set @DIFFERENTPHONECODE = 3
if @NEWPHONEENDDATECODE is null
set @NEWPHONEENDDATECODE = 0
if @NEWPHONEPRIMARYCODE is null
set @NEWPHONEPRIMARYCODE = 1
if @DIFFERENTEMAILCODE is null
set @DIFFERENTEMAILCODE = 3
if @NEWEMAILENDDATECODE is null
set @NEWEMAILENDDATECODE = 0
if @NEWEMAILPRIMARYCODE is null
set @NEWEMAILPRIMARYCODE = 1
if @USEGLOBALSETTINGS is null
set @USEGLOBALSETTINGS = 1
if @NAMECODE is null
set @NAMECODE = 1
if @CREATEHISTORICALNAMECODE is null
set @CREATEHISTORICALNAMECODE = 1
set @CURRENTDATE = getdate();
-- If primary record is provided during import, we need to check the existing values
-- against the imported values to determine if capitalization should be preserved.
if @ROWFROMBATCHUI = 0 and @PRIMARYRECORDID is not null
begin
declare @CURRENT_FIRSTNAME nvarchar(50)
declare @CURRENT_KEYNAME nvarchar(100)
select
@CURRENT_FIRSTNAME = FIRSTNAME,
@CURRENT_KEYNAME = KEYNAME
from
dbo.CONSTITUENT
where
ID = @PRIMARYRECORDID
-- If the original names match those in the database case-sensitive
-- then we should store the original values
if (@CURRENT_KEYNAME = @ORIGINAL_KEYNAME COLLATE Latin1_General_CS_AS) set @KEYNAME = @CURRENT_KEYNAME
if (@CURRENT_FIRSTNAME = @ORIGINAL_FIRSTNAME COLLATE Latin1_General_CS_AS) set @FIRSTNAME = @CURRENT_FIRSTNAME
end
begin try
insert into dbo.BATCHCONSTITUENTUPDATE(
[ID],
[BATCHID],
[SEQUENCE],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED],
[PRIMARYRECORDID],
[CONSTITUENTTYPECODE],
[BIRTHDATE],
[FIRSTNAME],
[GENDERCODE],
[GIVESANONYMOUSLY],
[KEYNAME],
[LOOKUP_ID],
[MAIDENNAME],
[MIDDLENAME],
[NICKNAME],
[SUFFIXCODEID],
[TITLECODEID],
[WEBADDRESS],
[DECEASED],
[DECEASEDDATE],
[CONSTITUENT_SITEID],
[PROSPECTMANAGERFUNDRAISERID],
[GROUPTYPEID],
[GROUPDESCRIPTION],
[GROUPSTARTDATE],
[ORG_INDUSTRYCODEID],
[ORG_NUMEMPLOYEES],
[ORG_NUMSUBSIDIARIES],
[ORG_PARENTCORPID],
[MARITALSTATUSCODEID],
[SPOUSE_ID],
[SPOUSE_TITLECODEID],
[SPOUSE_FIRSTNAME],
[SPOUSE_NICKNAME],
[SPOUSE_MIDDLENAME],
[SPOUSE_MAIDENNAME],
[SPOUSE_LASTNAME],
[SPOUSE_SUFFIXCODEID],
[SPOUSE_BIRTHDATE],
[SPOUSE_GENDERCODE],
[SPOUSE_LOOKUPID],
[SPOUSE_RELATIONSHIPTYPECODEID],
[SPOUSE_RECIPROCALTYPECODEID],
[BUSINESS_ID],
[BUSINESS_ADDRESSBLOCK],
[BUSINESS_ADDRESSTYPECODEID],
[BUSINESS_CART],
[BUSINESS_CITY],
[BUSINESS_COUNTRYID],
[BUSINESS_DONOTMAIL],
[BUSINESS_DONOTMAILREASONCODEID],
[BUSINESS_DPC],
[BUSINESS_EMAILADDRESS],
[BUSINESS_EMAILADDRESSTYPECODEID],
[BUSINESS_INDUSTRYCODEID],
[BUSINESS_LOOKUPID],
[BUSINESS_LOT],
[BUSINESS_NAME],
[BUSINESS_NUMEMPLOYEES],
[BUSINESS_NUMSUBSIDIARIES],
[BUSINESS_PARENTCORPID],
[BUSINESS_PHONENUMBER],
[BUSINESS_PHONE_COUNTRYID],
[BUSINESS_PHONETYPECODEID],
[BUSINESS_RELATIONSHIPTYPECODEID],
[BUSINESS_RECIPROCALTYPECODEID],
[BUSINESS_STATEID],
[BUSINESS_WEBADDRESS],
[BUSINESS_POSTCODE],
[BUSINESS_PRIMARYSOFTCREDITRELATIONSHIPEXISTS],
[BUSINESS_PRIMARYSOFTCREDITMATCHFACTOR],
[BUSINESS_RECIPROCALSOFTCREDITRELATIONSHIPEXISTS],
[BUSINESS_RECIPROCALSOFTCREDITMATCHFACTOR],
[BUSINESS_PRIMARYRECOGNITIONTYPECODEID],
[BUSINESS_RECIPROCALRECOGNITIONTYPECODEID],
[BUSINESS_EMAILADDRESSSTARTDATE],
[SPOUSE_PRIMARYSOFTCREDITRELATIONSHIPEXISTS],
[SPOUSE_PRIMARYSOFTCREDITMATCHFACTOR],
[SPOUSE_RECIPROCALSOFTCREDITRELATIONSHIPEXISTS],
[SPOUSE_RECIPROCALSOFTCREDITMATCHFACTOR],
[SPOUSE_PRIMARYRECOGNITIONTYPECODEID],
[SPOUSE_RECIPROCALRECOGNITIONTYPECODEID],
[REMOVESPOUSE],
NAMECODE,
SIMILARADDRESSCODE,
UNSIMILARADDRESSCODE,
NEWADDRESSENDDATECODE,
NEWADDRESSPRIMARYCODE,
BIRTHDATERULECODE,
DIFFERENTPHONECODE,
NEWPHONEENDDATECODE,
NEWPHONEPRIMARYCODE,
DIFFERENTEMAILCODE,
NEWEMAILENDDATECODE,
NEWEMAILPRIMARYCODE,
USEGLOBALSETTINGS,
CREATEHISTORICALNAMECODE,
DOMANUALREVIEWFORAUTOMATCH,
REQUESTSNOEMAIL,
ROWFROMBATCHUI,
ORIGINAL_KEYNAME,
ORIGINAL_FIRSTNAME,
GENDERCODEID,
SPOUSE_GENDERCODEID
)
values (
@ID,
@BATCHID,
@SEQUENCE,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE,
@PRIMARYRECORDID,
coalesce(@CONSTITUENTTYPECODE, '0'),
@BIRTHDATE,
@FIRSTNAME,
coalesce(@GENDERCODE, '0'),
@GIVESANONYMOUSLY,
@KEYNAME,
@LOOKUP_ID,
@MAIDENNAME,
@MIDDLENAME,
@NICKNAME,
@SUFFIXCODEID,
@TITLECODEID,
@WEBADDRESS,
@DECEASED,
@DECEASEDDATE,
@CONSTITUENT_SITEID,
@PROSPECTMANAGERFUNDRAISERID,
@GROUPTYPEID,
coalesce(@GROUPDESCRIPTION, ''),
@GROUPSTARTDATE,
@ORG_INDUSTRYCODEID,
coalesce(@ORG_NUMEMPLOYEES, '0'),
coalesce(@ORG_NUMSUBSIDIARIES, '0'),
@ORG_PARENTCORPID,
@MARITALSTATUSCODEID,
@SPOUSE_ID,
@SPOUSE_TITLECODEID,
coalesce(@SPOUSE_FIRSTNAME,''),
coalesce(@SPOUSE_NICKNAME,''),
coalesce(@SPOUSE_MIDDLENAME,''),
coalesce(@SPOUSE_MAIDENNAME,''),
coalesce(@SPOUSE_LASTNAME,''),
@SPOUSE_SUFFIXCODEID,
coalesce(@SPOUSE_BIRTHDATE,'00000000'),
coalesce(@SPOUSE_GENDERCODE, '0'),
coalesce(@SPOUSE_LOOKUPID,''),
coalesce(@SPOUSE_RELATIONSHIPTYPECODEIDSIMPLELIST,@SPOUSE_RELATIONSHIPTYPECODEID),
coalesce(@SPOUSE_RECIPROCALTYPECODEIDSIMPLELIST,@SPOUSE_RECIPROCALTYPECODEID),
@BUSINESS_ID,
coalesce(@BUSINESS_ADDRESSBLOCK,''),
@BUSINESS_ADDRESSTYPECODEID,
coalesce(@BUSINESS_CART,''),
coalesce(@BUSINESS_CITY,''),
@BUSINESS_COUNTRYID,
coalesce(@BUSINESS_DONOTMAIL, 0),
@BUSINESS_DONOTMAILREASONCODEID,
coalesce(@BUSINESS_DPC,''),
coalesce(@BUSINESS_EMAILADDRESS,''),
@BUSINESS_EMAILADDRESSTYPECODEID,
@BUSINESS_INDUSTRYCODEID,
@BUSINESS_LOOKUPID,
coalesce(@BUSINESS_LOT,''),
coalesce(@BUSINESS_NAME,''),
coalesce(@BUSINESS_NUMEMPLOYEES, '0'),
coalesce(@BUSINESS_NUMSUBSIDIARIES, '0'),
@BUSINESS_PARENTCORPID,
coalesce(@BUSINESS_PHONENUMBER,''),
@BUSINESS_PHONE_COUNTRYID,
@BUSINESS_PHONETYPECODEID,
coalesce(@BUSINESS_RELATIONSHIPTYPECODEIDSIMPLELIST,@BUSINESS_RELATIONSHIPTYPECODEID),
coalesce(@BUSINESS_RECIPROCALTYPECODEIDSIMPLELIST,@BUSINESS_RECIPROCALTYPECODEID),
@BUSINESS_STATEID,
@BUSINESS_WEBADDRESS,
coalesce(@BUSINESS_POSTCODE,''),
coalesce(@BUSINESS_PRIMARYSOFTCREDITRELATIONSHIPEXISTS, 0),
coalesce(@BUSINESS_PRIMARYSOFTCREDITMATCHFACTOR, 100),
coalesce(@BUSINESS_RECIPROCALSOFTCREDITRELATIONSHIPEXISTS, 0),
coalesce(@BUSINESS_RECIPROCALSOFTCREDITMATCHFACTOR, 100),
@BUSINESS_PRIMARYRECOGNITIONTYPECODEID,
@BUSINESS_RECIPROCALRECOGNITIONTYPECODEID,
@BUSINESS_EMAILADDRESSSTARTDATE,
coalesce(@SPOUSE_PRIMARYSOFTCREDITRELATIONSHIPEXISTS, 0),
coalesce(@SPOUSE_PRIMARYSOFTCREDITMATCHFACTOR, 100),
coalesce(@SPOUSE_RECIPROCALSOFTCREDITRELATIONSHIPEXISTS, 0),
coalesce(@SPOUSE_RECIPROCALSOFTCREDITMATCHFACTOR, 100),
@SPOUSE_PRIMARYRECOGNITIONTYPECODEID,
@SPOUSE_RECIPROCALRECOGNITIONTYPECODEID,
@REMOVESPOUSE,
@NAMECODE,
@SIMILARADDRESSCODE,
@UNSIMILARADDRESSCODE,
@NEWADDRESSENDDATECODE,
@NEWADDRESSPRIMARYCODE,
@BIRTHDATERULECODE,
@DIFFERENTPHONECODE,
@NEWPHONEENDDATECODE,
@NEWPHONEPRIMARYCODE,
@DIFFERENTEMAILCODE,
@NEWEMAILENDDATECODE,
@NEWEMAILPRIMARYCODE,
@USEGLOBALSETTINGS,
@CREATEHISTORICALNAMECODE,
@DOMANUALREVIEWFORAUTOMATCH,
coalesce(@REQUESTSNOEMAIL, 0),
coalesce(@ROWFROMBATCHUI, 0),
isnull(@ORIGINAL_KEYNAME, ''),
isnull(@ORIGINAL_FIRSTNAME, ''),
@GENDERCODEID ,
@SPOUSE_GENDERCODEID
);
-- Default in the ID of any existing alternate lookup IDs
set @ALTERNATELOOKUPIDS =
(
select
INPUTALTERNATELOOKUPID.ALTERNATELOOKUPID,
INPUTALTERNATELOOKUPID.ALTERNATELOOKUPIDTYPECODEID,
INPUTALTERNATELOOKUPID.ID,
coalesce(INPUTALTERNATELOOKUPID.ORIGINALALTERNATELOOKUPID, ALTERNATELOOKUPID.ID) as ORIGINALALTERNATELOOKUPID
from dbo.UFN_BATCHCONSTITUENTUPDATE_GETALTERNATELOOKUPIDS_FROMITEMLISTXML(@ALTERNATELOOKUPIDS) as INPUTALTERNATELOOKUPID
left join dbo.ALTERNATELOOKUPID on
ALTERNATELOOKUPID.ALTERNATELOOKUPID = INPUTALTERNATELOOKUPID.ALTERNATELOOKUPID and
ALTERNATELOOKUPID.ALTERNATELOOKUPIDTYPECODEID = INPUTALTERNATELOOKUPID.ALTERNATELOOKUPIDTYPECODEID and
ALTERNATELOOKUPID.CONSTITUENTID = @PRIMARYRECORDID
for xml raw('ITEM'),type,elements,root('ALTERNATELOOKUPIDS'),BINARY BASE64
)
exec dbo.USP_BATCHCONSTITUENTUPDATE_GETALTERNATELOOKUPIDS_ADDFROMXML @ID, @ALTERNATELOOKUPIDS, @CHANGEAGENTID
exec dbo.USP_BATCHCONSTITUENTUPDATE_GETSECURITYATTRIBUTES_ADDFROMXML @ID, @SECURITYATTRIBUTES, @CHANGEAGENTID
exec dbo.USP_BATCHCONSTITUENTUPDATE_GETSITES_ADDFROMXML @ID, @CONSTITUENT_SITES, @CHANGEAGENTID;
insert into dbo.BATCHCONSTITUENTUPDATEINTERESTS (
BATCHCONSTITUENTUPDATEID,
CONSTITUENTINTERESTCODEID,
NOTE,
CONSTITUENTINTERESTID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
select
@ID,
CONSTITUENTINTERESTCODEID,
coalesce(NOTE, ''),
CONSTITUENTINTERESTID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
from
dbo.UFN_BATCHCONSTITUENTUPDATE_GETINTERESTS_FROMITEMLISTXML(@INTERESTS)
insert into dbo.BATCHCONSTITUENTUPDATEADDRESSES (
ID,
BATCHCONSTITUENTUPDATEID,
ADDRESSID,
UPDATEHOUSEHOLD,
ADDRESSBLOCK,
ENDDATE,
STARTDATE,
HISTORICALSTARTDATE,
HISTORICALENDDATE,
ADDRESSTYPECODEID,
CART,
CERTIFICATIONDATA,
CITY,
CONGRESSIONALDISTRICTCODEID,
COUNTRYID,
COUNTYCODEID,
DONOTMAIL,
DONOTMAILREASONCODEID,
DPC,
INFOSOURCECODEID,
INFOSOURCECOMMENTS,
ISPRIMARY,
LASTVALIDATIONATTEMPTDATE,
LOCALPRECINCTCODEID,
LOT,
OMITFROMVALIDATION,
REGIONCODEID,
STATEID,
STATEHOUSEDISTRICTCODEID,
STATESENATEDISTRICTCODEID,
VALIDATIONMESSAGE,
POSTCODE,
SEQUENCE,
ROWORIGINCODE,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
select
(select case when ID = '00000000-0000-0000-0000-000000000000' then newid() else coalesce(ID, newid()) end),
@ID,
ADDRESSID,
coalesce(UPDATEHOUSEHOLD, 0),
coalesce(ADDRESSBLOCK, ''),
coalesce(ENDDATE, '0000'),
coalesce(STARTDATE, '0000'),
HISTORICALSTARTDATE,
HISTORICALENDDATE,
ADDRESSTYPECODEID,
coalesce(CART, ''),
coalesce(CERTIFICATIONDATA, '0'),
coalesce(CITY, ''),
CONGRESSIONALDISTRICTCODEID,
COUNTRYID,
COUNTYCODEID,
coalesce(DONOTMAIL, 0),
DONOTMAILREASONCODEID,
coalesce(DPC, ''),
INFOSOURCECODEID,
coalesce(INFOSOURCECOMMENTS, ''),
coalesce(ISPRIMARY, ''),
LASTVALIDATIONATTEMPTDATE,
LOCALPRECINCTCODEID,
coalesce(LOT, ''),
coalesce(OMITFROMVALIDATION, 0),
REGIONCODEID,
STATEID,
STATEHOUSEDISTRICTCODEID,
STATESENATEDISTRICTCODEID,
coalesce(VALIDATIONMESSAGE, ''),
coalesce(POSTCODE, ''),
coalesce(SEQUENCE, 0),
case when @ISEXCEPTIONBATCH = 1 then coalesce(ROWORIGINCODE, 0) else 1 end, -- Row in the collection field XML at time of batch save
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
from
dbo.UFN_BATCHCONSTITUENTUPDATE_GETADDRESSES_WITHDATES_FROMITEMLISTXML(@ADDRESSES) as ADDRESSFROMXML;
insert into dbo.BATCHCONSTITUENTUPDATEPHONES (
ID,
BATCHCONSTITUENTUPDATEID,
PHONETYPECODEID,
NUMBER,
ISPRIMARY,
DONOTCALL,
UPDATEHOUSEHOLD,
SEQUENCE,
COUNTRYID,
SEASONALSTARTDATE,
SEASONALENDDATE,
STARTTIME,
ENDTIME,
STARTDATE,
ENDDATE,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED,
INFOSOURCECODEID,
PHONEID,
ROWORIGINCODE,
DONOTTEXT,
INFOSOURCECOMMENTS
)
select
(select case when ID = '00000000-0000-0000-0000-000000000000' then newid() else coalesce(ID, newid()) end),
@ID,
PHONETYPECODEID,
coalesce(NUMBER, ''),
coalesce(ISPRIMARY, 0),
coalesce(DONOTCALL, 0),
coalesce(UPDATEHOUSEHOLD, 0),
coalesce(SEQUENCE, 0),
COUNTRYID,
coalesce(SEASONALSTARTDATE,'0000'),
coalesce(SEASONALENDDATE,'0000'),
coalesce(STARTTIME,'0000'),
coalesce(ENDTIME,'0000'),
STARTDATE,
ENDDATE,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE,
INFOSOURCECODEID,
PHONEID,
case when @ISEXCEPTIONBATCH = 1 then coalesce(ROWORIGINCODE, 0) else 1 end ,-- Row in the collection field XML at time of batch save
coalesce(DONOTTEXT, cast(0 as bit)),
ISNULL(INFOSOURCECOMMENTS,'')
from
dbo.UFN_BATCHCONSTITUENTUPDATE_GETPHONES_WITHDATES_FROMITEMLISTXML(@PHONES)
insert into dbo.BATCHCONSTITUENTUPDATEEMAILADDRESSES (
ID,
BATCHCONSTITUENTUPDATEID,
EMAILADDRESSTYPECODEID,
EMAILADDRESS,
ISPRIMARY,
DONOTEMAIL,
UPDATEHOUSEHOLD,
SEQUENCE,
STARTDATE,
ENDDATE,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED,
INFOSOURCECODEID,
EMAILADDRESSID,
ROWORIGINCODE,
DONOTEMAILREASONCODEID,
INFOSOURCECOMMENTS
)
select
(select case when ID = '00000000-0000-0000-0000-000000000000' then newid() else coalesce(ID, newid()) end),
@ID,
EMAILADDRESSTYPECODEID,
coalesce(EMAILADDRESS, ''),
coalesce(ISPRIMARY, 0),
coalesce(DONOTEMAIL, 0),
coalesce(UPDATEHOUSEHOLD, 0),
coalesce(SEQUENCE, 0),
STARTDATE,
ENDDATE,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE,
INFOSOURCECODEID,
EMAILADDRESSID,
case when @ISEXCEPTIONBATCH = 1 then coalesce(ROWORIGINCODE, 0) else 1 end, -- Row in the collection field XML at time of batch save
DONOTEMAILREASONCODEID,
INFOSOURCECOMMENTS
from
dbo.UFN_BATCHCONSTITUENTUPDATE_GETEMAILADDRESSES_WITHDATES_2_FROMITEMLISTXML(@EMAILADDRESSES)
IF ISNULL(@BBNCUSERID, 0) <> 0
BEGIN
insert into dbo.BBNCDOWNLOADEDTRANSACTION
(
[ID]
)
values
(
@BBNCID
);
insert into dbo.BATCHCONSTITUENTUPDATEBBNCINFO (
BATCHCONSTITUENTUPDATEID,
BBNCTRANID,
BBNCID,
PAGEID,
PAGENAME,
BBNCUSERID,
NETCOMMUNITYTRANSACTIONPROCESSORID,
SUBMITTEDLOOKUPID,
SUBMITTEDCLASSYEAR,
SUBMITTEDEDUCATIONALINSTITUTION,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
select
@ID,
@BBNCTRANID,
@BBNCID,
@PAGEID,
@PAGENAME,
@BBNCUSERID,
@NETCOMMUNITYTRANSACTIONPROCESSORID,
coalesce(@SUBMITTEDLOOKUPID , ''),
coalesce(@SUBMITTEDCLASSYEAR , ''),
coalesce(@SUBMITTEDEDUCATIONALINSTITUTION , ''),
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
delete from dbo.BBNCUNSUCCESSFULDOWNLOADTRANSACTION
where ID = @BBNCID;
END
--Bug 198040 - AdamBu - 11/14/12 - When importing, constituencies now are always additive.
if @ROWFROMBATCHUI = 0
begin
declare @CONSTITUENCYTABLE table(
CONSTITUENCYCODEID uniqueidentifier,
DATEFROM datetime,
DATETO datetime,
ORIGINALCONSTITUENCYID uniqueidentifier
);
insert into @CONSTITUENCYTABLE
select
CONSTITUENCYFROMXML.CONSTITUENCYCODEID,
CONSTITUENCYFROMXML.DATEFROM,
CONSTITUENCYFROMXML.DATETO,
CONSTITUENCYFROMXML.ORIGINALCONSTITUENCYID
from dbo.UFN_BATCHCONSTITUENTUPDATE_GETCONSTITUENCIES_FROMITEMLISTXML(@CONSTITUENCIES) CONSTITUENCYFROMXML
union
select
CONSTITUENCYFROMDATABASE.CONSTITUENCYCODEID,
CONSTITUENCYFROMDATABASE.DATEFROM,
CONSTITUENCYFROMDATABASE.DATETO,
CONSTITUENCYFROMDATABASE.ORIGINALCONSTITUENCYID
from dbo.UFN_CONSTITUENT_GETCONSTITUENCIES_FORUPDATEBATCH(@PRIMARYRECORDID) CONSTITUENCYFROMDATABASE;
set @CONSTITUENCIES = (
select
CONSTITUENCYCODEID,
DATEFROM,
DATETO,
ORIGINALCONSTITUENCYID
from @CONSTITUENCYTABLE
for xml raw('ITEM'),type,elements,root('CONSTITUENCIES'),BINARY BASE64
);
end
declare @USERDEFINEDCONSTITUENCY xml;
set @USERDEFINEDCONSTITUENCY =
(
select
CONSTITUENCYFROMXML.CONSTITUENCYCODEID,
CONSTITUENCYFROMXML.DATEFROM,
CONSTITUENCYFROMXML.DATETO,
case
-- Check for existence in dbo.CONSTITUENCY. It's possible the original row was a system defined constituency and so the ORIGINALCONSTITUENCYID
-- doesn't exist in the CONSTITUENCY table. In that case, it needs to be cleared since it will cause a foreign key violation when inserting into
-- BATCHCONSTITUENTUPDATECONSTITUENCIES. The system defined constituencies don't need this check since there isn't a FK for ORIGINALCONSTITUENCYID
-- on the table they are stored in.
when CONSTITUENCYFROMXML.ORIGINALCONSTITUENCYID is not null and not exists (select 1 from dbo.CONSTITUENCY where ID = CONSTITUENCYFROMXML.ORIGINALCONSTITUENCYID) then null
when CONSTITUENCYFROMXML.ORIGINALCONSTITUENCYID is not null then CONSTITUENCYFROMXML.ORIGINALCONSTITUENCYID
else null
end ORIGINALCONSTITUENCYID
from dbo.UFN_BATCHCONSTITUENTUPDATE_GETCONSTITUENCIES_FROMITEMLISTXML(@CONSTITUENCIES) as CONSTITUENCYFROMXML
left join dbo.CONSTITUENCYDEFINITION
on CONSTITUENCYFROMXML.CONSTITUENCYCODEID = CONSTITUENCYDEFINITION.ID
and CONSTITUENCYDEFINITION.ISSYSTEM = 1
where
CONSTITUENCYDEFINITION.ID is null
for xml raw('ITEM'),type,elements,root('CONSTITUENCIES'),BINARY BASE64
);
exec dbo.USP_BATCHCONSTITUENTUPDATE_GETCONSTITUENCIES_ADDFROMXML @ID, @USERDEFINEDCONSTITUENCY, @CHANGEAGENTID;
declare @SYSTEMDEFINEDCONSTITUENCY xml;
set @SYSTEMDEFINEDCONSTITUENCY =
(
select
CONSTITUENCYFROMXML.CONSTITUENCYCODEID,
CONSTITUENCYFROMXML.DATEFROM,
CONSTITUENCYFROMXML.DATETO,
CONSTITUENCYFROMXML.ORIGINALCONSTITUENCYID
from dbo.UFN_BATCHCONSTITUENTUPDATE_GETCONSTITUENCIES_FROMITEMLISTXML(@CONSTITUENCIES) as CONSTITUENCYFROMXML
inner join dbo.CONSTITUENCYDEFINITION on CONSTITUENCYFROMXML.CONSTITUENCYCODEID = CONSTITUENCYDEFINITION.ID
where
CONSTITUENCYDEFINITION.ISSYSTEM = 1
for xml raw('ITEM'),type,elements,root('CONSTITUENCIES'),BINARY BASE64
);
exec dbo.USP_BATCHCONSTITUENTUPDATE_GETCONSTITUENCIES_SYSTEM_ADDFROMXML @ID, @SYSTEMDEFINEDCONSTITUENCY, @CHANGEAGENTID;
-- Defaulting DATEFROM/DATETO if possible for constituency
if @PRIMARYRECORDID is not null
begin
declare @ALLCONSTITUENCY xml = dbo.UFN_CONSTITUENTUPDATEBATCH_GETCONSTITUENCIES_TOITEMLISTXML(@ID);
if @ALLCONSTITUENCY is not null
begin
exec USP_CONSTITUENTUPDATEBATCH_ADJUSTCONSTITUENCYDATERANGE @ID, @PRIMARYRECORDID, @ALLCONSTITUENCY, @CHANGEAGENTID;
end
end
--spouse alternate lookup IDs
-- if importing IDs but no spouse was specified raise an error
if len(@SPOUSE_LASTNAME) = 0 and @SPOUSE_ID is null
if exists(select ID from dbo.UFN_BATCHCONSTITUENTUPDATE_GETSPOUSEALTERNATELOOKUPIDS_FROMITEMLISTXML(@SPOUSE_ALTERNATELOOKUPIDS))
raiserror('BBERR_NOSPOUSE_SPOUSEALTERNATE', 13, 1);
if @PRIMARYRECORDID is not null and @SPOUSE_ID is not null
begin
if exists(select 1 from dbo.RELATIONSHIP where RELATIONSHIPCONSTITUENTID = @PRIMARYRECORDID and RECIPROCALCONSTITUENTID <> @SPOUSE_ID and ISSPOUSE = 1)
begin
raiserror('BBERR_INCORRECTSPOUSE', 13, 1);
end
end
--Default in the ID of any existing alternate lookup IDs
set @SPOUSE_ALTERNATELOOKUPIDS =
(
select
INPUTALTERNATELOOKUPID.ALTERNATELOOKUPID,
INPUTALTERNATELOOKUPID.ALTERNATELOOKUPIDTYPECODEID,
INPUTALTERNATELOOKUPID.ID,
coalesce(INPUTALTERNATELOOKUPID.ORIGINALALTERNATELOOKUPID, ALTERNATELOOKUPID.ID) as ORIGINALALTERNATELOOKUPID
from dbo.UFN_BATCHCONSTITUENTUPDATE_GETSPOUSEALTERNATELOOKUPIDS_FROMITEMLISTXML(@SPOUSE_ALTERNATELOOKUPIDS) as INPUTALTERNATELOOKUPID
left join dbo.ALTERNATELOOKUPID on
ALTERNATELOOKUPID.ALTERNATELOOKUPID = INPUTALTERNATELOOKUPID.ALTERNATELOOKUPID and
ALTERNATELOOKUPID.ALTERNATELOOKUPIDTYPECODEID = INPUTALTERNATELOOKUPID.ALTERNATELOOKUPIDTYPECODEID and
ALTERNATELOOKUPID.CONSTITUENTID = @SPOUSE_ID
for xml raw('ITEM'),type,elements,root('SPOUSE_ALTERNATELOOKUPIDS'),BINARY BASE64
)
exec dbo.USP_BATCHCONSTITUENTUPDATE_GETSPOUSEALTERNATELOOKUPIDS_ADDFROMXML @ID, @SPOUSE_ALTERNATELOOKUPIDS, @CHANGEAGENTID
exec dbo.USP_BATCHCONSTITUENTUPDATE_GETSOCIALMEDIAACCOUNTS_ADDFROMXML @ID, @SOCIALMEDIAACCOUNTS, @CHANGEAGENTID;
exec dbo.USP_BATCHCONSTITUENTUPDATE_GETRELATIONSHIPS_ADDFROMXML @ID, @RELATIONSHIPS, @CHANGEAGENTID;
exec dbo.USP_BATCHCONSTITUENTUPDATE_GETNAMEFORMATS_ADDFROMXML @ID, @NAMEFORMATS, @CHANGEAGENTID;
exec dbo.USP_CONSTITUENTUPDATEBATCH_GETSOLICITCODES_ADDFROMXML_DEFAULTID @ID, @SOLICITCODES, @CHANGEAGENTID;
end try
begin catch
exec.dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;