USP_JOBOCCURRENCE_VOLUNTEER_MATCHDETAILS

Returns match details for a potential volunteer job occurrence

Parameters

Parameter Parameter Type Mode Description
@JOBOCCURRENCEID uniqueidentifier IN
@VOLUNTEERID uniqueidentifier IN
@STARTDATE date IN
@ENDDATE date IN
@DATALOADED bit INOUT
@JOBID uniqueidentifier INOUT
@VOLUNTEERTYPE nvarchar(50) INOUT
@AVAILABILITY nvarchar(max) INOUT
@LOCATION nvarchar(100) INOUT

Definition

Copy


CREATE procedure dbo.USP_JOBOCCURRENCE_VOLUNTEER_MATCHDETAILS
(
    @JOBOCCURRENCEID uniqueidentifier,
    @VOLUNTEERID uniqueidentifier,
    @STARTDATE date,
    @ENDDATE date,
    @DATALOADED bit = 0 output,
    @JOBID uniqueidentifier = null output,
    @VOLUNTEERTYPE nvarchar(50) = null output,
    @AVAILABILITY nvarchar(max) = null output,
    @LOCATION nvarchar(100) = null output
)
as
    set nocount on;

    set @DATALOADED = 0;

    declare @DAYLIST nvarchar(max) = '';
    select 
        @DAYLIST = stuff((select convert(varchar, DATEADD(d,NUM,@STARTDATE), 112
            from 
                dbo.NUMBERS 
            where 
                DATEADD(d,NUM,@STARTDATE) <= @ENDDATE
            for xml path(''), type).value('.', 'nvarchar(max)'), 1, 0, '')

    declare @DETAILS table
    (
        JOBID uniqueidentifier,
        TIMES nvarchar(30),
        JOBNAME nvarchar(100),
        VOLUNTEERNAME nvarchar(255),
        VOLTYPE nvarchar(50),
        LOCATION nvarchar(100),
        STARTTIME dbo.UDT_HOURMINUTE,
        ENDTIME  dbo.UDT_HOURMINUTE
    )
    insert into @DETAILS
    exec dbo.USP_DATALIST_JOBOCCURRENCEMATCHEDETAIL @JOBOCCURRENCEID, @VOLUNTEERID, @DAYLIST

    select 
        @DATALOADED = 1,
        @JOBID = JOBID,
        @VOLUNTEERTYPE = VOLTYPE,
        @LOCATION = LOCATION
    from @DETAILS

    select @AVAILABILITY = stuff((
            select CHAR(10) + (CONVERT(VARCHAR(30), AVAILABLEDATE, 110) + ' ' + dbo.UFN_JOB_DISPLAYTIME(STARTTIME,ENDTIME))   
            from dbo.UFN_VOLUNTEER_AVAILABLESPECIFICDAYS(@DAYLIST, @VOLUNTEERID, 1)
            for xml path(''), type).value('.', 'nvarchar(max)'), 1, 1, '')

    return 0;