USP_DATAFORMTEMPLATE_EDITSAVE_EVENT
The save procedure used by the edit dataform template "Program Event Edit Data Form".
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. |
@NAME | nvarchar(100) | IN | Name |
@LOCATIONS | xml | IN | |
@DESCRIPTION | nvarchar(255) | IN | Description |
@CAPACITY | int | IN | Capacity |
@EVENTSTARTDATE | datetime | IN | Date |
@STARTTIME | UDT_HOURMINUTE | IN | Start time |
@ENDTIME | UDT_HOURMINUTE | IN | End time |
@ONSALEINFO | xml | IN | On-sale information |
@IGNORECONFLICTS | bit | IN | Ignore conflicts when saving |
@EVENTRESOURCES | xml | IN | Supplies/Equipment resources |
@EVENTSTAFFRESOURCES | xml | IN | Staffing resources |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITSAVE_EVENT (
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@NAME nvarchar(100),
@LOCATIONS xml,
@DESCRIPTION nvarchar(255),
@CAPACITY int,
@EVENTSTARTDATE datetime,
@STARTTIME dbo.UDT_HOURMINUTE,
@ENDTIME dbo.UDT_HOURMINUTE,
@ONSALEINFO xml,
@IGNORECONFLICTS bit,
@EVENTRESOURCES xml,
@EVENTSTAFFRESOURCES xml
)
as
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime;
set @CURRENTDATE = getdate();
declare @STARTDATETIME datetime;
declare @ENDDATETIME datetime;
declare @EVENTENDDATE datetime;
set @EVENTENDDATE=@EVENTSTARTDATE;
if @STARTTIME > @ENDTIME
begin
set @EVENTENDDATE=DATEADD(d,1,@EVENTENDDATE)
end
set @STARTDATETIME = dbo.UFN_DATE_ADDHOURMINUTE(@EVENTSTARTDATE, @STARTTIME)
set @ENDDATETIME = dbo.UFN_DATE_ADDHOURMINUTE(@EVENTENDDATE, @ENDTIME)
if @IGNORECONFLICTS = 0
begin
if dbo.UFN_CONFLICTCHECK_CONFLICTSEXIST
(
@STARTDATETIME, @ENDDATETIME,
@LOCATIONS, @EVENTRESOURCES, @EVENTSTAFFRESOURCES,
null, @ID, null,
0,
1,
0,
0
) = 1
begin
raiserror('BBERR_CONFLICTSEXIST', 13, 1);
return 1;
end
end
begin try
update dbo.EVENT set
NAME = @NAME,
DESCRIPTION = @DESCRIPTION,
CAPACITY = @CAPACITY,
STARTDATE = @EVENTSTARTDATE,
STARTTIME = @STARTTIME,
ENDDATE = @EVENTENDDATE,
ENDTIME = @ENDTIME,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @ID;
if (@LOCATIONS is null)
begin
raiserror('Please enter at least one location.', 13, 1);
return 1;
end
else
begin
-- Default 0 for SEQUENCE since it is a new field and may not be passed in
set @LOCATIONS = (
select
T.c.value('(CAPACITY)[1]','int') as 'CAPACITY',
T.c.value('(EVENTLOCATIONID)[1]','uniqueidentifier') as 'EVENTLOCATIONID',
T.c.value('(ID)[1]','uniqueidentifier') as 'ID',
isnull(T.c.value('(SEQUENCE)[1]','int'), 0) as 'SEQUENCE'
from
@LOCATIONS.nodes('/LOCATIONS/ITEM') T(c)
for xml raw('ITEM'),type,elements,root('LOCATIONS'),binary base64
);
exec dbo.USP_EVENT_GETSEQUENCEDLOCATIONS_UPDATEFROMXML @ID, @LOCATIONS, @CHANGEAGENTID, @CURRENTDATE;
end
exec dbo.USP_EVENT_GETONSALEINFO_UPDATEFROMXML @ID, @ONSALEINFO, @CHANGEAGENTID, @CURRENTDATE;
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0;