UFN_DAILYSALEITEM_BUILDCOMBINATIONBUTTONTEXT

Returns the text for a daily sales combination 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_BUILDCOMBINATIONBUTTONTEXT
        (
            @ID uniqueidentifier, 
            @CURRENCYSYMBOL nchar(1)
        )
        returns nvarchar(65)
        with execute as caller
        as begin
            declare @LINESEPARATOR nchar(1) = char(10)

            declare @DESCRIPTIONTYPECODE1 tinyint
            declare @DESCRIPTIONTYPECODE2 tinyint
            declare @DESCRIPTIONTYPECODE3 tinyint

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

            select
                @DESCRIPTIONTYPECODE1 = DESCRIPTIONFIELD1TYPECODE,
                @DESCRIPTIONTYPECODE2 = DESCRIPTIONFIELD2TYPECODE,
                @DESCRIPTIONTYPECODE3 = DESCRIPTIONFIELD3TYPECODE,
                @DESCRIPTION1 = DESCRIPTIONFIELD1,
                @DESCRIPTION2 = DESCRIPTIONFIELD2,
                @DESCRIPTION3 = DESCRIPTIONFIELD3
            from dbo.DAILYSALEITEM
            where ID = @ID

            select @DESCRIPTION1 = 
                case @DESCRIPTIONTYPECODE1
                    when 3 then PTC.DESCRIPTION
                    when 4 then @CURRENCYSYMBOL +
                            (
                                select convert(nvarchar(20), sum([PROGRAMGROUPPRICE].[FACEPRICE]))
                                from dbo.[PROGRAMGROUPPRICE]
                                inner join dbo.[PROGRAMGROUP]
                                    on [PROGRAMGROUPPRICE].[PROGRAMGROUPID] = [PROGRAMGROUP].[ID]
                                inner join dbo.[COMBINATIONPRICETYPE]
                                    on [C].[ID] = [COMBINATIONPRICETYPE].[COMBINATIONID]
                                where 
                                    [PROGRAMGROUP].[COMBINATIONID] = [C].[ID] and
                                    [PROGRAMGROUPPRICE].[COMBINATIONPRICETYPEID] = [COMBINATIONPRICETYPE].[ID] and
                                    [COMBINATIONPRICETYPE].[PRICETYPECODEID] = PTC.ID
                            )
                    when 19 then C.NAME
                    else @DESCRIPTION1
                end
            from dbo.DAILYSALEITEMCOMBINATION DSIC
            inner join dbo.COMBINATION C on DSIC.COMBINATIONID = C.ID
            inner join dbo.PRICETYPECODE PTC on DSIC.PRICETYPECODEID = PTC.ID
            where DSIC.ID = @ID;

            select @DESCRIPTION2 = 
                case @DESCRIPTIONTYPECODE2
                    when 3 then PTC.DESCRIPTION
                    when 4 then @CURRENCYSYMBOL +
                            (
                                select convert(nvarchar(20), sum([PROGRAMGROUPPRICE].[FACEPRICE]))
                                from dbo.[PROGRAMGROUPPRICE]
                                inner join dbo.[PROGRAMGROUP]
                                    on [PROGRAMGROUPPRICE].[PROGRAMGROUPID] = [PROGRAMGROUP].[ID]
                                inner join dbo.[COMBINATIONPRICETYPE]
                                    on [C].[ID] = [COMBINATIONPRICETYPE].[COMBINATIONID]
                                where 
                                    [PROGRAMGROUP].[COMBINATIONID] = [C].[ID] and
                                    [PROGRAMGROUPPRICE].[COMBINATIONPRICETYPEID] = [COMBINATIONPRICETYPE].[ID] and
                                    [COMBINATIONPRICETYPE].[PRICETYPECODEID] = PTC.ID
                            )
                    when 19 then C.NAME
                    else @DESCRIPTION2
                end
            from dbo.DAILYSALEITEMCOMBINATION DSIC
            inner join dbo.COMBINATION C on DSIC.COMBINATIONID = C.ID
            inner join dbo.PRICETYPECODE PTC on DSIC.PRICETYPECODEID = PTC.ID
            where DSIC.ID = @ID;

            select @DESCRIPTION3 = 
                case @DESCRIPTIONTYPECODE3
                    when 3 then PTC.DESCRIPTION
                    when 4 then @CURRENCYSYMBOL +
                            (
                                select convert(nvarchar(20), sum([PROGRAMGROUPPRICE].[FACEPRICE]))
                                from dbo.[PROGRAMGROUPPRICE]
                                inner join dbo.[PROGRAMGROUP]
                                    on [PROGRAMGROUPPRICE].[PROGRAMGROUPID] = [PROGRAMGROUP].[ID]
                                inner join dbo.[COMBINATIONPRICETYPE]
                                    on [C].[ID] = [COMBINATIONPRICETYPE].[COMBINATIONID]
                                where 
                                    [PROGRAMGROUP].[COMBINATIONID] = [C].[ID] and
                                    [PROGRAMGROUPPRICE].[COMBINATIONPRICETYPEID] = [COMBINATIONPRICETYPE].[ID] and
                                    [COMBINATIONPRICETYPE].[PRICETYPECODEID] = PTC.ID
                            )
                    when 19 then C.NAME
                    else @DESCRIPTION3
                end
            from dbo.DAILYSALEITEMCOMBINATION DSIC
            inner join dbo.COMBINATION C on DSIC.COMBINATIONID = C.ID
            inner join dbo.PRICETYPECODE PTC on DSIC.PRICETYPECODEID = PTC.ID
            where DSIC.ID = @ID;

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