UFN_RESERVATION_GETFACILITIESSTRING

Returns a string used for contracts containing facility information.

Return

Return Type
nvarchar(max)

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN

Definition

Copy


            create function dbo.UFN_RESERVATION_GETFACILITIESSTRING(@ID uniqueidentifier)
            returns nvarchar(max)
            as begin
                declare @FACILITIES nvarchar(max);
                declare @EVENTLOCATIONNAME nvarchar(100);
                declare @STARTTIME dbo.UDT_HOURMINUTE;
                declare @ENDTIME dbo.UDT_HOURMINUTE;
                declare @PRICE money;
                declare @CRLF char(2);
                declare @TAB char(1);

                set @FACILITIES = '';
                set @CRLF = char(13) + char(10);
                set @TAB = char(9);

                declare FACILITIES_CURSOR cursor local fast_forward for
                    select
                        SALESORDERITEMFACILITY.EVENTLOCATIONNAME,
                        ITINERARYITEM.STARTTIME,
                        ITINERARYITEM.ENDTIME,
                        SALESORDERITEM.TOTAL
                    from
                        dbo.SALESORDERITEMFACILITY
                    inner join
                        dbo.SALESORDERITEM on SALESORDERITEM.ID = SALESORDERITEMFACILITY.ID
                    inner join
                        dbo.ITINERARYITEMLOCATION on ITINERARYITEMLOCATION.SALESORDERITEMID = SALESORDERITEM.ID
                    inner join
                        dbo.ITINERARYITEM on ITINERARYITEM.ID = ITINERARYITEMLOCATION.ID
                    where
                        SALESORDERITEM.SALESORDERID = @ID
                    order by
                        ITINERARYITEM.STARTDATE,
                        ITINERARYITEM.STARTTIME,
                        SALESORDERITEMFACILITY.EVENTLOCATIONNAME;

                open FACILITIES_CURSOR;

                fetch next from FACILITIES_CURSOR
                into @EVENTLOCATIONNAME, @STARTTIME, @ENDTIME, @PRICE;

                while @@FETCH_STATUS = 0
                begin
                    if len(@FACILITIES) > 0
                        set @FACILITIES = @FACILITIES + @CRLF;

                    set @FACILITIES = @FACILITIES + @EVENTLOCATIONNAME + @TAB
                                        + dbo.UFN_HOURMINUTE_DISPLAYTIME(@STARTTIME) + ' - ' + dbo.UFN_HOURMINUTE_DISPLAYTIME(@ENDTIME)
                                        + @TAB + '@ ' + cast(@PRICE as nvarchar(50));

                    fetch next from FACILITIES_CURSOR
                    into @EVENTLOCATIONNAME, @STARTTIME, @ENDTIME, @PRICE;
                end

                close FACILITIES_CURSOR;
                deallocate FACILITIES_CURSOR;

                return @FACILITIES;
            end