USP_DATAFORMTEMPLATE_VIEW_CONSTITUENTDUPLICATEMATCHVIEW

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@DATALOADED bit INOUT
@LOOKUPID nvarchar(50) INOUT
@FIRSTNAME nvarchar(50) INOUT
@MIDDLENAME nvarchar(50) INOUT
@LASTNAME nvarchar(100) INOUT
@SUFFIXCODEID uniqueidentifier INOUT
@MAIDENNAME nvarchar(100) INOUT
@NICKNAME nvarchar(50) INOUT
@BIRTHDATE UDT_FUZZYDATE INOUT
@ADDRESSID uniqueidentifier INOUT
@ADDRESSTYPECODEID uniqueidentifier INOUT
@ADDRESS_ADDRESSBLOCK nvarchar(150) INOUT
@ADDRESS_CITY nvarchar(50) INOUT
@ADDRESS_STATEID uniqueidentifier INOUT
@ADDRESS_POSTCODE nvarchar(12) INOUT
@ADDRESS_COUNTRYID uniqueidentifier INOUT
@PHONEID uniqueidentifier INOUT
@PHONETYPECODEID uniqueidentifier INOUT
@PHONENUMBER nvarchar(100) INOUT
@EMAILID uniqueidentifier INOUT
@EMAILADDRESSTYPECODEID uniqueidentifier INOUT
@EMAILADDRESS UDT_EMAILADDRESS INOUT
@CREATEDON datetime INOUT
@DATECHANGED datetime INOUT
@ADDRESSES xml INOUT
@PHONES xml INOUT
@EMAILS xml INOUT
@SPOUSENAME nvarchar(154) INOUT
@SPOUSELOOKUPID nvarchar(50) INOUT
@SPOUSESTARTDATE datetime INOUT
@SPOUSEENDDATE datetime INOUT
@HOUSEHOLDNAME nvarchar(154) INOUT
@HOUSEHOLDLOOKUPID nvarchar(50) INOUT
@BUSINESSNAME nvarchar(154) INOUT
@BUSINESSLOOKUPID nvarchar(50) INOUT

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_CONSTITUENTDUPLICATEMATCHVIEW (
    @ID uniqueidentifier,
    @DATALOADED bit = 0 output,
    @LOOKUPID nvarchar(50) = null output,
    @FIRSTNAME nvarchar(50) = null output,
    @MIDDLENAME nvarchar(50) = null output,
    @LASTNAME nvarchar(100) = null output,
    @SUFFIXCODEID uniqueidentifier = null output,
    @MAIDENNAME nvarchar(100) = null output,
    @NICKNAME nvarchar(50) = null output,
    @BIRTHDATE dbo.UDT_FUZZYDATE = null output,
    @ADDRESSID uniqueidentifier = null output,
    @ADDRESSTYPECODEID uniqueidentifier = null output,
    @ADDRESS_ADDRESSBLOCK nvarchar(150) = null output,
    @ADDRESS_CITY nvarchar(50) = null output,
    @ADDRESS_STATEID uniqueidentifier = null output,
    @ADDRESS_POSTCODE nvarchar(12) = null output,
    @ADDRESS_COUNTRYID uniqueidentifier = null output,
    @PHONEID uniqueidentifier = null output,
    @PHONETYPECODEID uniqueidentifier = null output,
    @PHONENUMBER nvarchar(100) = null output,
    @EMAILID uniqueidentifier = null output,
    @EMAILADDRESSTYPECODEID uniqueidentifier = null output,
    @EMAILADDRESS dbo.UDT_EMAILADDRESS = null output,
    @CREATEDON datetime = null output,
    @DATECHANGED datetime = null output,
    @ADDRESSES xml = null output,
    @PHONES xml = null output,
    @EMAILS xml = null output,
    @SPOUSENAME nvarchar(154) = null output,
    @SPOUSELOOKUPID nvarchar(50) = null output,
    @SPOUSESTARTDATE datetime = null output,
    @SPOUSEENDDATE datetime = null output,
    @HOUSEHOLDNAME nvarchar(154) = null output,
    @HOUSEHOLDLOOKUPID nvarchar(50) = null output,
    @BUSINESSNAME nvarchar(154) = null output,
    @BUSINESSLOOKUPID nvarchar(50) = null output
    )
as
declare @ISGROUP bit,
    @ISORGANIZATION bit;

set nocount on;
-- be sure to set this, in case the select returns no rows
set @DATALOADED = 0;

-- populate the output parameters, which correspond to fields on the form.  Note that
-- we set @DATALOADED = 1 to indicate that the load was successful.  Otherwise, the system
-- will display a "no data loaded" message.
--CONSTIT FIELDS
select @DATALOADED = 1,
    @ISORGANIZATION = CONSTITUENT.ISORGANIZATION,
    @ISGROUP = CONSTITUENT.ISGROUP,
    @FIRSTNAME = CONSTITUENT.FIRSTNAME,
    @MIDDLENAME = CONSTITUENT.MIDDLENAME,
    @LASTNAME = CONSTITUENT.KEYNAME,
    @SUFFIXCODEID = CONSTITUENT.SUFFIXCODEID,
    @MAIDENNAME = CONSTITUENT.MAIDENNAME,
    @NICKNAME = CONSTITUENT.NICKNAME,
    @BIRTHDATE = CONSTITUENT.BIRTHDATE,
    @LOOKUPID = CONSTITUENT.LOOKUPID,
    @CREATEDON = CONSTITUENT.DATEADDED,
    @DATECHANGED = CONSTITUENT.DATECHANGED
from dbo.CONSTITUENT
where CONSTITUENT.ID = @ID;

--EMAIL
declare @EMAILTABLE table (
    EMAILADDRESS dbo.UDT_EMAILADDRESS,
    EMAILADDRESSID uniqueidentifier,
    EMAILADDRESSTYPECODEID uniqueidentifier,
    ISPRIMARY bit,
    STARTDATE datetime,
    ENDDATE datetime
    );

insert into @EMAILTABLE (
    EMAILADDRESS,
    EMAILADDRESSID,
    EMAILADDRESSTYPECODEID,
    ISPRIMARY,
    STARTDATE,
    ENDDATE
    )
select EMAILADDRESS,
    ID,
    EMAILADDRESSTYPECODEID,
    ISPRIMARY,
    STARTDATE,
    ENDDATE
from dbo.EMAILADDRESS
where EMAILADDRESS.CONSTITUENTID = @ID;

select @EMAILID = EMAILADDRESSID,
    @EMAILADDRESSTYPECODEID = EMAILADDRESSTYPECODEID,
    @EMAILADDRESS = EMAILADDRESS
from @EMAILTABLE
where ISPRIMARY = 1;

set @EMAILS = (
        select EMAILADDRESSID,
            EMAILADDRESSTYPECODEID,
            EMAILADDRESS,
            STARTDATE,
            ENDDATE,
            ISPRIMARY
        from @EMAILTABLE
        order by ISPRIMARY desc
        for xml raw('ITEM'),
            type,
            elements,
            root('EMAILS'),
            binary BASE64
        );

--PHONE    
declare @PHONETABLE table (
    PHONENUMBER nvarchar(100),
    PHONEID uniqueidentifier,
    PHONETYPECODEID uniqueidentifier,
    ISPRIMARY bit,
    STARTDATE datetime,
    ENDDATE datetime
    );

insert into @PHONETABLE (
    PHONENUMBER,
    PHONEID,
    PHONETYPECODEID,
    ISPRIMARY,
    STARTDATE,
    ENDDATE
    )
select PHONE.NUMBER,
    PHONE.ID,
    PHONE.PHONETYPECODEID,
    PHONE.ISPRIMARY,
    PHONE.STARTDATE,
    PHONE.ENDDATE
from dbo.PHONE
where PHONE.CONSTITUENTID = @ID;

-- get primary phone
select @PHONEID = PHONEID,
    @PHONETYPECODEID = PHONETYPECODEID,
    @PHONENUMBER = PHONENUMBER
from @PHONETABLE
where ISPRIMARY = 1;

set @PHONES = (
        select PHONEID,
            PHONETYPECODEID,
            PHONENUMBER,
            STARTDATE,
            ENDDATE,
            ISPRIMARY
        from @PHONETABLE
        order by ISPRIMARY desc
        for xml raw('ITEM'),
            type,
            elements,
            root('PHONES'),
            binary BASE64
        );

--ADDRESS
declare @ADDRESSTABLE table (
    ADDRESSID uniqueidentifier,
    ADDRESSTYPECODEID uniqueidentifier,
    ADDRESSBLOCK nvarchar(100),
    CITY nvarchar(100),
    STATEID uniqueidentifier,
    POSTCODE nvarchar(12),
    ISPRIMARY bit,
    STARTDATE dbo.UDT_MONTHDAY,
    ENDDATE dbo.UDT_MONTHDAY,
    COUNTRYID uniqueidentifier,
    HISTORICALSTARTDATE datetime,
    HISTORICALENDDATE datetime
    );

insert into @ADDRESSTABLE (
    ADDRESSID,
    ADDRESSTYPECODEID,
    ADDRESSBLOCK,
    CITY,
    STATEID,
    POSTCODE,
    ISPRIMARY,
    STARTDATE,
    ENDDATE,
    COUNTRYID,
    HISTORICALSTARTDATE,
    HISTORICALENDDATE
    )
select ADDRESS.ID,
    ADDRESS.ADDRESSTYPECODEID,
    ADDRESS.ADDRESSBLOCK,
    ADDRESS.CITY,
    ADDRESS.STATEID,
    ADDRESS.POSTCODE,
    ISPRIMARY,
    STARTDATE,
    ENDDATE,
    COUNTRYID,
    HISTORICALSTARTDATE,
    HISTORICALENDDATE
from dbo.ADDRESS
where ADDRESS.CONSTITUENTID = @ID;

-- get primary address
select @ADDRESSID = ADDRESSID,
    @ADDRESSTYPECODEID = ADDRESSTYPECODEID,
    @ADDRESS_ADDRESSBLOCK = ADDRESSBLOCK,
    @ADDRESS_CITY = CITY,
    @ADDRESS_STATEID = STATEID,
    @ADDRESS_POSTCODE = POSTCODE,
    @ADDRESS_COUNTRYID = COUNTRYID
from @ADDRESSTABLE
where ISPRIMARY = 1;

set @ADDRESSES = (
        select ADDRESSID,
            ADDRESSTYPECODEID,
            ADDRESSBLOCK,
            CITY,
            STATEID,
            POSTCODE,
            STARTDATE,
            ENDDATE,
            ISPRIMARY,
            COUNTRYID,
            HISTORICALSTARTDATE,
            HISTORICALENDDATE
        from @ADDRESSTABLE
        order by ISPRIMARY desc
        for xml raw('ITEM'),
            type,
            elements,
            root('ADDRESSES'),
            binary BASE64
        );

-- spouse information
select @SPOUSENAME = CONSTITUENT.name,
    @SPOUSELOOKUPID = CONSTITUENT.LOOKUPID,
    @SPOUSESTARTDATE = RELATIONSHIP.STARTDATE,
    @SPOUSEENDDATE = RELATIONSHIP.ENDDATE
from dbo.RELATIONSHIP
inner join dbo.CONSTITUENT on RELATIONSHIP.RECIPROCALCONSTITUENTID = CONSTITUENT.ID
where RELATIONSHIP.RELATIONSHIPCONSTITUENTID = @ID and RELATIONSHIP.ISSPOUSE = 1;

-- household information
if @ISORGANIZATION = 0 and @ISGROUP = 0
    select top (1) @HOUSEHOLDNAME = CG.name,
        @HOUSEHOLDLOOKUPID = CG.LOOKUPID
    from dbo.GROUPMEMBER as GM
    join dbo.CONSTITUENT as CG on GM.GROUPID = CG.ID
    join dbo.GROUPDATA as GD on GD.ID = CG.ID
    where GM.MEMBERID = @ID and dbo.UFN_GROUPMEMBER_ISCURRENTMEMBER(GM.ID) = 1 and GD.GROUPTYPECODE = 0;

-- get primary business
if @ISORGANIZATION = 0 and @ISGROUP = 0
    select @BUSINESSNAME = [ORG].KEYNAME,
        @BUSINESSLOOKUPID = [ORG].LOOKUPID
    from dbo.RELATIONSHIP
    inner join dbo.CONSTITUENT as [ORG] on [ORG].ID = RELATIONSHIP.RECIPROCALCONSTITUENTID
    where RELATIONSHIP.RELATIONSHIPCONSTITUENTID = @ID and RELATIONSHIP.ISPRIMARYBUSINESS = 1;

return 0;