USP_DATAFORMTEMPLATE_ADD_ORGTOORG_RELATIONSHIP
The save procedure used by the add dataform template "Relationship Organization to Organization Add Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | The output parameter indicating the ID of the record added. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@CONSTITUENTID | uniqueidentifier | IN | Input parameter indicating the context ID for the record being added. |
@RECIPROCALCONSTITUENTID | uniqueidentifier | IN | Related organization |
@RECIPROCALTYPECODEID | uniqueidentifier | IN | Organization is the |
@RELATIONSHIPTYPECODEID | uniqueidentifier | IN | Constituent is the |
@STARTDATE | datetime | IN | Start date |
@ENDDATE | datetime | IN | End date |
@COMMENTS | nvarchar(max) | IN | Comments |
@ISMATCHINGGIFTRELATIONSHIP | bit | IN | The organization will match contributions for this relationship |
@PRIMARYSOFTCREDITRELATIONSHIPEXISTS | bit | IN | Apply to constituent for revenue from organization |
@PRIMARYSOFTCREDITMATCHFACTOR | decimal(5, 2) | IN | Recognition credit match percent |
@RECIPROCALSOFTCREDITRELATIONSHIPEXISTS | bit | IN | Apply to organization for revenue from constituent |
@RECIPROCALSOFTCREDITMATCHFACTOR | decimal(5, 2) | IN | Recognition credit match percent |
@PRIMARYRECOGNITIONTYPECODEID | uniqueidentifier | IN | Recognition credit type |
@RECIPROCALRECOGNITIONTYPECODEID | uniqueidentifier | IN | Recognition credit type |
@ISPARENTRELATIONSHIP | bit | IN | Constituent is the parent organization |
@ISPARENTRECIPROCAL | bit | IN | Organization is the parent organization |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_ORGTOORG_RELATIONSHIP
(
@ID uniqueidentifier = null output,
@CHANGEAGENTID uniqueidentifier = null,
@CONSTITUENTID uniqueidentifier,
@RECIPROCALCONSTITUENTID uniqueidentifier,
@RECIPROCALTYPECODEID uniqueidentifier,
@RELATIONSHIPTYPECODEID uniqueidentifier,
@STARTDATE datetime = null,
@ENDDATE datetime = null,
@COMMENTS nvarchar(max) = null,
@ISMATCHINGGIFTRELATIONSHIP bit = 0,
@PRIMARYSOFTCREDITRELATIONSHIPEXISTS bit = 0,
@PRIMARYSOFTCREDITMATCHFACTOR decimal(5,2) = 100,
@RECIPROCALSOFTCREDITRELATIONSHIPEXISTS bit = 0,
@RECIPROCALSOFTCREDITMATCHFACTOR decimal(5,2) = 100,
@PRIMARYRECOGNITIONTYPECODEID uniqueidentifier = null,
@RECIPROCALRECOGNITIONTYPECODEID uniqueidentifier = null,
@ISPARENTRELATIONSHIP bit =0,
@ISPARENTRECIPROCAL bit = 0
)
as
set nocount on;
declare @CURRENTDATE datetime = getdate();
if @ID is null
set @ID = newid();
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
RELATIONSHIPCONSTITUENTID = @CONSTITUENTID and
RECIPROCALCONSTITUENTID = @RECIPROCALCONSTITUENTID and
ISMATCHINGGIFTRELATIONSHIP = 1;
declare @SETID uniqueidentifier = newid();
insert into dbo.RELATIONSHIPSET
(
ID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values
(
@SETID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
insert into dbo.RELATIONSHIP
(
ID,
RELATIONSHIPCONSTITUENTID,
RECIPROCALCONSTITUENTID,
RELATIONSHIPTYPECODEID,
RECIPROCALTYPECODEID,
STARTDATE,
ENDDATE,
RELATIONSHIPSETID,
COMMENTS,
ISMATCHINGGIFTRELATIONSHIP,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values
(
@ID,
@CONSTITUENTID,
@RECIPROCALCONSTITUENTID,
@RELATIONSHIPTYPECODEID,
@RECIPROCALTYPECODEID,
@STARTDATE,
@ENDDATE,
@SETID,
@COMMENTS,
@ISMATCHINGGIFTRELATIONSHIP,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
exec dbo.USP_RELATIONSHIPCONFIGURATION_CONFIGURE @CONSTITUENTID, @RECIPROCALCONSTITUENTID, @RELATIONSHIPTYPECODEID, @RECIPROCALTYPECODEID, @CHANGEAGENTID, @CURRENTDATE;
exec dbo.USP_RECOGNITIONDEFAULTSUPDATE @CONSTITUENTID, @RECIPROCALCONSTITUENTID, @STARTDATE, @ENDDATE,
@PRIMARYSOFTCREDITRELATIONSHIPEXISTS, @PRIMARYSOFTCREDITMATCHFACTOR, @PRIMARYRECOGNITIONTYPECODEID,
@RECIPROCALSOFTCREDITRELATIONSHIPEXISTS, @RECIPROCALSOFTCREDITMATCHFACTOR, @RECIPROCALRECOGNITIONTYPECODEID,
@CHANGEAGENTID;
declare @PARENTID uniqueidentifier = coalesce((select PARENTCORPID from dbo.ORGANIZATIONDATA where ID = @CONSTITUENTID),'00000000-0000-0000-0000-000000000000');
declare @RECIPROCALPARENTID uniqueidentifier =coalesce((select PARENTCORPID from dbo.ORGANIZATIONDATA where ID = @RECIPROCALCONSTITUENTID),'00000000-0000-0000-0000-000000000000');
declare @OLDPARENTORGID uniqueidentifier
if @ISPARENTRELATIONSHIP = 1 and @ISPARENTRECIPROCAL = 0 and @PARENTID <> @RECIPROCALCONSTITUENTID
begin
set @OLDPARENTORGID = (select PARENTCORPID from dbo.ORGANIZATIONDATA where ID=@RECIPROCALCONSTITUENTID)
update
dbo.ORGANIZATIONDATA
set
PARENTCORPID = @CONSTITUENTID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
ID = @RECIPROCALCONSTITUENTID;
if @@ROWCOUNT = 0
insert into dbo.ORGANIZATIONDATA
(
ID,
PARENTCORPID,
ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED
)
values
(
@RECIPROCALCONSTITUENTID,
@CONSTITUENTID,
@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
);
exec dbo.USP_RELATIONSHIPS_CREATEPARENTORGRELATIONSHIP @RECIPROCALCONSTITUENTID, @CONSTITUENTID, @STARTDATE, @CHANGEAGENTID, @CURRENTDATE, 0, @OLDPARENTORGID, @STARTDATE;
end
if @ISPARENTRELATIONSHIP = 0 and @ISPARENTRECIPROCAL = 1 and @RECIPROCALPARENTID <> @CONSTITUENTID
begin
set @OLDPARENTORGID = (select PARENTCORPID from dbo.ORGANIZATIONDATA where ID=@CONSTITUENTID)
update
dbo.ORGANIZATIONDATA
set
PARENTCORPID = @RECIPROCALCONSTITUENTID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
ID = @CONSTITUENTID;
if @@ROWCOUNT = 0
insert into dbo.ORGANIZATIONDATA
(
ID,
PARENTCORPID,
ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED
)
values
(
@CONSTITUENTID,
@RECIPROCALCONSTITUENTID,
@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
);
exec dbo.USP_RELATIONSHIPS_CREATEPARENTORGRELATIONSHIP @CONSTITUENTID, @RECIPROCALCONSTITUENTID, @STARTDATE, @CHANGEAGENTID, @CURRENTDATE, 0, @OLDPARENTORGID, @STARTDATE;
end
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;