USP_ITINERARY_DELETE
Executes the "Itinerary Delete" 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_ITINERARY_DELETE
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier
)
as begin
declare @UPDATEQUANTITIES bit = 0;
declare @RESERVATIONID uniqueidentifier;
declare @STATUSCODE tinyint;
declare @ISFLATRATE tinyint;
select @RESERVATIONID = RESERVATION.ID,
@STATUSCODE = SALESORDER.STATUSCODE,
@ISFLATRATE = RESERVATION.PRICINGCODE
from dbo.ITINERARY
inner join dbo.RESERVATION on RESERVATION.ID = ITINERARY.RESERVATIONID
inner join dbo.SALESORDER on SALESORDER.ID = RESERVATION.ID
where ITINERARY.ID = @ID
if @STATUSCODE in (1, 5)
raiserror('BBERR_INVALIDSTATUS', 13, 1);
if exists(select 1 from dbo.ITINERARYITEM where ITINERARYID = @ID)
begin
set @UPDATEQUANTITIES = 1
end
declare @e int;
declare @contextCache varbinary(128);
set @contextCache = CONTEXT_INFO();
-- Delete the attendees to trigger sync logic
delete from dbo.ITINERARYATTENDEE where ITINERARYATTENDEE.ITINERARYID = @ID
if not @contextCache is null
set CONTEXT_INFO @contextCache
select @e=@@error;
if @e<>0 return -456; --always return non-zero sp result if an error occurs
exec USP_ITINERARY_REMOVEFACILITIES @ID;
exec USP_ITINERARY_DELETEBYID_WITHCHANGEAGENTID @ID, @CHANGEAGENTID;
if @UPDATEQUANTITIES = 1
begin
begin try
exec dbo.USP_RESERVATION_UPDATEITEMQUANTITIES @RESERVATIONID, @CHANGEAGENTID;
exec dbo.USP_SALESORDER_CALCULATEFEES @RESERVATIONID, @CHANGEAGENTID;
exec dbo.USP_RESERVATION_CALCULATEFLATRATEFEES @RESERVATIONID, @CHANGEAGENTID;
if @ISFLATRATE = 0
begin
exec dbo.USP_SALESORDER_APPLYITEMDISCOUNTS @RESERVATIONID, @CHANGEAGENTID;
exec dbo.USP_SALESORDER_APPLYORDERDISCOUNTS @RESERVATIONID, @CHANGEAGENTID;
end
exec dbo.USP_SALESORDER_CALCULATETAXES @RESERVATIONID, @CHANGEAGENTID;
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
end
exec dbo.USP_RESERVATION_UPDATEFLATRATE @RESERVATIONID, @CHANGEAGENTID;
return 0;
end