UFN_ITINERARYITEM_ISLOCATIONBLOCKED

Determines whether a custom item is currently blocking a location for an attempted itinerary item insertion.

Return

Return Type
bit

Parameters

Parameter Parameter Type Mode Description
@EVENTLOCATIONID uniqueidentifier IN
@STARTDATE datetime IN
@ENDDATE datetime IN
@STARTTIME UDT_HOURMINUTE IN
@ENDTIME UDT_HOURMINUTE IN

Definition

Copy


CREATE function dbo.UFN_ITINERARYITEM_ISLOCATIONBLOCKED
(
    @EVENTLOCATIONID uniqueidentifier = null,
    @STARTDATE datetime,
    @ENDDATE datetime,
    @STARTTIME dbo.UDT_HOURMINUTE,
    @ENDTIME dbo.UDT_HOURMINUTE
)
returns bit
with execute as caller
as begin
    declare @BLOCKED bit;
    set @BLOCKED = 0;

    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  -- MDC - Ignore cancelled.

                ITEMTYPECODE = 2 and
                BLOCKEVENT = 1 and
                IT1.EVENTLOCATIONID = @EVENTLOCATIONID 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 @BLOCKED = 1
        end
    return @BLOCKED
end