USP_DATAFORMTEMPLATE_ADD_ITINERARY
The save procedure used by the add dataform template "Itinerary Add Data Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | The output parameter indicating the ID of the record added. |
@CONTEXTID | uniqueidentifier | IN | Input parameter indicating the context ID for the record being added. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@LEADERID | uniqueidentifier | IN | Leader |
@NAME | nvarchar(154) | IN | Name |
@ATTENDEES | xml | IN | Visitors |
@EXCEEDCAPACITY | bit | IN | Exceed capacity available |
@GROUPSALESGROUPTYPECODEID | uniqueidentifier | IN | Group type |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_ITINERARY
(
@ID uniqueidentifier = null output,
@CONTEXTID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@LEADERID uniqueidentifier = null,
@NAME nvarchar(154) = '',
@ATTENDEES xml = null,
@EXCEEDCAPACITY bit = null,
@GROUPSALESGROUPTYPECODEID uniqueidentifier = null
)
as
set nocount on;
if @ID is null
set @ID = newid()
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
if @NAME = '' and @LEADERID is not null
select @NAME = NAME from dbo.CONSTITUENT where ID = @LEADERID
begin try
declare @ORDERID uniqueidentifier;
declare @STATUSCODE tinyint;
declare @ARRIVALDATE datetime;
select @ORDERID = RESERVATION.ID,
@STATUSCODE = SALESORDER.STATUSCODE,
@ARRIVALDATE = RESERVATION.ARRIVALDATE
from dbo.RESERVATION
inner join dbo.ITINERARY on ITINERARY.RESERVATIONID = RESERVATION.ID
inner join dbo.SALESORDER on RESERVATION.ID = SALESORDER.ID
where ITINERARY.ID = @ID;
if @STATUSCODE = 1 or @STATUSCODE = 5
raiserror('BBERR_INVALIDSTATUS', 13, 1);
-- Validate that the attendee count is not greater than the capacity available
if (@EXCEEDCAPACITY = 0)
begin
declare @MAXIMUMCAPACITY int;
select @MAXIMUMCAPACITY = MAXIMUMCAPACITY
from dbo.GROUPSALESDEFAULT
if (@MAXIMUMCAPACITY > 0)
begin
if ((select sum(QUANTITY) from dbo.UFN_ITINERARY_GETATTENDEES_FROMITEMLISTXML(@ATTENDEES)) > dbo.UFN_GROUPSALESCAPACITY_CAPACITYREMAINING(@ARRIVALDATE, null))
raiserror('ERR_EXCEEDSCAPACITY', 13, 1);
end
end
insert into dbo.ITINERARY
(ID, RESERVATIONID, LEADERID, NAME, GROUPSALESGROUPTYPECODEID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values
(@ID, @CONTEXTID, @LEADERID, @NAME, @GROUPSALESGROUPTYPECODEID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)
exec dbo.USP_ITINERARY_GETATTENDEES_ADDFROMXML @ID, @ATTENDEES, @CHANGEAGENTID;
if (not @GROUPSALESGROUPTYPECODEID is null)
begin
exec dbo.USP_ITINERARY_LOADREQUIREDRESOURCESBYGROUPTYPE @ID, @CHANGEAGENTID;
end
exec dbo.USP_RESERVATION_UPDATEFLATRATE @CONTEXTID, @CHANGEAGENTID, @CURRENTDATE;
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0