USP_CLASS_MEETING_TEMPLATE_DELETE_SINGLE
Executes the "Class Meeting Template Delete Single" record operation.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | Input parameter indicating the ID of the record being deleted. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the delete. |
Definition
Copy
create procedure dbo.USP_CLASS_MEETING_TEMPLATE_DELETE_SINGLE
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier
)
as begin
declare @CLASSID uniqueidentifier
select @CLASSID = CLASSMEETINGGROUP.CLASSID
from dbo.CLASSMEETINGGROUP
inner join dbo.CLASSMEETINGTEMPLATE on CLASSMEETINGGROUP.ID = CLASSMEETINGTEMPLATE.CLASSMEETINGGROUPID
where CLASSMEETINGTEMPLATE.ID = @ID
-- use the system generated delete routine to allow proper recording of the deleting agent
declare @contextCache varbinary(128);
declare @e int;
set @contextCache = CONTEXT_INFO();
/* set CONTEXT_INFO to @CHANGEAGENTID */
if not @CHANGEAGENTID is null
set CONTEXT_INFO @CHANGEAGENTID;
update [PEER_GROUP]
set [PEER_GROUP].PATTERNBLOCKID = null
from CLASSMEETINGTEMPLATE [PRIMARY]
inner join CLASSMEETINGGROUP [PRIMARY_GROUP] on [PRIMARY].CLASSMEETINGGROUPID = [PRIMARY_GROUP].ID
inner join CLASSMEETINGGROUP [PEER_GROUP] on [PRIMARY_GROUP].CLASSID = [PEER_GROUP].CLASSID
inner join CLASSMEETINGTEMPLATE [PEER] on [PEER_GROUP].ID = [PEER].CLASSMEETINGGROUPID and
[PRIMARY].CYCLEDAYID = [PEER].CYCLEDAYID and
[PRIMARY].STARTTIME = [PEER].STARTTIME and
[PRIMARY].ENDTIME = [PEER].ENDTIME and
(
([PRIMARY].TIMETABLEDAYPERIODID is null and [PEER].TIMETABLEDAYPERIODID is null) or
([PRIMARY].TIMETABLEDAYPERIODID = [PEER].TIMETABLEDAYPERIODID)
)
where [PRIMARY].ID = @ID
and [PEER_GROUP].PATTERNBLOCKID is not null
delete from [PEER]
from CLASSMEETINGTEMPLATE [PRIMARY]
inner join CLASSMEETINGGROUP [PRIMARY_GROUP] on [PRIMARY].CLASSMEETINGGROUPID = [PRIMARY_GROUP].ID
inner join CLASSMEETINGGROUP [PEER_GROUP] on [PRIMARY_GROUP].CLASSID = [PEER_GROUP].CLASSID
inner join CLASSMEETINGTEMPLATE [PEER] on [PEER_GROUP].ID = [PEER].CLASSMEETINGGROUPID and
[PRIMARY].CYCLEDAYID = [PEER].CYCLEDAYID and
[PRIMARY].STARTTIME = [PEER].STARTTIME and
[PRIMARY].ENDTIME = [PEER].ENDTIME and
(
([PRIMARY].TIMETABLEDAYPERIODID is null and [PEER].TIMETABLEDAYPERIODID is null) or
([PRIMARY].TIMETABLEDAYPERIODID = [PEER].TIMETABLEDAYPERIODID)
)
where [PRIMARY].ID = @ID
select @e=@@error;
-- reset CONTEXT_INFO to previous value
if not @contextCache is null
set CONTEXT_INFO @contextCache;
if @e <> 0
return 2;
-- Refresh the class meeting records
exec dbo.USP_CLASSMEETING_CREATEFROMTEMPLATES @CLASSID, @CHANGEAGENTID
return 0;
end