USP_DATAFORMTEMPLATE_ADD_BATCHADDRESSVALIDATIONCOMMIT

The save procedure used by the add dataform template "Address Validation Batch Commit Add Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@VALIDATEONLY bit IN Validate only
@BATCHNUMBER nvarchar(100) IN Batch number
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@ADDRESSVALIDATIONID uniqueidentifier IN Address validation ID
@ADDRESSID uniqueidentifier IN Address ID
@CONSTITUENTID uniqueidentifier IN Constituent
@ADDRESSBLOCK nvarchar(150) IN Address
@CITY nvarchar(150) IN City
@STATEID uniqueidentifier IN State
@POSTCODE nvarchar(10) IN Zip
@NEWADDRESSBLOCK nvarchar(150) IN Standardized address
@NEWCITY nvarchar(150) IN Standardized city
@NEWSTATEID uniqueidentifier IN Standardized state
@NEWPOSTCODE nvarchar(10) IN Standardized zip
@NEWCOUNTYID uniqueidentifier IN Validated county
@NEWCONGRESSIONALDISTRICTID uniqueidentifier IN Validated congressional district
@NEWDPC nvarchar(8) IN Standardized DPC
@NEWCART nvarchar(10) IN Standardized CART
@NEWLOT nvarchar(5) IN Standardized LOT
@VALIDATIONMESSAGE nvarchar(200) IN Validation message
@ADDRESSCHANGED bit IN Address changed
@CERTIFICATIONDATA int IN

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_BATCHADDRESSVALIDATIONCOMMIT
(
  @ID uniqueidentifier = null output,
  @VALIDATEONLY bit = 0,
  @BATCHNUMBER nvarchar(100),
  @CHANGEAGENTID uniqueidentifier,
  @ADDRESSVALIDATIONID uniqueidentifier,
  @ADDRESSID uniqueidentifier,
  @CONSTITUENTID uniqueidentifier,
  @ADDRESSBLOCK nvarchar(150) = '',
  @CITY nvarchar(150) = '',
  @STATEID uniqueidentifier = null,
  @POSTCODE nvarchar(10) = '',
  @NEWADDRESSBLOCK nvarchar(150) = '',
  @NEWCITY nvarchar(150) = '',
  @NEWSTATEID uniqueidentifier = null,
  @NEWPOSTCODE nvarchar(10) = '',
  @NEWCOUNTYID uniqueidentifier = null,
  @NEWCONGRESSIONALDISTRICTID uniqueidentifier = null,
  @NEWDPC nvarchar(8) = '',
  @NEWCART nvarchar(10) = '',
  @NEWLOT nvarchar(5) = '',
  @VALIDATIONMESSAGE nvarchar(200) = '',
  @ADDRESSCHANGED bit = 0,
  @CERTIFICATIONDATA integer = 0
)
as
  set nocount on;
  exec dbo.[USP_SKIPSEARCHCONSTITUENTUPDATES];--skip the triggers while committing

  declare @CURRENTDATE datetime;
  set @CURRENTDATE = getdate();

  if @CHANGEAGENTID is null
    exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;

  declare @LASTRUNDATE datetime;

  declare @INFOSOURCECODEID uniqueidentifier;
  select top(1) @INFOSOURCECODEID = ADDRESSVALIDATION_INFOSOURCECODEID from dbo.DATATUNEUP;

    select
        @LASTRUNDATE = ADDRESSVALIDATIONPROCESS.DATELASTRUN
    from
        dbo.ADDRESSVALIDATIONPROCESS
    where
        ADDRESSVALIDATIONPROCESS.ADDRESSVALIDATIONID = @ADDRESSVALIDATIONID;

  -- Update address validation process step code
  update
    dbo.[ADDRESSVALIDATION]
  set
    [STEPCODE] = 2,
    [DATECHANGED] = @CURRENTDATE,
    [CHANGEDBYID] = @CHANGEAGENTID
  where
    [ID] = @ADDRESSVALIDATIONID;

  set @ID = @ADDRESSID;        

  -- Only Update Validation Message and attempt date if the address did not validate
  if (@VALIDATIONMESSAGE is null or @VALIDATIONMESSAGE = '') and (@NEWADDRESSBLOCK is null or @NEWADDRESSBLOCK = '')
  begin
    raiserror('BBERR_BATCHADDRESSVALIDATION_BLANKVALIDATIONMESSAGE', 13, 1);
    return -1;
  end

  if @CERTIFICATIONDATA = 0
    begin
      if exists(select ID from dbo.ADDRESSVALIDATIONUPDATE where ID = @ADDRESSID)
        update dbo.ADDRESSVALIDATIONUPDATE
        set LASTVALIDATIONATTEMPTDATE = @LASTRUNDATE,
          VALIDATIONMESSAGE = @VALIDATIONMESSAGE,
          CERTIFICATIONDATA = @CERTIFICATIONDATA,
          INFOSOURCECODEID = isnull(INFOSOURCECODEID, @INFOSOURCECODEID),
          CHANGEDBYID = @CHANGEAGENTID,
          DATECHANGED = @CURRENTDATE
        where ID = @ADDRESSID;
      else
        insert into dbo.ADDRESSVALIDATIONUPDATE
        (ID, LASTVALIDATIONATTEMPTDATE, VALIDATIONMESSAGE, CERTIFICATIONDATA, INFOSOURCECODEID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
        values
        (@ID, @LASTRUNDATE, @VALIDATIONMESSAGE, isnull(@CERTIFICATIONDATA, 0), @INFOSOURCECODEID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE);
    end
  else
    begin
      -- RobertDi 4/4/2012 - Avoid unnecessary audit growth by only updating the table if something changed.
      update dbo.ADDRESS
      set ADDRESSBLOCK = @NEWADDRESSBLOCK,
        CITY = @NEWCITY,
        STATEID = @NEWSTATEID,
        POSTCODE = @NEWPOSTCODE,                    
        DPC = @NEWDPC,
        LOT = @NEWLOT,
        CART = @NEWCART,
        CHANGEDBYID = @CHANGEAGENTID,
        DATECHANGED = @CURRENTDATE
      where
        ID = @ADDRESSID
        and (
          not (ADDRESSBLOCK = @NEWADDRESSBLOCK or (ADDRESSBLOCK is null and @NEWADDRESSBLOCK is null))
          or not (CITY = @NEWCITY or (CITY is null and @NEWCITY is null))
          or not (STATEID = @NEWSTATEID or (STATEID is null and @NEWSTATEID is null))
          or not (POSTCODE = @NEWPOSTCODE or (POSTCODE is null and @NEWPOSTCODE is null))
          or not (DPC = @NEWDPC or (DPC is null and @NEWDPC is null))
          or not (LOT = @NEWLOT or (LOT is null and @NEWLOT is null))
          or not (CART = @NEWCART or (CART is null and @NEWCART is null))
        );

      if exists(select ID from dbo.ADDRESSVALIDATIONUPDATE where ID = @ADDRESSID)
        update dbo.ADDRESSVALIDATIONUPDATE
        set COUNTYCODEID = @NEWCOUNTYID,
          CONGRESSIONALDISTRICTCODEID = @NEWCONGRESSIONALDISTRICTID,
          LASTVALIDATIONATTEMPTDATE = @LASTRUNDATE,
          VALIDATIONMESSAGE = @VALIDATIONMESSAGE,
          CERTIFICATIONDATA = @CERTIFICATIONDATA,
          INFOSOURCECODEID = isnull(INFOSOURCECODEID, @INFOSOURCECODEID),
          CHANGEDBYID = @CHANGEAGENTID,
          DATECHANGED = @CURRENTDATE
        where ID = @ADDRESSID;
      else
        insert into dbo.ADDRESSVALIDATIONUPDATE
        (ID, COUNTYCODEID, CONGRESSIONALDISTRICTCODEID, LASTVALIDATIONATTEMPTDATE, VALIDATIONMESSAGE, CERTIFICATIONDATA, INFOSOURCECODEID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
        values
        (@ID, @NEWCOUNTYID, @NEWCONGRESSIONALDISTRICTID, @LASTRUNDATE, @VALIDATIONMESSAGE, isnull(@CERTIFICATIONDATA, 0), @INFOSOURCECODEID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE);
    end

  return 0;