USP_ITINERARYITEMCONFLICTSCHEDULE
Executes the "Itinerary Item Conflict Schedule" record operation.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | Input parameter indicating the ID of the record being updated. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the update. |
Definition
Copy
CREATE procedure dbo.USP_ITINERARYITEMCONFLICTSCHEDULE
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier
)
as begin
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
-- Change the invalid reason to zero and the item to a custom item.
declare @ITEMTYPECODE int;
select @ITEMTYPECODE = case when (not ITINERARYITEM.EVENTID is null) then 0
when (not ITINERARYITEM.PROGRAMID is null) then 1
else 2 end
from dbo.ITINERARYITEM
where ITINERARYITEM.ID = @ID
-- common declarations
declare @NAME nvarchar(100);
declare @NOTES nvarchar(500);
declare @ITINERARYID uniqueidentifier;
declare @STARTDATE date
declare @ENDDATE date
declare @STARTTIME dbo.UDT_HOURMINUTE
declare @ENDTIME dbo.UDT_HOURMINUTE
declare @RESOURCES xml
declare @STAFFRESOURCES xml
if (@ITEMTYPECODE = 2)
begin
declare @LOCATIONID uniqueidentifier
declare @MARKLOCATIONBUSY bit
declare @IGNORECONFLICTS bit
declare @ITINERARYCAPACITY int
declare @LOCATIONPRICE money
exec dbo.USP_DATAFORMTEMPLATE_EDITLOAD_ITINERARYITEMCUSTOMITEM
@ID = @ID,
@NAME = @NAME output,
@STARTDATE = @STARTDATE output,
@ENDDATE = @ENDDATE output,
@STARTTIME = @STARTTIME output,
@ENDTIME = @ENDTIME output,
@NOTES = @NOTES output,
@LOCATIONID = @LOCATIONID output,
@RESOURCES = @RESOURCES output,
@IGNORECONFLICTS = @IGNORECONFLICTS output,
@STAFFRESOURCES = @STAFFRESOURCES output,
@ITINERARYCAPACITY = @ITINERARYCAPACITY output,
@LOCATIONPRICE = @LOCATIONPRICE output;
update dbo.ITINERARYITEM
set ITINERARYITEM.INVALIDREASONCODE = 0,
ITINERARYITEM.ITEMTYPECODE = @ITEMTYPECODE,
ITINERARYITEM.CHANGEDBYID = @CHANGEAGENTID,
ITINERARYITEM.DATECHANGED = getdate()
where ITINERARYITEM.ID = @ID
set @IGNORECONFLICTS = 1;
set @MARKLOCATIONBUSY = 0;
if coalesce(@LOCATIONPRICE,0.0) = 0.0 and @LOCATIONID is not null
begin
set @LOCATIONPRICE = (select PRICE
from dbo.FACILITY
where ID = @LOCATIONID)
set @LOCATIONPRICE = cast(coalesce(@LOCATIONPRICE, 0.0) as money);
end
exec dbo.USP_DATAFORMTEMPLATE_EDIT_ITINERARYITEMCUSTOMITEM_2
@ID,
@ITINERARYID,
@CHANGEAGENTID,
@NAME,
@STARTDATE,
@ENDDATE,
@STARTTIME,
@ENDTIME,
@NOTES,
@LOCATIONID,
@MARKLOCATIONBUSY,
@RESOURCES,
@IGNORECONFLICTS,
@STAFFRESOURCES,
@LOCATIONPRICE
end
else
begin
-- Get additional information needed for edit functions that fix sales orders
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
declare @PROGRAMID uniqueidentifier;
declare @EVENTID uniqueidentifier;
declare @BLOCKEVENT bit;
declare @STATUSCODE tinyint;
select @NAME = ITINERARYITEM.NAME,
@NOTES = ITINERARYITEM.NOTES,
@PROGRAMID = ITINERARYITEM.PROGRAMID,
@EVENTID = ITINERARYITEM.EVENTID,
@BLOCKEVENT = ITINERARYITEM.BLOCKEVENT,
@ITINERARYID = ITINERARYITEM.ITINERARYID,
@STARTDATE = ITINERARYITEM.STARTDATE,
@ENDDATE = ITINERARYITEM.ENDDATE,
@STARTTIME = ITINERARYITEM.STARTTIME,
@ENDTIME = ITINERARYITEM.ENDTIME,
@RESOURCES = dbo.UFN_ITINERARYITEMRESOURCE_GETRESOURCES_TOITEMLISTXML(@ID),
@STAFFRESOURCES = dbo.UFN_ITINERARYITEM_GETSTAFFRESOURCES_TOITEMLISTXML(@ID),
@STATUSCODE = SALESORDER.STATUSCODE
from dbo.ITINERARYITEM
inner join dbo.ITINERARY on ITINERARY.ID = ITINERARYITEM.ITINERARYID
inner join dbo.RESERVATION on RESERVATION.ID = ITINERARY.RESERVATIONID
inner join dbo.SALESORDER on SALESORDER.ID = RESERVATION.ID
where ITINERARYITEM.ID = @ID
if @STATUSCODE in (1, 5)
raiserror('BBERR_INVALIDSTATUS', 13, 1);
if (@ITEMTYPECODE = 1)
exec dbo.USP_ITINERARYITEMDAILYADMISSION_EDIT
@ID,
@CHANGEAGENTID,
@CURRENTDATE,
@ITINERARYID,
@PROGRAMID,
@STARTDATE,
@STARTTIME,
@ENDTIME,
@NOTES,
@RESOURCES,
1,
@STAFFRESOURCES;
else if (@ITEMTYPECODE = 0)
exec dbo.USP_ITINERARYITEMEVENT_EDIT
@ID,
@CHANGEAGENTID,
@ITINERARYID,
@PROGRAMID,
@EVENTID,
@STARTTIME,
@ENDTIME,
@STARTDATE,
@ENDDATE,
@BLOCKEVENT,
@NOTES,
@RESOURCES,
1,
@STAFFRESOURCES;
end
return 0;
end