USP_DATAFORMTEMPLATE_EDITLOAD_ITINERARYITEMSTAFFRESOURCEVOLUNTEERSCHEDULE

The load procedure used by the edit dataform template "Itinerary Item Staff Resource Volunteer Schedule 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.
@VOLUNTEERS xml INOUT
@VOLUNTEERTYPENAME nvarchar(100) INOUT Resource
@QUANTITYNEEDED int INOUT
@DISPLAYNAME nvarchar(257) INOUT For
@STARTDATE datetime INOUT
@STARTTIME UDT_HOURMINUTE INOUT
@ENDDATE datetime INOUT
@ENDTIME UDT_HOURMINUTE INOUT
@VISITORCOUNT smallint INOUT Number of visitors
@PATRON nvarchar(100) INOUT Patron
@LEADER nvarchar(100) INOUT Leader
@GROUPSALESGROUPTYPECODE nvarchar(100) INOUT Group type

Definition

Copy

                CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_ITINERARYITEMSTAFFRESOURCEVOLUNTEERSCHEDULE
                (
                    @ID uniqueidentifier,
                    @DATALOADED bit = 0 output,
                    @TSLONG bigint = 0 output,
                    @VOLUNTEERS xml = null output,
                    @VOLUNTEERTYPENAME nvarchar(100) = null output,
                    @QUANTITYNEEDED int = null output,
                    @DISPLAYNAME nvarchar(257) = null output,
                    @STARTDATE datetime = null output,
                    @STARTTIME UDT_HOURMINUTE = null output,
                    @ENDDATE datetime = null output,
                    @ENDTIME UDT_HOURMINUTE = null output,
                    @VISITORCOUNT smallint = null output,
                    @PATRON nvarchar(100) = null output,
                    @LEADER nvarchar(100) = null output,
                    @GROUPSALESGROUPTYPECODE nvarchar(100) = null output
                )
                as

                    set nocount on;

                    set @DATALOADED = 0
                    set @TSLONG = 0

                    declare @ITINERARYID uniqueidentifier

                    select
                        @DATALOADED = 1,
                        @TSLONG = ITINERARYITEMSTAFFRESOURCE.TSLONG,
                        @VOLUNTEERTYPENAME = VOLUNTEERTYPE.NAME,
                        @QUANTITYNEEDED = ITINERARYITEMSTAFFRESOURCE.QUANTITYNEEDED,
                        @DISPLAYNAME = ITINERARY.NAME + ' - ' + ITINERARYITEM.NAME,
                        @STARTDATE = ITINERARYITEM.STARTDATE,
                        @STARTTIME = ITINERARYITEM.STARTTIME,
                        @ENDDATE = ITINERARYITEM.ENDDATE,
                        @ENDTIME = ITINERARYITEM.ENDTIME,
                        @ITINERARYID = ITINERARY.ID,
                        @LEADER = CONSTITUENTNAMEFORMAT.NAME
                    from dbo.ITINERARYITEMSTAFFRESOURCE
                    inner join dbo.VOLUNTEERTYPE on 
                        ITINERARYITEMSTAFFRESOURCE.VOLUNTEERTYPEID = VOLUNTEERTYPE.ID
                    inner join dbo.ITINERARYITEM on 
                        ITINERARYITEMSTAFFRESOURCE.ITINERARYITEMID = ITINERARYITEM.ID
                    inner join dbo.ITINERARY on
                        ITINERARY.ID = ITINERARYITEM.ITINERARYID
                    outer apply
                        dbo.UFN_CONSTITUENT_DISPLAYNAME(ITINERARY.LEADERID) as CONSTITUENTNAMEFORMAT
                    where 
                        ITINERARYITEMSTAFFRESOURCE.ID = @ID and
                        FILLEDBYCODE = 0

                    if @DATALOADED = 1
                    begin

                        set @VISITORCOUNT = isnull((
                                        select sum(ITINERARYATTENDEE.QUANTITY)
                                        from dbo.ITINERARYATTENDEE
                                        where ITINERARYID = @ITINERARYID
                                    ),0);

                        select
                            @PATRON = CONSTITUENTNAMEFORMAT.NAME
                        from dbo.ITINERARY
                        inner join dbo.RESERVATION on
                            ITINERARY.RESERVATIONID = RESERVATION.ID
                        inner join dbo.SALESORDER on 
                            RESERVATION.ID = SALESORDER.ID
                        outer apply
                            dbo.UFN_CONSTITUENT_DISPLAYNAME(SALESORDER.CONSTITUENTID) as CONSTITUENTNAMEFORMAT
                        where
                            ITINERARY.ID = @ITINERARYID

                        select 
                            @GROUPSALESGROUPTYPECODE = GROUPSALESGROUPTYPECODE.DESCRIPTION
                        from dbo.GROUPSALESGROUPTYPECODE
                        inner join dbo.ITINERARY on
                            ITINERARY.GROUPSALESGROUPTYPECODEID = GROUPSALESGROUPTYPECODE.ID
                        where 
                            ITINERARY.ID = @ITINERARYID

                        set @VOLUNTEERS =
                        (
                            select 
                                VOLUNTEERASSIGNMENT.ID as ID,
                                VOLUNTEERASSIGNMENT.VOLUNTEERID as VOLUNTEERID,
                                CONSTITUENTNAMEFORMAT.NAME as NAME
                            from dbo.ITINERARYITEMSTAFFRESOURCE
                            inner join dbo.VOLUNTEERASSIGNMENT on 
                                ITINERARYITEMSTAFFRESOURCE.JOBOCCURRENCEID = VOLUNTEERASSIGNMENT.JOBOCCURRENCEID
                            outer apply
                                dbo.UFN_CONSTITUENT_DISPLAYNAME(VOLUNTEERASSIGNMENT.VOLUNTEERID) as CONSTITUENTNAMEFORMAT
                            where 
                                ITINERARYITEMSTAFFRESOURCE.ID = @ID
                            for xml raw('ITEM'),type,elements,root('VOLUNTEERS'),binary base64
                        )
                    end

                    return 0;