USP_DATALIST_RESERVATIONRATESCALEPRICE

Lists all of the prices for a rate scale on a reservation.

Parameters

Parameter Parameter Type Mode Description
@CONTEXTID uniqueidentifier IN Input parameter indicating the context ID for the data list.

Definition

Copy


            CREATE procedure dbo.USP_DATALIST_RESERVATIONRATESCALEPRICE
            (
                @CONTEXTID uniqueidentifier
            )
            as
                set nocount on;

                declare @PERTICKET bit = 0;
                declare @MAXAMOUNT money = 0.0;

                select
                    @PERTICKET = USEPERTICKETAFTERMAX
                from dbo.RESERVATIONRATESCALE
                where ID = @CONTEXTID

                if @PERTICKET = 1
                    select top(1) @MAXAMOUNT = AMOUNT
                    from dbo.RESERVATIONRATESCALEPRICE
                    where RESERVATIONRATESCALEID = @CONTEXTID
                    order by GROUPMAXIMUM desc

                select
                    ID,
                    case
                        when GROUPMINIMUM = 0 and GROUPMAXIMUM = -1 then
                            'Any size'
                        when GROUPMINIMUM = 0 and GROUPMAXIMUM <> -1 then
                            'Up to ' + cast(GROUPMAXIMUM as nvarchar(6))
                        when GROUPMINIMUM <> 0 and GROUPMAXIMUM = -1 Then
                            cast(GROUPMINIMUM as nvarchar(6)) + ' or more'
                        when GROUPMINIMUM = GROUPMAXIMUM then
                            cast(GROUPMINIMUM as nvarchar(6))
                        else
                            cast(GROUPMINIMUM as nvarchar(6)) + ' - ' + cast(GROUPMAXIMUM as nvarchar(6))
                        end as SIZE,
                    case
                        when @PERTICKET = 1 and GROUPMAXIMUM = -1 then null
                        else AMOUNT
                    end as AMOUNT,
                    INUSE,
                    case
                        when @PERTICKET = 1 and GROUPMAXIMUM = -1 then cast(@MAXAMOUNT as nvarchar(9)) + ' plus per ticket after ' + cast((GROUPMINIMUM - 1) as nvarchar(3))
                        else cast(AMOUNT as nvarchar(35))
                    end as FORMATTEDAMOUNT
                from dbo.RESERVATIONRATESCALEPRICE
                where RESERVATIONRATESCALEID = @CONTEXTID
                order by GROUPMINIMUM