USP_DATAFORMTEMPLATE_EDIT_ITINERARYITEMCUSTOMRESOLVE_2
The save procedure used by the edit dataform template "Itinerary Item Conflict Resolve 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. |
@ITINERARYID | uniqueidentifier | IN | Itinerary ID |
@STARTDATE | datetime | IN | Date |
@ENDDATE | datetime | IN | Date |
@STARTTIME | UDT_HOURMINUTE | IN | Start time |
@ENDTIME | UDT_HOURMINUTE | IN | End time |
@LOCATIONID | uniqueidentifier | IN | Location |
@RESOURCES | xml | IN | Supplies/Equipment resources |
@STAFFRESOURCES | xml | IN | Staff resources |
@IGNORECONFLICTS | bit | IN | Ignore conflicts when saving |
@COMPUTEDITEMTYPECODE | tinyint | IN | Item type |
@LOCATIONPRICE | money | IN | Price |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_ITINERARYITEMCUSTOMRESOLVE_2
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@ITINERARYID uniqueidentifier,
@STARTDATE datetime,
@ENDDATE datetime,
@STARTTIME UDT_HOURMINUTE,
@ENDTIME UDT_HOURMINUTE,
@LOCATIONID uniqueidentifier,
@RESOURCES xml,
@STAFFRESOURCES xml,
@IGNORECONFLICTS bit,
@COMPUTEDITEMTYPECODE tinyint,
@LOCATIONPRICE money
)
as
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
begin try
if (@IGNORECONFLICTS = 0)
begin
declare @LOCATIONS xml = null;
if (@LOCATIONID is not null)
set @LOCATIONS = '<LOCATIONS><ITEM><EVENTLOCATIONID>' + convert(nvarchar(36), @LOCATIONID) + '</EVENTLOCATIONID></ITEM></LOCATIONS>'
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),
@LOCATIONS,
@RESOURCES,
@STAFFRESOURCES,
null,
@ITINERARYID,
@ID,
0, -- Do not ignore super record
0, -- Do not ignore record
1, -- Ignore sub record
0 -- Do not ignore all sub records
) = 1
begin
raiserror('BBERR_CONFLICTSEXIST', 13, 1);
return 1;
end
end
-- Get additional information needed for edit functions that fix sales orders
declare @NAME nvarchar(100);
declare @NOTES nvarchar(500);
declare @PROGRAMID uniqueidentifier;
declare @EVENTID uniqueidentifier;
declare @BLOCKEVENT bit;
declare @MARKLOCATIONBUSY bit;
declare @STATUSCODE tinyint;
select @NAME = ITINERARYITEM.NAME,
@NOTES = ITINERARYITEM.NOTES,
@PROGRAMID = ITINERARYITEM.PROGRAMID,
@EVENTID = ITINERARYITEM.EVENTID,
@BLOCKEVENT = ITINERARYITEM.BLOCKEVENT,
@MARKLOCATIONBUSY = ITINERARYITEM.BLOCKEVENT,
@STATUSCODE = SALESORDER.STATUSCODE
from dbo.ITINERARYITEM
inner join dbo.ITINERARY
on ITINERARY.ID = ITINERARYITEM.ITINERARYID
inner join dbo.RESERVATION
on RESERVATION.ID = ITINERARY.RESERVATIONID
inner join dbo.SALESORDER
on SALESORDER.ID = RESERVATION.ID
where ITINERARYITEM.ID = @ID
if @STATUSCODE in (1, 5)
raiserror('BBERR_INVALIDSTATUS', 13, 1);
if (@COMPUTEDITEMTYPECODE = 2)
begin
update dbo.ITINERARYITEM
set ITEMTYPECODE = 2,
INVALIDREASONCODE = 0,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ITINERARYITEM.ID = @ID;
exec dbo.USP_ITINERARYITEMCUSTOMITEM_EDIT
@ID,
@ITINERARYID,
@CHANGEAGENTID,
@CURRENTDATE,
@NAME,
@STARTDATE,
@ENDDATE,
@STARTTIME,
@ENDTIME,
@NOTES,
@LOCATIONID,
@MARKLOCATIONBUSY,
@RESOURCES,
@IGNORECONFLICTS,
@STAFFRESOURCES,
@LOCATIONPRICE;
end
if (@COMPUTEDITEMTYPECODE = 1)
exec dbo.USP_ITINERARYITEMDAILYADMISSION_EDIT
@ID,
@CHANGEAGENTID,
@CURRENTDATE,
@ITINERARYID,
@PROGRAMID,
@STARTDATE,
@STARTTIME,
@ENDTIME,
@NOTES,
@RESOURCES,
@IGNORECONFLICTS,
@STAFFRESOURCES;
else if (@COMPUTEDITEMTYPECODE = 0)
exec dbo.USP_ITINERARYITEMEVENT_EDIT
@ID,
@CHANGEAGENTID,
@ITINERARYID,
@PROGRAMID,
@EVENTID,
@STARTTIME,
@ENDTIME,
@STARTDATE,
@ENDDATE,
@BLOCKEVENT,
@NOTES,
@RESOURCES,
@IGNORECONFLICTS,
@STAFFRESOURCES;
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0;