UFN_TRANSLATIONFUNCTION_SALESORDERITEM_WITHTOTAL

Return

Return Type
nvarchar(100)

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN

Definition

Copy


                create function dbo.UFN_TRANSLATIONFUNCTION_SALESORDERITEM_WITHTOTAL(
                    @ID uniqueidentifier
                ) returns nvarchar(100
                as
                begin
                    declare @DESCRIPTION nvarchar(100);
                    declare @ITEMTYPECODE tinyint;
                    declare @LOCALEID int;

                    select @ITEMTYPECODE = [TYPECODE] from dbo.[SALESORDERITEM] where [ID] = @ID;
                    select top 1 @LOCALEID = [LOCALE].[LOCALEID]
                    from dbo.[LOCALE]
                    inner join dbo.[CURRENCY]
                        on [LOCALE].[ID] = [CURRENCY].[LOCALEID]
                    where [ISORGANIZATIONCURRENCY] = 1;

                    if @ITEMTYPECODE = 0
                        select @DESCRIPTION = case
                            when [SALESORDERITEMTICKETCOMBINATION].[ID] is not null then
                                [PRICETYPECODE].[DESCRIPTION] + ' - ' + [COMBINATION].[NAME] + ': ' + coalesce([EVENT].[NAME],[PROGRAM].[NAME]) + coalesce(' (' + convert(nvarchar(10), [EVENT].[STARTDATE], 101) + ' - ' + dbo.UFN_HOURMINUTE_DISPLAYTIME([EVENT].[STARTTIME]) + ')','') +
                                    --Item total out of combination total

                                    ' (' + dbo.UFN_FORMAT_CURRENCY([SALESORDERITEM].[TOTAL],@LOCALEID) + '/' + dbo.UFN_FORMAT_CURRENCY([TICKETCOMBINATIONGROUP].[TOTAL],@LOCALEID) + ')'
                            else [SALESORDERITEM].[DESCRIPTION] + coalesce(' (' + convert(nvarchar(10), [EVENT].[STARTDATE], 101) + ' - ' + dbo.UFN_HOURMINUTE_DISPLAYTIME([EVENT].[STARTTIME]) + ')','') + ' (' + dbo.UFN_FORMAT_CURRENCY([SALESORDERITEM].[TOTAL],@LOCALEID) + ')'
                        end
                        from dbo.[SALESORDERITEM]
                        inner join dbo.[SALESORDER]
                            on [SALESORDERITEM].[SALESORDERID] = [SALESORDER].[ID]
                        inner join dbo.[SALESORDERITEMTICKET]
                            on [SALESORDERITEM].[ID] = [SALESORDERITEMTICKET].[ID]
                        left join dbo.[EVENT]
                            on [SALESORDERITEMTICKET].[EVENTID] = [EVENT].[ID]
                        left join dbo.[PROGRAM]
                            on [SALESORDERITEMTICKET].[PROGRAMID] = [PROGRAM].[ID]
                        inner join dbo.[PRICETYPECODE]
                            on [SALESORDERITEMTICKET].[PRICETYPECODEID] = [PRICETYPECODE].[ID]
                        left join dbo.[SALESORDERITEMTICKETCOMBINATION]
                            on [SALESORDERITEMTICKET].[ID] = [SALESORDERITEMTICKETCOMBINATION].[ID]
                        left join dbo.[COMBINATION]
                            on [SALESORDERITEMTICKETCOMBINATION].[COMBINATIONID] = [COMBINATION].[ID]
                        outer apply (
                            select sum([SOI].[TOTAL]) as [TOTAL]
                            from dbo.[SALESORDERITEM] as [SOI]
                            inner join dbo.[SALESORDERITEMTICKETCOMBINATION] as [SOITC]
                                on [SOI].[ID] = [SOITC].[ID]
                            where [SOITC].[TICKETCOMBINATIONID] = [SALESORDERITEMTICKETCOMBINATION].[TICKETCOMBINATIONID]
                        ) as [TICKETCOMBINATIONGROUP]
                        where [SALESORDERITEM].[ID] = @ID

                    else if @ITEMTYPECODE = 6
                        select @DESCRIPTION = 
                            dbo.UFN_CONSTITUENT_BUILDNAME([REGISTRANT].[CONSTITUENTID]) + ' - ' + 
                            [SALESORDERITEM].[DESCRIPTION] + ' (' +  dbo.UFN_FORMAT_CURRENCY([SALESORDERITEM].[TOTAL],@LOCALEID) + ')'
                        from dbo.[SALESORDERITEM]
                        inner join dbo.[SALESORDERITEMEVENTREGISTRATION]
                            on [SALESORDERITEM].[ID] = [SALESORDERITEMEVENTREGISTRATION].[ID]
                        inner join dbo.[REGISTRANT]
                            on [SALESORDERITEMEVENTREGISTRATION].[REGISTRANTID] = [REGISTRANT].[ID]
                        where [SALESORDERITEM].[ID] = @ID

                    else
                        select @DESCRIPTION = [SALESORDERITEM].[DESCRIPTION]+ ' (' + dbo.UFN_FORMAT_CURRENCY([SALESORDERITEM].[TOTAL],@LOCALEID) + ')'
                        from dbo.[SALESORDERITEM]
                        where [ID] = @ID

                    return @DESCRIPTION;
                end