USP_DATAFORMTEMPLATE_ADD_RE7INTEGRATIONFROMRE7DATA2
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN | |
@CONSTITUENTID | uniqueidentifier | IN | |
@SYNCBIOGRAPHICAL | bit | IN | |
@LASTNAME | nvarchar(100) | IN | |
@FIRSTNAME | nvarchar(50) | IN | |
@MIDDLENAME | nvarchar(50) | IN | |
@DATEOFBIRTH | UDT_FUZZYDATE | IN | |
@SYNCADDRESS | bit | IN | |
@ADDRESS_ADDRESSBLOCK | nvarchar(150) | IN | |
@ADDRESS_CITY | nvarchar(50) | IN | |
@ADDRESS_STATE | nvarchar(50) | IN | |
@ADDRESS_STATE_ABBREV | nvarchar(5) | IN | |
@ADDRESS_POSTCODE | nvarchar(12) | IN | |
@ADDRESS_COUNTRY | nvarchar(50) | IN | |
@ADDRESS_COUNTRY_ABBREV | nvarchar(5) | IN | |
@ADDRESS_ADDRESSTYPE | nvarchar(60) | IN | |
@SYNCBUSINESS | bit | IN | |
@BUSINESS_NAME | nvarchar(100) | IN | |
@BUSINESS_ADDRESSBLOCK | nvarchar(150) | IN | |
@BUSINESS_CITY | nvarchar(50) | IN | |
@BUSINESS_STATE | nvarchar(50) | IN | |
@BUSINESS_STATE_ABBREV | nvarchar(5) | IN | |
@BUSINESS_POSTCODE | nvarchar(12) | IN | |
@BUSINESS_COUNTRY | nvarchar(50) | IN | |
@BUSINESS_COUNTRY_ABBREV | nvarchar(5) | IN | |
@BUSINESS_ADDRESSTYPE | nvarchar(60) | IN | |
@SYNCGIVING | bit | IN | |
@FIRSTGIFTAMOUNT | money | IN | |
@FIRSTGIFTDATE | datetime | IN | |
@LATESTGIFTAMOUNT | money | IN | |
@LATESTGIFTDATE | datetime | IN | |
@LARGESTGIFTAMOUNT | money | IN | |
@LARGESTGIFTDATE | datetime | IN | |
@TOTALGIFTSGIVEN | int | IN | |
@TOTALGIFTAMOUNT | money | IN | |
@FIRSTGIFTTYPE | nvarchar(100) | IN | |
@FIRSTGIFTDESIGNATION | nvarchar(100) | IN | |
@LARGESTGIFTTYPE | nvarchar(100) | IN | |
@LARGESTGIFTDESIGNATION | nvarchar(100) | IN | |
@LATESTGIFTTYPE | nvarchar(100) | IN | |
@LATESTGIFTDESIGNATION | nvarchar(100) | IN | |
@NICKNAME | nvarchar(50) | IN | |
@TITLE1 | nvarchar(60) | IN | |
@TITLE2 | nvarchar(60) | IN | |
@SUFFIX1 | nvarchar(60) | IN | |
@SUFFIX2 | nvarchar(60) | IN | |
@GENDER | nvarchar(50) | IN | |
@RE7CONSTITUENTID | nvarchar(20) | IN | |
@RE7RECORDID | int | IN | |
@SYNCPHONES | bit | IN | |
@PHONES | xml | IN | |
@ISINACTIVE | bit | IN | |
@ISDECEASED | bit | IN |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_RE7INTEGRATIONFROMRE7DATA2 (
@ID uniqueidentifier = null output,
@CHANGEAGENTID uniqueidentifier = null,
@CURRENTAPPUSERID uniqueidentifier,
@CONSTITUENTID uniqueidentifier,
@SYNCBIOGRAPHICAL bit = 0,
@LASTNAME nvarchar(100) = '',
@FIRSTNAME nvarchar(50) = '',
@MIDDLENAME nvarchar(50) = '',
@DATEOFBIRTH dbo.UDT_FUZZYDATE = '00000000',
@SYNCADDRESS bit = 0,
@ADDRESS_ADDRESSBLOCK nvarchar(150) = '',
@ADDRESS_CITY nvarchar(50) = '',
@ADDRESS_STATE nvarchar(50) = '',
@ADDRESS_STATE_ABBREV nvarchar(5) = '',
@ADDRESS_POSTCODE nvarchar(12) = '',
@ADDRESS_COUNTRY nvarchar(50) = '',
@ADDRESS_COUNTRY_ABBREV nvarchar(5) = '',
@ADDRESS_ADDRESSTYPE nvarchar(60) = '',
@SYNCBUSINESS bit = 0,
@BUSINESS_NAME nvarchar(100) = '',
@BUSINESS_ADDRESSBLOCK nvarchar(150) = '',
@BUSINESS_CITY nvarchar(50) = '',
@BUSINESS_STATE nvarchar(50) = null,
@BUSINESS_STATE_ABBREV nvarchar(5) = '',
@BUSINESS_POSTCODE nvarchar(12) = '',
@BUSINESS_COUNTRY nvarchar(50) = '',
@BUSINESS_COUNTRY_ABBREV nvarchar(5) = '',
@BUSINESS_ADDRESSTYPE nvarchar(60) = '',
@SYNCGIVING bit = 0,
@FIRSTGIFTAMOUNT money = 0,
@FIRSTGIFTDATE datetime = null,
@LATESTGIFTAMOUNT money = 0,
@LATESTGIFTDATE datetime = null,
@LARGESTGIFTAMOUNT money = 0,
@LARGESTGIFTDATE datetime = null,
@TOTALGIFTSGIVEN int = 0,
@TOTALGIFTAMOUNT money = 0,
@FIRSTGIFTTYPE nvarchar(100) = null,
@FIRSTGIFTDESIGNATION nvarchar(100) = null,
@LARGESTGIFTTYPE nvarchar(100) = null,
@LARGESTGIFTDESIGNATION nvarchar(100) = null,
@LATESTGIFTTYPE nvarchar(100) = null,
@LATESTGIFTDESIGNATION nvarchar(100) = null,
@NICKNAME nvarchar(50) = null,
@TITLE1 nvarchar(60) = null,
@TITLE2 nvarchar(60) = null,
@SUFFIX1 nvarchar(60) = null,
@SUFFIX2 nvarchar(60) = null,
@GENDER nvarchar(50) = null,
@RE7CONSTITUENTID nvarchar(20) = null,
@RE7RECORDID int = 0,
@SYNCPHONES bit = 0,
@PHONES xml = null,
@ISINACTIVE bit = 0,
@ISDECEASED bit = 0
) as
set nocount on;
set @ID = @CONSTITUENTID;
declare @CURRENTDATE datetime;
set @CURRENTDATE = getdate();
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
begin try
-- Update Biographical Information
if @SYNCBIOGRAPHICAL = 1 and
@LASTNAME != ''
begin
-- Get title 1 type code
declare @TITLECODEID uniqueidentifier
if len(@TITLE1) > 0 begin
select
@TITLECODEID = TITLECODE.ID
from
dbo.TITLECODE
where
TITLECODE.DESCRIPTION = @TITLE1
if @TITLECODEID is null
begin
exec dbo.USP_TITLECODE_CREATEENTRY
@TITLE1,
1,
null,
@CHANGEAGENTID,
@TITLECODEID output
end
end
-- Get title 2 type code
declare @TITLE2CODEID uniqueidentifier
if len(@TITLE2) > 0 begin
select
@TITLE2CODEID = TITLECODE.ID
from
dbo.TITLECODE
where
TITLECODE.DESCRIPTION = @TITLE2
if @TITLE2CODEID is null
begin
exec dbo.USP_TITLECODE_CREATEENTRY
@TITLE2,
1,
null,
@CHANGEAGENTID,
@TITLE2CODEID output
end
end
-- Get suffix 1 type code
declare @SUFFIXCODEID uniqueidentifier
if len(@SUFFIX1) > 0 begin
select
@SUFFIXCODEID = SUFFIXCODE.ID
from
dbo.SUFFIXCODE
where
SUFFIXCODE.DESCRIPTION = @SUFFIX1
if @SUFFIXCODEID is null
begin
exec dbo.USP_SUFFIXCODE_CREATEENTRY
@SUFFIX1,
1,
null,
@CHANGEAGENTID,
@SUFFIXCODEID output
end
end
-- Get suffix 2 type code
declare @SUFFIX2CODEID uniqueidentifier
if len(@SUFFIX2) > 0 begin
select
@SUFFIX2CODEID = SUFFIXCODE.ID
from
dbo.SUFFIXCODE
where
SUFFIXCODE.DESCRIPTION = @SUFFIX2
if @SUFFIX2CODEID is null
begin
exec dbo.USP_SUFFIXCODE_CREATEENTRY
@SUFFIX2,
1,
null,
@CHANGEAGENTID,
@SUFFIX2CODEID output
end
end
--update existing constituent
if (select count(ID) from dbo.CONSTITUENT where CONSTITUENT.ID = @ID) > 0
begin
-- Get alternate lookup ID type code for old RP lookup ID
declare @OLDRPTYPECODEID uniqueidentifier
select
@OLDRPTYPECODEID = ALTERNATELOOKUPIDTYPECODE.ID
from
dbo.ALTERNATELOOKUPIDTYPECODE
where
ALTERNATELOOKUPIDTYPECODE.DESCRIPTION = 'Original RP Lookup ID'
if @OLDRPTYPECODEID is null
begin
exec dbo.USP_ALTERNATELOOKUPIDTYPECODE_CREATEENTRY
'Original RP Lookup ID',
1,
null,
@CHANGEAGENTID,
@OLDRPTYPECODEID output
end
-- Insert old lookup ID into alternate lookup ID
if not exists(select 1 from ALTERNATELOOKUPID where CONSTITUENTID = @ID and ALTERNATELOOKUPIDTYPECODEID = @OLDRPTYPECODEID)
begin
declare @OLDLOOKUPID nvarchar(100)
select @OLDLOOKUPID = LOOKUPID from dbo.CONSTITUENT where ID = @ID
if @OLDLOOKUPID <> @RE7CONSTITUENTID
insert into dbo.ALTERNATELOOKUPID(
CONSTITUENTID,
ALTERNATELOOKUPIDTYPECODEID,
ALTERNATELOOKUPID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)values(
@ID,
@OLDRPTYPECODEID,
@OLDLOOKUPID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
)
end
update
dbo.CONSTITUENT
set
KEYNAME = coalesce(@LASTNAME, ''),
FIRSTNAME = coalesce(@FIRSTNAME, ''),
MIDDLENAME = coalesce(@MIDDLENAME, ''),
NICKNAME = coalesce(@NICKNAME, ''),
BIRTHDATE = coalesce(@DATEOFBIRTH, '00000000'),
GENDERCODE = case when @GENDER = 'Male' then 1 when @GENDER = 'Female' then 2 else 0 end,
TITLECODEID = @TITLECODEID,
TITLE2CODEID = @TITLE2CODEID,
SUFFIXCODEID = @SUFFIXCODEID,
SUFFIX2CODEID = @SUFFIX2CODEID,
CUSTOMIDENTIFIER = coalesce(@RE7CONSTITUENTID, ''),
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
ID = @ID;
--Mark Active
if exists(select top 1 ID from dbo.CONSTITUENT where ID = @ID and ISINACTIVE = 1) and @ISINACTIVE = 0
exec dbo.USP_RECORDOPERATION_MARKCONSITUENTACTIVE @ID;
else if exists(select top 1 ID from dbo.CONSTITUENT where ID = @ID and ISINACTIVE = 0) and @ISINACTIVE = 1
exec dbo.USP_RECORDOPERATION_MARKCONSITUENTINACTIVE @ID;
end
--add new constituent
else
begin
insert into dbo.CONSTITUENT(
ID,
KEYNAME,
FIRSTNAME,
MIDDLENAME,
NICKNAME,
BIRTHDATE,
GENDERCODE,
TITLECODEID,
TITLE2CODEID,
SUFFIXCODEID,
SUFFIX2CODEID,
ISINACTIVE,
CUSTOMIDENTIFIER,
CHANGEDBYID,
ADDEDBYID
)values(
@ID,
coalesce(@LASTNAME, ''),
coalesce(@FIRSTNAME, ''),
coalesce(@MIDDLENAME, ''),
coalesce(@NICKNAME, ''),
coalesce(@DATEOFBIRTH, '00000000'),
case when @GENDER = 'Male' then 1 when @GENDER = 'Female' then 2 else 0 end,
@TITLECODEID,
@TITLE2CODEID,
@SUFFIXCODEID,
@SUFFIX2CODEID,
@ISINACTIVE,
coalesce(@RE7CONSTITUENTID, ''),
@CHANGEAGENTID,
@CHANGEAGENTID
)
end
if exists(select top 1 1 from dbo.DECEASEDCONSTITUENT where ID = @ID)
begin
if @ISDECEASED = 0
delete from dbo.DECEASEDCONSTITUENT where ID = @ID;
end
else
begin
if @ISDECEASED = 1
insert into dbo.DECEASEDCONSTITUENT (
ID,
ADDEDBYID,
CHANGEDBYID
)
values (
@ID,
@CHANGEAGENTID,
@CHANGEAGENTID
);
end
-- Link constituent
if @RE7RECORDID > 0 begin
if not exists(select 1 from dbo.RE7INTEGRATIONCONSTITUENTMAP where ID = @ID)
insert into dbo.RE7INTEGRATIONCONSTITUENTMAP (
ID,
RE7RECORDID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED)
values (
@ID,
@RE7RECORDID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE);
end
end
-- Update Preferred Address Information
if @SYNCADDRESS = 1 and
@ADDRESS_ADDRESSTYPE != '' and
(@ADDRESS_STATE != '' or @ADDRESS_STATE_ABBREV != '' or @ADDRESS_POSTCODE !='' or @ADDRESS_CITY !='' or @ADDRESS_ADDRESSBLOCK != '')
begin
declare @CURRENT_ADDRESS_ID uniqueidentifier
select
@CURRENT_ADDRESS_ID = ADDRESS.ID
from
dbo.ADDRESS
left outer join dbo.STATE
on ADDRESS.STATEID = STATE.ID
left outer join dbo.COUNTRY
on ADDRESS.COUNTRYID = COUNTRY.ID
where
ADDRESS.CONSTITUENTID = @ID and
ADDRESS.ADDRESSBLOCK = @ADDRESS_ADDRESSBLOCK and
ADDRESS.CITY = @ADDRESS_CITY and
coalesce(STATE.ABBREVIATION,'') = coalesce(@ADDRESS_STATE_ABBREV,'') and
ADDRESS.POSTCODE = @ADDRESS_POSTCODE and
(coalesce(COUNTRY.DESCRIPTION,'') = coalesce(@ADDRESS_COUNTRY,'') or @ADDRESS_COUNTRY = '')
-- Get address type code
declare @ADDRESSTYPECODEID uniqueidentifier
select
@ADDRESSTYPECODEID = ADDRESSTYPECODE.ID
from
dbo.ADDRESSTYPECODE
where
ADDRESSTYPECODE.DESCRIPTION = @ADDRESS_ADDRESSTYPE
if @ADDRESSTYPECODEID is null
begin
exec dbo.USP_ADDRESSTYPECODE_CREATEENTRY
@ADDRESS_ADDRESSTYPE,
1,
null,
@CHANGEAGENTID,
@ADDRESSTYPECODEID output
end
if @CURRENT_ADDRESS_ID is not null
begin
update
dbo.ADDRESS
set
ADDRESS.ISPRIMARY = 0,
ADDRESS.CHANGEDBYID = @CHANGEAGENTID,
ADDRESS.DATECHANGED = getdate()
where
ADDRESS.ISPRIMARY = 1 and
ADDRESS.CONSTITUENTID = @ID and
ADDRESS.ID != @CURRENT_ADDRESS_ID
update
dbo.ADDRESS
set
ADDRESS.ISPRIMARY = 1,
ADDRESS.CHANGEDBYID = @CHANGEAGENTID,
ADDRESS.DATECHANGED = getdate(),
ADDRESS.ADDRESSTYPECODEID = @ADDRESSTYPECODEID
where
ADDRESS.ID = @CURRENT_ADDRESS_ID and
ADDRESS.CONSTITUENTID = @ID and
(ADDRESS.ISPRIMARY = 0 or
(ADDRESS.ADDRESSTYPECODEID is null and @ADDRESSTYPECODEID is not null) or
ADDRESS.ADDRESSTYPECODEID <> @ADDRESSTYPECODEID)
end
else
begin
declare @COUNTRYID uniqueidentifier;
if @ADDRESS_COUNTRY = ''
begin
set @COUNTRYID = dbo.UFN_COUNTRY_GETDEFAULT()
end
if @COUNTRYID is null
begin
set @COUNTRYID = dbo.UFN_COUNTRY_GETID(@ADDRESS_COUNTRY,0)
end
if @COUNTRYID is null
begin
set @COUNTRYID = dbo.UFN_COUNTRY_GETID(@ADDRESS_COUNTRY_ABBREV,1)
end
if @COUNTRYID is null
begin
declare @ADDRESSFORMATID uniqueidentifier
select
@ADDRESSFORMATID = COUNTRYADDRESSFORMAT.ID
from
dbo.COUNTRYADDRESSFORMAT
where
COUNTRYADDRESSFORMAT.FORMATNAME = 'United States'
if @ADDRESSFORMATID is null
begin
select top(1)
@ADDRESSFORMATID = COUNTRYADDRESSFORMAT.ID
from
dbo.COUNTRYADDRESSFORMAT
end
if @ADDRESSFORMATID is not null
begin
exec dbo.USP_DATAFORMTEMPLATE_ADD_COUNTRY
@COUNTRYID output,
@ADDRESS_COUNTRY,
@ADDRESS_COUNTRY_ABBREV,
@ADDRESSFORMATID,
0, --INACTIVE = false
0, --ALLOWFALIDATION = false
0, --VALIDATIONCOUNTRYCODE = false
@CHANGEAGENTID
end
end
-- Get State ID if possible
declare @STATEID uniqueidentifier
if @COUNTRYID is not null
begin
set @STATEID = dbo.UFN_STATE_GETID(@COUNTRYID,@ADDRESS_STATE,0)
if @STATEID is null
begin
set @STATEID = dbo.UFN_STATE_GETID(@COUNTRYID,@ADDRESS_STATE_ABBREV,1)
end
if @STATEID is null and
@ADDRESS_STATE != '' and
@ADDRESS_STATE_ABBREV != ''
begin
exec dbo.USP_DATAFORMTEMPLATE_ADD_STATE
@STATEID output,
@COUNTRYID,
@ADDRESS_STATE,
@ADDRESS_STATE_ABBREV,
0,
@CHANGEAGENTID
end
end
-- Add address
if @COUNTRYID is not null and
@ADDRESSTYPECODEID is not null
begin
exec dbo.USP_DATAFORMTEMPLATE_ADD_ADDRESS
null,
@CHANGEAGENTID,
@ID,
@ADDRESSTYPECODEID,
1,
0,
'0000',
'0000',
@COUNTRYID,
@STATEID,
@ADDRESS_ADDRESSBLOCK,
@ADDRESS_CITY,
@ADDRESS_POSTCODE
end
end
end
-- Update Phone Information
if @SYNCPHONES = 1 and
@PHONES is not null
begin
declare @PHONETABLE table(
PHONEID uniqueidentifier,
RE7PHONEID int,
PHONETYPE nvarchar(100),
NUMBER nvarchar(100),
DONOTCALL bit,
ISPRIMARY bit,
SEQUENCE int,
ISNEWPHONE bit,
ISNEWMAP bit
)
insert into @PHONETABLE
select
coalesce(MAP.ID, PHONE.ID, newid()),
PHONES.RE7PHONEID,
PHONES.PHONETYPE,
PHONES.NUMBER,
coalesce(PHONES.DONOTCALL, 0),
coalesce(PHONES.ISPRIMARY, 0),
row_number() over (order by PHONES.ISPRIMARY desc),
case when PHONE.ID is null and MAP.ID is null then 1 else 0 end,
case when MAP.ID is null then 1 else 0 end
from
dbo.UFN_RE7INTEGRATION_GETPHONES_FROMXML_ATTRIBUTES(@PHONES) PHONES
left join
dbo.RE7INTEGRATIONPHONEMAP MAP on MAP.RE7PHONEID = PHONES.RE7PHONEID
left join
dbo.PHONE on PHONES.PHONETYPE = (select DESCRIPTION from dbo.PHONETYPECODE where ID = PHONE.PHONETYPECODEID)
and (PHONES.NUMBER = PHONE.NUMBER or PHONES.NUMBER = PHONE.NUMBERNOFORMAT)
and (PHONE.CONSTITUENTID = @ID)
where
len(coalesce(PHONES.NUMBER, '')) > 0
--Get distinct type codes to prevent attempting to add duplicates
declare @PHONETYPECODETABLE table
(
TYPECODEDESCRIPTION nvarchar(100)
)
insert into @PHONETYPECODETABLE
select distinct PHONETYPE from @PHONETABLE
-- Insert any code table values that aren't present
insert into dbo.PHONETYPECODE
(
DESCRIPTION,
ACTIVE,
SEQUENCE,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
select
T.TYPECODEDESCRIPTION,
1,
row_number() over (order by T.TYPECODEDESCRIPTION asc) + (select coalesce(max(SEQUENCE), 1) from dbo.PHONETYPECODE),
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
from
@PHONETYPECODETABLE T
left join
dbo.PHONETYPECODE PTC on T.TYPECODEDESCRIPTION = PTC.DESCRIPTION
where
PTC.ID is null
-- Clear the constituent's primary flag so we don't clash with constraints
update dbo.PHONE
set ISPRIMARY = 0
where
CONSTITUENTID = @ID and ISPRIMARY = 1
-- Update any phone numbers that already exist
update dbo.PHONE
set
PHONETYPECODEID = (select ID from dbo.PHONETYPECODE where DESCRIPTION = T.PHONETYPE),
NUMBER = T.NUMBER,
DONOTCALL = T.DONOTCALL,
ISPRIMARY = T.ISPRIMARY,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
from
@PHONETABLE T
where
ID = T.PHONEID and T.ISNEWPHONE = 0
-- Insert any phone numbers that aren't present
insert into dbo.PHONE(
ID,
CONSTITUENTID,
PHONETYPECODEID,
NUMBER,
ISPRIMARY,
SEQUENCE,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED,
DONOTCALL,
COUNTRYID,
ISCONFIDENTIAL,
ORIGINCODE
)
select
T.PHONEID,
@ID,
(select ID from dbo.PHONETYPECODE where DESCRIPTION = T.PHONETYPE),
T.NUMBER,
T.ISPRIMARY,
T.SEQUENCE + (select coalesce(max(SEQUENCE), 0) from dbo.PHONE where CONSTITUENTID = @ID),
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE,
T.DONOTCALL,
null,
0,
0
from
@PHONETABLE T
where
T.ISNEWPHONE = 1
-- Update any phone numbers that already exist
update RE7INTEGRATIONPHONEMAP
set
RE7PHONEID = T.RE7PHONEID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
from dbo.RE7INTEGRATIONPHONEMAP
inner join @PHONETABLE T
on T.PHONEID = RE7INTEGRATIONPHONEMAP.ID
where
T.ISNEWMAP = 1
if @@rowcount = 0
-- Add new mappings between RE phone numbers and RP phone numbers
insert into dbo.RE7INTEGRATIONPHONEMAP(
ID,
RE7PHONEID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
select
T.PHONEID,
T.RE7PHONEID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
from
@PHONETABLE T
where
T.ISNEWMAP = 1;
-- Delete mappings that are no longer valid because the
-- number was deleted in RE7
delete from dbo.RE7INTEGRATIONPHONEMAP
where ID in (
select ID
from
dbo.PHONE
left join
@PHONETABLE T on PHONE.ID = T.PHONEID
where
PHONE.CONSTITUENTID = @ID and T.PHONEID is null
)
end
-- Update Preferred Business Information
if @SYNCBUSINESS = 1 and
@BUSINESS_NAME != ''
begin
declare @RELATIONSHIP_ID uniqueidentifier
declare @BUSINESS_ID uniqueidentifier
-- Check current business relationships
select
@RELATIONSHIP_ID = RELATIONSHIP.ID,
@BUSINESS_ID = BUSINESS.ID
from
dbo.RELATIONSHIP
left outer join
dbo.CONSTITUENT as BUSINESS
on
BUSINESS.ID = RELATIONSHIP.RECIPROCALCONSTITUENTID
where
RELATIONSHIP.RELATIONSHIPCONSTITUENTID = @ID and
BUSINESS.NAME = @BUSINESS_NAME
if @RELATIONSHIP_ID is not null
--Set relationship to primary business
begin
update
dbo.RELATIONSHIP
set
RELATIONSHIP.ISPRIMARYBUSINESS = 1,
RELATIONSHIP.CHANGEDBYID = @CHANGEAGENTID,
RELATIONSHIP.DATECHANGED = getdate()
where
RELATIONSHIP.ID = @RELATIONSHIP_ID
end
else
begin
-- Check if organization exists
select
@BUSINESS_ID = BUSINESS.ID
from
dbo.CONSTITUENT as BUSINESS
where
BUSINESS.KEYNAME = @BUSINESS_NAME and
BUSINESS.ISORGANIZATION = 1
if @BUSINESS_ID is null
begin
set @BUSINESS_ID = newid()
insert into dbo.CONSTITUENT
(
ID,
ISORGANIZATION,
KEYNAME,
ADDEDBYID,
CHANGEDBYID
) values (
@BUSINESS_ID,
1,
@BUSINESS_NAME,
@CHANGEAGENTID,
@CHANGEAGENTID
);
end
declare @RECIPROCALTYPECODEID uniqueidentifier
declare @RELATIONSHIPTYPECODEID uniqueidentifier
select
@RECIPROCALTYPECODEID = RELATIONSHIPTYPECODE.ID
from
dbo.RELATIONSHIPTYPECODE
where
RELATIONSHIPTYPECODE.DESCRIPTION = 'Employer'
if @RECIPROCALTYPECODEID is null
begin
exec USP_RELATIONSHIPTYPECODE_CREATEENTRY 'Employer',
1,
null,
@CHANGEAGENTID,
@RECIPROCALTYPECODEID output;
end
select
@RELATIONSHIPTYPECODEID = RELATIONSHIPTYPECODE.ID
from
dbo.RELATIONSHIPTYPECODE
where
RELATIONSHIPTYPECODE.DESCRIPTION = 'Employee'
if @RELATIONSHIPTYPECODEID is null
begin
exec USP_RELATIONSHIPTYPECODE_CREATEENTRY 'Employee',
1,
null,
@CHANGEAGENTID,
@RELATIONSHIPTYPECODEID output;
end
exec dbo.USP_DATAFORMTEMPLATE_ADD_INDTOORG_RELATIONSHIP
@RELATIONSHIP_ID,
@CHANGEAGENTID,
@ID,
@BUSINESS_ID,
@RECIPROCALTYPECODEID,
@RELATIONSHIPTYPECODEID,
null,
null,
0,
0,
null,
'',
1,
0
end
--Set business address
if @BUSINESS_ADDRESSTYPE != '' and
(@BUSINESS_STATE != '' or @BUSINESS_STATE_ABBREV != '' or @BUSINESS_POSTCODE !='' or @BUSINESS_CITY !='' or @BUSINESS_ADDRESSBLOCK != '')
begin
declare @CURRENT_BUSINESS_ADDRESS_ID uniqueidentifier
select
@CURRENT_BUSINESS_ADDRESS_ID = ADDRESS.ID
from
dbo.ADDRESS
left outer join dbo.STATE
on ADDRESS.STATEID = STATE.ID
left outer join dbo.COUNTRY
on ADDRESS.COUNTRYID = COUNTRY.ID
where
ADDRESS.CONSTITUENTID = @BUSINESS_ID and
ADDRESS.ADDRESSBLOCK = @BUSINESS_ADDRESSBLOCK and
ADDRESS.CITY = @BUSINESS_CITY and
coalesce(STATE.ABBREVIATION,'') = coalesce(@BUSINESS_STATE_ABBREV,'')and
ADDRESS.POSTCODE = @BUSINESS_POSTCODE and
(coalesce(COUNTRY.DESCRIPTION,'') = coalesce(@BUSINESS_COUNTRY,'') or @BUSINESS_COUNTRY = '')
-- Get business address type code
declare @BUSINESS_ADDRESSTYPECODEID uniqueidentifier
select
@BUSINESS_ADDRESSTYPECODEID = ADDRESSTYPECODE.ID
from
dbo.ADDRESSTYPECODE
where
ADDRESSTYPECODE.DESCRIPTION = @BUSINESS_ADDRESSTYPE
if @BUSINESS_ADDRESSTYPECODEID is null
begin
exec dbo.USP_ADDRESSTYPECODE_CREATEENTRY
@BUSINESS_ADDRESSTYPE,
1,
null,
@CHANGEAGENTID,
@BUSINESS_ADDRESSTYPECODEID output
end
if @CURRENT_BUSINESS_ADDRESS_ID is not null
begin
update
dbo.ADDRESS
set
ADDRESS.ISPRIMARY = 0,
ADDRESS.CHANGEDBYID = @CHANGEAGENTID,
ADDRESS.DATECHANGED = getdate()
where
ADDRESS.ISPRIMARY = 1 and
ADDRESS.CONSTITUENTID = @BUSINESS_ID and
ADDRESS.ID != @CURRENT_BUSINESS_ADDRESS_ID
update
dbo.ADDRESS
set
ADDRESS.ISPRIMARY = 1,
ADDRESS.CHANGEDBYID = @CHANGEAGENTID,
ADDRESS.DATECHANGED = getdate(),
ADDRESS.ADDRESSTYPECODEID = @BUSINESS_ADDRESSTYPECODEID
where
ADDRESS.ID = @CURRENT_BUSINESS_ADDRESS_ID and
ADDRESS.CONSTITUENTID = @BUSINESS_ID and
(ADDRESS.ISPRIMARY = 0 or
(ADDRESS.ADDRESSTYPECODEID is null and @BUSINESS_ADDRESSTYPECODEID is not null) or
ADDRESS.ADDRESSTYPECODEID <> @BUSINESS_ADDRESSTYPECODEID)
end
else
begin
declare @BUSINESS_COUNTRYID uniqueidentifier;
if @BUSINESS_COUNTRY = ''
begin
set @BUSINESS_COUNTRYID = dbo.UFN_COUNTRY_GETDEFAULT()
end
if @BUSINESS_COUNTRYID is null
begin
set @BUSINESS_COUNTRYID = dbo.UFN_COUNTRY_GETID(@BUSINESS_COUNTRY,0)
end
if @BUSINESS_COUNTRYID is null
begin
set @BUSINESS_COUNTRYID = dbo.UFN_COUNTRY_GETID(@BUSINESS_COUNTRY_ABBREV,1)
end
if @BUSINESS_COUNTRYID is null
begin
declare @BUSINESS_ADDRESSFORMATID uniqueidentifier
select
@BUSINESS_ADDRESSFORMATID = COUNTRYADDRESSFORMAT.ID
from
dbo.COUNTRYADDRESSFORMAT
where
COUNTRYADDRESSFORMAT.FORMATNAME = 'United States'
if @BUSINESS_ADDRESSFORMATID is null
begin
select top(1)
@BUSINESS_ADDRESSFORMATID = COUNTRYADDRESSFORMAT.ID
from
dbo.COUNTRYADDRESSFORMAT
end
if @BUSINESS_ADDRESSFORMATID is not null
begin
exec dbo.USP_DATAFORMTEMPLATE_ADD_COUNTRY
@BUSINESS_COUNTRYID output,
@BUSINESS_COUNTRY,
@BUSINESS_COUNTRY_ABBREV,
@BUSINESS_ADDRESSFORMATID,
0, --INACTIVE = false
0, --ALLOWFALIDATION = false
0, --VALIDATIONCOUNTRYCODE = false
@CHANGEAGENTID
end
end
--Get State ID if possible
declare @BUSINESS_STATEID uniqueidentifier
if @BUSINESS_COUNTRYID is not null
begin
set @BUSINESS_STATEID = dbo.UFN_STATE_GETID(@BUSINESS_COUNTRYID,@BUSINESS_STATE,0)
if @BUSINESS_STATEID is null
begin
set @BUSINESS_STATEID = dbo.UFN_STATE_GETID(@BUSINESS_COUNTRYID,@BUSINESS_STATE_ABBREV,1)
end
if @BUSINESS_STATEID is null and
@BUSINESS_STATE != '' and
@BUSINESS_STATE_ABBREV != ''
begin
exec dbo.USP_DATAFORMTEMPLATE_ADD_STATE
@BUSINESS_STATEID output,
@BUSINESS_COUNTRYID,
@BUSINESS_STATE,
@BUSINESS_STATE_ABBREV,
0,
@CHANGEAGENTID
end
end
-- Add business address
if @BUSINESS_COUNTRYID is not null and
@BUSINESS_ADDRESSTYPECODEID is not null
begin
exec dbo.USP_DATAFORMTEMPLATE_ADD_ADDRESS
null,
@CHANGEAGENTID,
@BUSINESS_ID,
@BUSINESS_ADDRESSTYPECODEID,
1,
0,
'0000',
'0000',
@BUSINESS_COUNTRYID,
@BUSINESS_STATEID,
@BUSINESS_ADDRESSBLOCK,
@BUSINESS_CITY,
@BUSINESS_POSTCODE
end
end
end
end
-- Update Giving Information
if @SYNCGIVING = 1
begin
if (select
count(ID)
from
dbo.RE7INTEGRATIONGIVINGSUMMARY
where
RE7INTEGRATIONGIVINGSUMMARY.ID = @ID
) > 0
begin
update
dbo.RE7INTEGRATIONGIVINGSUMMARY
set
FIRSTGIFTAMOUNT = @FIRSTGIFTAMOUNT,
FIRSTGIFTDATE = @FIRSTGIFTDATE,
LARGESTGIFTAMOUNT = @LARGESTGIFTAMOUNT,
LARGESTGIFTDATE = @LARGESTGIFTDATE,
LATESTGIFTAMOUNT = @LATESTGIFTAMOUNT,
LATESTGIFTDATE = @LATESTGIFTDATE,
TOTALGIFTSGIVEN = @TOTALGIFTSGIVEN,
TOTALGIFTAMOUNT = @TOTALGIFTAMOUNT,
FIRSTGIFTTYPE = @FIRSTGIFTTYPE,
LARGESTGIFTTYPE = @LARGESTGIFTTYPE,
LATESTGIFTTYPE = @LATESTGIFTTYPE,
LATESTGIFTDESIGNATION = @LATESTGIFTDESIGNATION,
FIRSTGIFTDESIGNATION = @FIRSTGIFTDESIGNATION,
LARGESTGIFTDESIGNATION = @LARGESTGIFTDESIGNATION,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = getdate()
where
RE7INTEGRATIONGIVINGSUMMARY.ID = @ID
end
else
begin
insert into dbo.RE7INTEGRATIONGIVINGSUMMARY(
ID,
FIRSTGIFTAMOUNT,
FIRSTGIFTDATE,
LARGESTGIFTAMOUNT,
LARGESTGIFTDATE,
LATESTGIFTAMOUNT,
LATESTGIFTDATE,
TOTALGIFTSGIVEN,
TOTALGIFTAMOUNT,
FIRSTGIFTTYPE,
LARGESTGIFTTYPE,
LATESTGIFTTYPE,
LATESTGIFTDESIGNATION,
FIRSTGIFTDESIGNATION,
LARGESTGIFTDESIGNATION,
CHANGEDBYID,
ADDEDBYID
)values(
@ID,
@FIRSTGIFTAMOUNT,
@FIRSTGIFTDATE,
@LARGESTGIFTAMOUNT,
@LARGESTGIFTDATE,
@LATESTGIFTAMOUNT,
@LATESTGIFTDATE,
@TOTALGIFTSGIVEN,
@TOTALGIFTAMOUNT,
@FIRSTGIFTTYPE,
@LARGESTGIFTTYPE,
@LATESTGIFTTYPE,
@LATESTGIFTDESIGNATION,
@FIRSTGIFTDESIGNATION,
@LARGESTGIFTDESIGNATION,
@CHANGEAGENTID,
@CHANGEAGENTID
)
end
exec dbo.USP_WEALTHCAPACITY_UPDATE @ID, @CHANGEAGENTID;
end
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;