USP_DATAFORMTEMPLATE_EDIT_RELATIONSHIP_INDTOORG_2
The save procedure used by the edit dataform template "Relationship Individual to Organization Edit Form 2".
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. |
@RELATIONSHIPTYPECODEID | uniqueidentifier | IN | Relationship type |
@RECIPROCALTYPECODEID | uniqueidentifier | IN | Reciprocal relationship type |
@RELATIONSHIPSTARTDATE | datetime | IN | Start date |
@RELATIONSHIPENDDATE | datetime | IN | End date |
@ISCONTACT | bit | IN | The individual is a contact for this organization. |
@ISPRIMARYCONTACT | bit | IN | Primary contact |
@CONTACTTYPECODEID | uniqueidentifier | IN | Contact type |
@POSITION | nvarchar(50) | IN | Position |
@ISPRIMARYBUSINESS | bit | IN | This is the primary business |
@ISMATCHINGGIFTRELATIONSHIP | bit | IN | The organization will match contributions for this relationship. |
@RELATIONADDRESSID | uniqueidentifier | IN | Address ID |
@ADDADDRESS | bit | IN | Add Address |
@EDITADDRESS | bit | IN | Edit Address |
@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 |
@UPDATEMATCHINGSPOUSEADDRESSES | bit | IN | Update matching address information for spouse |
@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 | Info 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 |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_RELATIONSHIP_INDTOORG_2
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@RELATIONSHIPTYPECODEID uniqueidentifier,
@RECIPROCALTYPECODEID uniqueidentifier,
@RELATIONSHIPSTARTDATE datetime,
@RELATIONSHIPENDDATE datetime,
@ISCONTACT bit,
@ISPRIMARYCONTACT bit,
@CONTACTTYPECODEID uniqueidentifier,
@POSITION nvarchar(50),
@ISPRIMARYBUSINESS bit,
@ISMATCHINGGIFTRELATIONSHIP bit,
@RELATIONADDRESSID uniqueidentifier,
@ADDADDRESS bit,
@EDITADDRESS bit,
@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),
@UPDATEMATCHINGSPOUSEADDRESSES bit,
@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
)
as
set nocount on;
declare @CURRENTDATE datetime;
set @CURRENTDATE = getdate();
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
begin try
if @ISMATCHINGGIFTRELATIONSHIP = 1
update
dbo.RELATIONSHIP
set
ISMATCHINGGIFTRELATIONSHIP = 0,
DATECHANGED = @CURRENTDATE,
CHANGEDBYID = @CHANGEAGENTID
where
ID in (
select
TOUPDATE.ID
from
dbo.RELATIONSHIP TOUPDATE
left join
dbo.RELATIONSHIP
on
RELATIONSHIP.ID = @ID
where
TOUPDATE.RELATIONSHIPCONSTITUENTID = RELATIONSHIP.RELATIONSHIPCONSTITUENTID and
TOUPDATE.RECIPROCALCONSTITUENTID = RELATIONSHIP.RECIPROCALCONSTITUENTID and
TOUPDATE.ISMATCHINGGIFTRELATIONSHIP = 1 and
TOUPDATE.ID <> RELATIONSHIP.ID)
update
DBO.RELATIONSHIP
set
RELATIONSHIPTYPECODEID = @RELATIONSHIPTYPECODEID,
RECIPROCALTYPECODEID = @RECIPROCALTYPECODEID,
STARTDATE = @RELATIONSHIPSTARTDATE,
ENDDATE = @RELATIONSHIPENDDATE,
ISCONTACT = @ISCONTACT,
ISPRIMARYCONTACT = @ISPRIMARYCONTACT,
POSITION = @POSITION,
CONTACTTYPECODEID = @CONTACTTYPECODEID,
ISPRIMARYBUSINESS = @ISPRIMARYBUSINESS,
ISMATCHINGGIFTRELATIONSHIP = @ISMATCHINGGIFTRELATIONSHIP,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
ID = @ID;
declare @RECIPROCALRELATIONSHIPID uniqueidentifier
declare @CONSTITUENTID uniqueidentifier
select @RECIPROCALRELATIONSHIPID=r2.ID, @CONSTITUENTID=r1.RELATIONSHIPCONSTITUENTID
from RELATIONSHIP r1
inner join RELATIONSHIP r2 on (r1.RELATIONSHIPCONSTITUENTID=r2.RECIPROCALCONSTITUENTID and
r1.RECIPROCALCONSTITUENTID=r2.RELATIONSHIPCONSTITUENTID and
r1.RELATIONSHIPTYPECODEID=r2.RECIPROCALTYPECODEID and
r1.RECIPROCALTYPECODEID=r2.RELATIONSHIPTYPECODEID)
where
r1.ID=@ID;
--Are we editting the existing address?
if @EDITADDRESS = 1
begin
exec dbo.USP_ADDRESS_UPDATE @RELATIONADDRESSID, @CHANGEAGENTID, @ADDRESSTYPECODEID, @PRIMARY, @DONOTMAIL, @STARTDATE, @ENDDATE,
@COUNTRYID, @STATEID, @ADDRESSBLOCK, @CITY, @POSTCODE, @CART, @DPC, @LOT, @UPDATEMATCHINGSPOUSEADDRESSES,
@OMITFROMVALIDATION, @COUNTYCODEID, @CONGRESSIONALDISTRICTCODEID, @STATEHOUSEDISTRICTCODEID,
@STATESENATEDISTRICTCODEID, @LOCALPRECINCTCODEID, @INFOSOURCECODEID, @REGIONCODEID, @LASTVALIDATIONATTEMPTDATE,
@VALIDATIONMESSAGE, @CERTIFICATIONDATA, @UPDATECONTACTS
end
else
begin
--If not, are we adding a new address?
if @ADDADDRESS = 1
begin
exec dbo.USP_ADDRESS_CREATE @RELATIONADDRESSID output, @CHANGEAGENTID, @CONSTITUENTID, @ADDRESSTYPECODEID, @PRIMARY, @DONOTMAIL,
@STARTDATE, @ENDDATE, @COUNTRYID, @STATEID, @ADDRESSBLOCK, @CITY, @POSTCODE, @CART, @DPC, @LOT,
@UPDATEMATCHINGSPOUSEADDRESSES, @OMITFROMVALIDATION, @COUNTYCODEID, @CONGRESSIONALDISTRICTCODEID,
@STATEHOUSEDISTRICTCODEID, @STATESENATEDISTRICTCODEID, @LOCALPRECINCTCODEID, @INFOSOURCECODEID,
@REGIONCODEID, @LASTVALIDATIONATTEMPTDATE, @VALIDATIONMESSAGE, @CERTIFICATIONDATA
end
end
--Is there currently an address associated with this relationship?
if @RELATIONADDRESSID is not null
begin
--If so, set the address's RELATIONSHIPID.
update ADDRESS
set
RELATIONSHIPID = @RECIPROCALRELATIONSHIPID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
ID=@RELATIONADDRESSID;
--Delete the old address, if there was one and if it's not currently primary.
delete ADDRESS
where
ID<>@RELATIONADDRESSID and
RELATIONSHIPID = @RECIPROCALRELATIONSHIPID and
ISPRIMARY=0
end
else
begin
--If there isn't currently an address, delete all address that refer to this relationship that aren't primary.
delete ADDRESS
where
RELATIONSHIPID = @RECIPROCALRELATIONSHIPID and
ISPRIMARY=0
--Disassociate any remaining addresses.
update ADDRESS
set
RELATIONSHIPID=null,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
RELATIONSHIPID=@RECIPROCALRELATIONSHIPID;
end
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;