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;