USP_DATAFORMTEMPLATE_EDIT_TRACKLOAD
The save procedure used by the edit dataform template "Track Load 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. |
@TRACKID | uniqueidentifier | IN | Track |
@IGNORECONFLICTS | bit | IN | Ignore itinerary resource conflicts when saving |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_TRACKLOAD (
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@TRACKID uniqueidentifier,
@IGNORECONFLICTS bit
)
as
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
begin try
declare @STATUSCODE tinyint;
declare @ORDERID uniqueidentifier;
select
@STATUSCODE = SALESORDER.STATUSCODE,
@ORDERID = SALESORDER.ID
from dbo.SALESORDER
inner join dbo.ITINERARY on ITINERARY.RESERVATIONID = SALESORDER.ID
where ITINERARY.ID = @ID
if @STATUSCODE in (1, 5)
raiserror('BBERR_INVALIDSTATUS', 13, 1);
exec dbo.USP_TRACK_APPLYTRACKTOITINERARY @ID, @TRACKID, @CHANGEAGENTID;
if (@TRACKID is null) or not exists (select 1 from dbo.TRACK where ID = @TRACKID)
begin
raiserror('BBERR_TRACKDOESNOTEXIST', 13, 1);
end
else
update dbo.ITINERARY set
TRACKID = @TRACKID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @ID
if @IGNORECONFLICTS = 0
begin
if exists(select 1 from dbo.ITINERARYITEM where ITINERARYID = @ID)
begin
declare @START datetime;
declare @END datetime;
select
@START = ITINERARY.STARTDATETIME,
@END = ITINERARY.ENDDATETIME
from dbo.ITINERARY
where ID = @ID
declare @RESOURCES xml;
set @RESOURCES = dbo.UFN_ITINERARYRESOURCE_GETRESOURCES_TOITEMLISTXML(@ID);
declare @STAFFRESOURCES xml;
set @STAFFRESOURCES = dbo.UFN_ITINERARY_GETSTAFFRESOURCES_TOITEMLISTXML(@ID);
if dbo.UFN_CONFLICTCHECK_CONFLICTSEXIST
(
@START, @END,
null, @RESOURCES, @STAFFRESOURCES,
null, @ID, null,
0, 1, 0, 1
) = 1
begin
raiserror('BBERR_CONFLICTSEXIST', 13, 1);
return 1;
end
end
end
-- if this uses a flat rate with per-ticket pricing, we need to update that price
exec dbo.USP_RESERVATION_UPDATEFLATRATEPERTICKETPRICE @ORDERID, null, @CHANGEAGENTID, @CURRENTDATE;
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0;