USP_DATAFORMTEMPLATE_EDIT_ADDRESS_7
The save procedure used by the edit dataform template "Address Edit Form 4".
Parameters
| Parameter | Parameter Type | Mode | Description |
|---|---|---|---|
| @ID | uniqueidentifier | IN | The input ID parameter indicating the ID of the record being edited. |
| @CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
| @ADDRESSTYPECODEID | uniqueidentifier | IN | Type |
| @PRIMARY | bit | IN | Set as primary address |
| @DONOTMAIL | bit | IN | Do not send mail to this address |
| @STARTDATE | UDT_MONTHDAY | IN | Start date |
| @ENDDATE | UDT_MONTHDAY | IN | End date |
| @COUNTRYID | uniqueidentifier | IN | Country |
| @STATEID | uniqueidentifier | IN | State |
| @ADDRESSBLOCK | nvarchar(150) | IN | Address |
| @CITY | nvarchar(50) | IN | City |
| @POSTCODE | nvarchar(12) | IN | ZIP |
| @CART | nvarchar(10) | IN | CART |
| @DPC | nvarchar(8) | IN | DPC |
| @LOT | nvarchar(5) | IN | LOT |
| @OMITFROMVALIDATION | bit | IN | Omit this address from validation |
| @COUNTYCODEID | uniqueidentifier | IN | County |
| @CONGRESSIONALDISTRICTCODEID | uniqueidentifier | IN | Congressional district |
| @STATEHOUSEDISTRICTCODEID | uniqueidentifier | IN | State house district |
| @STATESENATEDISTRICTCODEID | uniqueidentifier | IN | State senate district |
| @LOCALPRECINCTCODEID | uniqueidentifier | IN | Local precinct |
| @INFOSOURCECODEID | uniqueidentifier | IN | Information source |
| @REGIONCODEID | uniqueidentifier | IN | Region |
| @LASTVALIDATIONATTEMPTDATE | datetime | IN | Last attempt |
| @VALIDATIONMESSAGE | nvarchar(200) | IN | Validation message |
| @CERTIFICATIONDATA | int | IN | |
| @UPDATECONTACTS | bit | IN | Update contacts that use this address |
| @DONOTMAILREASONCODEID | uniqueidentifier | IN | Reason |
| @UPDATEMATCHINGHOUSEHOLDADDRESSES | bit | IN | Update matching addresses in household |
| @HISTORICALSTARTDATE | date | IN | Start date |
| @HISTORICALENDDATE | date | IN | End date |
| @INFOSOURCECOMMENTS | nvarchar(256) | IN | Comments |
| @ISCONFIDENTIAL | bit | IN | This address is confidential |
| @CONSTITUENTDATAREVIEWROLLBACKREASONID | uniqueidentifier | IN | Reason |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_ADDRESS_7
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@ADDRESSTYPECODEID uniqueidentifier,
@PRIMARY bit,
@DONOTMAIL bit,
@STARTDATE dbo.UDT_MONTHDAY,
@ENDDATE dbo.UDT_MONTHDAY,
@COUNTRYID uniqueidentifier,
@STATEID uniqueidentifier,
@ADDRESSBLOCK nvarchar(150),
@CITY nvarchar(50),
@POSTCODE nvarchar(12),
@CART nvarchar(10),
@DPC nvarchar(8),
@LOT nvarchar(5),
@OMITFROMVALIDATION bit,
@COUNTYCODEID uniqueidentifier,
@CONGRESSIONALDISTRICTCODEID uniqueidentifier,
@STATEHOUSEDISTRICTCODEID uniqueidentifier,
@STATESENATEDISTRICTCODEID uniqueidentifier,
@LOCALPRECINCTCODEID uniqueidentifier,
@INFOSOURCECODEID uniqueidentifier,
@REGIONCODEID uniqueidentifier,
@LASTVALIDATIONATTEMPTDATE datetime,
@VALIDATIONMESSAGE nvarchar(200),
@CERTIFICATIONDATA integer,
@UPDATECONTACTS bit,
@DONOTMAILREASONCODEID uniqueidentifier,
@UPDATEMATCHINGHOUSEHOLDADDRESSES bit,
@HISTORICALSTARTDATE date,
@HISTORICALENDDATE date,
@INFOSOURCECOMMENTS nvarchar(256),
@ISCONFIDENTIAL bit,
@CONSTITUENTDATAREVIEWROLLBACKREASONID uniqueidentifier -- used by constituent data review
)
as
set nocount on;
-- #253763 Check to see if there are duplicate addresses. Same address type and same address
-- If nothing has changed on the edit form we don't want to check for duplicates. This way if dups already exist and we
-- change nothing, we can still save the form without getting an error message.
if @HISTORICALENDDATE is null
begin
declare @NULLVALUE uniqueidentifier = newid();
declare @NULLDATE date = '9999-01-01'
if exists (select 'X' from dbo.ADDRESS a
inner join dbo.ADDRESS a2 on a2.CONSTITUENTID = a.CONSTITUENTID and a2.ID <> @ID
where (coalesce(a.ADDRESSBLOCK,'') <> coalesce(@ADDRESSBLOCK,'')
or coalesce(a.ADDRESSTYPECODEID,@NULLVALUE) <> coalesce(@ADDRESSTYPECODEID,@NULLVALUE)
or coalesce(a.STATEID,@NULLVALUE) <> coalesce(@STATEID,@NULLVALUE)
or coalesce(a.COUNTRYID,@NULLVALUE) <> coalesce(@COUNTRYID,@NULLVALUE)
or coalesce(a.POSTCODE,'') <> coalesce(@POSTCODE,'')
or coalesce(a.HISTORICALENDDATE,@NULLDATE) <> coalesce(@HISTORICALENDDATE,@NULLDATE)
-- Adding City comparison for WI#513923
or coalesce(a.CITY,'') <> coalesce(@CITY,'')
)
and a.ID = @ID
and a2.HISTORICALENDDATE is null
and coalesce(a2.ADDRESSBLOCK,'') = coalesce(@ADDRESSBLOCK,'')
and coalesce(a2.ADDRESSTYPECODEID,@NULLVALUE) = coalesce(@ADDRESSTYPECODEID,@NULLVALUE)
and coalesce(a2.STATEID,@NULLVALUE) = coalesce(@STATEID,@NULLVALUE)
and coalesce(a2.COUNTRYID,@NULLVALUE) = coalesce(@COUNTRYID,@NULLVALUE)
and coalesce(a2.POSTCODE,'') = coalesce(@POSTCODE,'')
and coalesce(a2.CITY,'') = coalesce(@CITY,'')
)
raiserror('BBERR_ADDRESS_DUPLICATENOTALLOWED', 13, 1);
end
-- moved original code in the USP bellow, which is shared with other areas other then constituent address edit (duplicate search resolution screen)
exec dbo.USP_ADDRESS_EDITSAVE @ID, @CHANGEAGENTID, @ADDRESSTYPECODEID, @PRIMARY, @DONOTMAIL, @STARTDATE, @ENDDATE, @COUNTRYID, @STATEID,
@ADDRESSBLOCK, @CITY, @POSTCODE, @CART, @DPC, @LOT, @OMITFROMVALIDATION, @COUNTYCODEID, @CONGRESSIONALDISTRICTCODEID,
@STATEHOUSEDISTRICTCODEID, @STATESENATEDISTRICTCODEID, @LOCALPRECINCTCODEID, @INFOSOURCECODEID, @REGIONCODEID,
@LASTVALIDATIONATTEMPTDATE, @VALIDATIONMESSAGE, @CERTIFICATIONDATA, @UPDATECONTACTS, @DONOTMAILREASONCODEID,
@UPDATEMATCHINGHOUSEHOLDADDRESSES, @HISTORICALSTARTDATE, @HISTORICALENDDATE, @INFOSOURCECOMMENTS, @ISCONFIDENTIAL,
@CONSTITUENTDATAREVIEWROLLBACKREASONID;
return 0;