USP_GLOBALCHANGE_EDITEVENTWAIVER
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SELECTEDEVENTS | xml | IN | |
@WAIVEREVENTID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@ASOF | datetime | IN | |
@NUMBERADDED | int | INOUT | |
@NUMBEREDITED | int | INOUT | |
@NUMBERDELETED | int | INOUT | |
@CURRENTAPPUSERID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_GLOBALCHANGE_EDITEVENTWAIVER
(
@SELECTEDEVENTS xml,
@WAIVEREVENTID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@ASOF as datetime = null,
@NUMBERADDED int = 0 output,
@NUMBEREDITED int = 0 output,
@NUMBERDELETED int = 0 output,
@CURRENTAPPUSERID uniqueidentifier = null
)
as
set nocount off;
declare @CURRENTDATE datetime
declare @SOURCETEXT nvarchar(max)
set @CURRENTDATE = getdate();
set @NUMBERADDED = 0;
set @NUMBEREDITED = 0;
set @NUMBERDELETED = 0;
DECLARE @SELECTEDEVENTIDSTABLE table (ID int identity(1,1), EVENTID uniqueidentifier)
DECLARE @TOTALEVENTS int
DECLARE @i int = 1;
DECLARE @EVENTIDTOCHANGE uniqueidentifier;
DECLARE @SEQUENCE int = 0;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
if @WAIVEREVENTID is not null begin
set @SOURCETEXT = (Select top 1 WAIVERTEXT FROM dbo.REGISTRATIONWAIVER where EVENTID=@WAIVEREVENTID AND ISCURRENT=1 ORDER BY DATEADDED DESC)
INSERT INTO @SELECTEDEVENTIDSTABLE (EVENTID)
SELECT EVENTID FROM (SELECT T.c.value('(EVENTID)[1]','uniqueidentifier') As 'EVENTID'
FROM @SELECTEDEVENTS.nodes('/SELECTEDEVENTS/ITEM') T(c)) AS XMLTABLE
WHERE exists(
select 1 from dbo.UFN_SITEID_MAPFROM_EVENTID(XMLTABLE.EVENTID) EVENTSITE
where (dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1
or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,'800093A6-B727-490B-8CC4-C0C0CF2148F0',20)
where SITEID=[EVENTSITE].[SITEID] or (SITEID is null and [EVENTSITE].[SITEID] is null)) )
)
SELECT @TOTALEVENTS = COUNT(*) FROM @SELECTEDEVENTIDSTABLE
BEGIN TRAN
begin try
WHILE (@i <= @TOTALEVENTS) BEGIN
SET @EVENTIDTOCHANGE = null
SELECT @EVENTIDTOCHANGE = EVENTID from @SELECTEDEVENTIDSTABLE where id=@i
--insert a new record with the copied waiver text
exec dbo.USP_DATAFORMTEMPLATE_VIEW_REGISTRATION_WAIVER @ID=@EVENTIDTOCHANGE, @SEQUENCE=@SEQUENCE output
insert into dbo.REGISTRATIONWAIVER
(ID, EVENTID, WAIVERTEXT, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED, ISCURRENT, SEQUENCE)
values
(newid(), @EVENTIDTOCHANGE, @SOURCETEXT, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE, 1, @SEQUENCE+1)
--update the existing waiver to not be current
UPDATE dbo.REGISTRATIONWAIVER
SET ISCURRENT=0
WHERE ID= (SELECT top 1 ID FROM dbo.REGISTRATIONWAIVER WHERE SEQUENCE=@SEQUENCE AND EVENTID=@EVENTIDTOCHANGE)
SET @i = @i + 1;
END
set @NUMBEREDITED = @TOTALEVENTS;
end try
begin catch
set @NUMBEREDITED = 0;
exec dbo.USP_RAISE_ERROR;
ROLLBACK TRAN
return 1;
end catch
COMMIT TRAN
end