UFN_SALESDEPOSITTEMPLATE_SALESCHANNELS_TOITEMLISTXML

Return

Return Type
xml

Parameters

Parameter Parameter Type Mode Description
@SALESDEPOSITTEMPLATEID uniqueidentifier IN

Definition

Copy


CREATE function dbo.UFN_SALESDEPOSITTEMPLATE_SALESCHANNELS_TOITEMLISTXML
(
    @SALESDEPOSITTEMPLATEID uniqueidentifier = null
)
returns xml
as begin
    declare @XML xml

  declare @ISPROGRAMMING bit = 0;
    declare @SHOWONLINESALES bit = 0;
  if exists (select 1 from dbo.INSTALLEDPRODUCTLIST where ID = 'bb1c17bc-9e0b-4683-b490-ee40d511fa05')
    set @ISPROGRAMMING = 1;
    else if exists(select 1 from dbo.INSTALLEDPRODUCTLIST where ID = 'F238E8FE-06AE-4FDC-BEAF-FDF6637E1982')
        and exists(select 1 from dbo.INSTALLEDPRODUCTLIST where ID = 'BA7F0054-A013-43A9-B61E-F7B3E4A791C5')
        and exists(select 1 from dbo.INSTALLEDPRODUCTLIST where ID = 'DD4E6FC7-4A9F-4178-9500-6520A78BBD54')
        and exists(select 1 from dbo.INSTALLEDPRODUCTLIST where ID = '919143DE-C062-4413-9AE2-6DCE56413A09')
        and exists(select 1 from dbo.INSTALLEDPRODUCTLIST where ID = '0D85A247-CE4F-4853-9BE7-BE8CF77601ED')
        and exists(select 1 from dbo.INSTALLEDPRODUCTLIST where ID = 'FC0C7D3B-F6DF-4853-8BA5-5B1355AA67F9')
        and exists(select 1 from dbo.INSTALLEDPRODUCTLIST where ID = '9B715093-7A95-4080-89B6-E096FAF4798A')
        and exists(select 1 from dbo.INSTALLEDPRODUCTLIST where ID = '25A6B0A9-E26A-4047-9BC7-DE8B7020C155')
        and exists(select 1 from dbo.INSTALLEDPRODUCTLIST where ID = '3433B876-A882-4819-B1EA-DD6E78718B0F')
        set @SHOWONLINESALES = 1

    declare @SALESCHANNELS table (
        [SALESMETHODTYPECODE] tinyint,
        [SALESMETHOD] nvarchar(100)
    )

  if @ISPROGRAMMING = 1
      insert into @SALESCHANNELS (SALESMETHODTYPECODE, SALESMETHOD)
      values
      (0, 'Daily Sales'),
      (1, 'Advance Sales'),
      (2, 'Online Sales'),
      (3, 'Group Sales')
    else if @SHOWONLINESALES = 1
        insert into @SALESCHANNELS (SALESMETHODTYPECODE, SALESMETHOD)
      values
      (2, 'Online Sales')

  insert into @SALESCHANNELS (SALESMETHODTYPECODE, SALESMETHOD)
    values
  (4, 'Back Office Revenue'),
  (5, 'Treasury Miscellaneous Payments')

    set @XML = (
        select
            SC.ID
            ,case when @SALESDEPOSITTEMPLATEID is null then 1 else case when SC.ID is null then 0 else 1 end end as [INCLUDE]
            ,P.SALESMETHODTYPECODE
            ,P.SALESMETHOD
        from @SALESCHANNELS P
        left join dbo.SALESDEPOSITTEMPLATESALESCHANNEL SC 
            on @SALESDEPOSITTEMPLATEID is not null 
                and P.SALESMETHODTYPECODE = SC.SALESMETHODTYPECODE
                and SC.SALESDEPOSITTEMPLATEID = @SALESDEPOSITTEMPLATEID
        order by P.SALESMETHOD
        for xml raw('ITEM'), type, elements, root('SALESCHANNEL'), BINARY BASE64
    )

    return @XML

end