USP_DATAFORMTEMPLATE_EDITLOAD_CONSTITUENTDATAREVIEW_ADDRESS

The load procedure used by the edit dataform template "Constituent Data Review Address Edit Data Form"

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.
@ADDRESSTYPECODEID uniqueidentifier INOUT Type
@PRIMARY bit INOUT Set as primary address
@DONOTMAIL bit INOUT Do not send mail to this address
@STARTDATE UDT_MONTHDAY INOUT Start date
@ENDDATE UDT_MONTHDAY INOUT End date
@COUNTRYID uniqueidentifier INOUT Country
@STATEID uniqueidentifier INOUT State
@ADDRESSBLOCK nvarchar(150) INOUT Address
@CITY nvarchar(50) INOUT City
@POSTCODE nvarchar(12) INOUT ZIP
@CART nvarchar(10) INOUT CART
@DPC nvarchar(8) INOUT DPC
@LOT nvarchar(5) INOUT LOT
@OMITFROMVALIDATION bit INOUT Omit this address from validation
@COUNTYCODEID uniqueidentifier INOUT County
@CONGRESSIONALDISTRICTCODEID uniqueidentifier INOUT Congressional district
@STATEHOUSEDISTRICTCODEID uniqueidentifier INOUT State house district
@STATESENATEDISTRICTCODEID uniqueidentifier INOUT State senate district
@LOCALPRECINCTCODEID uniqueidentifier INOUT Local precinct
@INFOSOURCECODEID uniqueidentifier INOUT Information source
@REGIONCODEID uniqueidentifier INOUT Region
@LASTVALIDATIONATTEMPTDATE datetime INOUT Last attempt
@VALIDATIONMESSAGE nvarchar(200) INOUT Validation message
@CERTIFICATIONDATA int INOUT
@NCOALASTSUBMITDATE datetime INOUT Last submit date
@NCOARETURN nvarchar(150) INOUT Return code
@NCOAFOOTNOTE nvarchar(150) INOUT Footnote
@NCOADPVFOOTNOTE nvarchar(150) INOUT DPV footnote
@NCOAMOVEDATE UDT_FUZZYDATE INOUT Move date
@NCOADMASUPPRESSION bit INOUT DMA suppression
@NCOAMAILGRADE nvarchar(150) INOUT Mail grade
@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.
@VALIDATIONCOUNTRIES xml INOUT
@ZIPLOOKUPCOUNTRIES xml INOUT
@UPDATECONTACTS bit INOUT Update contacts that use this address
@HASCONTACTS bit INOUT Has contacts
@DONOTMAILREASONCODEID uniqueidentifier INOUT Reason
@ISHOUSEHOLD bit INOUT
@ISHOUSEHOLDMEMBER bit INOUT
@UPDATEMATCHINGHOUSEHOLDADDRESSES bit INOUT Update matching addresses in household
@MATCHINGHOUSEHOLDMEMBERS xml INOUT Household members
@HISTORICALSTARTDATE date INOUT Start date
@HISTORICALENDDATE date INOUT End date
@DATEADDED date INOUT Date added
@INFOSOURCECOMMENTS nvarchar(256) INOUT Comments
@ISCONFIDENTIAL bit INOUT This address is confidential
@CONSTITUENTDATAREVIEWROLLBACKREASONID uniqueidentifier INOUT Reason
@FORCEDPRIMARY bit INOUT
@CANEDITPRIMARY bit INOUT
@INVALIDFIELDS nvarchar(256) INOUT
@ORIGINCODE tinyint INOUT Origin

Definition

Copy

                CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_CONSTITUENTDATAREVIEW_ADDRESS (
                    @ID uniqueidentifier,  -- this is ADDRESSAUDIT.ID
                    @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,
                    @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,
                    @ISHOUSEHOLD bit = null output,
                    @ISHOUSEHOLDMEMBER bit = null output,
                    @UPDATEMATCHINGHOUSEHOLDADDRESSES bit = null output,
                    @MATCHINGHOUSEHOLDMEMBERS xml = null output,
                    @HISTORICALSTARTDATE date = null output,
                    @HISTORICALENDDATE date = null output,
                    @DATEADDED date = null output,
                    @INFOSOURCECOMMENTS nvarchar(256) = null output,
                    @ISCONFIDENTIAL bit = null output,
                    @CONSTITUENTDATAREVIEWROLLBACKREASONID uniqueidentifier = null output,
                    @FORCEDPRIMARY bit = null output,
                    @CANEDITPRIMARY bit = null output,
                    @INVALIDFIELDS nvarchar(256) = null output,
                    @ORIGINCODE tinyint = null output
                )
                as
                    set nocount on;

                    declare @CONSTITUENTID uniqueidentifier;
                    declare @ADDRESSID uniqueidentifier;

                    set @FORCEDPRIMARY = 0;
                    set @CANEDITPRIMARY = 0;

                    exec dbo.USP_CONSTITUENTDATAREVIEW_ADDRESS_LOADAUDITDATA
                        @ID, @DATALOADED output, @ADDRESSID output, @CONSTITUENTID output,
                        @ADDRESSTYPECODEID output, @PRIMARY output, @DONOTMAIL output,
                        @STARTDATE output, @ENDDATE output, @COUNTRYID output, @STATEID output,
                        @ADDRESSBLOCK output, @CITY output, @POSTCODE output, @CART output,
                        @DPC output, @LOT output, null, null, null, @OMITFROMVALIDATION output,
                        @COUNTYCODEID output, @CONGRESSIONALDISTRICTCODEID output,
                        @STATEHOUSEDISTRICTCODEID output, @STATESENATEDISTRICTCODEID output,
                        @LOCALPRECINCTCODEID output, @INFOSOURCECODEID output,
                        @REGIONCODEID output, @LASTVALIDATIONATTEMPTDATE output,
                        @VALIDATIONMESSAGE output, @CERTIFICATIONDATA output,
                        @NCOALASTSUBMITDATE output,    @NCOARETURN output, @NCOAFOOTNOTE output,
                        @NCOADPVFOOTNOTE output, @NCOAMOVEDATE output,
                        @NCOADMASUPPRESSION output, @NCOAMAILGRADE output
                        @VALIDATIONCOUNTRIES output, @ZIPLOOKUPCOUNTRIES output,
                        @UPDATECONTACTS output, @HASCONTACTS output,
                        @DONOTMAILREASONCODEID output, @HISTORICALSTARTDATE output,
                        @HISTORICALENDDATE output, @DATEADDED output,
                        @INFOSOURCECOMMENTS output, @ISCONFIDENTIAL output, @ORIGINCODE output

                    if @DATALOADED = 0
                        raiserror('Could not find the requested audit record.', 13, 1);

                    if exists(select object_id from sys.objects where type = 'U' and name = 'GROUPMEMBER')
                    begin
                        declare @CURRENTDATE date;
                        set @CURRENTDATE = getdate();

                        set @ISHOUSEHOLD = dbo.UFN_CONSTITUENT_ISHOUSEHOLD(@CONSTITUENTID);
                        set @ISHOUSEHOLDMEMBER = case when exists (
                            select 1 
                            from dbo.GROUPMEMBER GM 
                            left outer join dbo.GROUPMEMBERDATERANGE GMDR on GMDR.GROUPMEMBERID = GM.ID
                            left outer join dbo.GROUPDATA GD on GD.ID = GM.GROUPID
                            where GM.MEMBERID = @CONSTITUENTID 
                            and GD.GROUPTYPECODE = 0
                            and ((GMDR.DATEFROM is null and (GMDR.DATETO is null or GMDR.DATETO > @CURRENTDATE))
                                or (GMDR.DATETO is null and (GMDR.DATEFROM is null or GMDR.DATEFROM <= @CURRENTDATE)) 
                                or (GMDR.DATEFROM <= @CURRENTDATE and GMDR.DATETO > @CURRENTDATE))
                        ) then 1 else 0 end;                                

                        set @MATCHINGHOUSEHOLDMEMBERS = (
                            select
                                CONSTITUENTID,
                                NAME,
                                RELATIONSHIPTOPRIMARY
                            from
                                dbo.UFN_ADDRESS_MATCHINGHOUSEHOLDRECORDS(@CONSTITUENTID, @COUNTRYID, @STATEID, @ADDRESSBLOCK, @CITY, @POSTCODE, @ADDRESSTYPECODEID)
                            for xml raw('ITEM'), type, elements, root('MATCHINGHOUSEHOLDMEMBERS'), binary base64
                        );
                    end

                    -- handle primary
                    declare @CURRENTPRIMARY bit;

                    select @CURRENTPRIMARY = ISPRIMARY
                    from dbo.ADDRESS
                    where ID = @ADDRESSID;

                    if @PRIMARY = 0 and @CURRENTPRIMARY = 1
                    begin
                        set @PRIMARY = 1;
                        set @FORCEDPRIMARY = 1;
                    end
                    else
                    begin
                        -- if current primary is 0, there must be another
                        -- primary record, allow user to edit primary checkbox
                        if @PRIMARY = 1 and @CURRENTPRIMARY = 0
                            set @CANEDITPRIMARY = 1;
                    end

                    exec dbo.USP_CONSTITUENTDATAREVIEW_ADDRESS_CHECKGUIDS
                        @INVALIDFIELDS output,
                        @ADDRESSTYPECODEID output,
                        @COUNTRYID output,
                        @STATEID output,
                        @COUNTYCODEID output,
                        @CONGRESSIONALDISTRICTCODEID output,
                        @STATEHOUSEDISTRICTCODEID output,
                        @STATESENATEDISTRICTCODEID output,
                        @LOCALPRECINCTCODEID output,
                        @INFOSOURCECODEID output,
                        @REGIONCODEID output,
                        @DONOTMAILREASONCODEID output

                    return 0;