USP_ADDRESS_UPDATE_LOAD

Retrieves the information needed to update an address.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@DATALOADED bit INOUT
@ADDRESSTYPECODEID uniqueidentifier INOUT
@PRIMARY bit INOUT
@DONOTMAIL bit INOUT
@STARTDATE UDT_MONTHDAY INOUT
@ENDDATE UDT_MONTHDAY INOUT
@COUNTRYID uniqueidentifier INOUT
@STATEID uniqueidentifier INOUT
@ADDRESSBLOCK nvarchar(150) INOUT
@CITY nvarchar(50) INOUT
@POSTCODE nvarchar(12) INOUT
@CART nvarchar(10) INOUT
@DPC nvarchar(8) INOUT
@LOT nvarchar(5) INOUT
@SPOUSENAME nvarchar(154) INOUT
@SPOUSEHASMATCHINGADDRESSES bit INOUT
@UPDATEMATCHINGSPOUSEADDRESSES bit INOUT
@OMITFROMVALIDATION bit INOUT
@COUNTYCODEID uniqueidentifier INOUT
@CONGRESSIONALDISTRICTCODEID uniqueidentifier INOUT
@STATEHOUSEDISTRICTCODEID uniqueidentifier INOUT
@STATESENATEDISTRICTCODEID uniqueidentifier INOUT
@LOCALPRECINCTCODEID uniqueidentifier INOUT
@INFOSOURCECODEID uniqueidentifier INOUT
@REGIONCODEID uniqueidentifier INOUT
@LASTVALIDATIONATTEMPTDATE datetime INOUT
@VALIDATIONMESSAGE nvarchar(200) INOUT
@CERTIFICATIONDATA int INOUT
@NCOALASTSUBMITDATE datetime INOUT
@NCOARETURN nvarchar(150) INOUT
@NCOAFOOTNOTE nvarchar(150) INOUT
@NCOADPVFOOTNOTE nvarchar(150) INOUT
@NCOAMOVEDATE UDT_FUZZYDATE INOUT
@NCOADMASUPPRESSION bit INOUT
@NCOAMAILGRADE nvarchar(150) INOUT
@TSLONG bigint INOUT
@VALIDATIONCOUNTRIES xml INOUT
@ZIPLOOKUPCOUNTRIES xml INOUT
@UPDATECONTACTS bit INOUT
@HASCONTACTS bit INOUT
@DONOTMAILREASONCODEID uniqueidentifier INOUT
@HISTORICALSTARTDATE date INOUT
@HISTORICALENDDATE date INOUT
@DATEADDED date INOUT
@INFOSOURCECOMMENTS nvarchar(256) INOUT
@ISCONFIDENTIAL bit INOUT
@ORIGINCODE tinyint INOUT

Definition

Copy


            CREATE procedure dbo.USP_ADDRESS_UPDATE_LOAD (
                @ID uniqueidentifier,
                @DATALOADED bit = 0 output,
                @ADDRESSTYPECODEID uniqueidentifier = null output,
                @PRIMARY bit = null output,
                @DONOTMAIL bit = null output,
                @STARTDATE dbo.UDT_MONTHDAY = null output,
                @ENDDATE dbo.UDT_MONTHDAY = null output,
                @COUNTRYID uniqueidentifier = null output,
                @STATEID uniqueidentifier = null output,
                @ADDRESSBLOCK nvarchar(150) = null output,
                @CITY nvarchar(50) = null output,
                @POSTCODE nvarchar(12) = null output,
                @CART nvarchar(10) = null output,
                @DPC nvarchar(8) = null output,
                @LOT nvarchar(5) = null output,
                @SPOUSENAME nvarchar(154) = null output,
                @SPOUSEHASMATCHINGADDRESSES bit = null output,
                @UPDATEMATCHINGSPOUSEADDRESSES bit = null output,
                @OMITFROMVALIDATION bit = null output,                    
                @COUNTYCODEID uniqueidentifier = null output,
                @CONGRESSIONALDISTRICTCODEID uniqueidentifier = null output,
                @STATEHOUSEDISTRICTCODEID uniqueidentifier = null output,
                @STATESENATEDISTRICTCODEID uniqueidentifier = null output,
                @LOCALPRECINCTCODEID uniqueidentifier = null output,
                @INFOSOURCECODEID uniqueidentifier = null output,
                @REGIONCODEID uniqueidentifier = null output,                    
                @LASTVALIDATIONATTEMPTDATE datetime = null output,
                @VALIDATIONMESSAGE nvarchar(200) = null output,
                @CERTIFICATIONDATA integer = null output,
                @NCOALASTSUBMITDATE datetime = null output,
                @NCOARETURN nvarchar(150) = null output,
                @NCOAFOOTNOTE nvarchar(150) = null output,
                @NCOADPVFOOTNOTE nvarchar(150) = null output,
                @NCOAMOVEDATE UDT_FUZZYDATE = null output,
                @NCOADMASUPPRESSION bit = null output,
                @NCOAMAILGRADE nvarchar(150) = null output,
                @TSLONG bigint = 0 output,
                @VALIDATIONCOUNTRIES xml = null output,
                @ZIPLOOKUPCOUNTRIES xml = null output,
                @UPDATECONTACTS bit = null output,
                @HASCONTACTS bit = null output,
                @DONOTMAILREASONCODEID uniqueidentifier = null output,
                @HISTORICALSTARTDATE date = null output,
                @HISTORICALENDDATE date = null output,
                @DATEADDED date = null output,
                @INFOSOURCECOMMENTS nvarchar(256) = null output,
                @ISCONFIDENTIAL bit = null output,
                @ORIGINCODE tinyint = null output
            )
            as
                set nocount on;

                declare @SPOUSEID uniqueidentifier;

                set @DATALOADED = 0;
                set @TSLONG = 0;
                set @SPOUSEHASMATCHINGADDRESSES = 0;
                set @UPDATEMATCHINGSPOUSEADDRESSES = 0;

                if exists(select object_id from sys.objects where type = 'U' and name = 'RELATIONSHIP')
                    begin
                        select
                            @DATALOADED = 1,
                            @ADDRESSTYPECODEID = ADDRESS.ADDRESSTYPECODEID,
                            @PRIMARY = ADDRESS.ISPRIMARY,
                            @DONOTMAIL = ADDRESS.DONOTMAIL,
                            @STARTDATE = ADDRESS.STARTDATE,
                            @ENDDATE = ADDRESS.ENDDATE,
                            @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 = ADDRESSVALIDATIONUPDATE.OMITFROMVALIDATION,                                
                            @COUNTYCODEID = ADDRESSVALIDATIONUPDATE.COUNTYCODEID,
                            @CONGRESSIONALDISTRICTCODEID = ADDRESSVALIDATIONUPDATE.CONGRESSIONALDISTRICTCODEID,
                            @STATEHOUSEDISTRICTCODEID = ADDRESSVALIDATIONUPDATE.STATEHOUSEDISTRICTCODEID,
                            @STATESENATEDISTRICTCODEID = ADDRESSVALIDATIONUPDATE.STATESENATEDISTRICTCODEID,
                            @LOCALPRECINCTCODEID = ADDRESSVALIDATIONUPDATE.LOCALPRECINCTCODEID,
                            @INFOSOURCECODEID = ADDRESSVALIDATIONUPDATE.INFOSOURCECODEID,
                            @INFOSOURCECOMMENTS = ADDRESSVALIDATIONUPDATE.INFOSOURCECOMMENTS,
                            @REGIONCODEID = ADDRESSVALIDATIONUPDATE.REGIONCODEID,                                
                            @LASTVALIDATIONATTEMPTDATE = ADDRESSVALIDATIONUPDATE.LASTVALIDATIONATTEMPTDATE,
                            @VALIDATIONMESSAGE = ADDRESSVALIDATIONUPDATE.VALIDATIONMESSAGE,
                            @CERTIFICATIONDATA = ADDRESSVALIDATIONUPDATE.CERTIFICATIONDATA,                                
                            @NCOALASTSUBMITDATE = ADDRESSVALIDATIONUPDATE.NCOALASTSUBMITDATE,
                            @NCOARETURN = ADDRESSVALIDATIONUPDATE.NCOARETURN,
                            @NCOAFOOTNOTE = ADDRESSVALIDATIONUPDATE.NCOAFOOTNOTE,
                            @NCOADPVFOOTNOTE = ADDRESSVALIDATIONUPDATE.NCOADPVFOOTNOTE,
                            @NCOAMOVEDATE = ADDRESSVALIDATIONUPDATE.NCOAMOVEDATE,
                            @NCOADMASUPPRESSION = ADDRESSVALIDATIONUPDATE.NCOADMASUPPRESSION,
                            @NCOAMAILGRADE = ADDRESSVALIDATIONUPDATE.NCOAMAILGRADE,
                            @SPOUSEID = SPOUSE.ID,
                            @SPOUSENAME = SPOUSE.NAME,                                                                
                            @TSLONG = ADDRESS.TSLONG,
                            @DONOTMAILREASONCODEID = ADDRESS.DONOTMAILREASONCODEID,
                            @HISTORICALSTARTDATE = ADDRESS.HISTORICALSTARTDATE,
                            @HISTORICALENDDATE = ADDRESS.HISTORICALENDDATE,
                            @DATEADDED = ADDRESS.DATEADDED,
                            @ISCONFIDENTIAL = ADDRESS.ISCONFIDENTIAL,
                            @ORIGINCODE = ADDRESSVALIDATIONUPDATE.ORIGINCODE
                        from
                            dbo.ADDRESS
                            left join dbo.ADDRESSVALIDATIONUPDATE on ADDRESS.ID = ADDRESSVALIDATIONUPDATE.ID
                            left join dbo.RELATIONSHIP on RELATIONSHIP.RELATIONSHIPCONSTITUENTID = ADDRESS.CONSTITUENTID and RELATIONSHIP.ISSPOUSE = 1
                            left join dbo.CONSTITUENT as SPOUSE on SPOUSE.ID = RELATIONSHIP.RECIPROCALCONSTITUENTID
                        where
                            ADDRESS.ID = @ID;

                        if exists (
                            select ADDRESS.ID
                            from dbo.ADDRESS
                            where
                                ADDRESS.CONSTITUENTID = @SPOUSEID and
                                ADDRESS.COUNTRYID = @COUNTRYID and
                                ADDRESS.ADDRESSBLOCK = @ADDRESSBLOCK and
                                ADDRESS.CITY = @CITY and
                                (ADDRESS.STATEID = @STATEID or (ADDRESS.STATEID is null and @STATEID is null)) and
                                ADDRESS.POSTCODE = @POSTCODE
                            ) begin
                                set @SPOUSEHASMATCHINGADDRESSES = 1;    
                                set @UPDATEMATCHINGSPOUSEADDRESSES = 1;
                        end

                        if exists(
                            select r.ID
                            from dbo.RELATIONSHIP r
                                inner join dbo.ADDRESS a1 on a1.CONSTITUENTID=r.RELATIONSHIPCONSTITUENTID
                                inner join dbo.ADDRESS a2 on a2.RELATIONSHIPID=r.ID
                            where 
                                a1.ID=@ID and
                                r.ISCONTACT=1 and
                                a1.COUNTRYID=a2.COUNTRYID and
                                (a1.STATEID=a2.STATEID or (a1.STATEID is null and a2.STATEID is null)) and
                                (a1.ADDRESSBLOCK=a2.ADDRESSBLOCK or (a1.ADDRESSBLOCK is null and a2.ADDRESSBLOCK is null)) and
                                (a1.CITY=a2.CITY or (a1.CITY is null and a2.CITY is null)) and
                                (a1.POSTCODE=a2.POSTCODE or (a1.POSTCODE is null and a2.POSTCODE is null)))
                            begin
                                set @HASCONTACTS=1
                            end
                            else
                            begin
                                set @HASCONTACTS=0
                            end
                    end
                else
                    select
                        @DATALOADED = 1,
                        @HASCONTACTS = 0,
                        @ADDRESSTYPECODEID = ADDRESS.ADDRESSTYPECODEID,
                        @PRIMARY = ADDRESS.ISPRIMARY,
                        @DONOTMAIL = ADDRESS.DONOTMAIL,
                        @STARTDATE = ADDRESS.STARTDATE,
                        @ENDDATE = ADDRESS.ENDDATE,
                        @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 = ADDRESSVALIDATIONUPDATE.OMITFROMVALIDATION,                            
                        @COUNTYCODEID = ADDRESSVALIDATIONUPDATE.COUNTYCODEID,
                        @CONGRESSIONALDISTRICTCODEID = ADDRESSVALIDATIONUPDATE.CONGRESSIONALDISTRICTCODEID,
                        @STATEHOUSEDISTRICTCODEID = ADDRESSVALIDATIONUPDATE.STATEHOUSEDISTRICTCODEID,
                        @STATESENATEDISTRICTCODEID = ADDRESSVALIDATIONUPDATE.STATESENATEDISTRICTCODEID,
                        @LOCALPRECINCTCODEID = ADDRESSVALIDATIONUPDATE.LOCALPRECINCTCODEID,
                        @INFOSOURCECODEID = ADDRESSVALIDATIONUPDATE.INFOSOURCECODEID,
                        @INFOSOURCECOMMENTS = ADDRESSVALIDATIONUPDATE.INFOSOURCECOMMENTS,
                        @REGIONCODEID = ADDRESSVALIDATIONUPDATE.REGIONCODEID,                                
                        @LASTVALIDATIONATTEMPTDATE = ADDRESSVALIDATIONUPDATE.LASTVALIDATIONATTEMPTDATE,
                        @VALIDATIONMESSAGE = ADDRESSVALIDATIONUPDATE.VALIDATIONMESSAGE,
                        @CERTIFICATIONDATA = ADDRESSVALIDATIONUPDATE.CERTIFICATIONDATA,
                        @NCOALASTSUBMITDATE = ADDRESSVALIDATIONUPDATE.NCOALASTSUBMITDATE,
                        @NCOARETURN = ADDRESSVALIDATIONUPDATE.NCOARETURN,
                        @NCOAFOOTNOTE = ADDRESSVALIDATIONUPDATE.NCOAFOOTNOTE,
                        @NCOADPVFOOTNOTE = ADDRESSVALIDATIONUPDATE.NCOADPVFOOTNOTE,
                        @NCOAMOVEDATE = ADDRESSVALIDATIONUPDATE.NCOAMOVEDATE,
                        @NCOADMASUPPRESSION = ADDRESSVALIDATIONUPDATE.NCOADMASUPPRESSION,
                        @NCOAMAILGRADE = ADDRESSVALIDATIONUPDATE.NCOAMAILGRADE,
                        @TSLONG = ADDRESS.TSLONG,
                        @DONOTMAILREASONCODEID = ADDRESS.DONOTMAILREASONCODEID,
                        @HISTORICALSTARTDATE = ADDRESS.HISTORICALSTARTDATE,
                        @HISTORICALENDDATE = ADDRESS.HISTORICALENDDATE,
                        @DATEADDED = ADDRESS.DATEADDED,
                        @ISCONFIDENTIAL = ADDRESS.ISCONFIDENTIAL,
                        @ORIGINCODE = ADDRESSVALIDATIONUPDATE.ORIGINCODE
                    from
                        dbo.ADDRESS
                    left join dbo.ADDRESSVALIDATIONUPDATE on ADDRESS.ID = ADDRESSVALIDATIONUPDATE.ID
                    where
                        ADDRESS.ID = @ID;

                if @ORIGINCODE is null
                    set @ORIGINCODE = 0

                select @VALIDATIONCOUNTRIES = dbo.UFN_COUNTRY_GETVALIDATIONCOUNTRIES_TOITEMLISTXML();
                select @ZIPLOOKUPCOUNTRIES = dbo.UFN_ZIPCITYSTATE_GETCOUNTRIES_TOITEMLISTXML();

                return 0;