UFN_ITINERARYITEM_VALIDLOCATION
Validates that an itinerary item's location(s) are not currently being blocked.
Return
Return Type |
---|
bit |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@PROGRAMID | uniqueidentifier | IN | |
@EVENTID | uniqueidentifier | IN | |
@STARTDATE | datetime | IN | |
@ENDDATE | datetime | IN | |
@STARTTIME | UDT_HOURMINUTE | IN | |
@ENDTIME | UDT_HOURMINUTE | IN |
Definition
Copy
CREATE function dbo.UFN_ITINERARYITEM_VALIDLOCATION
(
@PROGRAMID uniqueidentifier = null,
@EVENTID uniqueidentifier = null,
@STARTDATE datetime,
@ENDDATE datetime,
@STARTTIME udt_HOURMINUTE,
@ENDTIME udt_HOURMINUTE
)
returns bit
with execute as caller
as begin
declare @VALID bit;
set @VALID = 1;
declare @SDATE datetime;
set @SDATE = dbo.UFN_DATE_ADDHOURMINUTE(@STARTDATE, @STARTTIME)
declare @EDATE datetime;
set @EDATE = dbo.UFN_DATE_ADDHOURMINUTE(@ENDDATE, @ENDTIME)
if exists(select 1
from dbo.ITINERARYITEM IT1
inner join dbo.ITINERARY on ITINERARY.ID = IT1.ITINERARYID
inner join dbo.SALESORDER on SALESORDER.ID = ITINERARY.RESERVATIONID
where SALESORDER.STATUSCODE <> 5 and
ITEMTYPECODE = 2 and
BLOCKEVENT = 1 and
(
(
exists( select 1
from dbo.EVENT
inner join dbo.PROGRAMEVENTLOCATION on PROGRAMEVENTLOCATION.EVENTID = EVENT.ID
where PROGRAMEVENTLOCATION.EVENTLOCATIONID = IT1.EVENTLOCATIONID and
EVENT.ID = @EVENTID
)
or
exists( select 1
from dbo.PROGRAM
inner join dbo.PROGRAMLOCATION on PROGRAMLOCATION.PROGRAMID = PROGRAM.ID
where PROGRAMLOCATION.EVENTLOCATIONID = IT1.EVENTLOCATIONID and
PROGRAM.ID = @PROGRAMID
)
)
and
((@SDATE >= IT1.STARTDATETIME and @SDATE < IT1.ENDDATETIME) or
(@EDATE > IT1.STARTDATETIME and @EDATE <= IT1.ENDDATETIME) or
(@SDATE <= IT1.STARTDATETIME and @EDATE >= IT1.ENDDATETIME) or
(@EDATE > IT1.STARTDATETIME and @EDATE <= IT1.ENDDATETIME))
)
)
begin
set @VALID = 0
end
return @VALID
end