USP_DATAFORMTEMPLATE_EDITLOAD_ORDERTICKET

The load procedure used by the edit dataform template "Order Ticket Edit Data Form"

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter used to load the fields defined on the form.
@DATALOADED bit INOUT Output parameter indicating whether or not data was actually loaded.
@TSLONG bigint INOUT Output parameter indicating the TSLONG value of the record being edited. This is used to manage multi-user concurrency issues when multiple users access the same record.
@EVENTDATE datetime INOUT Date
@STARTTIME UDT_HOURMINUTE INOUT Start time
@ENDTIME UDT_HOURMINUTE INOUT End time
@EVENTNAME nvarchar(100) INOUT Event
@PROGRAMNAME nvarchar(100) INOUT Program
@ORDERID uniqueidentifier INOUT Order ID
@EVENTID uniqueidentifier INOUT Event ID
@PRICETYPES xml INOUT Prices
@ISDAILYADMISSION bit INOUT Daily admission
@PROGRAMID uniqueidentifier INOUT Program ID
@DATA xml INOUT Data
@OPTIONS xml INOUT Options
@CALLBACKURL nvarchar(255) INOUT Callback URL
@SYSTEMTYPENAME nvarchar(255) INOUT System Type Name
@ASSEMBLYNAME nvarchar(255) INOUT Assembly Name
@ATTRIBUTES xml INOUT Attributes
@CATEGORYNAME nvarchar(255) INOUT Category Name
@EXPIREDCALLBACKURL nvarchar(255) INOUT Expired callback URL
@ACKNOWLEDGEMENT nvarchar(max) INOUT Acknowledgement

Definition

Copy


            CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_ORDERTICKET(
                @ID uniqueidentifier,
                @DATALOADED bit = 0 output,
                @TSLONG bigint = 0 output,
                @EVENTDATE datetime = null output,
                @STARTTIME dbo.UDT_HOURMINUTE = null output,
                @ENDTIME dbo.UDT_HOURMINUTE = null output,
                @EVENTNAME nvarchar(100) = null output,
                @PROGRAMNAME nvarchar(100) = null output,
                @ORDERID uniqueidentifier = null output,
                @EVENTID uniqueidentifier = null output,
                @PRICETYPES xml = null output,
                @ISDAILYADMISSION bit = null output,
                @PROGRAMID uniqueidentifier = null output,
                @DATA xml = null output,
                @OPTIONS xml = null output,
                @CALLBACKURL nvarchar(255) = null output,
                @SYSTEMTYPENAME nvarchar(255) = null output,
                @ASSEMBLYNAME nvarchar(255) = null output,
                @ATTRIBUTES xml = null output,
                @CATEGORYNAME nvarchar(255) = null output,
                @EXPIREDCALLBACKURL nvarchar(255) = null output,
                @ACKNOWLEDGEMENT nvarchar(max) = null output
            )
            as
                set nocount on;

                -- Need to revise... only for advance sales


                select top 1
                    @DATALOADED = 1,
                    @EVENTID = EVENTID,
                    @PROGRAMID = PROGRAMID,
                    @ORDERID = SALESORDERID,
                    @DATA = DATA,
                    @OPTIONS = OPTIONS,
                    @CALLBACKURL = CALLBACKURL,
                    @SYSTEMTYPENAME = SYSTEMTYPENAME,
                    @ASSEMBLYNAME = ASSEMBLYNAME,
                    @ATTRIBUTES = ATTRIBUTES,
                    @CATEGORYNAME = CATEGORYNAME,
                    @EXPIREDCALLBACKURL = EXPIREDCALLBACKURL,
                    @ACKNOWLEDGEMENT  = ACKNOWLEDGEMENT 
                from dbo.SALESORDERITEM
                inner join dbo.SALESORDERITEMTICKET on SALESORDERITEM.ID = SALESORDERITEMTICKET.ID
                where SALESORDERITEM.ID = @ID

                declare @ADVANCESALESMETHODID uniqueidentifier
                select @ADVANCESALESMETHODID = ID
                from dbo.SALESMETHOD
                where TYPECODE = 1

                select @ISDAILYADMISSION = ISDAILYADMISSION,
                    @PROGRAMNAME = NAME
                from dbo.PROGRAM
                where ID = @PROGRAMID

                if @ISDAILYADMISSION = 1
                begin
                    with PRICETYPES_CTE as
                    (
                        select 
                            SALESORDERITEM.ID,
                            SALESORDERITEMTICKET.PRICETYPECODEID,
                            PROGRAMPRICE.SEQUENCE as SEQUENCE,
                            dbo.UFN_PRICETYPECODE_GETDESCRIPTION(SALESORDERITEMTICKET.PRICETYPECODEID) as PRICETYPE,
                            PROGRAMPRICE.FACEPRICE AS FACEPRICE,
                            0 as ZERO,
                            1 as ONE,
                            2 as TWO,
                            3 as THREE,
                            4 as FOUR,
                            5 as FIVE,
                            6 as SIX,
                            7 as SEVEN,
                            8 as EIGHT,
                            9 as NINE,                    
                            SALESORDERITEM.QUANTITY
                        from dbo.SALESORDERITEM 
                        inner join dbo.SALESORDERITEMTICKET on SALESORDERITEM.ID = SALESORDERITEMTICKET.ID
                        inner join dbo.PROGRAMPRICE on PROGRAMPRICE.PROGRAMID = SALESORDERITEMTICKET.PROGRAMID
                                                    and PROGRAMPRICE.PRICETYPECODEID = SALESORDERITEMTICKET.PRICETYPECODEID
            left join dbo.SALESORDERITEMTICKETCOMBINATION on SALESORDERITEMTICKET.ID = SALESORDERITEMTICKETCOMBINATION.ID
                        where SALESORDERITEM.SALESORDERID = @ORDERID
                            and SALESORDERITEMTICKET.PROGRAMID = @PROGRAMID
              and SALESORDERITEMTICKETCOMBINATION.ID is null

                        union all

                        select
                            newid() as ID,
                            PROGRAMPRICE.PRICETYPECODEID,
                            PROGRAMPRICE.SEQUENCE as SEQUENCE,
                            dbo.UFN_PRICETYPECODE_GETDESCRIPTION(PROGRAMPRICE.PRICETYPECODEID) as PRICETYPE,
                            PROGRAMPRICE.FACEPRICE as FACEPRICE,
                            0 as ZERO,
                            1 as ONE,
                            2 as TWO,
                            3 as THREE,
                            4 as FOUR,
                            5 as FIVE,
                            6 as SIX,
                            7 as SEVEN,
                            8 as EIGHT,
                            9 as NINE,
                            0 as QUANTITY
                        from dbo.PROGRAMPRICE
                        inner join dbo.PRICETYPECODE on PROGRAMPRICE.PRICETYPECODEID = PRICETYPECODE.ID
                        where
                            PRICETYPECODE.ACTIVE = 1 and
                            PROGRAMPRICE.PROGRAMID = @PROGRAMID and
                            not exists (select 1 
                                        from dbo.SALESMETHODEXCLUDEDPRICETYPE 
                                        inner join dbo.SALESMETHOD on SALESMETHOD.ID = SALESMETHODEXCLUDEDPRICETYPE.SALESMETHODID
                                        where SALESMETHOD.TYPECODE = 1 and
                                    SALESMETHODEXCLUDEDPRICETYPE.PRICETYPECODEID = PROGRAMPRICE.PRICETYPECODEID) and
                            not exists (select SALESORDERITEMTICKET.ID 
                                        from dbo.SALESORDERITEMTICKET
                                        inner join dbo.SALESORDERITEM on SALESORDERITEMTICKET.ID = SALESORDERITEM.ID
                    left join dbo.SALESORDERITEMTICKETCOMBINATION on SALESORDERITEMTICKET.ID = SALESORDERITEMTICKETCOMBINATION.ID
                                    where SALESORDERITEMTICKET.PROGRAMID = @PROGRAMID 
                                        and SALESORDERITEMTICKET.PRICETYPECODEID = PROGRAMPRICE.PRICETYPECODEID
                                        and SALESORDERITEM.SALESORDERID = @ORDERID
                    and SALESORDERITEMTICKETCOMBINATION.ID is null)
                    )

                    select @PRICETYPES = 
                    (select * from PRICETYPES_CTE                
                    order by SEQUENCE asc
                    for xml raw ('ITEM'), type, elements, root('PRICETYPES'), BINARY BASE64)

                end
                else
                begin
                    select 
                        @DATALOADED = 1
                        @EVENTDATE = EVENT.STARTDATE,
                        @STARTTIME = EVENT.STARTTIME,
                        @ENDTIME = EVENT.ENDTIME,
                        @EVENTNAME = EVENT.NAME, 
                        @PROGRAMNAME = PROGRAM.NAME
                    from dbo.EVENT
                    inner join dbo.PROGRAM on EVENT.PROGRAMID = PROGRAM.ID
                    where EVENT.ID = @EVENTID;

                    select @TSLONG = max(TSLONG)
                    from dbo.SALESORDERITEM
                    where SALESORDERID = @ORDERID;

                    if exists (select 1 from dbo.PROGRAMEVENTPRICE where EVENTID = @EVENTID)
                    begin
                        with PRICETYPES_CTE as
                        (
                        select 
                            SALESORDERITEM.ID,
                            SALESORDERITEMTICKET.PRICETYPECODEID,
                            dbo.UFN_PRICETYPE_GETSEQUENCE(@EVENTID, SALESORDERITEMTICKET.PRICETYPECODEID) as SEQUENCE,
                            dbo.UFN_PRICETYPECODE_GETDESCRIPTION(SALESORDERITEMTICKET.PRICETYPECODEID) as PRICETYPE,
                            PROGRAMEVENTPRICE.FACEPRICE AS FACEPRICE,
                            0 as ZERO,
                            1 as ONE,
                            2 as TWO,
                            3 as THREE,
                            4 as FOUR,
                            5 as FIVE,
                            6 as SIX,
                            7 as SEVEN,
                            8 as EIGHT,
                            9 as NINE,                    
                            SALESORDERITEM.QUANTITY
                        from dbo.SALESORDERITEM 
                        inner join dbo.SALESORDERITEMTICKET on SALESORDERITEM.ID = SALESORDERITEMTICKET.ID
                        inner join dbo.PROGRAMEVENTPRICE on PROGRAMEVENTPRICE.EVENTID = SALESORDERITEMTICKET.EVENTID
                                                    and PROGRAMEVENTPRICE.PRICETYPECODEID = SALESORDERITEMTICKET.PRICETYPECODEID
            left join dbo.SALESORDERITEMTICKETCOMBINATION on SALESORDERITEMTICKET.ID = SALESORDERITEMTICKETCOMBINATION.ID
                        where SALESORDERITEM.SALESORDERID = @ORDERID
                            and SALESORDERITEMTICKET.EVENTID = @EVENTID
              and SALESORDERITEMTICKETCOMBINATION.ID is null

                        union all

                        select
                            newid(),
                            PROGRAMEVENTPRICE.PRICETYPECODEID,
                            PROGRAMEVENTPRICE.SEQUENCE,
                            dbo.UFN_PRICETYPECODE_GETDESCRIPTION(PROGRAMEVENTPRICE.PRICETYPECODEID) as PRICETYPE,
                            PROGRAMEVENTPRICE.FACEPRICE,
                            0 as ZERO,
                            1 as ONE,
                            2 as TWO,
                            3 as THREE,
                            4 as FOUR,
                            5 as FIVE,
                            6 as SIX,
                            7 as SEVEN,
                            8 as EIGHT,
                            9 as NINE,                                        
                            0 as QUANTITY
                        from dbo.PROGRAMEVENTPRICE
                        inner join dbo.EVENT on EVENT.ID = PROGRAMEVENTPRICE.EVENTID and EVENT.ID = @EVENTID
                        inner join dbo.PRICETYPECODE on PROGRAMEVENTPRICE.PRICETYPECODEID = PRICETYPECODE.ID
                        where
                            PRICETYPECODE.ACTIVE = 1
                        and not exists (select 1 
                            from dbo.SALESMETHODEXCLUDEDPRICETYPE 
                            where SALESMETHODEXCLUDEDPRICETYPE.SALESMETHODID = @ADVANCESALESMETHODID and
                            SALESMETHODEXCLUDEDPRICETYPE.PRICETYPECODEID = PROGRAMEVENTPRICE.PRICETYPECODEID)
                        and not exists (select SALESORDERITEMTICKET.ID 
                                            from dbo.SALESORDERITEMTICKET
                                            inner join dbo.SALESORDERITEM on SALESORDERITEMTICKET.ID = SALESORDERITEM.ID
                      left join dbo.SALESORDERITEMTICKETCOMBINATION on SALESORDERITEMTICKET.ID = SALESORDERITEMTICKETCOMBINATION.ID
                                        where SALESORDERITEMTICKET.EVENTID = @EVENTID 
                                            and SALESORDERITEMTICKET.PRICETYPECODEID = PROGRAMEVENTPRICE.PRICETYPECODEID
                                            and SALESORDERITEM.SALESORDERID = @ORDERID
                      and SALESORDERITEMTICKETCOMBINATION.ID is null)
                        )

                        select @PRICETYPES = 
                        (select * from PRICETYPES_CTE                
                        order by SEQUENCE asc
                        for xml raw ('ITEM'), type, elements, root('PRICETYPES'), BINARY BASE64);
                    end
                    else
                    begin
                        with PRICETYPES_CTE as
                        (
                        select 
                            SALESORDERITEM.ID,
                            SALESORDERITEMTICKET.PRICETYPECODEID,
                            dbo.UFN_PRICETYPE_GETSEQUENCE(@EVENTID, SALESORDERITEMTICKET.PRICETYPECODEID) as SEQUENCE,
                            dbo.UFN_PRICETYPECODE_GETDESCRIPTION(SALESORDERITEMTICKET.PRICETYPECODEID) as PRICETYPE,
                            PROGRAMPRICE.FACEPRICE AS FACEPRICE,
                            0 as ZERO,
                            1 as ONE,
                            2 as TWO,
                            3 as THREE,
                            4 as FOUR,
                            5 as FIVE,
                            6 as SIX,
                            7 as SEVEN,
                            8 as EIGHT,
                            9 as NINE,                    
                            SALESORDERITEM.QUANTITY
                        from dbo.SALESORDERITEM 
                        inner join dbo.SALESORDERITEMTICKET on SALESORDERITEM.ID = SALESORDERITEMTICKET.ID
                        inner join dbo.EVENT on EVENT.ID = @EVENTID
                        inner join dbo.PROGRAMPRICE on EVENT.PROGRAMID = PROGRAMPRICE.PROGRAMID
                                    and PROGRAMPRICE.PRICETYPECODEID = SALESORDERITEMTICKET.PRICETYPECODEID
            left join dbo.SALESORDERITEMTICKETCOMBINATION on SALESORDERITEMTICKET.ID = SALESORDERITEMTICKETCOMBINATION.ID
                        where SALESORDERITEM.SALESORDERID = @ORDERID
                            and SALESORDERITEMTICKET.EVENTID = @EVENTID
              and SALESORDERITEMTICKETCOMBINATION.ID is null

                        union all

                        select
                            newid(),
                            PROGRAMPRICE.PRICETYPECODEID,
                            PROGRAMPRICE.SEQUENCE,
                            dbo.UFN_PRICETYPECODE_GETDESCRIPTION(PROGRAMPRICE.PRICETYPECODEid) as PRICETYPE,
                            PROGRAMPRICE.FACEPRICE,
                            0 as ZERO,
                            1 as ONE,
                            2 as TWO,
                            3 as THREE,
                            4 as FOUR,
                            5 as FIVE,
                            6 as SIX,
                            7 as SEVEN,
                            8 as EIGHT,
                            9 as NINE,                                        
                            0 as QUANTITY
                        from dbo.PROGRAMPRICE
                        inner join dbo.EVENT on EVENT.PROGRAMID = PROGRAMPRICE.PROGRAMID and EVENT.ID = @EVENTID
                        inner join dbo.PRICETYPECODE on PROGRAMPRICE.PRICETYPECODEID = PRICETYPECODE.ID
                        where
                            PRICETYPECODE.ACTIVE = 1
                        and not exists (select 1 
                            from dbo.SALESMETHODEXCLUDEDPRICETYPE 
                            where SALESMETHODEXCLUDEDPRICETYPE.SALESMETHODID = @ADVANCESALESMETHODID and
                            SALESMETHODEXCLUDEDPRICETYPE.PRICETYPECODEID = PROGRAMPRICE.PRICETYPECODEID)
                        and not exists (select SALESORDERITEMTICKET.ID 
                                            from dbo.SALESORDERITEMTICKET
                                            inner join dbo.SALESORDERITEM on SALESORDERITEMTICKET.ID = SALESORDERITEM.ID
                      left join dbo.SALESORDERITEMTICKETCOMBINATION on SALESORDERITEMTICKET.ID = SALESORDERITEMTICKETCOMBINATION.ID
                                        where SALESORDERITEMTICKET.EVENTID = @EVENTID 
                                            and SALESORDERITEMTICKET.PRICETYPECODEID = PROGRAMPRICE.PRICETYPECODEID
                                            and SALESORDERITEM.SALESORDERID = @ORDERID
                      and SALESORDERITEMTICKETCOMBINATION.ID is null)
                        )

                        select @PRICETYPES = 
                        (select * from PRICETYPES_CTE                
                        order by SEQUENCE asc
                        for xml raw ('ITEM'), type, elements, root('PRICETYPES'), BINARY BASE64)

                    end
                end
/*
                    with PRICETYPES_CTE as
                    (
                    select 
                        SALESORDERITEM.ID,
                        SALESORDERITEMTICKET.PRICETYPECODEID,
                        dbo.UFN_PRICETYPE_GETSEQUENCE(@EVENTID, SALESORDERITEMTICKET.PRICETYPECODEID) as SEQUENCE,
                        dbo.UFN_PRICETYPECODE_GETDESCRIPTION(SALESORDERITEMTICKET.PRICETYPECODEID) as PRICETYPE,
                        PROGRAMEVENTPRICE.FACEPRICE AS FACEPRICE,
                        0 as ZERO,
                        1 as ONE,
                        2 as TWO,
                        3 as THREE,
                        4 as FOUR,
                        5 as FIVE,
                        6 as SIX,
                        7 as SEVEN,
                        8 as EIGHT,
                        9 as NINE,                    
                        SALESORDERITEM.QUANTITY
                    from dbo.SALESORDERITEM 
                    inner join dbo.SALESORDERITEMTICKET on SALESORDERITEM.ID = SALESORDERITEMTICKET.ID
                    inner join dbo.PROGRAMEVENTPRICE on PROGRAMEVENTPRICE.EVENTID = SALESORDERITEMTICKET.EVENTID
                                                    and PROGRAMEVENTPRICE.PRICETYPECODEID = SALESORDERITEMTICKET.PRICETYPECODEID
                    where SALESORDERITEM.SALESORDERID = @ORDERID
                        and SALESORDERITEMTICKET.EVENTID = @EVENTID

                    union all

                    select
                        newid(),
                        PROGRAMEVENTPRICE.PRICETYPECODEID,
                        PROGRAMEVENTPRICE.SEQUENCE,
                        dbo.UFN_PRICETYPECODE_GETDESCRIPTION(PROGRAMEVENTPRICE.PRICETYPECODEID) as PRICETYPE,
                        PROGRAMEVENTPRICE.FACEPRICE,
                        0 as ZERO,
                        1 as ONE,
                        2 as TWO,
                        3 as THREE,
                        4 as FOUR,
                        5 as FIVE,
                        6 as SIX,
                        7 as SEVEN,
                        8 as EIGHT,
                        9 as NINE,                                        
                        0 as QUANTITY
                    from dbo.PROGRAMEVENTPRICE
                    inner join dbo.EVENT on EVENT.ID = PROGRAMEVENTPRICE.EVENTID and EVENT.ID = @EVENTID
                    inner join dbo.PRICETYPECODE on PROGRAMEVENTPRICE.PRICETYPECODEID = PRICETYPECODE.ID
                    where
                        PRICETYPECODE.ACTIVE = 1
                    and not exists (select 1 
                        from dbo.SALESMETHODEXCLUDEDPRICETYPE 
                        where SALESMETHODEXCLUDEDPRICETYPE.SALESMETHODID = @ADVANCESALESMETHODID and
                        SALESMETHODEXCLUDEDPRICETYPE.PRICETYPECODEID = PROGRAMEVENTPRICE.PRICETYPECODEID)
                    and not exists (select SALESORDERITEMTICKET.ID 
                                        from dbo.SALESORDERITEMTICKET
                                        inner join dbo.SALESORDERITEM on SALESORDERITEMTICKET.ID = SALESORDERITEM.ID
                                    where SALESORDERITEMTICKET.EVENTID = @EVENTID 
                                        and SALESORDERITEMTICKET.PRICETYPECODEID = PROGRAMEVENTPRICE.PRICETYPECODEID
                                        and SALESORDERITEM.SALESORDERID = @ORDERID)

                    union all

                    select
                        newid(),
                        PROGRAMPRICE.PRICETYPECODEID,
                        PROGRAMPRICE.SEQUENCE,
                        dbo.UFN_PRICETYPECODE_GETDESCRIPTION(PROGRAMPRICE.PRICETYPECODEid) as PRICETYPE,
                        PROGRAMPRICE.FACEPRICE,
                        0 as ZERO,
                        1 as ONE,
                        2 as TWO,
                        3 as THREE,
                        4 as FOUR,
                        5 as FIVE,
                        6 as SIX,
                        7 as SEVEN,
                        8 as EIGHT,
                        9 as NINE,                                        
                        0 as QUANTITY
                    from dbo.PROGRAMPRICE
                    inner join dbo.EVENT on EVENT.PROGRAMID = PROGRAMPRICE.PROGRAMID and EVENT.ID = @EVENTID
                    inner join dbo.PRICETYPECODE on PROGRAMPRICE.PRICETYPECODEID = PRICETYPECODE.ID
                    where
                        PRICETYPECODE.ACTIVE = 1
                    and not exists (select 1 
                        from dbo.SALESMETHODEXCLUDEDPRICETYPE 
                        where SALESMETHODEXCLUDEDPRICETYPE.SALESMETHODID = @ADVANCESALESMETHODID and
                        SALESMETHODEXCLUDEDPRICETYPE.PRICETYPECODEID = PROGRAMPRICE.PRICETYPECODEID)
                    and not exists (select SALESORDERITEMTICKET.ID 
                                        from dbo.SALESORDERITEMTICKET
                                        inner join dbo.SALESORDERITEM on SALESORDERITEMTICKET.ID = SALESORDERITEM.ID
                                    where SALESORDERITEMTICKET.EVENTID = @EVENTID 
                                        and SALESORDERITEMTICKET.PRICETYPECODEID = PROGRAMPRICE.PRICETYPECODEID
                                        and SALESORDERITEM.SALESORDERID = @ORDERID)
                    )

                    select @PRICETYPES = 
                    (select * from PRICETYPES_CTE                
                    order by SEQUENCE
                    for xml raw ('ITEM'), type, elements, root('PRICETYPES'), BINARY BASE64)
                end
*/
                /* OLD WAY
                if exists (select 1 from dbo.PROGRAMEVENTPRICE where EVENTID = @EVENTID)
                begin
                    set @PRICETYPES = 
                    (
                        select
                            newid(),
                            PROGRAMEVENTPRICE.PRICETYPECODEID,
                            PROGRAMEVENTPRICE.SEQUENCE,
                            dbo.UFN_PRICETYPECODE_GETDESCRIPTION(PROGRAMEVENTPRICE.PRICETYPECODEID) as PRICETYPE,
                            PROGRAMEVENTPRICE.FACEPRICE,
                            coalesce((select distinct QUANTITY 
                                from dbo.SALESORDERITEM
                                inner join dbo.SALESORDERITEMTICKET on SALESORDERITEM.ID = SALESORDERITEMTICKET.SALESORDERITEMID
                                where SALESORDERITEMTICKET.EVENTID = EVENT.ID
                                    and SALESORDERITEMTICKET.PRICETYPECODEID = PROGRAMEVENTPRICE.PRICETYPECODEID
                                    and SALESORDERITEM.SALESORDERID = @ORDERID), 0) as QUANTITY
                        from dbo.PROGRAMEVENTPRICE
                        inner join dbo.EVENT on EVENT.ID = PROGRAMEVENTPRICE.EVENTID and EVENT.ID = @EVENTID
                        where not exists (select 1 
                            from dbo.SALESMETHODEXCLUDEDPRICETYPE 
                            where SALESMETHODEXCLUDEDPRICETYPE.SALESMETHODID = @ADVANCESALESMETHODID and
                            SALESMETHODEXCLUDEDPRICETYPE.PRICETYPECODEID = PROGRAMEVENTPRICE.PRICETYPECODEID)
                        order by PROGRAMEVENTPRICE.SEQUENCE asc
                        for xml raw ('ITEM'), type, elements, root('PRICETYPES'), BINARY BASE64
                    )
                end
                else
                begin
                    set @PRICETYPES = 
                    (
                        select
                            newid(),
                            PROGRAMPRICE.PRICETYPECODEID,
                            PROGRAMPRICE.SEQUENCE,
                            dbo.UFN_PRICETYPECODE_GETDESCRIPTION(PROGRAMPRICE.PRICETYPECODEid) as PRICETYPE,
                            PROGRAMPRICE.FACEPRICE,
                            coalesce((select distinct QUANTITY 
                                from dbo.SALESORDERITEM
                                inner join dbo.SALESORDERITEMTICKET on SALESORDERITEM.ID = SALESORDERITEMTICKET.SALESORDERITEMID
                                where SALESORDERITEMTICKET.EVENTID = EVENT.ID
                                    and SALESORDERITEMTICKET.PRICETYPECODEID = PROGRAMPRICE.PRICETYPECODEID
                                    and SALESORDERITEM.SALESORDERID = @ORDERID), 0) as QUANTITY
                        from dbo.PROGRAMPRICE
                        inner join dbo.EVENT on EVENT.PROGRAMID = PROGRAMPRICE.PROGRAMID and EVENT.ID = @EVENTID
                        where not exists (select 1 
                            from dbo.SALESMETHODEXCLUDEDPRICETYPE 
                            where SALESMETHODEXCLUDEDPRICETYPE.SALESMETHODID = @ADVANCESALESMETHODID and
                            SALESMETHODEXCLUDEDPRICETYPE.PRICETYPECODEID = PROGRAMPRICE.PRICETYPECODEID)
                        order by PROGRAMPRICE.SEQUENCE asc
                        for xml raw ('ITEM'), type, elements, root('PRICETYPES'), BINARY BASE64
                    )
                end
                */

                return 0;