USP_DATAFORMTEMPLATE_EDIT_TRIBUTE_2
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@TRIBUTETYPECODEID | uniqueidentifier | IN | |
@TRIBUTETEXT | nvarchar(255) | IN | |
@TRIBUTEEID | uniqueidentifier | IN | |
@DESIGNATIONID | uniqueidentifier | IN | |
@NAMEFORMATFUNCTIONID | uniqueidentifier | IN | |
@SITES | xml | IN | |
@TRIBUTELETTERCODEID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_TRIBUTE_2
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@TRIBUTETYPECODEID uniqueidentifier,
@TRIBUTETEXT nvarchar(255),
@TRIBUTEEID uniqueidentifier,
@DESIGNATIONID uniqueidentifier,
@NAMEFORMATFUNCTIONID uniqueidentifier,
@SITES xml,
@TRIBUTELETTERCODEID uniqueidentifier
)
as
set nocount on;
declare @CURRENTDATE datetime;
set @CURRENTDATE = getdate();
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
begin try
declare @OLDTRIBUTEEID uniqueidentifier;
select @OLDTRIBUTEEID = TRIBUTEEID from dbo.TRIBUTE where ID = @ID;
declare @OLDTRIBUTELETTERCODEID uniqueidentifier;
select @OLDTRIBUTELETTERCODEID = TRIBUTELETTERCODEID from dbo.TRIBUTEACKNOWLEDGEE
where TRIBUTEID = @ID and CONSTITUENTID = @OLDTRIBUTEEID;
update
dbo.TRIBUTE
set
TRIBUTETYPECODEID = @TRIBUTETYPECODEID,
TRIBUTETEXT = @TRIBUTETEXT,
TRIBUTEEID = @TRIBUTEEID,
DESIGNATIONID = @DESIGNATIONID,
NAMEFORMATFUNCTIONID = @NAMEFORMATFUNCTIONID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
ID = @ID;
-- if we changed the tributee, replace the corresponding acknowledgee with the new tributee
if (@OLDTRIBUTEEID <> @TRIBUTEEID) or (@OLDTRIBUTEEID is not null and @TRIBUTEEID is null)
begin
declare @contextCache varbinary(128);
set @contextCache = CONTEXT_INFO();
if not @CHANGEAGENTID is null
set CONTEXT_INFO @CHANGEAGENTID;
delete from dbo.TRIBUTEACKNOWLEDGEE where TRIBUTEID = @ID and CONSTITUENTID = @OLDTRIBUTEEID;
if not @contextCache is null
set CONTEXT_INFO @contextCache;
end
else if (@OLDTRIBUTELETTERCODEID <> @TRIBUTELETTERCODEID) or
(@OLDTRIBUTELETTERCODEID is not null and @TRIBUTELETTERCODEID is null) or
(@OLDTRIBUTELETTERCODEID is null and @TRIBUTELETTERCODEID is not null)
begin
update dbo.TRIBUTEACKNOWLEDGEE
set
TRIBUTELETTERCODEID = @TRIBUTELETTERCODEID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where TRIBUTEID = @ID and CONSTITUENTID = @OLDTRIBUTEEID;
end
-- add the new tributee as an acknowledgee
if (@TRIBUTEEID is not null) and (not exists (select ID from dbo.DECEASEDCONSTITUENT where ID = @TRIBUTEEID)) and (not exists (select ID from dbo.TRIBUTEACKNOWLEDGEE where TRIBUTEID = @ID and CONSTITUENTID = @TRIBUTEEID))
begin
declare @SEQUENCE int;
select @SEQUENCE = coalesce(max(SEQUENCE),0) from dbo.TRIBUTEACKNOWLEDGEE where TRIBUTEID = @ID;
insert into dbo.TRIBUTEACKNOWLEDGEE
(ID,TRIBUTEID,CONSTITUENTID,TRIBUTELETTERCODEID,SEQUENCE,ADDEDBYID,CHANGEDBYID,DATEADDED,DATECHANGED)
values
(newid(), @ID, @TRIBUTEEID,@TRIBUTELETTERCODEID,@SEQUENCE + 1,@CHANGEAGENTID,@CHANGEAGENTID,@CURRENTDATE,@CURRENTDATE);
end
exec dbo.USP_TRIBUTE_GETSITES_UPDATEFROMXML @ID, @SITES, @CHANGEAGENTID, @CURRENTDATE
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0;