USP_ITINERARYCLEAR_DELETE

Executes the "Itinerary Clear" 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_ITINERARYCLEAR_DELETE
                (
                    @ID uniqueidentifier,
                    @CHANGEAGENTID uniqueidentifier
                )
                as begin

                    if @CHANGEAGENTID is null  
                        exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output

                    declare @RESERVATIONID uniqueidentifier
                    declare @ISFLATRATE tinyint;
                    declare @STATUSCODE tinyint;


                    select 
                        @RESERVATIONID = RESERVATION.ID,
                        @ISFLATRATE = PRICINGCODE,
                        @STATUSCODE = SALESORDER.STATUSCODE
                    from dbo.RESERVATION
                    inner join dbo.ITINERARY on ITINERARY.RESERVATIONID = RESERVATION.ID
                    inner join dbo.SALESORDER on SALESORDER.ID = RESERVATION.ID
                    where ITINERARY.ID = @ID;

                    if @STATUSCODE in (1, 5)
                        raiserror('BBERR_INVALIDSTATUS', 13, 1);

                    exec dbo.USP_ITINERARY_CLEAR @ID, @RESERVATIONID, @CHANGEAGENTID;

                    if @ISFLATRATE = 1
                        -- Will also update resources, taxes, fees

                        exec dbo.USP_RESERVATION_UPDATEFLATRATE @RESERVATIONID, @CHANGEAGENTID;
                    else
                    begin
                        -- update Sales order items for the resources (The duration of the itinerary changed, so per-hour items need to be updated).

                        exec dbo.USP_ITINERARY_RESOURCES_SALESORDERSYNC @ID, @RESERVATIONID, @CHANGEAGENTID
                        exec dbo.USP_ITINERARY_STAFFRESOURCES_SALESORDERSYNC @ID, @RESERVATIONID, @CHANGEAGENTID

                        exec dbo.USP_SALESORDER_CALCULATEFEES @RESERVATIONID, @CHANGEAGENTID;
                        exec dbo.USP_SALESORDER_APPLYITEMDISCOUNTS @RESERVATIONID, @CHANGEAGENTID;
                        exec dbo.USP_SALESORDER_APPLYORDERDISCOUNTS @RESERVATIONID, @CHANGEAGENTID;
                        exec dbo.USP_SALESORDER_CALCULATETAXES @RESERVATIONID, @CHANGEAGENTID;
                    end

                    return 0;
                end