USP_DATAFORMTEMPLATE_VIEW_ITINERARYITEMEVENTSCHEDULELOAD

The load procedure used by the view dataform template "Itinerary Item Event Schedule Load 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.
@NAME nvarchar(100) INOUT Name
@DESCRIPTION nvarchar(255) INOUT Description
@CAPACITY int INOUT Capacity
@ITINERARYID uniqueidentifier INOUT Itinerary ID
@PROGRAMID uniqueidentifier INOUT Program
@STARTDATE datetime INOUT Start date
@ENDDATE datetime INOUT End date
@STARTTIME UDT_HOURMINUTE INOUT Start time
@ENDTIME UDT_HOURMINUTE INOUT End time
@BLOCKEVENT bit INOUT Mark event unavailable to other groups
@NOTES nvarchar(500) INOUT Notes
@RESOURCES xml INOUT Resources
@STAFFRESOURCES xml INOUT Resources
@LOCATIONS xml INOUT LOCATIONS
@ONSALEINFO xml INOUT On-sale information
@USEPROGRAMPRICES bit INOUT Use program prices
@PRICES xml INOUT Prices

Definition

Copy


            CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_ITINERARYITEMEVENTSCHEDULELOAD
            (
                @ID uniqueidentifier,
                @DATALOADED bit = 0 output,
                @NAME nvarchar(100) = null output,
                @DESCRIPTION nvarchar(255) = null output,
                @CAPACITY int = null output,
                @ITINERARYID uniqueidentifier = null output,
                @PROGRAMID uniqueidentifier = null output,
                @STARTDATE datetime = null output,
                @ENDDATE datetime = null output,
                @STARTTIME dbo.UDT_HOURMINUTE = null output,
                @ENDTIME dbo.UDT_HOURMINUTE = null output,
                @BLOCKEVENT bit = null output,
                @NOTES nvarchar(500) = null output,
                @RESOURCES xml = null output,
                @STAFFRESOURCES xml = null output,
                @LOCATIONS xml = null output,
                @ONSALEINFO xml = null output,
                @USEPROGRAMPRICES bit = null output,
                @PRICES xml = null output
            )
            as
                set nocount on;

                set @DATALOADED = 0;

                declare @CURRENTDATE datetime 
                    set @CURRENTDATE = getdate()

                select
                    @DATALOADED = 1,
                    @PROGRAMID = PROGRAMID,
                    @ITINERARYID = ITINERARYID,
                    @STARTDATE = STARTDATE,
                    @ENDDATE = ENDDATE,
                    @STARTTIME = STARTTIME,
                    @ENDTIME = ENDTIME,
                    @BLOCKEVENT = BLOCKEVENT,
                    @NOTES = NOTES
                from dbo.ITINERARYITEM
                where ID = @ID

                if @DATALOADED = 1
                begin
                    select
                        @NAME = NAME,
                        @DESCRIPTION = DESCRIPTION,
                        @CAPACITY = CAPACITY,
                        @LOCATIONS = dbo.UFN_PROGRAM_GETSEQUENCEDLOCATIONS_TOITEMLISTXML(@PROGRAMID),
                        @RESOURCES = dbo.UFN_PROGRAMRESOURCE_GETRESOURCES_TOITEMLISTXML(@PROGRAMID),
                        @STAFFRESOURCES = dbo.UFN_PROGRAMSTAFFRESOURCE_GETRESOURCESWITHJOBS_TOITEMLISTXML(@PROGRAMID),
                        @PRICES = dbo.UFN_PROGRAM_GETPRICES_TOITEMLISTXML(@PROGRAMID)
                    from dbo.PROGRAM
                    where ID = @PROGRAMID

                    -- Need to update the EVENTLOCATIONID node to be LOCATIONID so it match the spec's collection field

                    set @LOCATIONS = (
                        select
                            T.c.value('(CAPACITY)[1]','int') as 'CAPACITY',
                            T.c.value('(EVENTLOCATIONID)[1]','uniqueidentifier') as 'LOCATIONID',
                            T.c.value('(ID)[1]','uniqueidentifier') as 'ID',
                            T.c.value('(SEQUENCE)[1]','int') as 'SEQUENCE'
                        from
                            @LOCATIONS.nodes('/LOCATIONS/ITEM') T(c)
                        for xml raw('ITEM'),type,elements,root('LOCATIONS'),binary base64
                    );

                    set @ONSALEINFO =
                    (
                        select 
                            SALESMETHODID,
                            case ONSALETYPECODE
                                when 0 then @CURRENTDATE
                                when 1 then ONSALEDATE
                                when 2 then dateadd(day, -1 * ONSALETIMEBEFORE, @STARTDATE)
                                when 3 then dateadd(week, -1 * ONSALETIMEBEFORE, @STARTDATE)
                                when 4 then dateadd(month, -1 * ONSALETIMEBEFORE, @STARTDATE)
                            end as ONSALEDATE,
                            case ONSALETYPECODE
                                when 0 then dbo.UFN_HOURMINUTE_GETFROMDATE(@CURRENTDATE)
                                else ONSALETIME
                            end as ONSALETIME
                        from dbo.PROGRAMSALESMETHOD
                        where PROGRAMID = @PROGRAMID
                        for xml raw('ITEM'),type,elements,root('ONSALEINFO'),binary base64
                    );    

                    if @PRICES is null
                        set @USEPROGRAMPRICES = 0
                    else
                        set @USEPROGRAMPRICES = 1

                end

                return 0;