USP_AUCTIONITEMBATCH_CONSTITUENT_COMMIT
Saves an individual record with spouse and business information.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@BATCHAUCTIONITEMCONSTITUENTID | uniqueidentifier | IN | |
@BATCHAUCTIONITEMCONSTITUENTACCOUNTID | uniqueidentifier | IN | |
@CONSTITUENTACCOUNTID | uniqueidentifier | INOUT | |
@BYPASSINDIVIDUALHOUSEHOLDADD | bit | IN | |
@BYPASSINDIVIDUALSPOUSEADD | bit | IN | |
@CURRENTRECOGNITIONS | xml | IN | |
@UPDATEDRECOGNITIONS | xml | INOUT | |
@UPDATEDAPPLICATIONRECOGNITIONS | xml | INOUT |
Definition
Copy
CREATE procedure dbo.USP_AUCTIONITEMBATCH_CONSTITUENT_COMMIT
(
@ID uniqueidentifier = null output,
@CHANGEAGENTID uniqueidentifier = null,
@BATCHAUCTIONITEMCONSTITUENTID uniqueidentifier,
@BATCHAUCTIONITEMCONSTITUENTACCOUNTID uniqueidentifier = null,
@CONSTITUENTACCOUNTID uniqueidentifier = null output,
@BYPASSINDIVIDUALHOUSEHOLDADD bit = 0,
@BYPASSINDIVIDUALSPOUSEADD bit = 0,
@CURRENTRECOGNITIONS xml = null,
@UPDATEDRECOGNITIONS xml = null output,
@UPDATEDAPPLICATIONRECOGNITIONS xml = null output
) as begin
set nocount on;
declare @CURRENTDATE datetime;
declare @CURRENTAPPUSERID uniqueidentifier
declare @ISORGANIZATION bit
declare @KEYNAME nvarchar(100)
declare @KEYNAMEPREFIX nvarchar(50)
declare @FIRSTNAME nvarchar(50)
declare @MIDDLENAME nvarchar(50)
declare @MAIDENNAME nvarchar(100)
declare @NICKNAME nvarchar(50)
declare @TITLECODEID uniqueidentifier
declare @SUFFIXCODEID uniqueidentifier
declare @GENDERCODE tinyint
declare @BIRTHDATE dbo.UDT_FUZZYDATE
declare @ADDRESS_ADDRESSTYPECODEID uniqueidentifier
declare @ADDRESS_DONOTMAIL bit
declare @ADDRESS_DONOTMAILREASONCODEID uniqueidentifier
declare @ADDRESS_COUNTRYID uniqueidentifier
declare @ADDRESS_STATEID uniqueidentifier
declare @ADDRESS_ADDRESSBLOCK nvarchar(150)
declare @ADDRESS_CITY nvarchar(50)
declare @ADDRESS_POSTCODE nvarchar(12)
-- Address Validation
declare @ADDRESS_OMITFROMVALIDATION bit
declare @ADDRESS_CART nvarchar(10)
declare @ADDRESS_DPC nvarchar(8)
declare @ADDRESS_LOT nvarchar(5)
declare @ADDRESS_COUNTYCODEID uniqueidentifier
declare @ADDRESS_CONGRESSIONALDISTRICTCODEID uniqueidentifier
declare @ADDRESS_LASTVALIDATIONATTEMPTDATE datetime
declare @ADDRESS_VALIDATIONMESSAGE nvarchar(200)
declare @ADDRESS_CERTIFICATIONDATA integer
declare @PHONE_PHONETYPECODEID uniqueidentifier
declare @PHONE_NUMBER nvarchar(100)
declare @EMAILADDRESS_EMAILADDRESSTYPECODEID uniqueidentifier
declare @EMAILADDRESS_EMAILADDRESS dbo.UDT_EMAILADDRESS
declare @MARITALSTATUSCODEID uniqueidentifier
declare @SKIP_ADDING_SECURITYGROUPS bit
declare @WEBADDRESS dbo.UDT_WEBADDRESS
declare @INDUSTRYCODEID uniqueidentifier
declare @NUMEMPLOYEES int
declare @NUMSUBSIDIARIES int
declare @PARENTCORPID uniqueidentifier
declare @ISGROUP bit
declare @ISHOUSEHOLD bit
declare @GIVESANONYMOUSLY bit
declare @GROUPTYPECODE tinyint
declare @GROUPTYPEID uniqueidentifier
declare @GROUPDESCRIPTION nvarchar(300)
declare @GROUPSTARTDATE datetime
declare @NAMEFORMATFUNCTIONID uniqueidentifier
--Spouse Variables
declare @BATCHSPOUSEID uniqueidentifier
declare @SPOUSEID uniqueidentifier
declare @EXISTINGSPOUSE bit
declare @SPOUSE_LASTNAME nvarchar(100)
declare @SPOUSE_FIRSTNAME nvarchar(50)
declare @SPOUSE_MIDDLENAME nvarchar(50)
declare @SPOUSE_MAIDENNAME nvarchar(100)
declare @SPOUSE_NICKNAME nvarchar(50)
declare @SPOUSE_TITLECODEID uniqueidentifier
declare @SPOUSE_SUFFIXCODEID uniqueidentifier
declare @SPOUSE_GENDERCODE tinyint
declare @SPOUSE_BIRTHDATE dbo.UDT_FUZZYDATE
declare @SPOUSE_RECIPROCALTYPECODEID uniqueidentifier
declare @SPOUSE_RELATIONSHIPTYPECODEID uniqueidentifier
declare @COPYPRIMARYINFORMATION bit
declare @SPOUSE_STARTDATE datetime
declare @PRIMARYRELATIONSHIPEXISTS bit
declare @PRIMARYMATCHFACTOR decimal(5,2)
declare @RECIPROCALRELATIONSHIPEXISTS bit
declare @RECIPROCALMATCHFACTOR decimal(5,2)
--Organization variables
declare @BATCHORGANIZATIONID uniqueidentifier
declare @ORGANIZATIONID uniqueidentifier
declare @EXISTINGORGANIZATION bit
declare @ORGANIZATION_KEYNAME nvarchar(100)
declare @ORGANIZATION_KEYNAMEPREFIX nvarchar(50)
declare @ORGANIZATION_ADDRESSTYPECODEID uniqueidentifier
declare @ORGANIZATION_COUNTRYID uniqueidentifier
declare @ORGANIZATION_STATEID uniqueidentifier
declare @ORGANIZATION_ADDRESSBLOCK nvarchar(150)
declare @ORGANIZATION_CITY nvarchar(50)
declare @ORGANIZATION_POSTCODE nvarchar(12)
declare @ORGANIZATION_DONOTMAIL bit
declare @ORGANIZATION_DONOTMAILREASONCODEID uniqueidentifier
-- Address Validation
declare @ORGANIZATION_OMITFROMVALIDATION bit
declare @ORGANIZATION_CART nvarchar(10)
declare @ORGANIZATION_DPC nvarchar(8)
declare @ORGANIZATION_LOT nvarchar(5)
declare @ORGANIZATION_COUNTYCODEID uniqueidentifier
declare @ORGANIZATION_CONGRESSIONALDISTRICTCODEID uniqueidentifier
declare @ORGANIZATION_LASTVALIDATIONATTEMPTDATE datetime
declare @ORGANIZATION_VALIDATIONMESSAGE nvarchar(200)
declare @ORGANIZATION_CERTIFICATIONDATA integer
declare @ORGANIZATION_PHONETYPECODEID uniqueidentifier
declare @ORGANIZATION_NUMBER nvarchar(100)
declare @ORGANIZATION_RECIPROCALTYPECODEID uniqueidentifier
declare @ORGANIZATION_RELATIONSHIPTYPECODEID uniqueidentifier
declare @ORGANIZATION_STARTDATE datetime
declare @ISCONTACT bit
declare @ISPRIMARYCONTACT bit
declare @CONTACTTYPECODEID uniqueidentifier
declare @POSITION nvarchar(100)
declare @ISMATCHINGGIFTRELATIONSHIP bit
declare @BATCHHOUSEHOLDID uniqueidentifier
declare @HOUSEHOLDID uniqueidentifier
declare @HOUSEHOLD_NAME nvarchar(100)
declare @ADDSPOUSETOHOUSEHOLD bit
declare @HOUSEHOLDCOPYPRIMARYCONTACTINFO bit
declare @ISSPOUSERELATIONSHIP bit
declare @SKIP_ADDING_SITES bit
declare @JOBCATEGORYCODEID uniqueidentifier
declare @CAREERLEVELCODEID uniqueidentifier
declare @PHONE_DONOTCALL bit
declare @EMAILADDRESS_DONOTEMAIL bit
--Relationship recognition defaults
declare @PRIMARYSOFTCREDITRELATIONSHIPEXISTS bit = 0
declare @PRIMARYSOFTCREDITMATCHFACTOR decimal(5,2) = 100
declare @PRIMARYRECOGNITIONTYPECODEID uniqueidentifier = null
declare @PRIMARYCONSTITUENTTYPE tinyint = 0
declare @RECIPROCALSOFTCREDITRELATIONSHIPEXISTS bit = 0
declare @RECIPROCALSOFTCREDITMATCHFACTOR decimal(5,2) = 100
declare @RECIPROCALRECOGNITIONTYPECODEID uniqueidentifier = null
declare @RECIPROCALCONSTITUENTTYPE tinyint = 0
--load
exec dbo.USP_AUCTIONITEMBATCH_CONSTITUENT_LOAD @BATCHAUCTIONITEMCONSTITUENTID, @CURRENTAPPUSERID OUTPUT, @ISORGANIZATION OUTPUT, @KEYNAME OUTPUT, @KEYNAMEPREFIX OUTPUT, @FIRSTNAME OUTPUT, @MIDDLENAME OUTPUT, @MAIDENNAME OUTPUT, @NICKNAME OUTPUT, @TITLECODEID OUTPUT, @SUFFIXCODEID OUTPUT, @GENDERCODE OUTPUT, @BIRTHDATE OUTPUT, @ADDRESS_ADDRESSTYPECODEID OUTPUT, @ADDRESS_DONOTMAIL OUTPUT, @ADDRESS_COUNTRYID OUTPUT, @ADDRESS_STATEID OUTPUT, @ADDRESS_ADDRESSBLOCK OUTPUT, @ADDRESS_CITY OUTPUT, @ADDRESS_POSTCODE OUTPUT,
@ADDRESS_OMITFROMVALIDATION OUTPUT, @ADDRESS_CART OUTPUT, @ADDRESS_DPC OUTPUT, @ADDRESS_LOT OUTPUT, @ADDRESS_COUNTYCODEID OUTPUT, @ADDRESS_CONGRESSIONALDISTRICTCODEID OUTPUT, @ADDRESS_LASTVALIDATIONATTEMPTDATE OUTPUT, @ADDRESS_VALIDATIONMESSAGE OUTPUT, @ADDRESS_CERTIFICATIONDATA OUTPUT, @PHONE_PHONETYPECODEID OUTPUT, @PHONE_NUMBER OUTPUT, @EMAILADDRESS_EMAILADDRESSTYPECODEID OUTPUT,
@EMAILADDRESS_EMAILADDRESS OUTPUT, @MARITALSTATUSCODEID OUTPUT, @WEBADDRESS output,@INDUSTRYCODEID output,@NUMEMPLOYEES output,@NUMSUBSIDIARIES output,@PARENTCORPID output, @BATCHSPOUSEID output, null, @SPOUSEID OUTPUT, @EXISTINGSPOUSE OUTPUT, @SPOUSE_LASTNAME OUTPUT, @SPOUSE_FIRSTNAME OUTPUT, @SPOUSE_MIDDLENAME OUTPUT, @SPOUSE_MAIDENNAME OUTPUT, @SPOUSE_NICKNAME OUTPUT, @SPOUSE_TITLECODEID OUTPUT, @SPOUSE_SUFFIXCODEID OUTPUT, @SPOUSE_GENDERCODE OUTPUT, @SPOUSE_BIRTHDATE OUTPUT, @SPOUSE_RECIPROCALTYPECODEID OUTPUT, @SPOUSE_RELATIONSHIPTYPECODEID OUTPUT, @COPYPRIMARYINFORMATION OUTPUT, @SPOUSE_STARTDATE OUTPUT,
@PRIMARYRELATIONSHIPEXISTS OUTPUT, @PRIMARYMATCHFACTOR OUTPUT, @RECIPROCALRELATIONSHIPEXISTS OUTPUT, @RECIPROCALMATCHFACTOR OUTPUT, @BATCHORGANIZATIONID OUTPUT, null, @ORGANIZATIONID OUTPUT, @EXISTINGORGANIZATION OUTPUT, @ORGANIZATION_KEYNAME OUTPUT, @ORGANIZATION_KEYNAMEPREFIX OUTPUT, @ORGANIZATION_ADDRESSTYPECODEID OUTPUT, @ORGANIZATION_COUNTRYID OUTPUT, @ORGANIZATION_STATEID OUTPUT, @ORGANIZATION_ADDRESSBLOCK OUTPUT, @ORGANIZATION_CITY OUTPUT, @ORGANIZATION_POSTCODE OUTPUT,
@ORGANIZATION_DONOTMAIL OUTPUT, @ORGANIZATION_OMITFROMVALIDATION OUTPUT, @ORGANIZATION_CART OUTPUT, @ORGANIZATION_DPC OUTPUT, @ORGANIZATION_LOT OUTPUT, @ORGANIZATION_COUNTYCODEID OUTPUT, @ORGANIZATION_CONGRESSIONALDISTRICTCODEID OUTPUT, @ORGANIZATION_LASTVALIDATIONATTEMPTDATE OUTPUT, @ORGANIZATION_VALIDATIONMESSAGE OUTPUT, @ORGANIZATION_CERTIFICATIONDATA OUTPUT, @ORGANIZATION_PHONETYPECODEID OUTPUT, @ORGANIZATION_NUMBER OUTPUT, @ORGANIZATION_RECIPROCALTYPECODEID OUTPUT, @ORGANIZATION_RELATIONSHIPTYPECODEID OUTPUT, @ORGANIZATION_STARTDATE OUTPUT, @ISCONTACT OUTPUT, @ISPRIMARYCONTACT OUTPUT, @CONTACTTYPECODEID OUTPUT, @POSITION OUTPUT, @ISMATCHINGGIFTRELATIONSHIP OUTPUT, @ISGROUP OUTPUT, @ISHOUSEHOLD OUTPUT, @GIVESANONYMOUSLY OUTPUT, @GROUPTYPECODE OUTPUT, @GROUPTYPEID OUTPUT, @GROUPDESCRIPTION OUTPUT, @GROUPSTARTDATE OUTPUT, null, null, @NAMEFORMATFUNCTIONID OUTPUT, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null, @BATCHHOUSEHOLDID output, @HOUSEHOLDID OUTPUT,
@HOUSEHOLD_NAME OUTPUT, @ADDSPOUSETOHOUSEHOLD OUTPUT, @HOUSEHOLDCOPYPRIMARYCONTACTINFO OUTPUT, @ISSPOUSERELATIONSHIP OUTPUT, @ADDRESS_DONOTMAILREASONCODEID OUTPUT, @ORGANIZATION_DONOTMAILREASONCODEID OUTPUT, @JOBCATEGORYCODEID output, @CAREERLEVELCODEID output, @PHONE_DONOTCALL output, @EMAILADDRESS_DONOTEMAIL output;
if @ID is null
set @ID = newid();
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
set @CURRENTDATE = getdate();
if @ISORGANIZATION is null
set @ISORGANIZATION = 0;
begin try
-------------- Insert Individual's Information --------------
insert into dbo.CONSTITUENT
(
[ID],
[ISORGANIZATION],
[KEYNAME],
[KEYNAMEPREFIX],
[FIRSTNAME],
[MIDDLENAME],
[MAIDENNAME],
[NICKNAME],
[TITLECODEID],
[SUFFIXCODEID],
[GENDERCODE],
[BIRTHDATE],
[MARITALSTATUSCODEID],
[WEBADDRESS],
[ISGROUP],
[GIVESANONYMOUSLY],
[ISCONSTITUENT],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
values
(
@ID,
@ISORGANIZATION,
@KEYNAME,
@KEYNAMEPREFIX,
@FIRSTNAME,
@MIDDLENAME,
@MAIDENNAME,
@NICKNAME,
@TITLECODEID,
@SUFFIXCODEID,
@GENDERCODE,
@BIRTHDATE,
@MARITALSTATUSCODEID,
@WEBADDRESS,
@ISGROUP,
@GIVESANONYMOUSLY,
1, -- ISCONSTITUENT
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
set @UPDATEDRECOGNITIONS = @CURRENTRECOGNITIONS
exec dbo.USP_AUCTIONITEMBATCH_CONSTITUENT_UPDATEIDS
@BATCHAUCTIONITEMCONSTITUENTID = @BATCHAUCTIONITEMCONSTITUENTID,
@CONSTITUENTID = @ID,
@CHANGEAGENTID = @CHANGEAGENTID,
@CURRENTRECOGNITIONS = null,
@UPDATEDRECOGNITIONS = null,
@UPDATEDAPPLICATIONRECOGNITIONS = null
/*
exec dbo.USP_REVENUEBATCH_GENERATECONSTITUENTACCOUNTS
@BATCHREVENUECONSTITUENTID = @BATCHREVENUECONSTITUENTID,
@CONSTITUENTID = @ID,
@CHANGEAGENTID = @CHANGEAGENTID,
@BATCHREVENUECONSTITUENTACCOUNTID = @BATCHREVENUECONSTITUENTACCOUNTID,
@CONSTITUENTACCOUNTID = @CONSTITUENTACCOUNTID output
*/
/* Start Individual Address */
if
(
(@ADDRESS_STATEID is not null)
or (coalesce(@ADDRESS_ADDRESSBLOCK,'') <> '')
or (coalesce(@ADDRESS_CITY,'') <> '')
or (coalesce(@ADDRESS_POSTCODE,'') <> '')
or (@ADDRESS_ADDRESSTYPECODEID is not null)
or (@ADDRESS_COUNTRYID is not null)
or (@ADDRESS_DONOTMAIL = 1)
or (@ADDRESS_DONOTMAILREASONCODEID is not null)
)
begin
declare @ADDRESSID uniqueidentifier;
set @ADDRESSID = newID();
insert into dbo.[ADDRESS]
(
[ID],
[CONSTITUENTID],
[ADDRESSTYPECODEID],
[ISPRIMARY],
[DONOTMAIL],
[DONOTMAILREASONCODEID],
[COUNTRYID],
[STATEID],
[ADDRESSBLOCK],
[CITY],
[POSTCODE],
[CART],
[DPC],
[LOT],
[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,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
insert into dbo.ADDRESSVALIDATIONUPDATE
(
[ID],
[COUNTYCODEID],
[CONGRESSIONALDISTRICTCODEID],
[LASTVALIDATIONATTEMPTDATE],
[VALIDATIONMESSAGE],
[CERTIFICATIONDATA],
[OMITFROMVALIDATION],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
values
(
@ADDRESSID,
@ADDRESS_COUNTYCODEID,
@ADDRESS_CONGRESSIONALDISTRICTCODEID,
@ADDRESS_LASTVALIDATIONATTEMPTDATE,
@ADDRESS_VALIDATIONMESSAGE,
@ADDRESS_CERTIFICATIONDATA,
@ADDRESS_OMITFROMVALIDATION,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
end
/* End Individual Address */
/* Start Individual Primary Phone */
if (@PHONE_PHONETYPECODEID is not null) or (coalesce(@PHONE_NUMBER,'') <> '')
begin
insert into dbo.[PHONE]
(
[CONSTITUENTID],
[PHONETYPECODEID],
[NUMBER],
[ISPRIMARY],
[DONOTCALL],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
values
(
@ID,
@PHONE_PHONETYPECODEID,
@PHONE_NUMBER,
1,
coalesce(@PHONE_DONOTCALL, 0),
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
end
/* End Primary Phone */
/* Start Individual Primary Email Address */
if (@EMAILADDRESS_EMAILADDRESSTYPECODEID is not null) or (coalesce(@EMAILADDRESS_EMAILADDRESS,'') <> '')
begin
insert into dbo.[EMAILADDRESS]
(
[CONSTITUENTID],
[EMAILADDRESSTYPECODEID],
[EMAILADDRESS],
[ISPRIMARY],
[DONOTEMAIL],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
values
(
@ID,
@EMAILADDRESS_EMAILADDRESSTYPECODEID,
@EMAILADDRESS_EMAILADDRESS,
1,
@EMAILADDRESS_DONOTEMAIL,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
end
/* End Primary Email Address */
/* Start security groups*/
if coalesce(@SKIP_ADDING_SECURITYGROUPS,0) = 0
begin
exec dbo.USP_CONSTITUENT_ASSIGNSECURITYGROUPS_FORNEWRECORD
@APPUSERID =@CURRENTAPPUSERID,
@DATAFORMTEMPLATEID='9d3aff90-42d0-4db0-a4c1-703d25fd1902',
@CONSTITUENTID =@ID,
@DATEADDEDTOUSE =@CURRENTDATE,
@CHANGEAGENTID = @CHANGEAGENTID;
end
/* End security groups*/
/* Start sites*/
if coalesce(@SKIP_ADDING_SITES,0) = 0
begin
exec dbo.USP_CONSTITUENT_ASSIGNSITES_FORNEWRECORD
@APPUSERID =@CURRENTAPPUSERID,
@DATAFORMTEMPLATEID='9d3aff90-42d0-4db0-a4c1-703d25fd1902',
@CONSTITUENTID =@ID,
@DATEADDEDTOUSE =@CURRENTDATE,
@CHANGEAGENTID = @CHANGEAGENTID;
end
/* End sites*/
/*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 @ISGROUP = 0)
/*End name format defaults*/
if @ISORGANIZATION != 0
begin
if @INDUSTRYCODEID is not null
or @PARENTCORPID is not null
or @PARENTCORPID is not null
or @NUMEMPLOYEES != 0
or @NUMSUBSIDIARIES != 0
insert into dbo.ORGANIZATIONDATA
(
ID,
INDUSTRYCODEID,
NUMEMPLOYEES,
NUMSUBSIDIARIES,
PARENTCORPID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values
(
@ID,
@INDUSTRYCODEID,
@NUMEMPLOYEES,
@NUMSUBSIDIARIES,
@PARENTCORPID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
end;
else
begin
if @ISGROUP != 0
begin
insert into dbo.GROUPDATA
(
ID,
GROUPTYPECODE,
GROUPTYPEID,
DESCRIPTION,
STARTDATE,
NAMEFORMATFUNCTIONID,
ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED
)
values
(
@ID,
@GROUPTYPECODE,
@GROUPTYPEID,
@GROUPDESCRIPTION,
@GROUPSTARTDATE,
@NAMEFORMATFUNCTIONID,
@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
);
-- Handle group's members
-- Create table variable to hold mapping between BATCHAUCTIONITEMCONSTITUENT.ID and
-- CONSTITUENT.ID
declare @IDMAPPING table
(
AUCTIONITEMBATCHCONSTITUENTID uniqueidentifier,
CONSTITUENTID uniqueidentifier
)
declare GROUPMEMBERCURSOR cursor local fast_forward for
select C.ID, C.EXISTINGCONSTITUENTID, GM.ISPRIMARY, GM.COPYGROUPCONTACTINFOTOMEMBER
from dbo.BATCHAUCTIONITEMCONSTITUENT C
inner join dbo.BATCHAUCTIONITEMCONSTITUENTGROUPMEMBER GM on C.ID = GM.MEMBERID
where GM.GROUPID = @BATCHAUCTIONITEMCONSTITUENTID
open GROUPMEMBERCURSOR
declare @BATCHAUCTIONITEMMEMBERID uniqueidentifier, @EXISTINGMEMBERID uniqueidentifier, @ISPRIMARY bit, @COPYGROUPPRIMARYCONTACTINFO bit
fetch next from GROUPMEMBERCURSOR into @BATCHAUCTIONITEMMEMBERID, @EXISTINGMEMBERID, @ISPRIMARY, @COPYGROUPPRIMARYCONTACTINFO
while @@FETCH_STATUS = 0
begin
if @EXISTINGMEMBERID is null
begin
set @EXISTINGMEMBERID = newid()
exec dbo.USP_AUCTIONITEMBATCH_CONSTITUENT_COMMIT
@ID = @EXISTINGMEMBERID output,
@CHANGEAGENTID = @CHANGEAGENTID,
@BATCHAUCTIONITEMCONSTITUENTID = @BATCHAUCTIONITEMMEMBERID,
@BYPASSINDIVIDUALHOUSEHOLDADD = @ISHOUSEHOLD,
@BYPASSINDIVIDUALSPOUSEADD = @ISHOUSEHOLD,
@CURRENTRECOGNITIONS = @UPDATEDRECOGNITIONS,
@UPDATEDRECOGNITIONS = @UPDATEDRECOGNITIONS output;
end
declare @GROUPMEMBERID uniqueidentifier
set @GROUPMEMBERID = newid()
insert into dbo.GROUPMEMBER
(
ID,
GROUPID,
MEMBERID,
ISPRIMARY,
ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED
)
values
(
@GROUPMEMBERID,
@ID,
@EXISTINGMEMBERID,
0,
@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
)
insert into dbo.GROUPMEMBERDATERANGE
(
ID,
GROUPMEMBERID,
DATEFROM,
ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED
)
values
(
newid(),
@GROUPMEMBERID,
null,
@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
)
-- Update ISPRIMARY value rather than inserting since
-- the GROUPMEMBERDATERANGE record needs to exist before ISPRIMARY
-- can be true
if @ISPRIMARY = 1
begin
update dbo.GROUPMEMBER
set
ISPRIMARY = 1,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = getdate()
where
ID = @GROUPMEMBERID;
exec dbo.USP_GROUP_COPYPHONE @ID, @EXISTINGMEMBERID, @PHONE_NUMBER, @CHANGEAGENTID;
end
if @COPYGROUPPRIMARYCONTACTINFO = 1
exec dbo.USP_CONSTITUENT_COPYPRIMARYCONTACTINFO @CHANGEAGENTID, @ID, @EXISTINGMEMBERID
insert into @IDMAPPING (AUCTIONITEMBATCHCONSTITUENTID, CONSTITUENTID)
values (@BATCHAUCTIONITEMMEMBERID, @EXISTINGMEMBERID)
exec dbo.USP_RELATIONSHIPCONFIGURATION_CONFIGUREFORAUCTIONITEMBATCH @EXISTINGMEMBERID, @CHANGEAGENTID
fetch next from GROUPMEMBERCURSOR into @BATCHAUCTIONITEMMEMBERID, @EXISTINGMEMBERID, @ISPRIMARY, @COPYGROUPPRIMARYCONTACTINFO
end
--When a cursor is used, it should be explicitly closed/deallocated in case of blocking or USP running long
close GROUPMEMBERCURSOR;
deallocate GROUPMEMBERCURSOR;
-- Create relationships between group members
/*--adding this into a temp table first to track which relationships need recognition defaults
insert into dbo.RELATIONSHIP
(
ID,
RELATIONSHIPCONSTITUENTID,
RECIPROCALCONSTITUENTID,
RELATIONSHIPTYPECODEID,
RECIPROCALTYPECODEID,
STARTDATE,
ISSPOUSE,
ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED
)
select
newid(),
RELATIONSHIPCONSTITUENT.CONSTITUENTID,
RECIPROCALCONSTITUENT.CONSTITUENTID,
R.RELATIONSHIPTYPECODEID,
R.RECIPROCALTYPECODEID,
R.STARTDATE,
R.ISSPOUSE,
@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
from dbo.BATCHAUCTIONITEMCONSTITUENTRELATION R
-- Joining to @IDMAPPING ensures that only the added group members are inserted and
-- the BATCHAUCTIONITEMECONSTITUENT IDs can be mapped to CONSTITUENT IDs
inner join @IDMAPPING RELATIONSHIPCONSTITUENT on R.CONSTITUENTID = RELATIONSHIPCONSTITUENT.AUCTIONITEMBATCHCONSTITUENTID
inner join @IDMAPPING RECIPROCALCONSTITUENT on R.RELATIONID = RECIPROCALCONSTITUENT.AUCTIONITEMBATCHCONSTITUENTID
*/
declare @TEMPRELATIONSHIPS table
(
RELATIONSHIPID uniqueidentifier,
CONSTITUENTID uniqueidentifier,
RECIPROCALCONSTITUENTID uniqueidentifier,
RELATIONSHIPTYPECODEID uniqueidentifier,
RECIPROCALTYPECODEID uniqueidentifier,
STARTDATE datetime,
ISSPOUSE bit,
PRIMARYSOFTCREDITRELATIONSHIPEXISTS bit,
PRIMARYSOFTCREDITMATCHFACTOR decimal(5,2),
PRIMARYRECOGNITIONTYPECODEID uniqueidentifier,
RECIPROCALSOFTCREDITRELATIONSHIPEXISTS bit,
RECIPROCALSOFTCREDITMATCHFACTOR decimal(5,2),
RECIPROCALRECOGNITIONTYPECODEID uniqueidentifier
);
insert into @TEMPRELATIONSHIPS
(RELATIONSHIPID, CONSTITUENTID, RECIPROCALCONSTITUENTID, RELATIONSHIPTYPECODEID, RECIPROCALTYPECODEID, STARTDATE, ISSPOUSE,
PRIMARYSOFTCREDITRELATIONSHIPEXISTS, PRIMARYSOFTCREDITMATCHFACTOR, PRIMARYRECOGNITIONTYPECODEID,
RECIPROCALSOFTCREDITRELATIONSHIPEXISTS, RECIPROCALSOFTCREDITMATCHFACTOR, RECIPROCALRECOGNITIONTYPECODEID)
select
newid(),
RELATIONSHIPCONSTITUENT.CONSTITUENTID,
RECIPROCALCONSTITUENT.CONSTITUENTID,
R.RELATIONSHIPTYPECODEID,
R.RECIPROCALTYPECODEID,
R.STARTDATE,
R.ISSPOUSE,
case when PRIMARY_RRD.ID is null then 0 else 1 end,
coalesce(PRIMARY_RRD.MATCHFACTOR, 100),
coalesce(PRIMARY_RRD.REVENUERECOGNITIONTYPECODEID, null),
case when RECIPROCAL_RRD.ID is null then 0 else 1 end,
coalesce(RECIPROCAL_RRD.MATCHFACTOR, 100),
coalesce(RECIPROCAL_RRD.REVENUERECOGNITIONTYPECODEID, null)
from dbo.BATCHAUCTIONITEMCONSTITUENTRELATION R
-- Joining to @IDMAPPING ensures that only the added group members are inserted and
-- the BATCHAUCTIONITEMECONSTITUENT IDs can be mapped to CONSTITUENT IDs
inner join @IDMAPPING RELATIONSHIPCONSTITUENT on R.CONSTITUENTID = RELATIONSHIPCONSTITUENT.AUCTIONITEMBATCHCONSTITUENTID
inner join @IDMAPPING RECIPROCALCONSTITUENT on R.RELATIONID = RECIPROCALCONSTITUENT.AUCTIONITEMBATCHCONSTITUENTID
left join dbo.CONSTITUENT CONSTITUENTTYPE on RELATIONSHIPCONSTITUENT.CONSTITUENTID = CONSTITUENTTYPE.ID
left join dbo.CONSTITUENT RECIPROCALCONSTITUENTTYPE on RECIPROCALCONSTITUENT.CONSTITUENTID = RECIPROCALCONSTITUENTTYPE.ID
left join dbo.RECOGNITIONRELATIONSHIPDEFAULT PRIMARY_RRD on
PRIMARY_RRD.CONSTITUENTTYPECODE = (case
when CONSTITUENTTYPE.ISGROUP = 1 and dbo.UFN_CONSTITUENT_ISGROUP(CONSTITUENTTYPE.ID) = 1 then 3 --Household
when CONSTITUENTTYPE.ISGROUP = 1 and dbo.UFN_CONSTITUENT_ISHOUSEHOLD(CONSTITUENTTYPE.ID) = 1 then 2 -- Group
when CONSTITUENTTYPE.ISORGANIZATION = 1 then 1 --Organization
else 0 end --Individual
) and
R.RELATIONSHIPTYPECODEID = PRIMARY_RRD.RELATIONSHIPTYPECODEID
left join dbo.RECOGNITIONRELATIONSHIPDEFAULT RECIPROCAL_RRD on
RECIPROCAL_RRD.CONSTITUENTTYPECODE = (case
when RECIPROCALCONSTITUENTTYPE.ISGROUP = 1 and dbo.UFN_CONSTITUENT_ISGROUP(RECIPROCALCONSTITUENTTYPE.ID) = 1 then 3 --Household
when RECIPROCALCONSTITUENTTYPE.ISGROUP = 1 and dbo.UFN_CONSTITUENT_ISHOUSEHOLD(RECIPROCALCONSTITUENTTYPE.ID) = 1 then 2 -- Group
when RECIPROCALCONSTITUENTTYPE.ISORGANIZATION = 1 then 1 --Organization
else 0 end --Individual
) and
R.RECIPROCALTYPECODEID = RECIPROCAL_RRD.RELATIONSHIPTYPECODEID
insert into dbo.RELATIONSHIP
(
ID,
RELATIONSHIPCONSTITUENTID,
RECIPROCALCONSTITUENTID,
RELATIONSHIPTYPECODEID,
RECIPROCALTYPECODEID,
STARTDATE,
ISSPOUSE,
ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED
)
select RELATIONSHIPID, CONSTITUENTID, RECIPROCALCONSTITUENTID, RELATIONSHIPTYPECODEID, RECIPROCALTYPECODEID, STARTDATE, ISSPOUSE,
@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
from @TEMPRELATIONSHIPS
declare @TEMP_CONSTITUENTID uniqueidentifier = null,
@TEMP_RECIPROCALCONSTITUENTID uniqueidentifier = null,
@TEMP_STARTDATE datetime = null,
@TEMP_PRIMARYSOFTCREDITRELATIONSHIPEXISTS bit = 0,
@TEMP_PRIMARYSOFTCREDITMATCHFACTOR decimal(5,2)= 100,
@TEMP_PRIMARYRECOGNITIONTYPECODEID uniqueidentifier = null,
@TEMP_RECIPROCALSOFTCREDITRELATIONSHIPEXISTS bit= 0,
@TEMP_RECIPROCALSOFTCREDITMATCHFACTOR decimal(5,2) = 100,
@TEMP_RECIPROCALRECOGNITIONTYPECODEID uniqueidentifier = null
if (select count(RELATIONSHIPID) from @TEMPRELATIONSHIPS) <= 1
begin
select @TEMP_CONSTITUENTID=CONSTITUENTID, @TEMP_RECIPROCALCONSTITUENTID=RECIPROCALCONSTITUENTID, @TEMP_STARTDATE=STARTDATE,
@TEMP_PRIMARYSOFTCREDITRELATIONSHIPEXISTS=PRIMARYSOFTCREDITRELATIONSHIPEXISTS, @TEMP_PRIMARYSOFTCREDITMATCHFACTOR=PRIMARYSOFTCREDITMATCHFACTOR, @TEMP_PRIMARYRECOGNITIONTYPECODEID=PRIMARYRECOGNITIONTYPECODEID,
@TEMP_RECIPROCALSOFTCREDITRELATIONSHIPEXISTS=RECIPROCALSOFTCREDITRELATIONSHIPEXISTS, @TEMP_RECIPROCALSOFTCREDITMATCHFACTOR=RECIPROCALSOFTCREDITMATCHFACTOR, @TEMP_RECIPROCALRECOGNITIONTYPECODEID=RECIPROCALRECOGNITIONTYPECODEID
from @TEMPRELATIONSHIPS
exec dbo.USP_RECOGNITIONDEFAULTSUPDATE @TEMP_CONSTITUENTID, @TEMP_RECIPROCALCONSTITUENTID,
@TEMP_STARTDATE, NULL, @TEMP_PRIMARYSOFTCREDITRELATIONSHIPEXISTS, @TEMP_PRIMARYSOFTCREDITMATCHFACTOR,
@TEMP_PRIMARYRECOGNITIONTYPECODEID, @TEMP_RECIPROCALSOFTCREDITRELATIONSHIPEXISTS,
@TEMP_RECIPROCALSOFTCREDITMATCHFACTOR, @TEMP_RECIPROCALRECOGNITIONTYPECODEID, @CHANGEAGENTID, 0;
end
else
begin
declare RELATIONSHIPSCURSOR cursor local fast_forward for
select CONSTITUENTID, RECIPROCALCONSTITUENTID, STARTDATE,
PRIMARYSOFTCREDITRELATIONSHIPEXISTS, PRIMARYSOFTCREDITMATCHFACTOR, PRIMARYRECOGNITIONTYPECODEID,
RECIPROCALSOFTCREDITRELATIONSHIPEXISTS, RECIPROCALSOFTCREDITMATCHFACTOR, RECIPROCALRECOGNITIONTYPECODEID
from @TEMPRELATIONSHIPS
open RELATIONSHIPSCURSOR
fetch next from RELATIONSHIPSCURSOR into @TEMP_CONSTITUENTID, @TEMP_RECIPROCALCONSTITUENTID, @TEMP_STARTDATE,
@TEMP_PRIMARYSOFTCREDITRELATIONSHIPEXISTS, @TEMP_PRIMARYSOFTCREDITMATCHFACTOR, @TEMP_PRIMARYRECOGNITIONTYPECODEID,
@TEMP_RECIPROCALSOFTCREDITRELATIONSHIPEXISTS, @TEMP_RECIPROCALSOFTCREDITMATCHFACTOR, @TEMP_RECIPROCALRECOGNITIONTYPECODEID;
while @@FETCH_STATUS = 0
begin
exec dbo.USP_RECOGNITIONDEFAULTSUPDATE @TEMP_CONSTITUENTID, @TEMP_RECIPROCALCONSTITUENTID,
@TEMP_STARTDATE, NULL, @TEMP_PRIMARYSOFTCREDITRELATIONSHIPEXISTS, @TEMP_PRIMARYSOFTCREDITMATCHFACTOR,
@TEMP_PRIMARYRECOGNITIONTYPECODEID, @TEMP_RECIPROCALSOFTCREDITRELATIONSHIPEXISTS,
@TEMP_RECIPROCALSOFTCREDITMATCHFACTOR, @TEMP_RECIPROCALRECOGNITIONTYPECODEID, @CHANGEAGENTID, 0;
fetch next from RELATIONSHIPSCURSOR into @TEMP_CONSTITUENTID, @TEMP_RECIPROCALCONSTITUENTID, @TEMP_STARTDATE,
@TEMP_PRIMARYSOFTCREDITRELATIONSHIPEXISTS, @TEMP_PRIMARYSOFTCREDITMATCHFACTOR, @TEMP_PRIMARYRECOGNITIONTYPECODEID,
@TEMP_RECIPROCALSOFTCREDITRELATIONSHIPEXISTS, @TEMP_RECIPROCALSOFTCREDITMATCHFACTOR, @TEMP_RECIPROCALRECOGNITIONTYPECODEID;
end
--When a cursor is used, it should be explicitly closed/deallocated in case of blocking or USP running long
close RELATIONSHIPSCURSOR;
deallocate RELATIONSHIPSCURSOR;
end
-- Recalculate the household name if it is dynamically named
if @NAMEFORMATFUNCTIONID is not null
update dbo.CONSTITUENT
set CONSTITUENT.KEYNAME = left(dbo.UFN_NAMEFORMAT_FROMID(GD.NAMEFORMATFUNCTIONID, PM.MEMBERID), 100),
CONSTITUENT.[CHANGEDBYID] = @CHANGEAGENTID,
CONSTITUENT.[DATECHANGED] = @CURRENTDATE
from dbo.GROUPDATA GD
inner join dbo.GROUPMEMBER PM on GD.ID = PM.GROUPID and PM.ISPRIMARY <> 0
where CONSTITUENT.ID = @ID and GD.ID = @ID and GD.NAMEFORMATFUNCTIONID is not null
end
else
begin
-------------- Insert Spouse's Information --------------
declare @ISSPOUSE bit
declare @RELATIONSHIPID uniqueidentifier
if (@SPOUSEID is not null)
set @EXISTINGSPOUSE = 1
if (@SPOUSEID is not null) or (coalesce(@SPOUSE_LASTNAME,'') <> '')
set @ISSPOUSE = 1
else
set @ISSPOUSE = 0
-- Have matching factor makes sense only when relationship exists
if @PRIMARYRELATIONSHIPEXISTS = 0
set @PRIMARYMATCHFACTOR = 0;
if @RECIPROCALRELATIONSHIPEXISTS = 0
set @RECIPROCALMATCHFACTOR = 0;
--If there is a spouse create the relationship
if @ISSPOUSE = 1 and @BYPASSINDIVIDUALSPOUSEADD = 0
begin
if @RELATIONSHIPID is null
set @RELATIONSHIPID = newid();
--If you are creating a new spouse make new constituent entry
if @EXISTINGSPOUSE = 0
begin
if @SPOUSEID is null
set @SPOUSEID = newid();
---------Spouse Constituent Information---------
insert into dbo.CONSTITUENT
(
[ID],
[ISORGANIZATION],
[KEYNAME],
[FIRSTNAME],
[MIDDLENAME],
[MAIDENNAME],
[NICKNAME],
[TITLECODEID],
[SUFFIXCODEID],
[GENDERCODE],
[BIRTHDATE],
[PICTURE],
[PICTURETHUMBNAIL],
[WEBADDRESS],
[MARITALSTATUSCODEID],
[ISCONSTITUENT],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
values
(
@SPOUSEID,
0,
@SPOUSE_LASTNAME,
@SPOUSE_FIRSTNAME,
@SPOUSE_MIDDLENAME,
@SPOUSE_MAIDENNAME,
@SPOUSE_NICKNAME,
@SPOUSE_TITLECODEID,
@SPOUSE_SUFFIXCODEID,
@SPOUSE_GENDERCODE,
@SPOUSE_BIRTHDATE,
null,
null,
'',
@MARITALSTATUSCODEID,
1, -- ISCONSTITUENT
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
exec dbo.USP_AUCTIONITEMBATCH_CONSTITUENT_UPDATEIDS
@BATCHAUCTIONITEMCONSTITUENTID = @BATCHSPOUSEID,
@CONSTITUENTID = @SPOUSEID,
@CHANGEAGENTID = @CHANGEAGENTID,
@CURRENTRECOGNITIONS = null,
@UPDATEDRECOGNITIONS = null,
@UPDATEDAPPLICATIONRECOGNITIONS = null;
/*
exec dbo.USP_AUCTIONITEMBATCH_GENERATECONSTITUENTACCOUNTS
@BATCHREVENUECONSTITUENTID = @BATCHSPOUSEID,
@CONSTITUENTID = @SPOUSEID,
@CHANGEAGENTID = @CHANGEAGENTID;
*/
/* Start security groups*/
if coalesce(@SKIP_ADDING_SECURITYGROUPS,0) = 0
begin
exec dbo.USP_CONSTITUENT_ASSIGNSECURITYGROUPS_FORNEWRECORD
@APPUSERID =@CURRENTAPPUSERID,
@DATAFORMTEMPLATEID='9d3aff90-42d0-4db0-a4c1-703d25fd1902',
@CONSTITUENTID =@SPOUSEID,
@DATEADDEDTOUSE =@CURRENTDATE,
@CHANGEAGENTID = @CHANGEAGENTID;
end
/* End security groups*/
/* Start sites*/
if coalesce(@SKIP_ADDING_SITES,0) = 0
begin
exec dbo.USP_CONSTITUENT_ASSIGNSITES_FORNEWRECORD
@APPUSERID =@CURRENTAPPUSERID,
@DATAFORMTEMPLATEID='9d3aff90-42d0-4db0-a4c1-703d25fd1902',
@CONSTITUENTID =@SPOUSEID,
@DATEADDEDTOUSE =@CURRENTDATE,
@CHANGEAGENTID = @CHANGEAGENTID;
end
/* End sites*/
/*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*/
end
else
begin
exec dbo.USP_AUCTIONITEMBATCH_CONSTITUENT_UPDATEIDS
@BATCHAUCTIONITEMCONSTITUENTID = @BATCHSPOUSEID,
@CONSTITUENTID = @SPOUSEID,
@CHANGEAGENTID = @CHANGEAGENTID,
@CURRENTRECOGNITIONS = null,
@UPDATEDRECOGNITIONS = null,
@UPDATEDAPPLICATIONRECOGNITIONS = null;
end
declare @EXISTINGID uniqueidentifier
set @EXISTINGID = null
if @COPYPRIMARYINFORMATION = 1
begin
/* Start Spouse Address */
if
(
(@ADDRESS_STATEID is not null)
or (coalesce(@ADDRESS_ADDRESSBLOCK,'') <> '')
or (coalesce(@ADDRESS_CITY,'') <> '')
or (coalesce(@ADDRESS_POSTCODE,'') <> '')
or (@ADDRESS_ADDRESSTYPECODEID is not null)
or (@ADDRESS_COUNTRYID is not null)
or (@ADDRESS_DONOTMAIL = 1)
or (@ADDRESS_DONOTMAILREASONCODEID is not null)
)
begin
if exists (select ID from dbo.ADDRESS where CONSTITUENTID = @SPOUSEID and ISPRIMARY = 1)
update dbo.ADDRESS
set
ISPRIMARY = 0
where
CONSTITUENTID = @SPOUSEID and
ISPRIMARY = 1
select
@EXISTINGID = ID
from
dbo.ADDRESS
where
CONSTITUENTID = @SPOUSEID and
ADDRESSTYPECODEID = @ADDRESS_ADDRESSTYPECODEID and
DONOTMAIL = @ADDRESS_DONOTMAIL and
DONOTMAILREASONCODEID = @ADDRESS_DONOTMAILREASONCODEID and
COUNTRYID = @ADDRESS_COUNTRYID and
STATEID = @ADDRESS_STATEID and
ADDRESSBLOCK = @ADDRESS_ADDRESSBLOCK and
CITY = @ADDRESS_CITY and
POSTCODE = @ADDRESS_POSTCODE
if @EXISTINGID is null
begin
declare @SPOUSE_ADDRESSID uniqueidentifier;
set @SPOUSE_ADDRESSID = newID();
insert into dbo.ADDRESS
(ID, CONSTITUENTID,ADDRESSTYPECODEID,ISPRIMARY,DONOTMAIL,DONOTMAILREASONCODEID,COUNTRYID,STATEID,ADDRESSBLOCK,CITY,POSTCODE, CART, DPC, LOT, ADDEDBYID,CHANGEDBYID,DATEADDED,DATECHANGED)
values
(@SPOUSE_ADDRESSID, @SPOUSEID,@ADDRESS_ADDRESSTYPECODEID,1,@ADDRESS_DONOTMAIL,@ADDRESS_DONOTMAILREASONCODEID,@ADDRESS_COUNTRYID,@ADDRESS_STATEID,@ADDRESS_ADDRESSBLOCK,@ADDRESS_CITY,@ADDRESS_POSTCODE, @ADDRESS_CART, @ADDRESS_DPC, @ADDRESS_LOT, @CHANGEAGENTID,@CHANGEAGENTID,@CURRENTDATE,@CURRENTDATE)
insert into dbo.ADDRESSVALIDATIONUPDATE
(ID, OMITFROMVALIDATION, COUNTYCODEID, CONGRESSIONALDISTRICTCODEID, LASTVALIDATIONATTEMPTDATE, VALIDATIONMESSAGE, CERTIFICATIONDATA, ADDEDBYID,CHANGEDBYID,DATEADDED,DATECHANGED)
values
(@SPOUSE_ADDRESSID, @ADDRESS_OMITFROMVALIDATION, @ADDRESS_COUNTYCODEID, @ADDRESS_CONGRESSIONALDISTRICTCODEID, @ADDRESS_LASTVALIDATIONATTEMPTDATE, @ADDRESS_VALIDATIONMESSAGE, @ADDRESS_CERTIFICATIONDATA, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)
end
else
update dbo.ADDRESS
set
ISPRIMARY = 1
where
ID = @EXISTINGID
-- Remove blank address if one was created when adding an individual (no contact info entered creates blank address)
declare @BLANKADDRESSID uniqueidentifier
select
@BLANKADDRESSID = ID
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 = '' and
ISPRIMARY = 0
if @BLANKADDRESSID is not null
delete from dbo.ADDRESS
where ID = @BLANKADDRESSID
end
/* End Spouse Address */
/* Start Spouse Primary Phone */
set @EXISTINGID = null
if (@PHONE_PHONETYPECODEID is not null) or (coalesce(@PHONE_NUMBER,'') <> '')
begin
if exists (select ID from dbo.PHONE where CONSTITUENTID = @SPOUSEID and ISPRIMARY = 1)
update dbo.PHONE
set
ISPRIMARY = 0
where
CONSTITUENTID = @SPOUSEID and
ISPRIMARY = 1
select
@EXISTINGID = ID
from
dbo.PHONE
where
CONSTITUENTID = @SPOUSEID and
PHONETYPECODEID = @PHONE_PHONETYPECODEID and
NUMBER = @PHONE_NUMBER
if @EXISTINGID is null
insert into dbo.PHONE
(CONSTITUENTID,PHONETYPECODEID,NUMBER,ISPRIMARY,ADDEDBYID,CHANGEDBYID,DATEADDED,DATECHANGED)
values
(@SPOUSEID,@PHONE_PHONETYPECODEID,@PHONE_NUMBER,1,@CHANGEAGENTID,@CHANGEAGENTID,@CURRENTDATE,@CURRENTDATE)
else
update dbo.PHONE
set
ISPRIMARY = 1
where
ID = @EXISTINGID
end
/* End Spouse Primary Phone */
/* Start Spouse Primary Email Address */
set @EXISTINGID = null
if (@EMAILADDRESS_EMAILADDRESSTYPECODEID is not null) or (coalesce(@EMAILADDRESS_EMAILADDRESS,'') <> '')
begin
if exists (select ID from dbo.EMAILADDRESS where CONSTITUENTID = @SPOUSEID and ISPRIMARY = 1)
update dbo.EMAILADDRESS
set
ISPRIMARY = 0
where
CONSTITUENTID = @SPOUSEID and
ISPRIMARY = 1
select
@EXISTINGID = ID
from
dbo.EMAILADDRESS
where
CONSTITUENTID = @SPOUSEID and
EMAILADDRESSTYPECODEID = @EMAILADDRESS_EMAILADDRESSTYPECODEID and
EMAILADDRESS = @EMAILADDRESS_EMAILADDRESS
if @EXISTINGID is null
insert into dbo.EMAILADDRESS
(CONSTITUENTID,EMAILADDRESSTYPECODEID,EMAILADDRESS,ISPRIMARY,ADDEDBYID,CHANGEDBYID,DATEADDED,DATECHANGED)
values
(@SPOUSEID,@EMAILADDRESS_EMAILADDRESSTYPECODEID,@EMAILADDRESS_EMAILADDRESS,1,@CHANGEAGENTID,@CHANGEAGENTID,@CURRENTDATE,@CURRENTDATE)
else
update dbo.EMAILADDRESS
set
ISPRIMARY = 1
where
ID = @EXISTINGID
end
/* End Spouse Email Address */
end
---------Spouse Relationship---------
-- Only create the relationship if the relationship types are set.
-- It's possible that the BATCHAUCTIONITEMCONSTITUENTRELATIONSHIP entry
-- exists to indicate the spouse constituent but no relationship
-- should actually be created.
if @SPOUSE_RELATIONSHIPTYPECODEID is not null and @SPOUSE_RECIPROCALTYPECODEID is not null
begin
insert into dbo.RELATIONSHIP
(
ID,
RELATIONSHIPCONSTITUENTID,
RECIPROCALCONSTITUENTID,
RELATIONSHIPTYPECODEID,
RECIPROCALTYPECODEID,
ISSPOUSE,
STARTDATE,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values
(
@RELATIONSHIPID,
@ID,
@SPOUSEID,
@SPOUSE_RELATIONSHIPTYPECODEID,
@SPOUSE_RECIPROCALTYPECODEID,
@ISSPOUSERELATIONSHIP,
@SPOUSE_STARTDATE,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
set @PRIMARYSOFTCREDITRELATIONSHIPEXISTS = 0
set @PRIMARYSOFTCREDITMATCHFACTOR = 100
set @PRIMARYRECOGNITIONTYPECODEID = null
set @PRIMARYCONSTITUENTTYPE = 0
set @RECIPROCALSOFTCREDITRELATIONSHIPEXISTS = 0
set @RECIPROCALSOFTCREDITMATCHFACTOR = 100
set @RECIPROCALRECOGNITIONTYPECODEID = null
set @RECIPROCALCONSTITUENTTYPE = 0
select @PRIMARYCONSTITUENTTYPE = case
when ISGROUP = 1 and dbo.UFN_CONSTITUENT_ISGROUP(ID) = 1 then 3 --Household
when ISGROUP = 1 and dbo.UFN_CONSTITUENT_ISHOUSEHOLD(ID) = 1 then 2 -- Group
when ISORGANIZATION = 1 then 1 --Organization
else 0 end --Individual
from dbo.CONSTITUENT where ID = @ID;
select @RECIPROCALCONSTITUENTTYPE = case
when ISGROUP = 1 and dbo.UFN_CONSTITUENT_ISGROUP(ID) = 1 then 3 --Household
when ISGROUP = 1 and dbo.UFN_CONSTITUENT_ISHOUSEHOLD(ID) = 1 then 2 -- Group
when ISORGANIZATION = 1 then 1 --Organization
else 0 end --Individual
from dbo.CONSTITUENT where ID = @SPOUSEID;
-- add default recognition credits if creating a new relationship
select @PRIMARYSOFTCREDITRELATIONSHIPEXISTS = 1,
@PRIMARYRECOGNITIONTYPECODEID=RRD.REVENUERECOGNITIONTYPECODEID,
@PRIMARYSOFTCREDITMATCHFACTOR= RRD.MATCHFACTOR
from dbo.RECOGNITIONRELATIONSHIPDEFAULT as RRD
where RRD.CONSTITUENTTYPECODE=@PRIMARYCONSTITUENTTYPE and RRD.RELATIONSHIPTYPECODEID=@SPOUSE_RELATIONSHIPTYPECODEID
select @RECIPROCALSOFTCREDITRELATIONSHIPEXISTS = 1,
@RECIPROCALRECOGNITIONTYPECODEID=RRD.REVENUERECOGNITIONTYPECODEID,
@RECIPROCALSOFTCREDITMATCHFACTOR= RRD.MATCHFACTOR
from dbo.RECOGNITIONRELATIONSHIPDEFAULT as RRD
where RRD.CONSTITUENTTYPECODE=@RECIPROCALCONSTITUENTTYPE and RRD.RELATIONSHIPTYPECODEID=@SPOUSE_RECIPROCALTYPECODEID
exec dbo.USP_RECOGNITIONDEFAULTSUPDATE @ID, @SPOUSEID,
@SPOUSE_STARTDATE, NULL, @PRIMARYSOFTCREDITRELATIONSHIPEXISTS, @PRIMARYSOFTCREDITMATCHFACTOR,
@PRIMARYRECOGNITIONTYPECODEID, @RECIPROCALSOFTCREDITRELATIONSHIPEXISTS,
@RECIPROCALSOFTCREDITMATCHFACTOR, @RECIPROCALRECOGNITIONTYPECODEID, @CHANGEAGENTID, 0;
exec dbo.USP_RELATIONSHIPCONFIGURATION_CONFIGURE @ID, @SPOUSEID, @SPOUSE_RELATIONSHIPTYPECODEID, @SPOUSE_RECIPROCALTYPECODEID, @CHANGEAGENTID, @CURRENTDATE
end
if @ISSPOUSERELATIONSHIP = 1 and not exists (select ID from dbo.DISABLEDWEALTHUPDATES where ID = @SPOUSEID)
insert into dbo.DISABLEDWEALTHUPDATES
(
ID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values
(
@SPOUSEID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
)
end
-- Insert individual's household if needed
if @BYPASSINDIVIDUALHOUSEHOLDADD = 0 and (@HOUSEHOLDID is not null or coalesce(@HOUSEHOLD_NAME, '') <> '')
begin
if @HOUSEHOLDID is null
begin
set @HOUSEHOLDID = newid()
insert into dbo.CONSTITUENT
(
[ID],
[ISGROUP],
[KEYNAME],
[ISCONSTITUENT],
[ADDEDBYID], [CHANGEDBYID], [DATEADDED], [DATECHANGED]
)
values
(
@HOUSEHOLDID,
1, -- ISGROUP
@HOUSEHOLD_NAME,
1, -- ISCONSTITUENT
@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
);
exec dbo.USP_AUCTIONITEMBATCH_CONSTITUENT_UPDATEIDS
@BATCHAUCTIONITEMCONSTITUENTID = @BATCHHOUSEHOLDID,
@CONSTITUENTID = @HOUSEHOLDID,
@CHANGEAGENTID = @CHANGEAGENTID,
@CURRENTRECOGNITIONS = null,
@UPDATEDRECOGNITIONS = null,
@UPDATEDAPPLICATIONRECOGNITIONS = null;
/*
exec dbo.USP_REVENUEBATCH_GENERATECONSTITUENTACCOUNTS
@BATCHREVENUECONSTITUENTID = @BATCHHOUSEHOLDID,
@CONSTITUENTID = @HOUSEHOLDID,
@CHANGEAGENTID = @CHANGEAGENTID;
*/
insert into dbo.GROUPDATA
(
[ID],
[GROUPTYPECODE],
[ADDEDBYID], [CHANGEDBYID], [DATEADDED], [DATECHANGED]
)
values
(
@HOUSEHOLDID,
0, -- Indicates group is a household
@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
)
/* Start security groups*/
if coalesce(@SKIP_ADDING_SECURITYGROUPS,0) = 0
begin
exec dbo.USP_CONSTITUENT_ASSIGNSECURITYGROUPS_FORNEWRECORD
@APPUSERID =@CURRENTAPPUSERID,
@DATAFORMTEMPLATEID='9d3aff90-42d0-4db0-a4c1-703d25fd1902',
@CONSTITUENTID =@HOUSEHOLDID,
@DATEADDEDTOUSE =@CURRENTDATE,
@CHANGEAGENTID = @CHANGEAGENTID;
end
/* End security groups*/
/* Start sites*/
if coalesce(@SKIP_ADDING_SITES,0) = 0
begin
exec dbo.USP_CONSTITUENT_ASSIGNSITES_FORNEWRECORD
@APPUSERID =@CURRENTAPPUSERID,
@DATAFORMTEMPLATEID='9d3aff90-42d0-4db0-a4c1-703d25fd1902',
@CONSTITUENTID =@HOUSEHOLDID,
@DATEADDEDTOUSE =@CURRENTDATE,
@CHANGEAGENTID = @CHANGEAGENTID;
end
/* End sites*/
end
else
begin
exec dbo.USP_AUCTIONITEMBATCH_CONSTITUENT_UPDATEIDS
@BATCHAUCTIONITEMCONSTITUENTID = @BATCHHOUSEHOLDID,
@CONSTITUENTID = @HOUSEHOLDID,
@CHANGEAGENTID = @CHANGEAGENTID,
@CURRENTRECOGNITIONS = null,
@UPDATEDRECOGNITIONS = null,
@UPDATEDAPPLICATIONRECOGNITIONS = null;
end
exec dbo.USP_GROUPMEMBERADD null, @CHANGEAGENTID, @HOUSEHOLDID, @ID
if @HOUSEHOLDCOPYPRIMARYCONTACTINFO = 1
exec dbo.USP_CONSTITUENT_COPYPRIMARYCONTACTINFO @CHANGEAGENTID, @ID, @HOUSEHOLDID
if @ADDSPOUSETOHOUSEHOLD = 1
exec dbo.USP_GROUPMEMBERADD null, @CHANGEAGENTID, @HOUSEHOLDID, @SPOUSEID
end
end
-------------- Insert Organization Information --------------
declare @HASBUSINESS bit
set @RELATIONSHIPID = null
if (@ORGANIZATIONID is not null)
set @EXISTINGORGANIZATION = 1
if (@ORGANIZATIONID is not null) or (coalesce(@ORGANIZATION_KEYNAME,'') <> '')
set @HASBUSINESS = 1
else
set @HASBUSINESS = 0
--If their is an organization create the relationship
if @HASBUSINESS = 1
begin
if @RELATIONSHIPID is null
set @RELATIONSHIPID = newid();
--if you are creating a new organization make a new constituent entry
if @EXISTINGORGANIZATION = 0
begin
if @ORGANIZATIONID is null
set @ORGANIZATIONID = newid();
---------Organization Constituent Information---------
insert into dbo.CONSTITUENT
(
[ID],
[ISORGANIZATION],
[KEYNAME],
[KEYNAMEPREFIX],
[ISCONSTITUENT],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
values
(
@ORGANIZATIONID,
-1, -- ISORGANIZATION
@ORGANIZATION_KEYNAME,
@ORGANIZATION_KEYNAMEPREFIX,
1, -- ISCONSTITUENT
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
exec dbo.USP_AUCTIONITEMBATCH_CONSTITUENT_UPDATEIDS
@BATCHAUCTIONITEMCONSTITUENTID = @BATCHORGANIZATIONID,
@CONSTITUENTID = @ORGANIZATIONID,
@CHANGEAGENTID = @CHANGEAGENTID,
@CURRENTRECOGNITIONS = null,
@UPDATEDRECOGNITIONS = null,
@UPDATEDAPPLICATIONRECOGNITIONS = null;
/*
exec dbo.USP_REVENUEBATCH_GENERATECONSTITUENTACCOUNTS
@BATCHREVENUECONSTITUENTID = @BATCHORGANIZATIONID,
@CONSTITUENTID = @ORGANIZATIONID,
@CHANGEAGENTID = @CHANGEAGENTID;
*/
/*Start Primary Address */
if
(
(@ORGANIZATION_STATEID is not null)
or (coalesce(@ORGANIZATION_ADDRESSBLOCK,'') <> '')
or (coalesce(@ORGANIZATION_CITY,'') <> '')
or (coalesce(@ORGANIZATION_POSTCODE,'') <> '')
or (@ORGANIZATION_ADDRESSTYPECODEID is not null)
or (@ORGANIZATION_COUNTRYID is not null)
or (@ORGANIZATION_DONOTMAIL = 1)
or (@ORGANIZATION_DONOTMAILREASONCODEID is not null)
)
begin
declare @ORGANIZATION_ADDRESSID uniqueidentifier;
set @ORGANIZATION_ADDRESSID = newID();
insert into dbo.ADDRESS
(
ID,
CONSTITUENTID,
ADDRESSTYPECODEID,
ISPRIMARY,
DONOTMAIL,
DONOTMAILREASONCODEID,
COUNTRYID,
STATEID,
ADDRESSBLOCK,
CITY,
POSTCODE,
CART,
DPC,
LOT,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values
(
@ORGANIZATION_ADDRESSID,
@ORGANIZATIONID,
@ORGANIZATION_ADDRESSTYPECODEID,
1,
@ORGANIZATION_DONOTMAIL,
@ORGANIZATION_DONOTMAILREASONCODEID,
@ORGANIZATION_COUNTRYID,
@ORGANIZATION_STATEID,
@ORGANIZATION_ADDRESSBLOCK,
@ORGANIZATION_CITY,
@ORGANIZATION_POSTCODE,
@ORGANIZATION_CART,
@ORGANIZATION_DPC,
@ORGANIZATION_LOT,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
insert into dbo.ADDRESSVALIDATIONUPDATE
(
ID,
COUNTYCODEID,
CONGRESSIONALDISTRICTCODEID,
LASTVALIDATIONATTEMPTDATE,
VALIDATIONMESSAGE,
CERTIFICATIONDATA,
OMITFROMVALIDATION,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values
(
@ORGANIZATION_ADDRESSID,
@ORGANIZATION_COUNTYCODEID,
@ORGANIZATION_CONGRESSIONALDISTRICTCODEID,
@ORGANIZATION_LASTVALIDATIONATTEMPTDATE,
@ORGANIZATION_VALIDATIONMESSAGE,
@ORGANIZATION_CERTIFICATIONDATA,
@ORGANIZATION_OMITFROMVALIDATION,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
end
/* End Primary Address */
/*Start Primary Phone */
if (@ORGANIZATION_PHONETYPECODEID is not null) or (coalesce(@ORGANIZATION_NUMBER,'') <> '')
insert into dbo.PHONE
(
CONSTITUENTID,
PHONETYPECODEID,
NUMBER,
ISPRIMARY,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values
(
@ORGANIZATIONID,
@ORGANIZATION_PHONETYPECODEID,
@ORGANIZATION_NUMBER,
1,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
/*End Primary Phone */
/*Start security groups*/
if COALESCE(@SKIP_ADDING_SECURITYGROUPS,0) = 0
begin
exec dbo.USP_CONSTITUENT_ASSIGNSECURITYGROUPS_FORNEWRECORD
@APPUSERID =@CURRENTAPPUSERID,
@DATAFORMTEMPLATEID='9d3aff90-42d0-4db0-a4c1-703d25fd1902',
@CONSTITUENTID =@ORGANIZATIONID,
@DATEADDEDTOUSE =@CURRENTDATE,
@CHANGEAGENTID = @CHANGEAGENTID;
end
/*end security groups*/
/* Start sites*/
if coalesce(@SKIP_ADDING_SITES,0) = 0
begin
exec dbo.USP_CONSTITUENT_ASSIGNSITES_FORNEWRECORD
@APPUSERID =@CURRENTAPPUSERID,
@DATAFORMTEMPLATEID='9d3aff90-42d0-4db0-a4c1-703d25fd1902',
@CONSTITUENTID =@ORGANIZATIONID,
@DATEADDEDTOUSE =@CURRENTDATE,
@CHANGEAGENTID = @CHANGEAGENTID;
end
/* End sites*/
end
else
begin
exec dbo.USP_AUCTIONITEMBATCH_CONSTITUENT_UPDATEIDS
@BATCHAUCTIONITEMCONSTITUENTID = @BATCHORGANIZATIONID,
@CONSTITUENTID = @ORGANIZATIONID,
@CHANGEAGENTID = @CHANGEAGENTID,
@CURRENTRECOGNITIONS = null,
@UPDATEDRECOGNITIONS = null,
@UPDATEDAPPLICATIONRECOGNITIONS = null;
end
---------Organization Relationship---------
if @ISMATCHINGGIFTRELATIONSHIP = 1
update
dbo.RELATIONSHIP
set
ISMATCHINGGIFTRELATIONSHIP = 0,
DATECHANGED = @CURRENTDATE,
CHANGEDBYID = @CHANGEAGENTID
where
RELATIONSHIPCONSTITUENTID = @ID and
RECIPROCALCONSTITUENTID = @ORGANIZATIONID and
ISMATCHINGGIFTRELATIONSHIP = 1;
declare @SETID uniqueidentifier = newid();
insert into dbo.RELATIONSHIPSET
(
ID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values
(
@SETID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
insert into dbo.RELATIONSHIP
(
ID,
RELATIONSHIPCONSTITUENTID,
RECIPROCALCONSTITUENTID,
RELATIONSHIPTYPECODEID,
RECIPROCALTYPECODEID,
ISCONTACT,
ISPRIMARYCONTACT,
CONTACTTYPECODEID,
STARTDATE,
POSITION,
ISPRIMARYBUSINESS,
ISMATCHINGGIFTRELATIONSHIP,
RELATIONSHIPSETID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values
(
@RELATIONSHIPID,
@ID,
@ORGANIZATIONID,
@ORGANIZATION_RELATIONSHIPTYPECODEID,
@ORGANIZATION_RECIPROCALTYPECODEID,
@ISCONTACT,
@ISPRIMARYCONTACT,
@CONTACTTYPECODEID,
@ORGANIZATION_STARTDATE,
'',
1,
@ISMATCHINGGIFTRELATIONSHIP,
@SETID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
set @PRIMARYSOFTCREDITRELATIONSHIPEXISTS = 0
set @PRIMARYSOFTCREDITMATCHFACTOR = 100
set @PRIMARYRECOGNITIONTYPECODEID = null
set @PRIMARYCONSTITUENTTYPE = 0
set @RECIPROCALSOFTCREDITRELATIONSHIPEXISTS = 0
set @RECIPROCALSOFTCREDITMATCHFACTOR = 100
set @RECIPROCALRECOGNITIONTYPECODEID = null
set @RECIPROCALCONSTITUENTTYPE = 0
select @PRIMARYCONSTITUENTTYPE = case
when ISGROUP = 1 and dbo.UFN_CONSTITUENT_ISGROUP(ID) = 1 then 3 --Household
when ISGROUP = 1 and dbo.UFN_CONSTITUENT_ISHOUSEHOLD(ID) = 1 then 2 -- Group
when ISORGANIZATION = 1 then 1 --Organization
else 0 end --Individual
from dbo.CONSTITUENT where ID = @ID;
select @RECIPROCALCONSTITUENTTYPE = case
when ISGROUP = 1 and dbo.UFN_CONSTITUENT_ISGROUP(ID) = 1 then 3 --Household
when ISGROUP = 1 and dbo.UFN_CONSTITUENT_ISHOUSEHOLD(ID) = 1 then 2 -- Group
when ISORGANIZATION = 1 then 1 --Organization
else 0 end --Individual
from dbo.CONSTITUENT where ID = @ORGANIZATIONID;
-- add default recognition credits if creating a new relationship
select @PRIMARYSOFTCREDITRELATIONSHIPEXISTS = 1,
@PRIMARYRECOGNITIONTYPECODEID=RRD.REVENUERECOGNITIONTYPECODEID,
@PRIMARYSOFTCREDITMATCHFACTOR= RRD.MATCHFACTOR
from dbo.RECOGNITIONRELATIONSHIPDEFAULT as RRD
where RRD.CONSTITUENTTYPECODE=@PRIMARYCONSTITUENTTYPE and RRD.RELATIONSHIPTYPECODEID=@ORGANIZATION_RELATIONSHIPTYPECODEID
select @RECIPROCALSOFTCREDITRELATIONSHIPEXISTS = 1,
@RECIPROCALRECOGNITIONTYPECODEID=RRD.REVENUERECOGNITIONTYPECODEID,
@RECIPROCALSOFTCREDITMATCHFACTOR= RRD.MATCHFACTOR
from dbo.RECOGNITIONRELATIONSHIPDEFAULT as RRD
where RRD.CONSTITUENTTYPECODE=@RECIPROCALCONSTITUENTTYPE and RRD.RELATIONSHIPTYPECODEID=@ORGANIZATION_RECIPROCALTYPECODEID
exec dbo.USP_RECOGNITIONDEFAULTSUPDATE @ID, @ORGANIZATIONID,
@ORGANIZATION_STARTDATE, NULL, @PRIMARYSOFTCREDITRELATIONSHIPEXISTS, @PRIMARYSOFTCREDITMATCHFACTOR,
@PRIMARYRECOGNITIONTYPECODEID, @RECIPROCALSOFTCREDITRELATIONSHIPEXISTS,
@RECIPROCALSOFTCREDITMATCHFACTOR, @RECIPROCALRECOGNITIONTYPECODEID, @CHANGEAGENTID, 0;
exec dbo.USP_RELATIONSHIPCONFIGURATION_CONFIGURE @ID, @ORGANIZATIONID, @ORGANIZATION_RELATIONSHIPTYPECODEID, @ORGANIZATION_RECIPROCALTYPECODEID, @CHANGEAGENTID, @CURRENTDATE
if (@JOBCATEGORYCODEID is not null) or
(@CAREERLEVELCODEID is not null) or
(len(@POSITION) > 0)
insert into dbo.RELATIONSHIPJOBINFO
(
RELATIONSHIPSETID,
JOBTITLE,
JOBCATEGORYCODEID,
CAREERLEVELCODEID,
STARTDATE,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values
(
@SETID,
@POSITION,
@JOBCATEGORYCODEID,
@CAREERLEVELCODEID,
@ORGANIZATION_STARTDATE,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
)
end
end;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;
end;