USP_DATAFORMTEMPLATE_EDITLOAD_CONSTITUENTWINDOW_2
The load procedure used by the edit dataform template "Revenue Batch Constituent Window Edit Form 2"
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter used to load the fields defined on the form. |
@DATALOADED | bit | INOUT | Output parameter indicating whether or not data was actually loaded. |
@LASTNAME | nvarchar(100) | INOUT | Last name |
@FIRSTNAME | nvarchar(50) | INOUT | First name |
@MIDDLENAME | nvarchar(50) | INOUT | Middle name |
@MAIDENNAME | nvarchar(100) | INOUT | Maiden name |
@NICKNAME | nvarchar(50) | INOUT | Nickname |
@TITLECODEID | uniqueidentifier | INOUT | Title |
@SUFFIXCODEID | uniqueidentifier | INOUT | Suffix |
@GENDERCODE | tinyint | INOUT | Gender |
@BIRTHDATE | UDT_FUZZYDATE | INOUT | Birth date |
@GIVESANONYMOUSLY | bit | INOUT | Gives anonymously |
@ADDRESS_STATEID | uniqueidentifier | INOUT | State |
@ADDRESS_ADDRESSBLOCK | nvarchar(150) | INOUT | Address |
@ADDRESS_CITY | nvarchar(50) | INOUT | City |
@ADDRESS_POSTCODE | nvarchar(12) | INOUT | ZIP |
@PHONE_PHONETYPECODEID | uniqueidentifier | INOUT | Phone type |
@PHONE_NUMBER | nvarchar(100) | INOUT | Phone number |
@SPOUSENAME | nvarchar(154) | INOUT | |
@SPOUSEHASMATCHINGCONTACT | bit | INOUT | |
@UPDATEMATCHINGSPOUSECONTACT | bit | INOUT | Update matching contact information for spouse |
@TSLONG | bigint | INOUT | Output parameter indicating the TSLONG value of the record being edited. This is used to manage multi-user concurrency issues when multiple users access the same record. |
@ADDRESS_COUNTRYID | uniqueidentifier | INOUT | Country |
@ZIPLOOKUPCOUNTRIES | xml | INOUT |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_CONSTITUENTWINDOW_2(
@ID uniqueidentifier,
@DATALOADED bit = 0 output,
@LASTNAME nvarchar(100) = null output,
@FIRSTNAME nvarchar(50) = null output,
@MIDDLENAME nvarchar(50) = null output,
@MAIDENNAME nvarchar(100) = null output,
@NICKNAME nvarchar(50) = null output,
@TITLECODEID uniqueidentifier = null output,
@SUFFIXCODEID uniqueidentifier = null output,
@GENDERCODE tinyint = null output,
@BIRTHDATE dbo.UDT_FUZZYDATE = null output,
@GIVESANONYMOUSLY bit = null output,
@ADDRESS_STATEID uniqueidentifier = null output,
@ADDRESS_ADDRESSBLOCK nvarchar(150) = null output,
@ADDRESS_CITY nvarchar(50) = null output,
@ADDRESS_POSTCODE nvarchar(12) = null output,
@PHONE_PHONETYPECODEID uniqueidentifier = null output,
@PHONE_NUMBER nvarchar(100) = null output,
@SPOUSENAME nvarchar(154) = null output,
@SPOUSEHASMATCHINGCONTACT bit = null output,
@UPDATEMATCHINGSPOUSECONTACT bit = null output,
@TSLONG bigint = 0 output,
@ADDRESS_COUNTRYID uniqueidentifier = null output,
@ZIPLOOKUPCOUNTRIES xml = null output
)
as
set nocount on;
declare @SPOUSEID uniqueidentifier;
set @DATALOADED = 0;
set @TSLONG = 0;
set @SPOUSEHASMATCHINGCONTACT = 0;
set @UPDATEMATCHINGSPOUSECONTACT = 0;
if exists(select object_id from sys.objects where type = 'U' and name = 'RELATIONSHIP') begin
select
@DATALOADED = 1,
@LASTNAME = [CONSTITUENT].[KEYNAME],
@FIRSTNAME = [CONSTITUENT].[FIRSTNAME],
@MIDDLENAME = [CONSTITUENT].[MIDDLENAME],
@MAIDENNAME = [CONSTITUENT].[MAIDENNAME],
@NICKNAME = [CONSTITUENT].[NICKNAME],
@TITLECODEID = [CONSTITUENT].[TITLECODEID],
@SUFFIXCODEID = [CONSTITUENT].[SUFFIXCODEID],
@GENDERCODE = [CONSTITUENT].[GENDERCODE],
@BIRTHDATE = [CONSTITUENT].[BIRTHDATE],
@GIVESANONYMOUSLY = [CONSTITUENT].[GIVESANONYMOUSLY],
@ADDRESS_COUNTRYID = [ADDRESS].[COUNTRYID],
@ADDRESS_STATEID = [ADDRESS].[STATEID],
@ADDRESS_ADDRESSBLOCK = [ADDRESS].[ADDRESSBLOCK],
@ADDRESS_CITY = [ADDRESS].[CITY],
@ADDRESS_POSTCODE = [ADDRESS].[POSTCODE],
@PHONE_PHONETYPECODEID = [PHONE].[PHONETYPECODEID],
@PHONE_NUMBER = [PHONE].[NUMBER],
@SPOUSEID = [SPOUSE].[ID],
@SPOUSENAME = [SPOUSE].[NAME],
@TSLONG = [CONSTITUENT].[TSLONG]
from dbo.CONSTITUENT
left outer join dbo.ADDRESS on ADDRESS.CONSTITUENTID=CONSTITUENT.ID and ADDRESS.ISPRIMARY = 1
left outer join dbo.PHONE on PHONE.CONSTITUENTID=CONSTITUENT.ID and PHONE.ISPRIMARY = 1
left join dbo.RELATIONSHIP on RELATIONSHIP.RELATIONSHIPCONSTITUENTID = CONSTITUENT.ID and RELATIONSHIP.ISSPOUSE = 1
left join dbo.CONSTITUENT as SPOUSE on SPOUSE.ID = RELATIONSHIP.RECIPROCALCONSTITUENTID
where
CONSTITUENT.ID = @ID;
if exists (
select ADDRESS.ID
from dbo.ADDRESS
where
ADDRESS.CONSTITUENTID = @SPOUSEID and
ADDRESS.COUNTRYID = @ADDRESS_COUNTRYID and
ADDRESS.ADDRESSBLOCK = @ADDRESS_ADDRESSBLOCK and
ADDRESS.CITY = @ADDRESS_CITY and
(ADDRESS.STATEID = @ADDRESS_STATEID or (ADDRESS.STATEID is null and @ADDRESS_STATEID is null)) and
ADDRESS.POSTCODE = @ADDRESS_POSTCODE
) or
exists (
select PHONE.ID
from dbo.PHONE
where
PHONE.CONSTITUENTID = @SPOUSEID and
PHONE.NUMBER = @PHONE_NUMBER
)begin
set @SPOUSEHASMATCHINGCONTACT = 1;
set @UPDATEMATCHINGSPOUSECONTACT = 1;
end
end
else begin
select
@DATALOADED = 1,
@LASTNAME = [CONSTITUENT].[KEYNAME],
@FIRSTNAME = [CONSTITUENT].[FIRSTNAME],
@MIDDLENAME = [CONSTITUENT].[MIDDLENAME],
@MAIDENNAME = [CONSTITUENT].[MAIDENNAME],
@NICKNAME = [CONSTITUENT].[NICKNAME],
@TITLECODEID = [CONSTITUENT].[TITLECODEID],
@SUFFIXCODEID = [CONSTITUENT].[SUFFIXCODEID],
@GENDERCODE = [CONSTITUENT].[GENDERCODE],
@BIRTHDATE = [CONSTITUENT].[BIRTHDATE],
@GIVESANONYMOUSLY = [CONSTITUENT].[GIVESANONYMOUSLY],
@ADDRESS_COUNTRYID = [ADDRESS].[COUNTRYID],
@ADDRESS_STATEID = [ADDRESS].[STATEID],
@ADDRESS_ADDRESSBLOCK = [ADDRESS].[ADDRESSBLOCK],
@ADDRESS_CITY = [ADDRESS].[CITY],
@ADDRESS_POSTCODE = [ADDRESS].[POSTCODE],
@PHONE_PHONETYPECODEID = [PHONE].[PHONETYPECODEID],
@PHONE_NUMBER = [PHONE].[NUMBER],
@TSLONG = [CONSTITUENT].[TSLONG]
from dbo.CONSTITUENT
left outer join dbo.ADDRESS on ADDRESS.CONSTITUENTID=CONSTITUENT.ID and ADDRESS.ISPRIMARY = 1
left outer join dbo.PHONE on PHONE.CONSTITUENTID=CONSTITUENT.ID and PHONE.ISPRIMARY = 1
where
CONSTITUENT.ID = @ID;
end
select @ZIPLOOKUPCOUNTRIES = dbo.UFN_ZIPCITYSTATE_GETCOUNTRIES_TOITEMLISTXML();
return 0;