USP_DATAFORMTEMPLATE_EDIT_ITINERARYRESOURCEEDIT

The save procedure used by the edit dataform template "Itinerary Resource 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.
@RESOURCES xml IN Resources
@IGNORECONFLICTS bit IN Ignore conflicts when saving
@STARTDATE datetime IN Start date
@ENDDATE datetime IN End date
@STARTTIME UDT_HOURMINUTE IN Start time
@ENDTIME UDT_HOURMINUTE IN End time

Definition

Copy


                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_ITINERARYRESOURCEEDIT (
                        @ID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier = null,
                        @RESOURCES xml,
                        @IGNORECONFLICTS bit,
                        @STARTDATE datetime,
                        @ENDDATE datetime,
                        @STARTTIME UDT_HOURMINUTE,
                        @ENDTIME UDT_HOURMINUTE
                    )
                    as

                        set nocount on;

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

                        declare @CURRENTDATE datetime
                        set @CURRENTDATE = getdate()

                            if @IGNORECONFLICTS = 0
                            begin
                                if dbo.UFN_CONFLICTCHECK_CONFLICTSEXIST
                                (
                                    dbo.UFN_DATE_ADDHOURMINUTE(dbo.UFN_DATE_GETEARLIESTTIME(@STARTDATE),@STARTTIME), 
                                    dbo.UFN_DATE_ADDHOURMINUTE(dbo.UFN_DATE_GETEARLIESTTIME(@ENDDATE),@ENDTIME),
                                    null
                                    @RESOURCES
                                    null
                                    null,
                                    @ID
                                    null,
                                    0,
                                    1, -- Ignore record id

                                    0,
                                    0
                                ) = 1
                                begin                    
                                    raiserror('BBERR_CONFLICTSEXIST', 13, 1);
                                    return 1;
                                end
                            end

                        begin try
                            -- handle updating the data

                            exec dbo.USP_RESOURCE_PROCESS @RESOURCES output, @CHANGEAGENTID, 0;
                            exec dbo.USP_ITINERARYRESOURCE_GETRESOURCES_UPDATEFROMXML @ID, @RESOURCES, @CHANGEAGENTID, @CURRENTDATE

                            declare @ORDERID uniqueidentifier
                            declare @ISFLATRATE bit = 0
                            declare @STATUSCODE tinyint;

                            select
                                @ORDERID = RESERVATION.ID,
                                @ISFLATRATE = case when PRICINGCODE = 1 then 1 else 0 end,
                                @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_RESOURCES_SALESORDERSYNC @ID, @ORDERID, @CHANGEAGENTID;

                            exec dbo.USP_ITINERARY_CHECKPERTICKETRESOURCES @ID;

                            if @ISFLATRATE = 1
                                exec dbo.USP_RESERVATION_DISTRIBUTEAPPLICATIONS @ORDERID, @CHANGEAGENTID, @CURRENTDATE;    

                            -- Generate taxes last

                            exec dbo.USP_SALESORDER_CALCULATETAXES @ORDERID, @CHANGEAGENTID;

                            if @ISFLATRATE = 1
                                exec dbo.USP_RESERVATIONRATESCALE_UPDATETAXES @ORDERID, @CHANGEAGENTID, @CURRENTDATE;    

                        end try
                        begin catch
                            exec dbo.USP_RAISE_ERROR
                            return 1
                        end catch

                    return 0;