USP_DATAFORMTEMPLATE_EDIT_REVENUEBATCHCONSTITUENT_2
The save procedure used by the edit dataform template "Revenue Batch Constituent Edit Form 2".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter indicating the ID of the record being edited. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@LASTNAME | nvarchar(100) | IN | Last name |
@ORGANIZATIONNAME | nvarchar(100) | IN | Name |
@FIRSTNAME | nvarchar(50) | IN | First name |
@MIDDLENAME | nvarchar(50) | IN | Middle name |
@MAIDENNAME | nvarchar(100) | IN | Maiden name |
@NICKNAME | nvarchar(50) | IN | Nickname |
@TITLECODEID | uniqueidentifier | IN | Title |
@SUFFIXCODEID | uniqueidentifier | IN | Suffix |
@GENDERCODE | tinyint | IN | Gender |
@BIRTHDATE | UDT_FUZZYDATE | IN | Birth date |
@ADDRESS_ADDRESSTYPECODEID | uniqueidentifier | IN | Address type |
@ADDRESS_DONOTMAIL | bit | IN | Do not send mail to this address |
@ADDRESS_DONOTMAILREASONCODEID | uniqueidentifier | IN | Reason |
@ADDRESS_COUNTRYID | uniqueidentifier | IN | Country |
@ADDRESS_STATEID | uniqueidentifier | IN | State |
@ADDRESS_ADDRESSBLOCK | nvarchar(150) | IN | Address |
@ADDRESS_CITY | nvarchar(50) | IN | City |
@ADDRESS_POSTCODE | nvarchar(12) | IN | ZIP |
@ADDRESS_UPDATEMATCHINGHOUSEHOLDADDRESSES | bit | IN | Update matching addresses in household |
@ADDRESS_OMITFROMVALIDATION | bit | IN | Omit this address |
@ADDRESS_CART | nvarchar(10) | IN | |
@ADDRESS_DPC | nvarchar(8) | IN | |
@ADDRESS_LOT | nvarchar(5) | IN | |
@ADDRESS_COUNTYCODEID | uniqueidentifier | IN | |
@ADDRESS_CONGRESSIONALDISTRICTCODEID | uniqueidentifier | IN | |
@ADDRESS_LASTVALIDATIONATTEMPTDATE | datetime | IN | |
@ADDRESS_VALIDATIONMESSAGE | nvarchar(100) | IN | |
@ADDRESS_CERTIFICATIONDATA | int | IN | |
@PHONE_PHONETYPECODEID | uniqueidentifier | IN | Phone type |
@PHONE_NUMBER | nvarchar(100) | IN | Phone number |
@EMAILADDRESS_EMAILADDRESSTYPECODEID | uniqueidentifier | IN | Email type |
@EMAILADDRESS_EMAILADDRESS | UDT_EMAILADDRESS | IN | Email address |
@MARITALSTATUSCODEID | uniqueidentifier | IN | Marital status |
@ORGANIZATION_ADDRESSTYPECODEID | nvarchar(50) | IN | Address type |
@ORGANIZATION_DONOTMAIL | bit | IN | Do not send mail to this address |
@ORGANIZATION_DONOTMAILREASONCODEID | uniqueidentifier | IN | Reason |
@ORGANIZATION_COUNTRYID | uniqueidentifier | IN | Country |
@ORGANIZATION_STATEID | nvarchar(50) | IN | State |
@ORGANIZATION_ADDRESSBLOCK | nvarchar(150) | IN | Address |
@ORGANIZATION_CITY | nvarchar(50) | IN | City |
@ORGANIZATION_POSTCODE | nvarchar(12) | IN | ZIP |
@ORGANIZATION_OMITFROMVALIDATION | bit | IN | Omit this address |
@ORGANIZATION_CART | nvarchar(10) | IN | |
@ORGANIZATION_DPC | nvarchar(8) | IN | |
@ORGANIZATION_LOT | nvarchar(5) | IN | |
@ORGANIZATION_COUNTYCODEID | uniqueidentifier | IN | |
@ORGANIZATION_CONGRESSIONALDISTRICTCODEID | uniqueidentifier | IN | |
@ORGANIZATION_LASTVALIDATIONATTEMPTDATE | datetime | IN | |
@ORGANIZATION_VALIDATIONMESSAGE | nvarchar(100) | IN | |
@ORGANIZATION_CERTIFICATIONDATA | int | IN | |
@ORGANIZATION_PHONETYPECODEID | nvarchar(50) | IN | Phone type |
@ORGANIZATION_NUMBER | nvarchar(100) | IN | Phone number |
@ORGANIZATION_EMAILADDRESSTYPECODEID | nvarchar(50) | IN | Email type |
@ORGANIZATION_EMAILADDRESS | UDT_EMAILADDRESS | IN | Email address |
@WEBADDRESS | UDT_WEBADDRESS | IN | Website |
@INDUSTRYCODEID | nvarchar(100) | IN | Industry |
@NUMEMPLOYEES | int | IN | Number of employees |
@NUMSUBSIDIARIES | int | IN | Number of subsidiaries |
@PARENTCORPID | nvarchar(100) | IN | Parent org |
@BATCHSPOUSEID | uniqueidentifier | IN | Batch spouse id |
@BATCHSPOUSERELATIONID | uniqueidentifier | IN | Batch spouse relation id |
@SPOUSEID | uniqueidentifier | IN | Full name |
@EXISTINGSPOUSE | bit | IN | Existing constituent |
@SPOUSE_LASTNAME | nvarchar(100) | IN | Last Name |
@SPOUSE_FIRSTNAME | nvarchar(50) | IN | First Name |
@SPOUSE_MIDDLENAME | nvarchar(50) | IN | Middle Name |
@SPOUSE_MAIDENNAME | nvarchar(100) | IN | Maiden Name |
@SPOUSE_NICKNAME | nvarchar(50) | IN | Nickname |
@SPOUSE_TITLECODEID | uniqueidentifier | IN | Title |
@SPOUSE_SUFFIXCODEID | uniqueidentifier | IN | Suffix |
@SPOUSE_GENDERCODE | tinyint | IN | Gender |
@SPOUSE_BIRTHDATE | UDT_FUZZYDATE | IN | Birth date |
@SPOUSE_RECIPROCALTYPECODEID | uniqueidentifier | IN | Reciprocal relationship type |
@SPOUSE_RELATIONSHIPTYPECODEID | uniqueidentifier | IN | Relationship type |
@COPYPRIMARYINFORMATION | bit | IN | Copy primary information |
@SPOUSE_STARTDATE | datetime | IN | Start date |
@ISSPOUSERELATIONSHIP | bit | IN | Is spouse relationship |
@BATCHBUSINESSID | uniqueidentifier | IN | Batch organization id |
@BATCHBUSINESSRELATIONID | uniqueidentifier | IN | Batch organization relation id |
@BUSINESSID | uniqueidentifier | IN | Org name |
@EXISTINGBUSINESS | bit | IN | Existing constituent |
@BUSINESS_NAME | nvarchar(100) | IN | Org name |
@BUSINESS_ADDRESSTYPECODEID | uniqueidentifier | IN | Address type |
@BUSINESS_COUNTRYID | uniqueidentifier | IN | Country |
@BUSINESS_STATEID | uniqueidentifier | IN | State |
@BUSINESS_ADDRESSBLOCK | nvarchar(150) | IN | Address |
@BUSINESS_CITY | nvarchar(50) | IN | City |
@BUSINESS_POSTCODE | nvarchar(12) | IN | ZIP |
@BUSINESS_DONOTMAIL | bit | IN | Do not send mail to this address |
@BUSINESS_DONOTMAILREASONCODEID | uniqueidentifier | IN | Reason |
@BUSINESS_OMITFROMVALIDATION | bit | IN | Omit this address |
@BUSINESS_CART | nvarchar(10) | IN | |
@BUSINESS_DPC | nvarchar(8) | IN | |
@BUSINESS_LOT | nvarchar(5) | IN | |
@BUSINESS_COUNTYCODEID | uniqueidentifier | IN | |
@BUSINESS_CONGRESSIONALDISTRICTCODEID | uniqueidentifier | IN | |
@BUSINESS_LASTVALIDATIONATTEMPTDATE | datetime | IN | |
@BUSINESS_VALIDATIONMESSAGE | nvarchar(100) | IN | |
@BUSINESS_CERTIFICATIONDATA | int | IN | |
@BUSINESS_PHONETYPECODEID | uniqueidentifier | IN | Phone type |
@BUSINESS_NUMBER | nvarchar(100) | IN | Phone number |
@BUSINESS_RECIPROCALTYPECODEID | uniqueidentifier | IN | Reciprocal relationship type |
@BUSINESS_RELATIONSHIPTYPECODEID | uniqueidentifier | IN | Relationship type |
@BUSINESS_STARTDATE | datetime | IN | Start date |
@ISCONTACT | bit | IN | Is contact |
@ISPRIMARYCONTACT | bit | IN | Primary contact |
@CONTACTTYPECODEID | uniqueidentifier | IN | Contact type |
@POSITION | nvarchar(50) | IN | Position |
@ISMATCHINGGIFTRELATIONSHIP | bit | IN | Matching gift relationship |
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
@GROUP_NAME | nvarchar(100) | IN | Name |
@GROUP_DESCRIPTION | nvarchar(300) | IN | Description |
@GROUP_GIVESANONYMOUSLY | bit | IN | Group gives anonymously |
@GROUP_ADDRESSTYPECODEID | uniqueidentifier | IN | Address type |
@GROUP_COUNTRYID | uniqueidentifier | IN | Country |
@GROUP_ADDRESSBLOCK | nvarchar(150) | IN | Address |
@GROUP_CITY | nvarchar(50) | IN | City |
@GROUP_STATEID | uniqueidentifier | IN | State |
@GROUP_OMITFROMVALIDATION | bit | IN | Omit this address |
@GROUP_CART | nvarchar(10) | IN | |
@GROUP_DPC | nvarchar(8) | IN | |
@GROUP_LOT | nvarchar(5) | IN | |
@GROUP_COUNTYCODEID | uniqueidentifier | IN | |
@GROUP_CONGRESSIONALDISTRICTCODEID | uniqueidentifier | IN | |
@GROUP_LASTVALIDATIONATTEMPTDATE | datetime | IN | |
@GROUP_VALIDATIONMESSAGE | nvarchar(100) | IN | |
@GROUP_CERTIFICATIONDATA | int | IN | |
@GROUP_POSTCODE | nvarchar(12) | IN | ZIP/Postal code |
@GROUP_PHONETYPECODEID | uniqueidentifier | IN | Phone type |
@GROUP_NUMBER | nvarchar(100) | IN | Phone number |
@GROUP_EMAILADDRESSTYPECODEID | uniqueidentifier | IN | Email type |
@GROUP_EMAILADDRESS | UDT_EMAILADDRESS | IN | Email address |
@GROUP_WEBADDRESS | UDT_WEBADDRESS | IN | Website |
@GROUP_DONOTMAIL | bit | IN | Do not send mail to this address |
@GROUP_DONOTMAILREASONCODEID | uniqueidentifier | IN | Reason |
@GROUP_UPDATEMATCHINGHOUSEHOLDADDRESSES | bit | IN | Update matching addresses in household |
@GROUP_GROUPTYPEID | uniqueidentifier | IN | Group type |
@GROUP_PRIMARYCONTACTID | uniqueidentifier | IN | Primary contact |
@GROUP_MEMBERS | xml | IN | Members |
@GROUP_NEWMEMBERSEARCHID | uniqueidentifier | IN | Search for constituents to include in the group |
@GROUP_STARTDATE | datetime | IN | Start date |
@HOUSEHOLD_PRIMARYCONTACTID | uniqueidentifier | IN | Full name |
@HOUSEHOLD_PRIMARYCONTACT_KEYNAME | nvarchar(100) | IN | Last name |
@HOUSEHOLD_PRIMARYCONTACT_FIRSTNAME | nvarchar(50) | IN | First name |
@HOUSEHOLD_PRIMARYCONTACT_MIDDLENAME | nvarchar(50) | IN | Middle name |
@HOUSEHOLD_PRIMARYCONTACT_TITLECODEID | uniqueidentifier | IN | Title |
@HOUSEHOLD_PRIMARYCONTACT_SUFFIXCODEID | uniqueidentifier | IN | Suffix |
@HOUSEHOLD_PRIMARYCONTACT_COPYHOUSEHOLDCONTACT | bit | IN | Copy household contact information |
@HOUSEHOLD_SECONDMEMBERID | uniqueidentifier | IN | Full name |
@HOUSEHOLD_SECONDMEMBER_KEYNAME | nvarchar(100) | IN | Last name |
@HOUSEHOLD_SECONDMEMBER_FIRSTNAME | nvarchar(50) | IN | First name |
@HOUSEHOLD_SECONDMEMBER_MIDDLENAME | nvarchar(50) | IN | Middle name |
@HOUSEHOLD_SECONDMEMBER_TITLECODEID | uniqueidentifier | IN | Title |
@HOUSEHOLD_SECONDMEMBER_SUFFIXCODEID | uniqueidentifier | IN | Suffix |
@HOUSEHOLD_SECONDMEMBER_COPYHOUSEHOLDCONTACT | bit | IN | Copy household contact information |
@HOUSEHOLD_SECONDMEMBER_RELATIONSHIP_RECIPROCALTYPECODEID | uniqueidentifier | IN | Reciprocal relationship type |
@HOUSEHOLD_SECONDMEMBER_RELATIONSHIP_RELATIONSHIPTYPECODEID | uniqueidentifier | IN | Relationship type |
@HOUSEHOLD_SECONDMEMBER_RELATIONSHIP_STARTDATE | datetime | IN | Start date |
@HOUSEHOLD_SECONDMEMBER_RELATIONSHIP_ISSPOUSE | bit | IN | This is the spouse relationship |
@HOUSEHOLDCOPYPRIMARYCONTACTINFO | bit | IN | Copy primary contact information to household |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_REVENUEBATCHCONSTITUENT_2
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier,
@LASTNAME nvarchar(100),
@ORGANIZATIONNAME nvarchar(100),
@FIRSTNAME nvarchar(50),
@MIDDLENAME nvarchar(50),
@MAIDENNAME nvarchar(100),
@NICKNAME nvarchar(50),
@TITLECODEID uniqueidentifier,
@SUFFIXCODEID uniqueidentifier,
@GENDERCODE tinyint,
@BIRTHDATE dbo.UDT_FUZZYDATE,
@ADDRESS_ADDRESSTYPECODEID uniqueidentifier,
@ADDRESS_DONOTMAIL bit,
@ADDRESS_DONOTMAILREASONCODEID uniqueidentifier,
@ADDRESS_COUNTRYID uniqueidentifier,
@ADDRESS_STATEID uniqueidentifier,
@ADDRESS_ADDRESSBLOCK nvarchar(150),
@ADDRESS_CITY nvarchar(50),
@ADDRESS_POSTCODE nvarchar(12),
@ADDRESS_UPDATEMATCHINGHOUSEHOLDADDRESSES bit,
-- Address Validation
@ADDRESS_OMITFROMVALIDATION bit,
@ADDRESS_CART nvarchar(10),
@ADDRESS_DPC nvarchar(8),
@ADDRESS_LOT nvarchar(5),
@ADDRESS_COUNTYCODEID uniqueidentifier,
@ADDRESS_CONGRESSIONALDISTRICTCODEID uniqueidentifier,
@ADDRESS_LASTVALIDATIONATTEMPTDATE datetime,
@ADDRESS_VALIDATIONMESSAGE nvarchar(100),
@ADDRESS_CERTIFICATIONDATA integer,
@PHONE_PHONETYPECODEID uniqueidentifier,
@PHONE_NUMBER nvarchar(100),
@EMAILADDRESS_EMAILADDRESSTYPECODEID uniqueidentifier,
@EMAILADDRESS_EMAILADDRESS dbo.UDT_EMAILADDRESS,
@MARITALSTATUSCODEID uniqueidentifier,
@ORGANIZATION_ADDRESSTYPECODEID nvarchar(50),
@ORGANIZATION_DONOTMAIL bit,
@ORGANIZATION_DONOTMAILREASONCODEID uniqueidentifier,
@ORGANIZATION_COUNTRYID uniqueidentifier,
@ORGANIZATION_STATEID nvarchar(50),
@ORGANIZATION_ADDRESSBLOCK nvarchar(150),
@ORGANIZATION_CITY nvarchar(50),
@ORGANIZATION_POSTCODE nvarchar(12),
-- Address Validation
@ORGANIZATION_OMITFROMVALIDATION bit,
@ORGANIZATION_CART nvarchar(10),
@ORGANIZATION_DPC nvarchar(8),
@ORGANIZATION_LOT nvarchar(5),
@ORGANIZATION_COUNTYCODEID uniqueidentifier,
@ORGANIZATION_CONGRESSIONALDISTRICTCODEID uniqueidentifier,
@ORGANIZATION_LASTVALIDATIONATTEMPTDATE datetime,
@ORGANIZATION_VALIDATIONMESSAGE nvarchar(100),
@ORGANIZATION_CERTIFICATIONDATA integer,
@ORGANIZATION_PHONETYPECODEID nvarchar(50),
@ORGANIZATION_NUMBER nvarchar(100),
@ORGANIZATION_EMAILADDRESSTYPECODEID nvarchar(50),
@ORGANIZATION_EMAILADDRESS dbo.UDT_EMAILADDRESS,
@WEBADDRESS dbo.UDT_WEBADDRESS,
@INDUSTRYCODEID nvarchar(100),
@NUMEMPLOYEES int,
@NUMSUBSIDIARIES int,
@PARENTCORPID nvarchar(100),
--Individual's relationship Variables
@BATCHSPOUSEID uniqueidentifier,
@BATCHSPOUSERELATIONID uniqueidentifier,
@SPOUSEID uniqueidentifier,
@EXISTINGSPOUSE bit,
@SPOUSE_LASTNAME nvarchar(100),
@SPOUSE_FIRSTNAME nvarchar(50),
@SPOUSE_MIDDLENAME nvarchar(50),
@SPOUSE_MAIDENNAME nvarchar(100),
@SPOUSE_NICKNAME nvarchar(50),
@SPOUSE_TITLECODEID uniqueidentifier,
@SPOUSE_SUFFIXCODEID uniqueidentifier,
@SPOUSE_GENDERCODE tinyint,
@SPOUSE_BIRTHDATE dbo.UDT_FUZZYDATE,
@SPOUSE_RECIPROCALTYPECODEID uniqueidentifier,
@SPOUSE_RELATIONSHIPTYPECODEID uniqueidentifier,
@COPYPRIMARYINFORMATION bit,
@SPOUSE_STARTDATE datetime,
@ISSPOUSERELATIONSHIP bit,
--Organization variables
@BATCHBUSINESSID uniqueidentifier,
@BATCHBUSINESSRELATIONID uniqueidentifier,
@BUSINESSID uniqueidentifier,
@EXISTINGBUSINESS bit,
@BUSINESS_NAME nvarchar(100),
@BUSINESS_ADDRESSTYPECODEID uniqueidentifier,
@BUSINESS_COUNTRYID uniqueidentifier,
@BUSINESS_STATEID uniqueidentifier,
@BUSINESS_ADDRESSBLOCK nvarchar(150),
@BUSINESS_CITY nvarchar(50),
@BUSINESS_POSTCODE nvarchar(12),
@BUSINESS_DONOTMAIL bit,
@BUSINESS_DONOTMAILREASONCODEID uniqueidentifier,
-- Address Validation
@BUSINESS_OMITFROMVALIDATION bit,
@BUSINESS_CART nvarchar(10),
@BUSINESS_DPC nvarchar(8),
@BUSINESS_LOT nvarchar(5),
@BUSINESS_COUNTYCODEID uniqueidentifier,
@BUSINESS_CONGRESSIONALDISTRICTCODEID uniqueidentifier,
@BUSINESS_LASTVALIDATIONATTEMPTDATE datetime,
@BUSINESS_VALIDATIONMESSAGE nvarchar(100),
@BUSINESS_CERTIFICATIONDATA integer,
@BUSINESS_PHONETYPECODEID uniqueidentifier,
@BUSINESS_NUMBER nvarchar(100),
@BUSINESS_RECIPROCALTYPECODEID uniqueidentifier,
@BUSINESS_RELATIONSHIPTYPECODEID uniqueidentifier,
@BUSINESS_STARTDATE datetime,
@ISCONTACT bit,
@ISPRIMARYCONTACT bit,
@CONTACTTYPECODEID uniqueidentifier,
@POSITION nvarchar(50),
@ISMATCHINGGIFTRELATIONSHIP bit,
@CURRENTAPPUSERID uniqueidentifier,
-- Group/Household variables
@GROUP_NAME nvarchar(100),
@GROUP_DESCRIPTION nvarchar(300),
@GROUP_GIVESANONYMOUSLY bit,
@GROUP_ADDRESSTYPECODEID uniqueidentifier,
@GROUP_COUNTRYID uniqueidentifier,
@GROUP_ADDRESSBLOCK nvarchar(150),
@GROUP_CITY nvarchar(50),
@GROUP_STATEID uniqueidentifier,
@GROUP_OMITFROMVALIDATION bit,
@GROUP_CART nvarchar(10),
@GROUP_DPC nvarchar(8),
@GROUP_LOT nvarchar(5),
@GROUP_COUNTYCODEID uniqueidentifier,
@GROUP_CONGRESSIONALDISTRICTCODEID uniqueidentifier,
@GROUP_LASTVALIDATIONATTEMPTDATE datetime,
@GROUP_VALIDATIONMESSAGE nvarchar(100),
@GROUP_CERTIFICATIONDATA integer,
@GROUP_POSTCODE nvarchar(12),
@GROUP_PHONETYPECODEID uniqueidentifier,
@GROUP_NUMBER nvarchar(100),
@GROUP_EMAILADDRESSTYPECODEID uniqueidentifier,
@GROUP_EMAILADDRESS dbo.UDT_EMAILADDRESS,
@GROUP_WEBADDRESS dbo.UDT_WEBADDRESS,
@GROUP_DONOTMAIL bit,
@GROUP_DONOTMAILREASONCODEID uniqueidentifier,
@GROUP_UPDATEMATCHINGHOUSEHOLDADDRESSES bit,
-- Group variables
@GROUP_GROUPTYPEID uniqueidentifier,
@GROUP_PRIMARYCONTACTID uniqueidentifier,
@GROUP_MEMBERS xml,
@GROUP_NEWMEMBERSEARCHID uniqueidentifier, -- Not used in save operation, only exists to setup new member lookup control.
@GROUP_STARTDATE datetime,
-- Household Primary Member variables
@HOUSEHOLD_PRIMARYCONTACTID uniqueidentifier,
@HOUSEHOLD_PRIMARYCONTACT_KEYNAME nvarchar(100),
@HOUSEHOLD_PRIMARYCONTACT_FIRSTNAME nvarchar(50),
@HOUSEHOLD_PRIMARYCONTACT_MIDDLENAME nvarchar(50),
@HOUSEHOLD_PRIMARYCONTACT_TITLECODEID uniqueidentifier,
@HOUSEHOLD_PRIMARYCONTACT_SUFFIXCODEID uniqueidentifier,
@HOUSEHOLD_PRIMARYCONTACT_COPYHOUSEHOLDCONTACT bit,
-- Household Second Member variables
@HOUSEHOLD_SECONDMEMBERID uniqueidentifier,
@HOUSEHOLD_SECONDMEMBER_KEYNAME nvarchar(100),
@HOUSEHOLD_SECONDMEMBER_FIRSTNAME nvarchar(50),
@HOUSEHOLD_SECONDMEMBER_MIDDLENAME nvarchar(50),
@HOUSEHOLD_SECONDMEMBER_TITLECODEID uniqueidentifier,
@HOUSEHOLD_SECONDMEMBER_SUFFIXCODEID uniqueidentifier,
@HOUSEHOLD_SECONDMEMBER_COPYHOUSEHOLDCONTACT bit,
-- Household Second Member Relationship variables
@HOUSEHOLD_SECONDMEMBER_RELATIONSHIP_RECIPROCALTYPECODEID uniqueidentifier,
@HOUSEHOLD_SECONDMEMBER_RELATIONSHIP_RELATIONSHIPTYPECODEID uniqueidentifier,
@HOUSEHOLD_SECONDMEMBER_RELATIONSHIP_STARTDATE datetime,
@HOUSEHOLD_SECONDMEMBER_RELATIONSHIP_ISSPOUSE bit,
-- Individual's household fields
@HOUSEHOLDCOPYPRIMARYCONTACTINFO bit
) as begin
set nocount on;
declare @CURRENTDATE datetime;
declare @KEYNAME nvarchar(100);
declare @KEYNAMEPREFIX nvarchar(50);
if @ID is null
set @ID = newid();
if @ADDRESS_DONOTMAIL = 0
set @ADDRESS_DONOTMAILREASONCODEID = null
if @ORGANIZATION_DONOTMAIL = 0
set @ORGANIZATION_DONOTMAILREASONCODEID = null
if @BUSINESS_DONOTMAIL = 0
set @BUSINESS_DONOTMAILREASONCODEID = null
if @GROUP_DONOTMAIL = 0
set @GROUP_DONOTMAILREASONCODEID = null
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
set @CURRENTDATE = getdate();
begin try
declare @contextCache varbinary(128);
--cache current context information
set @contextCache = CONTEXT_INFO();
--set CONTEXT_INFO to @CHANGEAGENTID
set CONTEXT_INFO @CHANGEAGENTID;
declare @ISEXISTINGCONSTITUENT bit;
declare @ISORGANIZATION bit;
declare @ISGROUP bit;
declare @ISHOUSEHOLD bit;
set @ISEXISTINGCONSTITUENT = 0;
set @ISORGANIZATION = 0;
set @ISGROUP = 0;
set @ISHOUSEHOLD = 0;
select
@ISEXISTINGCONSTITUENT = 1,
@ISORGANIZATION = C.ISORGANIZATION,
@ISGROUP = C.ISGROUP,
@ISHOUSEHOLD = case when GD.GROUPTYPECODE = 0 then 1 else 0 end
from dbo.CONSTITUENT C
left join dbo.GROUPDATA GD on C.ID = GD.ID
where C.ID = @ID;
if @ISEXISTINGCONSTITUENT= 1
begin
-- Check constituent security. The check is done manually since it only applies to existing constituents.
if (dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 0) and
(dbo.UFN_SECURITY_APPUSER_GRANTED_FORM_FORCONSTIT(@CURRENTAPPUSERID, '77AF3E0E-4CE8-4cb5-A88D-EAC148779CC3', @ID) = 0)
raiserror('BBERR_DB_RECORDSECURITY_PERMISSION_DENIED', 13, 1);
if @ISORGANIZATION != 0
begin
exec dbo.USP_PARSE_ORGANIZATION_NAME @ORGANIZATIONNAME, @KEYNAME output, @KEYNAMEPREFIX output;
update dbo.CONSTITUENT
set KEYNAME=@KEYNAME,
KEYNAMEPREFIX=@KEYNAMEPREFIX,
WEBADDRESS=@WEBADDRESS,
CHANGEDBYID=@CHANGEAGENTID,
DATECHANGED=@CURRENTDATE
where CONSTITUENT.ID = @ID;
if @NUMEMPLOYEES is null
set @NUMEMPLOYEES = 0;
if @NUMSUBSIDIARIES is null
set @NUMSUBSIDIARIES = 0;
update dbo.ORGANIZATIONDATA
set INDUSTRYCODEID=@INDUSTRYCODEID,
NUMEMPLOYEES=@NUMEMPLOYEES,
NUMSUBSIDIARIES=@NUMSUBSIDIARIES,
PARENTCORPID=@PARENTCORPID,
CHANGEDBYID=@CHANGEAGENTID,
DATECHANGED=@CURRENTDATE
where ORGANIZATIONDATA.ID = @ID;
if @@ROWCOUNT = 0
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, DATECHANGED, DATEADDED)
values (@ID, @INDUSTRYCODEID, @NUMEMPLOYEES, @NUMSUBSIDIARIES, @PARENTCORPID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)
update dbo.ADDRESS
set ADDRESSTYPECODEID=@ORGANIZATION_ADDRESSTYPECODEID,
DONOTMAIL=@ORGANIZATION_DONOTMAIL,
DONOTMAILREASONCODEID = @ORGANIZATION_DONOTMAILREASONCODEID,
COUNTRYID=@ORGANIZATION_COUNTRYID,
STATEID=@ORGANIZATION_STATEID,
ADDRESSBLOCK=@ORGANIZATION_ADDRESSBLOCK,
CITY=@ORGANIZATION_CITY,
POSTCODE=@ORGANIZATION_POSTCODE,
CART=@ORGANIZATION_CART,
DPC=@ORGANIZATION_DPC,
LOT=@ORGANIZATION_LOT,
CHANGEDBYID=@CHANGEAGENTID,
DATECHANGED=@CURRENTDATE
where ADDRESS.CONSTITUENTID = @ID and ISPRIMARY = 1
declare @ORGANIZATION_ADDRESSID uniqueidentifier;
if @@ROWCOUNT = 0
begin
set @ORGANIZATION_ADDRESSID = newID();
insert into dbo.ADDRESS
(ID, CONSTITUENTID, ISPRIMARY, ADDRESSTYPECODEID, DONOTMAIL, COUNTRYID, STATEID, ADDRESSBLOCK, CITY, POSTCODE, CART, DPC, LOT, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values
(@ORGANIZATION_ADDRESSID, @ID, 1, @ORGANIZATION_ADDRESSTYPECODEID, @ORGANIZATION_DONOTMAIL, @ORGANIZATION_COUNTRYID, @ORGANIZATION_STATEID, @ORGANIZATION_ADDRESSBLOCK, @ORGANIZATION_CITY, @ORGANIZATION_POSTCODE, @ORGANIZATION_CART, @ORGANIZATION_DPC, @ORGANIZATION_LOT, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)
end
else
begin
select @ORGANIZATION_ADDRESSID = ID
from dbo.ADDRESS
where ADDRESS.CONSTITUENTID = @ID and ISPRIMARY = 1
end
update ADDRESSVALIDATIONUPDATE
set ADDRESSVALIDATIONUPDATE.COUNTYCODEID=@ORGANIZATION_COUNTYCODEID,
ADDRESSVALIDATIONUPDATE.CONGRESSIONALDISTRICTCODEID=@ORGANIZATION_CONGRESSIONALDISTRICTCODEID,
ADDRESSVALIDATIONUPDATE.LASTVALIDATIONATTEMPTDATE=@ORGANIZATION_LASTVALIDATIONATTEMPTDATE,
ADDRESSVALIDATIONUPDATE.VALIDATIONMESSAGE=@ORGANIZATION_VALIDATIONMESSAGE,
ADDRESSVALIDATIONUPDATE.CERTIFICATIONDATA=@ORGANIZATION_CERTIFICATIONDATA,
ADDRESSVALIDATIONUPDATE.OMITFROMVALIDATION=@ORGANIZATION_OMITFROMVALIDATION,
ADDRESSVALIDATIONUPDATE.CHANGEDBYID=@CHANGEAGENTID,
ADDRESSVALIDATIONUPDATE.DATECHANGED=@CURRENTDATE
from dbo.ADDRESSVALIDATIONUPDATE
inner join dbo.ADDRESS on ADDRESS.ID = ADDRESSVALIDATIONUPDATE.ID
where ADDRESS.CONSTITUENTID = @ID and ADDRESS.ISPRIMARY = 1
if @@ROWCOUNT = 0
begin
insert into dbo.ADDRESSVALIDATIONUPDATE
(ID, OMITFROMVALIDATION, COUNTYCODEID, CONGRESSIONALDISTRICTCODEID, LASTVALIDATIONATTEMPTDATE, VALIDATIONMESSAGE, CERTIFICATIONDATA, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values
(@ORGANIZATION_ADDRESSID, @ORGANIZATION_OMITFROMVALIDATION, @ORGANIZATION_COUNTYCODEID, @ORGANIZATION_CONGRESSIONALDISTRICTCODEID, @ORGANIZATION_LASTVALIDATIONATTEMPTDATE, @ORGANIZATION_VALIDATIONMESSAGE, @ORGANIZATION_CERTIFICATIONDATA, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)
end
if @ORGANIZATION_PHONETYPECODEID is not null or (@ORGANIZATION_NUMBER is not null and @ORGANIZATION_NUMBER != '')
begin
update dbo.PHONE
set PHONETYPECODEID=@ORGANIZATION_PHONETYPECODEID,
NUMBER=@ORGANIZATION_NUMBER,
CHANGEDBYID=@CHANGEAGENTID,
DATECHANGED=@CURRENTDATE
where PHONE.CONSTITUENTID = @ID and PHONE.ISPRIMARY = 1;
if @@ROWCOUNT = 0
if @ORGANIZATION_PHONETYPECODEID is not null or @ORGANIZATION_NUMBER !=0
insert into dbo.PHONE (CONSTITUENTID, ISPRIMARY, PHONETYPECODEID, NUMBER, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values (@ID, 1, @ORGANIZATION_PHONETYPECODEID, @ORGANIZATION_NUMBER, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)
end
else
if exists(select ID from dbo.PHONE where CONSTITUENTID = @ID and ISPRIMARY = 1)
begin
--cache current context information
set @contextCache = CONTEXT_INFO();
--set CONTEXT_INFO to @CHANGEAGENTID
set CONTEXT_INFO @CHANGEAGENTID;
delete from dbo.PHONE where CONSTITUENTID = @ID and ISPRIMARY = 1;
--reset CONTEXT_INFO to previous value
if not @contextCache is null
set CONTEXT_INFO @contextCache;
end;
if @ORGANIZATION_EMAILADDRESSTYPECODEID is not null or (@ORGANIZATION_EMAILADDRESS is not null and @ORGANIZATION_EMAILADDRESS != '')
begin
update dbo.EMAILADDRESS
set [EMAILADDRESSTYPECODEID]=@ORGANIZATION_EMAILADDRESSTYPECODEID,
[EMAILADDRESS]=@ORGANIZATION_EMAILADDRESS,
CHANGEDBYID=@CHANGEAGENTID,
DATECHANGED=@CURRENTDATE
where EMAILADDRESS.CONSTITUENTID = @ID and EMAILADDRESS.ISPRIMARY = 1;
if @@ROWCOUNT = 0
insert into dbo.EMAILADDRESS (CONSTITUENTID, ISPRIMARY, EMAILADDRESSTYPECODEID, EMAILADDRESS, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values (@ID, 1, @ORGANIZATION_EMAILADDRESSTYPECODEID, @ORGANIZATION_EMAILADDRESS, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)
end
else
if exists(select ID from dbo.EMAILADDRESS where CONSTITUENTID = @ID and ISPRIMARY = 1)
begin
--cache current context information
set @contextCache = CONTEXT_INFO();
--set CONTEXT_INFO to @CHANGEAGENTID
set CONTEXT_INFO @CHANGEAGENTID;
delete from dbo.EMAILADDRESS where CONSTITUENTID = @ID and ISPRIMARY = 1;
--reset CONTEXT_INFO to previous value
if not @contextCache is null
set CONTEXT_INFO @contextCache;
end;
end;
else
begin
if @ISGROUP != 0
begin
update dbo.CONSTITUENT
set KEYNAME=@GROUP_NAME,
GIVESANONYMOUSLY=@GROUP_GIVESANONYMOUSLY,
WEBADDRESS=@GROUP_WEBADDRESS,
CHANGEDBYID=@CHANGEAGENTID,
DATECHANGED=@CURRENTDATE
where CONSTITUENT.ID = @ID;
update dbo.GROUPDATA
set DESCRIPTION=@GROUP_DESCRIPTION,
GROUPTYPEID=@GROUP_GROUPTYPEID,
STARTDATE=@GROUP_STARTDATE,
CHANGEDBYID=@CHANGEAGENTID,
DATECHANGED=@CURRENTDATE
where GROUPDATA.ID = @ID;
declare @GROUPPRIMARYADDRESSID uniqueidentifier
select @GROUPPRIMARYADDRESSID = ID
from dbo.ADDRESS
where ADDRESS.CONSTITUENTID = @ID and ISPRIMARY = 1
-- Update matching household addresses
if @GROUP_UPDATEMATCHINGHOUSEHOLDADDRESSES = 1 and @GROUPPRIMARYADDRESSID is not null begin
exec dbo.USP_ADDRESS_UPDATEMATCHINGADDRESSES @ADDRESSID = @GROUPPRIMARYADDRESSID,
@CHANGEAGENTID = @CHANGEAGENTID,
@ADDRESSTYPECODEID = @GROUP_ADDRESSTYPECODEID,
@DONOTMAIL = @GROUP_DONOTMAIL,
@COUNTRYID = @GROUP_COUNTRYID,
@STATEID = @GROUP_STATEID,
@ADDRESSBLOCK = @GROUP_ADDRESSBLOCK,
@CITY = @GROUP_CITY,
@POSTCODE = @GROUP_POSTCODE,
@CART = @GROUP_CART,
@DPC = @GROUP_DPC,
@LOT = @GROUP_LOT,
@OMITFROMVALIDATION = @GROUP_OMITFROMVALIDATION,
@COUNTYCODEID = @GROUP_COUNTYCODEID,
@CONGRESSIONALDISTRICTCODEID = @GROUP_CONGRESSIONALDISTRICTCODEID,
@LASTVALIDATIONATTEMPTDATE = @GROUP_LASTVALIDATIONATTEMPTDATE,
@VALIDATIONMESSAGE = @GROUP_VALIDATIONMESSAGE,
@CERTIFICATIONDATA = @GROUP_CERTIFICATIONDATA,
@DONOTMAILREASONCODEID = @GROUP_DONOTMAILREASONCODEID,
@UPDATEFROMREVENUEBATCH = 1
end
update dbo.ADDRESS
set ADDRESSTYPECODEID=@GROUP_ADDRESSTYPECODEID,
COUNTRYID=@GROUP_COUNTRYID,
STATEID=@GROUP_STATEID,
ADDRESSBLOCK=@GROUP_ADDRESSBLOCK,
CITY=@GROUP_CITY,
POSTCODE=@GROUP_POSTCODE,
CART=@GROUP_CART,
DPC=@GROUP_DPC,
LOT=@GROUP_LOT,
CHANGEDBYID=@CHANGEAGENTID,
DATECHANGED=@CURRENTDATE,
DONOTMAIL=@GROUP_DONOTMAIL,
DONOTMAILREASONCODEID=@GROUP_DONOTMAILREASONCODEID
where ID = @GROUPPRIMARYADDRESSID
declare @GROUP_ADDRESSID uniqueidentifier;
if @@ROWCOUNT = 0
begin
set @GROUP_ADDRESSID = newID();
insert into dbo.ADDRESS (ID, CONSTITUENTID, ISPRIMARY, ADDRESSTYPECODEID, COUNTRYID, STATEID, ADDRESSBLOCK, CITY, POSTCODE, CART, DPC, LOT, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values (@GROUP_ADDRESSID, @ID, 1, @GROUP_ADDRESSTYPECODEID, @GROUP_COUNTRYID, @GROUP_STATEID, @GROUP_ADDRESSBLOCK, @GROUP_CITY, @GROUP_POSTCODE, @GROUP_CART, @GROUP_DPC, @GROUP_LOT, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)
end
else
begin
select @GROUP_ADDRESSID = ID
from dbo.ADDRESS
where ADDRESS.CONSTITUENTID = @ID and ISPRIMARY = 1
end
update ADDRESSVALIDATIONUPDATE
set ADDRESSVALIDATIONUPDATE.COUNTYCODEID=@GROUP_COUNTYCODEID,
ADDRESSVALIDATIONUPDATE.CONGRESSIONALDISTRICTCODEID=@GROUP_CONGRESSIONALDISTRICTCODEID,
ADDRESSVALIDATIONUPDATE.LASTVALIDATIONATTEMPTDATE=@GROUP_LASTVALIDATIONATTEMPTDATE,
ADDRESSVALIDATIONUPDATE.VALIDATIONMESSAGE=@GROUP_VALIDATIONMESSAGE,
ADDRESSVALIDATIONUPDATE.CERTIFICATIONDATA=@GROUP_CERTIFICATIONDATA,
ADDRESSVALIDATIONUPDATE.OMITFROMVALIDATION=@GROUP_OMITFROMVALIDATION,
ADDRESSVALIDATIONUPDATE.CHANGEDBYID=@CHANGEAGENTID,
ADDRESSVALIDATIONUPDATE.DATECHANGED=@CURRENTDATE
from dbo.ADDRESSVALIDATIONUPDATE
where ADDRESSVALIDATIONUPDATE.ID = @GROUP_ADDRESSID
if @@ROWCOUNT = 0
begin
insert into dbo.ADDRESSVALIDATIONUPDATE
(ID, OMITFROMVALIDATION, COUNTYCODEID, CONGRESSIONALDISTRICTCODEID, LASTVALIDATIONATTEMPTDATE, VALIDATIONMESSAGE, CERTIFICATIONDATA, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values
(@GROUP_ADDRESSID, @ADDRESS_OMITFROMVALIDATION, @ADDRESS_COUNTYCODEID, @ADDRESS_CONGRESSIONALDISTRICTCODEID, @ADDRESS_LASTVALIDATIONATTEMPTDATE, @ADDRESS_VALIDATIONMESSAGE, @ADDRESS_CERTIFICATIONDATA, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)
end
if @GROUP_PHONETYPECODEID is not null or coalesce(@GROUP_NUMBER, '') <> ''
begin
update dbo.PHONE
set PHONETYPECODEID=@GROUP_PHONETYPECODEID,
NUMBER=@GROUP_NUMBER,
CHANGEDBYID=@CHANGEAGENTID,
DATECHANGED=@CURRENTDATE
where PHONE.CONSTITUENTID = @ID and PHONE.ISPRIMARY = 1;
if @@ROWCOUNT = 0
insert into dbo.PHONE (CONSTITUENTID, ISPRIMARY, PHONETYPECODEID, NUMBER, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values (@ID, 1, @GROUP_PHONETYPECODEID, @GROUP_NUMBER, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)
end
else
delete from dbo.PHONE where PHONE.CONSTITUENTID = @ID and PHONE.ISPRIMARY = 1;
if @GROUP_EMAILADDRESSTYPECODEID is not null or coalesce(@GROUP_EMAILADDRESS, '') <> ''
begin
update dbo.EMAILADDRESS
set [EMAILADDRESSTYPECODEID]=@GROUP_EMAILADDRESSTYPECODEID,
[EMAILADDRESS]=@GROUP_EMAILADDRESS,
CHANGEDBYID=@CHANGEAGENTID,
DATECHANGED=@CURRENTDATE
where EMAILADDRESS.CONSTITUENTID = @ID and EMAILADDRESS.ISPRIMARY = 1;
if @@ROWCOUNT = 0
insert into dbo.EMAILADDRESS (CONSTITUENTID, ISPRIMARY, EMAILADDRESSTYPECODEID, EMAILADDRESS, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values (@ID, 1, @GROUP_EMAILADDRESSTYPECODEID, @GROUP_EMAILADDRESS, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)
end
else
delete from dbo.EMAILADDRESS where EMAILADDRESS.CONSTITUENTID = @ID and EMAILADDRESS.ISPRIMARY = 1;
end;
else --Handle existing individual
begin
update dbo.CONSTITUENT
set KEYNAME=@LASTNAME,
FIRSTNAME=@FIRSTNAME,
MIDDLENAME=@MIDDLENAME,
MAIDENNAME=@MAIDENNAME,
NICKNAME=@NICKNAME,
TITLECODEID=@TITLECODEID,
SUFFIXCODEID=@SUFFIXCODEID,
GENDERCODE=@GENDERCODE,
BIRTHDATE=@BIRTHDATE,
MARITALSTATUSCODEID=@MARITALSTATUSCODEID,
CHANGEDBYID=@CHANGEAGENTID,
DATECHANGED=@CURRENTDATE
where CONSTITUENT.ID = @ID
declare @PRIMARYADDRESSID uniqueidentifier
select @PRIMARYADDRESSID = ID
from dbo.ADDRESS
where ADDRESS.CONSTITUENTID = @ID and ISPRIMARY = 1
-- Update matching household addresses
if @ADDRESS_UPDATEMATCHINGHOUSEHOLDADDRESSES = 1 and @PRIMARYADDRESSID is not null begin
exec dbo.USP_ADDRESS_UPDATEMATCHINGADDRESSES @ADDRESSID = @PRIMARYADDRESSID,
@CHANGEAGENTID = @CHANGEAGENTID,
@ADDRESSTYPECODEID = @ADDRESS_ADDRESSTYPECODEID,
@DONOTMAIL = @ADDRESS_DONOTMAIL,
@COUNTRYID = @ADDRESS_COUNTRYID,
@STATEID = @ADDRESS_STATEID,
@ADDRESSBLOCK = @ADDRESS_ADDRESSBLOCK,
@CITY = @ADDRESS_CITY,
@POSTCODE = @ADDRESS_POSTCODE,
@CART = @ADDRESS_CART,
@DPC = @ADDRESS_DPC,
@LOT = @ADDRESS_LOT,
@OMITFROMVALIDATION = @ADDRESS_OMITFROMVALIDATION,
@COUNTYCODEID = @ADDRESS_COUNTYCODEID,
@CONGRESSIONALDISTRICTCODEID = @ADDRESS_CONGRESSIONALDISTRICTCODEID,
@LASTVALIDATIONATTEMPTDATE = @ADDRESS_LASTVALIDATIONATTEMPTDATE,
@VALIDATIONMESSAGE = @ADDRESS_VALIDATIONMESSAGE,
@CERTIFICATIONDATA = @ADDRESS_CERTIFICATIONDATA,
@DONOTMAILREASONCODEID = @ADDRESS_DONOTMAILREASONCODEID,
@UPDATEFROMREVENUEBATCH = 1
end
update dbo.ADDRESS
set ADDRESSTYPECODEID=@ADDRESS_ADDRESSTYPECODEID,
DONOTMAIL=@ADDRESS_DONOTMAIL,
DONOTMAILREASONCODEID=@ADDRESS_DONOTMAILREASONCODEID,
COUNTRYID=@ADDRESS_COUNTRYID,
STATEID=@ADDRESS_STATEID,
ADDRESSBLOCK=@ADDRESS_ADDRESSBLOCK,
CITY=@ADDRESS_CITY,
POSTCODE=@ADDRESS_POSTCODE,
CART=@ADDRESS_CART,
DPC=@ADDRESS_DPC,
LOT=@ADDRESS_LOT,
CHANGEDBYID=@CHANGEAGENTID,
DATECHANGED=@CURRENTDATE
where ID = @PRIMARYADDRESSID
declare @CONSTITUENT_ADDRESSID uniqueidentifier;
if @@ROWCOUNT = 0
begin
set @CONSTITUENT_ADDRESSID = newID();
insert into dbo.ADDRESS
(ID, CONSTITUENTID, ISPRIMARY, ADDRESSTYPECODEID, DONOTMAIL, COUNTRYID, STATEID, ADDRESSBLOCK, CITY, POSTCODE, CART, DPC, LOT, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED, DONOTMAILREASONCODEID)
values
(@CONSTITUENT_ADDRESSID, @ID, 1, @ADDRESS_ADDRESSTYPECODEID, @ADDRESS_DONOTMAIL, @ADDRESS_COUNTRYID, @ADDRESS_STATEID, @ADDRESS_ADDRESSBLOCK, @ADDRESS_CITY, @ADDRESS_POSTCODE, @ADDRESS_CART, @ADDRESS_DPC, @ADDRESS_LOT, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE, @ADDRESS_DONOTMAILREASONCODEID)
end
else
begin
select @CONSTITUENT_ADDRESSID = ID
from dbo.ADDRESS
where ADDRESS.CONSTITUENTID = @ID and ISPRIMARY = 1
end
update ADDRESSVALIDATIONUPDATE
set ADDRESSVALIDATIONUPDATE.COUNTYCODEID=@ADDRESS_COUNTYCODEID,
ADDRESSVALIDATIONUPDATE.CONGRESSIONALDISTRICTCODEID=@ADDRESS_CONGRESSIONALDISTRICTCODEID,
ADDRESSVALIDATIONUPDATE.LASTVALIDATIONATTEMPTDATE=@ADDRESS_LASTVALIDATIONATTEMPTDATE,
ADDRESSVALIDATIONUPDATE.VALIDATIONMESSAGE=@ADDRESS_VALIDATIONMESSAGE,
ADDRESSVALIDATIONUPDATE.CERTIFICATIONDATA=@ADDRESS_CERTIFICATIONDATA,
ADDRESSVALIDATIONUPDATE.OMITFROMVALIDATION=@ADDRESS_OMITFROMVALIDATION,
ADDRESSVALIDATIONUPDATE.CHANGEDBYID=@CHANGEAGENTID,
ADDRESSVALIDATIONUPDATE.DATECHANGED=@CURRENTDATE
from dbo.ADDRESSVALIDATIONUPDATE
inner join dbo.ADDRESS on ADDRESS.ID = ADDRESSVALIDATIONUPDATE.ID
where ADDRESS.CONSTITUENTID = @ID and ADDRESS.ISPRIMARY = 1
if @@ROWCOUNT = 0
begin
insert into dbo.ADDRESSVALIDATIONUPDATE
(ID, OMITFROMVALIDATION, COUNTYCODEID, CONGRESSIONALDISTRICTCODEID, LASTVALIDATIONATTEMPTDATE, VALIDATIONMESSAGE, CERTIFICATIONDATA, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values
(@CONSTITUENT_ADDRESSID, @ADDRESS_OMITFROMVALIDATION, @ADDRESS_COUNTYCODEID, @ADDRESS_CONGRESSIONALDISTRICTCODEID, @ADDRESS_LASTVALIDATIONATTEMPTDATE, @ADDRESS_VALIDATIONMESSAGE, @ADDRESS_CERTIFICATIONDATA, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)
end
if @PHONE_PHONETYPECODEID is not null or (@PHONE_NUMBER is not null and @PHONE_NUMBER <> '')
begin
update dbo.PHONE
set PHONETYPECODEID=@PHONE_PHONETYPECODEID,
NUMBER=@PHONE_NUMBER,
CHANGEDBYID=@CHANGEAGENTID,
DATECHANGED=@CURRENTDATE
where PHONE.CONSTITUENTID = @ID and PHONE.ISPRIMARY = 1;
if @@ROWCOUNT = 0
insert into dbo.PHONE (CONSTITUENTID, ISPRIMARY, PHONETYPECODEID, NUMBER, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values (@ID, 1, @PHONE_PHONETYPECODEID, @PHONE_NUMBER, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)
end
else
if exists(select ID from dbo.PHONE where CONSTITUENTID = @ID and ISPRIMARY = 1)
begin
--cache current context information
set @contextCache = CONTEXT_INFO();
--set CONTEXT_INFO to @CHANGEAGENTID
set CONTEXT_INFO @CHANGEAGENTID;
delete from dbo.PHONE where CONSTITUENTID = @ID and ISPRIMARY = 1;
--reset CONTEXT_INFO to previous value
if not @contextCache is null
set CONTEXT_INFO @contextCache;
end;
if @EMAILADDRESS_EMAILADDRESSTYPECODEID is not null or (@EMAILADDRESS_EMAILADDRESS is not null and @EMAILADDRESS_EMAILADDRESS != '')
begin
update dbo.EMAILADDRESS
set [EMAILADDRESSTYPECODEID]=@EMAILADDRESS_EMAILADDRESSTYPECODEID,
[EMAILADDRESS]=@EMAILADDRESS_EMAILADDRESS,
CHANGEDBYID=@CHANGEAGENTID,
DATECHANGED=@CURRENTDATE
where EMAILADDRESS.CONSTITUENTID = @ID and EMAILADDRESS.ISPRIMARY = 1;
if @@ROWCOUNT = 0
insert into dbo.EMAILADDRESS (CONSTITUENTID, ISPRIMARY, EMAILADDRESSTYPECODEID, EMAILADDRESS, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values (@ID, 1, @EMAILADDRESS_EMAILADDRESSTYPECODEID, @EMAILADDRESS_EMAILADDRESS, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)
end
else
if exists(select ID from dbo.EMAILADDRESS where CONSTITUENTID = @ID and ISPRIMARY = 1)
begin
--cache current context information
set @contextCache = CONTEXT_INFO();
--set CONTEXT_INFO to @CHANGEAGENTID
set CONTEXT_INFO @CHANGEAGENTID;
delete from dbo.EMAILADDRESS where CONSTITUENTID = @ID and ISPRIMARY = 1;
--reset CONTEXT_INFO to previous value
if not @contextCache is null
set CONTEXT_INFO @contextCache;
end;
end;
end;
end;
else
begin
select
@ISORGANIZATION = ISORGANIZATION,
@ISGROUP = ISGROUP,
@ISHOUSEHOLD = case when GROUPTYPECODE = 0 then 1 else 0 end
from dbo.BATCHREVENUECONSTITUENT
where ID = @ID
if @ISORGANIZATION != 0
begin
exec dbo.USP_PARSE_ORGANIZATION_NAME @ORGANIZATIONNAME, @KEYNAME output, @KEYNAMEPREFIX output;
update dbo.BATCHREVENUECONSTITUENT
set [KEYNAME]=@KEYNAME,
[KEYNAMEPREFIX]=@KEYNAMEPREFIX,
[ADDRESSTYPECODEID]=@ORGANIZATION_ADDRESSTYPECODEID,
[DONOTMAIL]=@ORGANIZATION_DONOTMAIL,
[DONOTMAILREASONCODEID]=@ORGANIZATION_DONOTMAILREASONCODEID,
[COUNTRYID]=@ORGANIZATION_COUNTRYID,
[STATEID]=@ORGANIZATION_STATEID,
[ADDRESSBLOCK]=@ORGANIZATION_ADDRESSBLOCK,
[CITY]=@ORGANIZATION_CITY,
[POSTCODE]=@ORGANIZATION_POSTCODE,
[OMITFROMVALIDATION]=@ORGANIZATION_OMITFROMVALIDATION,
[CART]=@ORGANIZATION_CART,
[DPC]=@ORGANIZATION_DPC,
[LOT]=@ORGANIZATION_LOT,
[COUNTYCODEID]=@ORGANIZATION_COUNTYCODEID,
[CONGRESSIONALDISTRICTCODEID]=@ORGANIZATION_CONGRESSIONALDISTRICTCODEID,
[LASTVALIDATIONATTEMPTDATE]=@ORGANIZATION_LASTVALIDATIONATTEMPTDATE,
[VALIDATIONMESSAGE]=@ORGANIZATION_VALIDATIONMESSAGE,
[CERTIFICATIONDATA]=@ORGANIZATION_CERTIFICATIONDATA,
[PHONETYPECODEID]=@ORGANIZATION_PHONETYPECODEID,
[NUMBER]=@ORGANIZATION_NUMBER,
[EMAILADDRESSTYPECODEID]=@ORGANIZATION_EMAILADDRESSTYPECODEID,
[EMAILADDRESS]=@ORGANIZATION_EMAILADDRESS,
[INDUSTRYCODEID]=@INDUSTRYCODEID,
[NUMEMPLOYEES]=@NUMEMPLOYEES,
[NUMSUBSIDIARIES]=@NUMSUBSIDIARIES,
[PARENTCORPID]=@PARENTCORPID,
[CHANGEDBYID]=@CHANGEAGENTID,
[DATECHANGED]=@CURRENTDATE,
[WEBADDRESS]=@WEBADDRESS
where ID = @ID;
end;
else
if @ISGROUP != 0
begin
if @ISHOUSEHOLD = 1
begin
-- Validate that the primary and secondary members aren't the same
if @HOUSEHOLD_PRIMARYCONTACTID = @HOUSEHOLD_SECONDMEMBERID
raiserror('ERRPRIMARYANDSECONDMEMBERSAME', 13, 1)
end
update dbo.BATCHREVENUECONSTITUENT
set KEYNAME = @GROUP_NAME,
GROUPDESCRIPTION = @GROUP_DESCRIPTION,
GROUPTYPEID = @GROUP_GROUPTYPEID,
GIVESANONYMOUSLY = @GROUP_GIVESANONYMOUSLY,
ADDRESSTYPECODEID = @GROUP_ADDRESSTYPECODEID,
COUNTRYID = @GROUP_COUNTRYID,
ADDRESSBLOCK = @GROUP_ADDRESSBLOCK,
CITY = @GROUP_CITY,
STATEID = @GROUP_STATEID,
POSTCODE = @GROUP_POSTCODE,
[OMITFROMVALIDATION]=@GROUP_OMITFROMVALIDATION,
[CART]=@GROUP_CART,
[DPC]=@GROUP_DPC,
[LOT]=@GROUP_LOT,
[COUNTYCODEID]=@GROUP_COUNTYCODEID,
[CONGRESSIONALDISTRICTCODEID]=@GROUP_CONGRESSIONALDISTRICTCODEID,
[LASTVALIDATIONATTEMPTDATE]=@GROUP_LASTVALIDATIONATTEMPTDATE,
[VALIDATIONMESSAGE]=@GROUP_VALIDATIONMESSAGE,
[CERTIFICATIONDATA]=@GROUP_CERTIFICATIONDATA,
PHONETYPECODEID = @GROUP_PHONETYPECODEID,
NUMBER = @GROUP_NUMBER,
EMAILADDRESSTYPECODEID = @GROUP_EMAILADDRESSTYPECODEID,
EMAILADDRESS = @GROUP_EMAILADDRESS,
GROUPSTARTDATE = @GROUP_STARTDATE,
WEBADDRESS = @GROUP_WEBADDRESS,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE,
DONOTMAIL=@GROUP_DONOTMAIL,
DONOTMAILREASONCODEID=@GROUP_DONOTMAILREASONCODEID
where ID = @ID;
-- Handle group members
if @ISHOUSEHOLD = 0
begin
declare @MEMBERSTABLE table
(
ISPRIMARY bit,
BATCHREVENUECONSTITUENTID uniqueidentifier,
MEMBERID uniqueidentifier
)
-- Deserialize the XML by hand since the root element
-- is different than the function's.
insert into @MEMBERSTABLE
(
ISPRIMARY,
BATCHREVENUECONSTITUENTID,
MEMBERID
)
select
T.c.value('(ISPRIMARY)[1]','bit'),
newid(),
T.c.value('(MEMBERID)[1]','uniqueidentifier')
from @GROUP_MEMBERS.nodes('/GROUP_MEMBERS/ITEM') T(c)
-- Create BATCHREVENUECONSTITUENT entries for the constituents that already exist
-- in the CONSTITUENT table and don't have records in BATCHREVENUECONSTITUENT that are
-- already members of the group.
insert into dbo.BATCHREVENUECONSTITUENT
(
ID,
EXISTINGCONSTITUENTID,
ISORGANIZATION,
ISGROUP,
GROUPTYPECODE,
ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED
)
select
M.BATCHREVENUECONSTITUENTID,
M.MEMBERID,
C.ISORGANIZATION,
C.ISGROUP,
coalesce(GD.GROUPTYPECODE, 0),
@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
from @MEMBERSTABLE M
inner join dbo.CONSTITUENT C on M.MEMBERID = C.ID
left join dbo.GROUPDATA GD on C.ID = GD.ID
-- The exist section of the join is to make sure the BATCHREVENUECONSTITUENT record
-- joined to already belonged to the group.
left join dbo.BATCHREVENUECONSTITUENT BRC on C.ID = BRC.EXISTINGCONSTITUENTID and exists (select 1 from dbo.BATCHREVENUECONSTITUENTGROUPMEMBER where MEMBERID = BRC.ID and GROUPID = @ID)
where
BRC.ID is null
-- For members that already exist in BATCHREVENUECONSTITUENT,
-- update @MEMBERSTABLE's BATCHREVENUECONSTITUENTID. @MEMBERSTABLE MEMBERID could contain either
-- a CONSTITUENT record ID or a BATCHREVENUECONSTITUENT record ID. Because of that, the below query
-- left joins to CONSTITUENT and BATCHREVENUECONSTITUENT. CONSTITUENT.ID and BATCHREVENUECONSTITUENT.ID
-- should only be null if @MEMBERSTABLE.MEMBERID contains a BATCHREVENUECONSTITUENT.ID.
update @MEMBERSTABLE set BATCHREVENUECONSTITUENTID = case when BRC.ID is not null then BRC.ID else MEMBERID end
from @MEMBERSTABLE M
left join dbo.CONSTITUENT C on M.MEMBERID = C.ID
-- Check for existences in BATCHREVENUECONSTITUENTGROUPMEMBER since the BATCHREVENUECONSTITUENT record should
-- only be used if they were already a member. If they weren't already a member, this constituent was created
-- for a different reason and could be changed when a different batch row is edited.
left join dbo.BATCHREVENUECONSTITUENT BRC on BRC.EXISTINGCONSTITUENTID = M.MEMBERID and exists (select 1 from dbo.BATCHREVENUECONSTITUENTGROUPMEMBER where MEMBERID = BRC.ID and GROUPID = @ID)
where C.ID is null or BRC.ID is not null
-- Clear the ISPRIMARY flag for this group's members
update dbo.BATCHREVENUECONSTITUENTGROUPMEMBER
set ISPRIMARY = 0
where GROUPID = @ID;
-- Handle updating BATCHREVENUECONSTITUENTGROUPMEMBER
-- Remove old members
declare @CONSTITUENTSTOREMOVE table
(
BATCHREVENUECONSTITUENTID uniqueidentifier
)
insert into @CONSTITUENTSTOREMOVE (BATCHREVENUECONSTITUENTID)
select MEMBERID
from dbo.BATCHREVENUECONSTITUENTGROUPMEMBER
where
MEMBERID not in (select BATCHREVENUECONSTITUENTID from @MEMBERSTABLE) and
GROUPID = @ID
delete from dbo.BATCHREVENUECONSTITUENTGROUPMEMBER
where
MEMBERID in (select BATCHREVENUECONSTITUENTID from @CONSTITUENTSTOREMOVE) and
GROUPID = @ID
delete from dbo.BATCHREVENUECONSTITUENT
where ID in (select BATCHREVENUECONSTITUENTID from @CONSTITUENTSTOREMOVE)
-- Update the ISPRIMARY flag for existing members
update dbo.BATCHREVENUECONSTITUENTGROUPMEMBER
set ISPRIMARY = M.ISPRIMARY
from BATCHREVENUECONSTITUENTGROUPMEMBER GM
inner join @MEMBERSTABLE M on GM.MEMBERID = M.BATCHREVENUECONSTITUENTID and GM.GROUPID = @ID
where GM.ISPRIMARY <> M.ISPRIMARY
-- Add new members
insert into dbo.BATCHREVENUECONSTITUENTGROUPMEMBER
(
ID,
GROUPID,
MEMBERID,
ISPRIMARY,
ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED
)
select
newid(),
@ID,
BATCHREVENUECONSTITUENTID,
ISPRIMARY,
@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
from @MEMBERSTABLE as M
where not exists (
select MEMBERID
from dbo.BATCHREVENUECONSTITUENTGROUPMEMBER GM
where GM.MEMBERID = M.BATCHREVENUECONSTITUENTID and GM.GROUPID = @ID
)
end
else
begin
-- Handle household members
-- Update primary member if needed
declare @PRIMARYMEMBERBATCHREVENUECONSTITUENTID uniqueidentifier
exec dbo.USP_BATCHREVENUE_UPDATEHOUSEHOLDMEMBER @PRIMARYMEMBERBATCHREVENUECONSTITUENTID output,
@ID, 1, @HOUSEHOLD_PRIMARYCONTACTID,
@HOUSEHOLD_PRIMARYCONTACT_KEYNAME, @HOUSEHOLD_PRIMARYCONTACT_FIRSTNAME,
@HOUSEHOLD_PRIMARYCONTACT_MIDDLENAME, @HOUSEHOLD_PRIMARYCONTACT_TITLECODEID,
@HOUSEHOLD_PRIMARYCONTACT_SUFFIXCODEID, @HOUSEHOLD_PRIMARYCONTACT_COPYHOUSEHOLDCONTACT, @CHANGEAGENTID
-- Update secondary member if needed
declare @SECONDMEMBERBATCHREVENUECONSTITUENTID uniqueidentifier
exec dbo.USP_BATCHREVENUE_UPDATEHOUSEHOLDMEMBER @SECONDMEMBERBATCHREVENUECONSTITUENTID output,
@ID, 0, @HOUSEHOLD_SECONDMEMBERID,
@HOUSEHOLD_SECONDMEMBER_KEYNAME, @HOUSEHOLD_SECONDMEMBER_FIRSTNAME,
@HOUSEHOLD_SECONDMEMBER_MIDDLENAME, @HOUSEHOLD_SECONDMEMBER_TITLECODEID,
@HOUSEHOLD_SECONDMEMBER_SUFFIXCODEID, @HOUSEHOLD_SECONDMEMBER_COPYHOUSEHOLDCONTACT, @CHANGEAGENTID
-- Update the members' relationship
-- Verify any old relationship doesn't exist
delete from dbo.BATCHREVENUECONSTITUENTRELATION
where CONSTITUENTID in (select MEMBERID from BATCHREVENUECONSTITUENTGROUPMEMBER where GROUPID = @ID)
if @HOUSEHOLD_SECONDMEMBER_RELATIONSHIP_RECIPROCALTYPECODEID is not null or
@HOUSEHOLD_SECONDMEMBER_RELATIONSHIP_RELATIONSHIPTYPECODEID is not null
begin
-- Verify that if the members already exist, they aren't already related
if @HOUSEHOLD_PRIMARYCONTACTID is null or @HOUSEHOLD_SECONDMEMBERID is null or
not exists(select 1 from dbo.RELATIONSHIP where RELATIONSHIPCONSTITUENTID = @HOUSEHOLD_PRIMARYCONTACTID and RECIPROCALCONSTITUENTID = @HOUSEHOLD_SECONDMEMBERID)
begin
declare @HOUSEHOLD_SECONDMEMBER_PRIMARYRECOGNITIONTYPECODEID uniqueidentifier
declare @HOUSEHOLD_SECONDMEMBER_RECIPROCALRECOGNITIONTYPECODEID uniqueidentifier
declare @HOUSEHOLD_SECONDMEMBER_PRIMARYRELATIONSHIPEXISTS bit
declare @HOUSEHOLD_SECONDMEMBER_RECIPROCALRELATIONSHIPEXISTS bit
declare @HOUSEHOLD_SECONDMEMBER_PRIMARYMATCHFACTOR decimal(5,2)
declare @HOUSEHOLD_SECONDMEMBER_RECIPROCALMATCHFACTOR decimal(5,2)
select @HOUSEHOLD_SECONDMEMBER_PRIMARYRELATIONSHIPEXISTS = 1,
@HOUSEHOLD_SECONDMEMBER_PRIMARYRECOGNITIONTYPECODEID=RRD.REVENUERECOGNITIONTYPECODEID,
@HOUSEHOLD_SECONDMEMBER_PRIMARYMATCHFACTOR= RRD.MATCHFACTOR
from dbo.RECOGNITIONRELATIONSHIPDEFAULT as RRD
where RRD.CONSTITUENTTYPECODE=0 and RRD.RELATIONSHIPTYPECODEID=@HOUSEHOLD_SECONDMEMBER_RELATIONSHIP_RELATIONSHIPTYPECODEID
select @HOUSEHOLD_SECONDMEMBER_RECIPROCALRELATIONSHIPEXISTS = 1,
@HOUSEHOLD_SECONDMEMBER_RECIPROCALRECOGNITIONTYPECODEID=RRD.REVENUERECOGNITIONTYPECODEID,
@HOUSEHOLD_SECONDMEMBER_RECIPROCALMATCHFACTOR= RRD.MATCHFACTOR
from dbo.RECOGNITIONRELATIONSHIPDEFAULT as RRD
where RRD.CONSTITUENTTYPECODE=0 and RRD.RELATIONSHIPTYPECODEID=@HOUSEHOLD_SECONDMEMBER_RELATIONSHIP_RECIPROCALTYPECODEID
insert into dbo.BATCHREVENUECONSTITUENTRELATION
(
CONSTITUENTID,
RELATIONID,
RELATIONSHIPTYPECODEID,
RECIPROCALTYPECODEID,
STARTDATE,
PRIMARYRELATIONSHIPEXISTS,
PRIMARYMATCHFACTOR,
PRIMARYRECOGNITIONTYPECODEID,
RECIPROCALRELATIONSHIPEXISTS,
RECIPROCALMATCHFACTOR,
RECIPROCALRECOGNITIONTYPECODEID,
ISSPOUSE,
ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED
)
values
(
@PRIMARYMEMBERBATCHREVENUECONSTITUENTID,
@SECONDMEMBERBATCHREVENUECONSTITUENTID,
@HOUSEHOLD_SECONDMEMBER_RELATIONSHIP_RELATIONSHIPTYPECODEID,
@HOUSEHOLD_SECONDMEMBER_RELATIONSHIP_RECIPROCALTYPECODEID,
@HOUSEHOLD_SECONDMEMBER_RELATIONSHIP_STARTDATE,
ISNULL(@HOUSEHOLD_SECONDMEMBER_PRIMARYRELATIONSHIPEXISTS,0),
ISNULL(@HOUSEHOLD_SECONDMEMBER_PRIMARYMATCHFACTOR,0),
@HOUSEHOLD_SECONDMEMBER_PRIMARYRECOGNITIONTYPECODEID,
ISNULL(@HOUSEHOLD_SECONDMEMBER_RECIPROCALRELATIONSHIPEXISTS,0),
ISNULL(@HOUSEHOLD_SECONDMEMBER_RECIPROCALMATCHFACTOR,0),
@HOUSEHOLD_SECONDMEMBER_RECIPROCALRECOGNITIONTYPECODEID,
@HOUSEHOLD_SECONDMEMBER_RELATIONSHIP_ISSPOUSE,
@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
)
end
end
end
end
else
begin
set @KEYNAME = @LASTNAME;
set @KEYNAMEPREFIX = '';
update dbo.BATCHREVENUECONSTITUENT
set [KEYNAME]=@KEYNAME,
[KEYNAMEPREFIX]=@KEYNAMEPREFIX,
[FIRSTNAME]=@FIRSTNAME,
[MIDDLENAME]=@MIDDLENAME,
[MAIDENNAME]=@MAIDENNAME,
[NICKNAME]=@NICKNAME,
[TITLECODEID]=@TITLECODEID,
[SUFFIXCODEID]=@SUFFIXCODEID,
[GENDERCODE]=@GENDERCODE,
[BIRTHDATE]=@BIRTHDATE,
[MARITALSTATUSCODEID]=@MARITALSTATUSCODEID,
[ADDRESSTYPECODEID]=@ADDRESS_ADDRESSTYPECODEID,
[DONOTMAIL]=@ADDRESS_DONOTMAIL,
[DONOTMAILREASONCODEID]=@ADDRESS_DONOTMAILREASONCODEID,
[COUNTRYID]=@ADDRESS_COUNTRYID,
[STATEID]=@ADDRESS_STATEID,
[ADDRESSBLOCK]=@ADDRESS_ADDRESSBLOCK,
[CITY]=@ADDRESS_CITY,
[POSTCODE]=@ADDRESS_POSTCODE,
[OMITFROMVALIDATION]=@ADDRESS_OMITFROMVALIDATION,
[CART]=@ADDRESS_CART,
[DPC]=@ADDRESS_DPC,
[LOT]=@ADDRESS_LOT,
[COUNTYCODEID]=@ADDRESS_COUNTYCODEID,
[CONGRESSIONALDISTRICTCODEID]=@ADDRESS_CONGRESSIONALDISTRICTCODEID,
[LASTVALIDATIONATTEMPTDATE]=@ADDRESS_LASTVALIDATIONATTEMPTDATE,
[VALIDATIONMESSAGE]=@ADDRESS_VALIDATIONMESSAGE,
[CERTIFICATIONDATA]=@ADDRESS_CERTIFICATIONDATA,
[PHONETYPECODEID]=@PHONE_PHONETYPECODEID,
[NUMBER]=@PHONE_NUMBER,
[EMAILADDRESSTYPECODEID]=@EMAILADDRESS_EMAILADDRESSTYPECODEID,
[EMAILADDRESS]=@EMAILADDRESS_EMAILADDRESS,
[CHANGEDBYID]=@CHANGEAGENTID,
[DATECHANGED]=@CURRENTDATE
where ID = @ID;
-------------- Update Spouse's Information --------------
declare @ISSPOUSE bit
if (@SPOUSEID is not null) or (coalesce(@SPOUSE_LASTNAME,'') <> '')
set @ISSPOUSE = 1
else
set @ISSPOUSE = 0
declare @BATCHHOUSEHOLDID uniqueidentifier
select @BATCHHOUSEHOLDID = BRC.ID
from dbo.BATCHREVENUECONSTITUENTGROUPMEMBER BRCGM
inner join dbo.BATCHREVENUECONSTITUENT BRC on BRCGM.GROUPID = BRC.ID
where BRC.GROUPTYPECODE = 0 and BRCGM.MEMBERID = @ID
--If their is a spouse create the relationship
if @ISSPOUSE = 1
begin
if @SPOUSE_GENDERCODE is null
set @SPOUSE_GENDERCODE = 0;
declare @PRIMARYRECOGNITIONTYPECODEID uniqueidentifier
declare @RECIPROCALRECOGNITIONTYPECODEID uniqueidentifier
declare @PRIMARYRELATIONSHIPEXISTS bit
declare @RECIPROCALRELATIONSHIPEXISTS bit
declare @PRIMARYMATCHFACTOR decimal(5,2)
declare @RECIPROCALMATCHFACTOR decimal(5,2)
select @PRIMARYRELATIONSHIPEXISTS = 1,
@PRIMARYRECOGNITIONTYPECODEID=RRD.REVENUERECOGNITIONTYPECODEID,
@PRIMARYMATCHFACTOR= RRD.MATCHFACTOR
from dbo.RECOGNITIONRELATIONSHIPDEFAULT as RRD
where RRD.CONSTITUENTTYPECODE=0 and RRD.RELATIONSHIPTYPECODEID=@SPOUSE_RELATIONSHIPTYPECODEID
select @RECIPROCALRELATIONSHIPEXISTS = 1,
@RECIPROCALRECOGNITIONTYPECODEID=RRD.REVENUERECOGNITIONTYPECODEID,
@RECIPROCALMATCHFACTOR= RRD.MATCHFACTOR
from dbo.RECOGNITIONRELATIONSHIPDEFAULT as RRD
where RRD.CONSTITUENTTYPECODE=0 and RRD.RELATIONSHIPTYPECODEID=@SPOUSE_RECIPROCALTYPECODEID
if @BATCHSPOUSEID is null
begin
set @BATCHSPOUSEID = newID();
insert into dbo.BATCHREVENUECONSTITUENT
(
[ID],
[ISORGANIZATION],
[ISGROUP],
[EXISTINGCONSTITUENTID],
[KEYNAME],
[FIRSTNAME],
[MIDDLENAME],
[MAIDENNAME],
[NICKNAME],
[TITLECODEID],
[SUFFIXCODEID],
[GENDERCODE],
[BIRTHDATE],
[MARITALSTATUSCODEID],
[CURRENTAPPUSERID],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
values
(
@BATCHSPOUSEID,
0,
0,
@SPOUSEID,
@SPOUSE_LASTNAME,
@SPOUSE_FIRSTNAME,
@SPOUSE_MIDDLENAME,
@SPOUSE_MAIDENNAME,
@SPOUSE_NICKNAME,
@SPOUSE_TITLECODEID,
@SPOUSE_SUFFIXCODEID,
@SPOUSE_GENDERCODE,
@SPOUSE_BIRTHDATE,
@MARITALSTATUSCODEID,
@CURRENTAPPUSERID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
insert into dbo.BATCHREVENUECONSTITUENTRELATION
(
[CONSTITUENTID],
[RELATIONID],
[COPYPRIMARYINFORMATION],
[RELATIONSHIPTYPECODEID],
[RECIPROCALTYPECODEID],
[STARTDATE],
[PRIMARYRELATIONSHIPEXISTS],
[PRIMARYMATCHFACTOR],
[PRIMARYRECOGNITIONTYPECODEID],
[RECIPROCALRELATIONSHIPEXISTS],
[RECIPROCALMATCHFACTOR],
[RECIPROCALRECOGNITIONTYPECODEID],
[ISSPOUSE],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
values
(
@ID,
@BATCHSPOUSEID,
@COPYPRIMARYINFORMATION,
@SPOUSE_RELATIONSHIPTYPECODEID,
@SPOUSE_RECIPROCALTYPECODEID,
@SPOUSE_STARTDATE,
ISNULL(@PRIMARYRELATIONSHIPEXISTS,0),
ISNULL(@PRIMARYMATCHFACTOR,0),
@PRIMARYRECOGNITIONTYPECODEID,
ISNULL(@RECIPROCALRELATIONSHIPEXISTS,0),
ISNULL(@RECIPROCALMATCHFACTOR,0),
@RECIPROCALRECOGNITIONTYPECODEID,
@ISSPOUSERELATIONSHIP,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
-- Create the household
exec dbo.USP_BATCHREVENUE_ADDINDIVIDUALHOUSEHOLD @ID, @BATCHSPOUSEID, @HOUSEHOLDCOPYPRIMARYCONTACTINFO, @CURRENTAPPUSERID, @CHANGEAGENTID;
end
else
begin
update dbo.BATCHREVENUECONSTITUENT
set [EXISTINGCONSTITUENTID]=@SPOUSEID,
[KEYNAME]=@SPOUSE_LASTNAME,
[FIRSTNAME]=@SPOUSE_FIRSTNAME,
[MIDDLENAME]=@SPOUSE_MIDDLENAME,
[MAIDENNAME]=@SPOUSE_MAIDENNAME,
[NICKNAME]=@SPOUSE_NICKNAME,
[TITLECODEID]=@SPOUSE_TITLECODEID,
[SUFFIXCODEID]=@SPOUSE_SUFFIXCODEID,
[GENDERCODE]=@SPOUSE_GENDERCODE,
[BIRTHDATE]=@SPOUSE_BIRTHDATE,
[MARITALSTATUSCODEID]=@MARITALSTATUSCODEID,
[CHANGEDBYID]=@CHANGEAGENTID,
[DATECHANGED]=@CURRENTDATE
where ID = @BATCHSPOUSEID;
update dbo.BATCHREVENUECONSTITUENTRELATION
set [COPYPRIMARYINFORMATION]=@COPYPRIMARYINFORMATION,
[RELATIONSHIPTYPECODEID]=@SPOUSE_RELATIONSHIPTYPECODEID,
[RECIPROCALTYPECODEID]=@SPOUSE_RECIPROCALTYPECODEID,
[STARTDATE]=@SPOUSE_STARTDATE,
[ISSPOUSE]=@ISSPOUSERELATIONSHIP,
[PRIMARYRELATIONSHIPEXISTS]=ISNULL(@PRIMARYRELATIONSHIPEXISTS,0),
[PRIMARYMATCHFACTOR]=ISNULL(@PRIMARYMATCHFACTOR,0),
[PRIMARYRECOGNITIONTYPECODEID]=@PRIMARYRECOGNITIONTYPECODEID,
[RECIPROCALRELATIONSHIPEXISTS]=ISNULL(@RECIPROCALRELATIONSHIPEXISTS,0),
[RECIPROCALMATCHFACTOR]=ISNULL(@RECIPROCALMATCHFACTOR,0),
[RECIPROCALRECOGNITIONTYPECODEID]=@RECIPROCALRECOGNITIONTYPECODEID,
[CHANGEDBYID]=@CHANGEAGENTID,
[DATECHANGED]=@CURRENTDATE
where ID = @BATCHSPOUSERELATIONID;
-- Update the household related to this relationship if needed
-- If there isn't a current household, create a new one
if @BATCHHOUSEHOLDID is null
exec dbo.USP_BATCHREVENUE_ADDINDIVIDUALHOUSEHOLD @ID, @BATCHSPOUSEID, @HOUSEHOLDCOPYPRIMARYCONTACTINFO, @CURRENTAPPUSERID, @CHANGEAGENTID;
else
begin
-- Otherwise, update the existing household
declare @HOUSEHOLDID uniqueidentifier, @HOUSEHOLDNAME nvarchar(100), @USEHOUSEHOLDID bit
exec dbo.USP_BATCHREVENUE_GETHOUSEHOLDNAMEORID @ID, @BATCHSPOUSEID, @HOUSEHOLDID output, @HOUSEHOLDNAME output, @USEHOUSEHOLDID output
declare @EXISTINGHOUSEHOLDID uniqueidentifier, @EXISTINGHOUSEHOLDNAME nvarchar(100)
select
@EXISTINGHOUSEHOLDID = EXISTINGCONSTITUENTID,
@EXISTINGHOUSEHOLDNAME = KEYNAME
from dbo.BATCHREVENUECONSTITUENT
where ID = @BATCHHOUSEHOLDID
if @USEHOUSEHOLDID = 1 and (@EXISTINGHOUSEHOLDID is null or @EXISTINGHOUSEHOLDID <> @HOUSEHOLDID)
begin
update dbo.BATCHREVENUECONSTITUENT set
EXISTINGCONSTITUENTID = @HOUSEHOLDID,
KEYNAME = '',
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @BATCHHOUSEHOLDID
end
if @USEHOUSEHOLDID = 0 and coalesce(@HOUSEHOLDNAME, '') <> coalesce(@EXISTINGHOUSEHOLDNAME, '')
begin
update dbo.BATCHREVENUECONSTITUENT set
EXISTINGCONSTITUENTID = null,
KEYNAME = @HOUSEHOLDNAME,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @BATCHHOUSEHOLDID
end
-- Clear or update the primary contact info
declare @CURRENTHOUSEHOLDCOPYPRIMARYCONTACTINFO bit
select @CURRENTHOUSEHOLDCOPYPRIMARYCONTACTINFO = COPYMEMBERCONTACTINFOTOGROUP
from dbo.BATCHREVENUECONSTITUENTGROUPMEMBER
where GROUPID = @BATCHHOUSEHOLDID and MEMBERID = @ID
if @CURRENTHOUSEHOLDCOPYPRIMARYCONTACTINFO <> @HOUSEHOLDCOPYPRIMARYCONTACTINFO
update dbo.BATCHREVENUECONSTITUENTGROUPMEMBER set
COPYMEMBERCONTACTINFOTOGROUP = @HOUSEHOLDCOPYPRIMARYCONTACTINFO,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where GROUPID = @BATCHHOUSEHOLDID and MEMBERID = @ID
end
end
end
else
begin
if @BATCHSPOUSERELATIONID is not null
exec dbo.USP_BATCHREVENUECONSTITUENTRELATION_DELETEBYID_WITHCHANGEAGENTID @BATCHSPOUSERELATIONID, @CHANGEAGENTID;
if @BATCHSPOUSEID is not null
begin
-- Remove the added spouse and corresponding household
delete from dbo.BATCHREVENUECONSTITUENTGROUPMEMBER where GROUPID = @BATCHHOUSEHOLDID
exec dbo.USP_BATCHREVENUECONSTITUENT_DELETEBYID_WITHCHANGEAGENTID @BATCHHOUSEHOLDID, @CHANGEAGENTID;
exec dbo.USP_BATCHREVENUECONSTITUENT_DELETEBYID_WITHCHANGEAGENTID @BATCHSPOUSEID, @CHANGEAGENTID;
end
end
-------------- update Organization Information --------------
declare @HASORGANIZATION bit
if (@BUSINESSID is not null) or (coalesce(@BUSINESS_NAME,'') <> '')
set @HASORGANIZATION = 1
else
set @HASORGANIZATION = 0
--If their is an organization create the relationship
if @HASORGANIZATION = 1
begin
---------Organization Constituent Information---------
declare @ORGKEYNAME nvarchar(100);
declare @ORGKEYNAMEPREFIX nvarchar(50);
exec dbo.USP_PARSE_ORGANIZATION_NAME @BUSINESS_NAME, @ORGKEYNAME output, @ORGKEYNAMEPREFIX output;
declare @BUSINESS_PRIMARYRECOGNITIONTYPECODEID uniqueidentifier
declare @BUSINESS_RECIPROCALRECOGNITIONTYPECODEID uniqueidentifier
declare @BUSINESS_PRIMARYRELATIONSHIPEXISTS bit
declare @BUSINESS_RECIPROCALRELATIONSHIPEXISTS bit
declare @BUSINESS_PRIMARYMATCHFACTOR decimal(5,2)
declare @BUSINESS_RECIPROCALMATCHFACTOR decimal(5,2)
select @BUSINESS_PRIMARYRELATIONSHIPEXISTS = 1,
@BUSINESS_PRIMARYRECOGNITIONTYPECODEID=RRD.REVENUERECOGNITIONTYPECODEID,
@BUSINESS_PRIMARYMATCHFACTOR= RRD.MATCHFACTOR
from dbo.RECOGNITIONRELATIONSHIPDEFAULT as RRD
where RRD.CONSTITUENTTYPECODE=0 and RRD.RELATIONSHIPTYPECODEID=@BUSINESS_RELATIONSHIPTYPECODEID
select @BUSINESS_RECIPROCALRELATIONSHIPEXISTS = 1,
@BUSINESS_RECIPROCALRECOGNITIONTYPECODEID=RRD.REVENUERECOGNITIONTYPECODEID,
@BUSINESS_RECIPROCALMATCHFACTOR= RRD.MATCHFACTOR
from dbo.RECOGNITIONRELATIONSHIPDEFAULT as RRD
where RRD.CONSTITUENTTYPECODE=1 and RRD.RELATIONSHIPTYPECODEID=@BUSINESS_RECIPROCALTYPECODEID
if @BATCHBUSINESSID is null
begin
set @BATCHBUSINESSID = newID();
insert into dbo.BATCHREVENUECONSTITUENT
(
[ID],
[ISORGANIZATION],
[EXISTINGCONSTITUENTID],
[KEYNAME],
[KEYNAMEPREFIX],
[ADDRESSTYPECODEID],
[DONOTMAIL],
[DONOTMAILREASONCODEID],
[COUNTRYID],
[STATEID],
[ADDRESSBLOCK],
[CITY],
[POSTCODE],
[OMITFROMVALIDATION],
[CART],
[DPC],
[LOT],
[COUNTYCODEID],
[CONGRESSIONALDISTRICTCODEID],
[LASTVALIDATIONATTEMPTDATE],
[VALIDATIONMESSAGE],
[CERTIFICATIONDATA],
[PHONETYPECODEID],
[NUMBER],
[CURRENTAPPUSERID],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
values
(
@BATCHBUSINESSID,
1,
@BUSINESSID,
@ORGKEYNAME,
@ORGKEYNAMEPREFIX,
@BUSINESS_ADDRESSTYPECODEID,
@BUSINESS_DONOTMAIL,
@BUSINESS_DONOTMAILREASONCODEID,
@BUSINESS_COUNTRYID,
@BUSINESS_STATEID,
@BUSINESS_ADDRESSBLOCK,
@BUSINESS_CITY,
@BUSINESS_POSTCODE,
@BUSINESS_OMITFROMVALIDATION,
@BUSINESS_CART,
@BUSINESS_DPC,
@BUSINESS_LOT,
@BUSINESS_COUNTYCODEID,
@BUSINESS_CONGRESSIONALDISTRICTCODEID,
@BUSINESS_LASTVALIDATIONATTEMPTDATE,
@BUSINESS_VALIDATIONMESSAGE,
@BUSINESS_CERTIFICATIONDATA,
@BUSINESS_PHONETYPECODEID,
@BUSINESS_NUMBER,
@CURRENTAPPUSERID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
insert into dbo.BATCHREVENUECONSTITUENTRELATION(
[CONSTITUENTID],
[RELATIONID],
[ISPRIMARYBUSINESS],
[RELATIONSHIPTYPECODEID],
[RECIPROCALTYPECODEID],
[ISCONTACT],
[ISPRIMARYCONTACT],
[CONTACTTYPECODEID],
[STARTDATE],
[PRIMARYRELATIONSHIPEXISTS],
[PRIMARYMATCHFACTOR],
[PRIMARYRECOGNITIONTYPECODEID],
[RECIPROCALRELATIONSHIPEXISTS],
[RECIPROCALMATCHFACTOR],
[RECIPROCALRECOGNITIONTYPECODEID],
[POSITION],
[ISMATCHINGGIFTRELATIONSHIP],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
values
(
@ID,
@BATCHBUSINESSID,
1,
@BUSINESS_RELATIONSHIPTYPECODEID,
@BUSINESS_RECIPROCALTYPECODEID,
@ISCONTACT,
@ISPRIMARYCONTACT,
@CONTACTTYPECODEID,
@BUSINESS_STARTDATE,
ISNULL(@BUSINESS_PRIMARYRELATIONSHIPEXISTS,0),
ISNULL(@BUSINESS_PRIMARYMATCHFACTOR,0),
@BUSINESS_PRIMARYRECOGNITIONTYPECODEID,
ISNULL(@BUSINESS_RECIPROCALRELATIONSHIPEXISTS,0),
ISNULL(@BUSINESS_RECIPROCALMATCHFACTOR,0),
@BUSINESS_RECIPROCALRECOGNITIONTYPECODEID,
@POSITION,
@ISMATCHINGGIFTRELATIONSHIP,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
end
else
begin
update dbo.BATCHREVENUECONSTITUENT
set [EXISTINGCONSTITUENTID]=@BUSINESSID,
[KEYNAME]=@ORGKEYNAME,
[KEYNAMEPREFIX]=@ORGKEYNAMEPREFIX,
[ADDRESSTYPECODEID]=@BUSINESS_ADDRESSTYPECODEID,
[DONOTMAIL]=@BUSINESS_DONOTMAIL,
[DONOTMAILREASONCODEID]=@BUSINESS_DONOTMAILREASONCODEID,
[COUNTRYID]=@BUSINESS_COUNTRYID,
[STATEID]=@BUSINESS_STATEID,
[ADDRESSBLOCK]=@BUSINESS_ADDRESSBLOCK,
[CITY]=@BUSINESS_CITY,
[POSTCODE]=@BUSINESS_POSTCODE,
[OMITFROMVALIDATION]=@BUSINESS_OMITFROMVALIDATION,
[CART]=@BUSINESS_CART,
[DPC]=@BUSINESS_DPC,
[LOT]=@BUSINESS_LOT,
[COUNTYCODEID]=@BUSINESS_COUNTYCODEID,
[CONGRESSIONALDISTRICTCODEID]=@BUSINESS_CONGRESSIONALDISTRICTCODEID,
[LASTVALIDATIONATTEMPTDATE]=@BUSINESS_LASTVALIDATIONATTEMPTDATE,
[VALIDATIONMESSAGE]=@BUSINESS_VALIDATIONMESSAGE,
[CERTIFICATIONDATA]=@BUSINESS_CERTIFICATIONDATA,
[PHONETYPECODEID]=@BUSINESS_PHONETYPECODEID,
[NUMBER]=@BUSINESS_NUMBER,
[ISORGANIZATION]=1,
[CHANGEDBYID]=@CHANGEAGENTID,
[DATECHANGED]=@CURRENTDATE
where ID = @BATCHBUSINESSID;
update dbo.BATCHREVENUECONSTITUENTRELATION
set [RELATIONSHIPTYPECODEID]=@BUSINESS_RELATIONSHIPTYPECODEID,
[RECIPROCALTYPECODEID]=@BUSINESS_RECIPROCALTYPECODEID,
[ISCONTACT]=@ISCONTACT,
[ISPRIMARYCONTACT]=@ISPRIMARYCONTACT,
[CONTACTTYPECODEID]=@CONTACTTYPECODEID,
[STARTDATE]=@BUSINESS_STARTDATE,
[PRIMARYRELATIONSHIPEXISTS]=ISNULL(@BUSINESS_PRIMARYRELATIONSHIPEXISTS,0),
[PRIMARYMATCHFACTOR]=ISNULL(@BUSINESS_PRIMARYMATCHFACTOR,0),
[PRIMARYRECOGNITIONTYPECODEID]=@BUSINESS_PRIMARYRECOGNITIONTYPECODEID,
[RECIPROCALRELATIONSHIPEXISTS]=ISNULL(@BUSINESS_RECIPROCALRELATIONSHIPEXISTS,0),
[RECIPROCALMATCHFACTOR]=ISNULL(@BUSINESS_RECIPROCALMATCHFACTOR,0),
[RECIPROCALRECOGNITIONTYPECODEID]=@BUSINESS_RECIPROCALRECOGNITIONTYPECODEID,
[POSITION]=@POSITION,
[ISMATCHINGGIFTRELATIONSHIP]=@ISMATCHINGGIFTRELATIONSHIP,
[CHANGEDBYID]=@CHANGEAGENTID,
[DATECHANGED]=@CURRENTDATE
where ID = @BATCHBUSINESSRELATIONID;
end;
end;
else
begin
if @BATCHBUSINESSRELATIONID is not null
exec dbo.USP_BATCHREVENUECONSTITUENTRELATION_DELETEBYID_WITHCHANGEAGENTID @BATCHBUSINESSRELATIONID, @CHANGEAGENTID;
if @BATCHBUSINESSID is not null
exec dbo.USP_BATCHREVENUECONSTITUENT_DELETEBYID_WITHCHANGEAGENTID @BATCHBUSINESSID, @CHANGEAGENTID;
end;
end;
end;
--reset CONTEXT_INFO to previous value
if not @contextCache is null
set CONTEXT_INFO @contextCache;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;
end;