UFN_DAILYSALEITEM_BUILDPROGRAMBUTTONTEXT

Returns the text for a daily sale program button.

Return

Return Type
nvarchar(65)

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@CURRENCYSYMBOL nchar IN

Definition

Copy


CREATE function dbo.UFN_DAILYSALEITEM_BUILDPROGRAMBUTTONTEXT
(
    @ID uniqueidentifier, 
    @CURRENCYSYMBOL nchar(1)
)

returns nvarchar(65)
with execute as caller
as begin
    declare @LINESEPARATOR nchar(1) = char(10)

    declare @DESCRIPTION1 nvarchar(20)
    declare @DESCRIPTION2 nvarchar(20)
    declare @DESCRIPTION3 nvarchar(20)

    select
        @DESCRIPTION1 =
            case
                when DESCRIPTIONFIELD1TYPECODE = 2 then
                    PROGRAM.NAME
                when DESCRIPTIONFIELD1TYPECODE = 3 then
                    PRICETYPECODE.DESCRIPTION
                when DESCRIPTIONFIELD1TYPECODE = 4 then
                    @CURRENCYSYMBOL + convert(nvarchar(19), PROGRAMPRICE.FACEPRICE)
                when DESCRIPTIONFIELD1TYPECODE = 13 then
                    @CURRENCYSYMBOL + convert(nvarchar(19), PROGRAMPRICE.FACEPRICE) + ' (' + convert(nvarchar(10),PROGRAM.CAPACITY) + ')'
                when DESCRIPTIONFIELD1TYPECODE in (14,16,17) then
                    DAILYSALEITEM.DESCRIPTIONFIELD1TYPE
                when DESCRIPTIONFIELD1TYPECODE = 15 then
                    convert(nvarchar(10), PROGRAM.CAPACITY)
                else
                    DAILYSALEITEM.DESCRIPTIONFIELD1
            end,
        @DESCRIPTION2 =
            case
                when DESCRIPTIONFIELD2TYPECODE = 2 then
                    PROGRAM.NAME
                when DESCRIPTIONFIELD2TYPECODE = 3 then
                    PRICETYPECODE.DESCRIPTION
                when DESCRIPTIONFIELD2TYPECODE = 4 then
                    @CURRENCYSYMBOL + convert(nvarchar(19), PROGRAMPRICE.FACEPRICE)
                when DESCRIPTIONFIELD2TYPECODE = 13 then
                    @CURRENCYSYMBOL + convert(nvarchar(19), PROGRAMPRICE.FACEPRICE) + ' (' + convert(nvarchar(10),PROGRAM.CAPACITY) + ')'
                when DESCRIPTIONFIELD2TYPECODE in (14,16,17) then
                    DAILYSALEITEM.DESCRIPTIONFIELD2TYPE
                when DESCRIPTIONFIELD2TYPECODE = 15 then
                    convert(nvarchar(10), PROGRAM.CAPACITY)
                else
                    DAILYSALEITEM.DESCRIPTIONFIELD2
            end,
        @DESCRIPTION3 =
            case
                when DESCRIPTIONFIELD3TYPECODE = 2 then
                    PROGRAM.NAME
                when DESCRIPTIONFIELD3TYPECODE = 3 then
                    PRICETYPECODE.DESCRIPTION
                when DESCRIPTIONFIELD3TYPECODE = 4 then
                    @CURRENCYSYMBOL + convert(nvarchar(19), PROGRAMPRICE.FACEPRICE)
                when DESCRIPTIONFIELD3TYPECODE = 13 then
                    @CURRENCYSYMBOL + convert(nvarchar(19), PROGRAMPRICE.FACEPRICE) + ' (' + convert(nvarchar(10),PROGRAM.CAPACITY) + ')'
                when DESCRIPTIONFIELD3TYPECODE in (14,16,17)
                    then DAILYSALEITEM.DESCRIPTIONFIELD3TYPE
                when DESCRIPTIONFIELD3TYPECODE = 15 then
                    convert(nvarchar(10), PROGRAM.CAPACITY)
                else
                    DAILYSALEITEM.DESCRIPTIONFIELD3
            end
    from
        dbo.DAILYSALEITEM
    inner join
        dbo.DAILYSALEITEMPROGRAM on DAILYSALEITEMPROGRAM.ID = DAILYSALEITEM.ID
    inner join
        dbo.PROGRAM on PROGRAM.ID = DAILYSALEITEMPROGRAM.PROGRAMID
    inner join
        dbo.PRICETYPECODE on PRICETYPECODE.ID = DAILYSALEITEMPROGRAM.PRICETYPECODEID
    inner join
        dbo.PROGRAMPRICE on PROGRAMPRICE.PROGRAMID = DAILYSALEITEMPROGRAM.PROGRAMID and PROGRAMPRICE.PRICETYPECODEID = DAILYSALEITEMPROGRAM.PRICETYPECODEID
    where
        DAILYSALEITEM.ID = @ID

    return coalesce(@DESCRIPTION1, '') + @LINESEPARATOR + coalesce(@DESCRIPTION2, '') + @LINESEPARATOR + coalesce(@DESCRIPTION3, '')
end