UFN_STAFFRESOURCE_CONSTITUENTISVALID

Checks to see if a constituent is valid for a staff resource given the resource needed times and filled by code.

Return

Return Type
bit

Parameters

Parameter Parameter Type Mode Description
@CONSTITUENTID uniqueidentifier IN
@FILLEDBYCODE tinyint IN
@START datetime IN
@END datetime IN

Definition

Copy


            CREATE function dbo.UFN_STAFFRESOURCE_CONSTITUENTISVALID
            (
                @CONSTITUENTID uniqueidentifier,
                @FILLEDBYCODE tinyint,
                @START datetime,
                @END datetime
            )
            returns bit
            as begin
                declare @RETVAL bit = 0;

                if (@FILLEDBYCODE = 0) /* Volunteer */
                begin
                    if (exists (select VOLUNTEER.ID
                                from dbo.VOLUNTEER
                                where (VOLUNTEER.ID = @CONSTITUENTID)))
                        set @RETVAL = 1;
                end
                else if (@FILLEDBYCODE = 1) /* Staff */
                begin
                    if (exists (select STAFFDATERANGE.ID
                                from dbo.STAFFDATERANGE
                                where (STAFFDATERANGE.CONSTITUENTID = @CONSTITUENTID) and
                                        ((STAFFDATERANGE.DATEFROM <= @END) or (STAFFDATERANGE.DATEFROM is null) or (@END is null)) and
                                        ((STAFFDATERANGE.DATETO >= @START) or (STAFFDATERANGE.DATETO is null) or (@START is null))))
                        set @RETVAL = 1;
                end    
                else if (@FILLEDBYCODE = 2) /* Board */
                begin
                    if (exists (select BOARDMEMBERDATERANGE.ID
                                from dbo.BOARDMEMBERDATERANGE
                                where (BOARDMEMBERDATERANGE.CONSTITUENTID = @CONSTITUENTID) and
                                        ((BOARDMEMBERDATERANGE.DATEFROM <= @END) or (BOARDMEMBERDATERANGE.DATEFROM is null) or (@END is null)) and
                                        ((BOARDMEMBERDATERANGE.DATETO >= @START) or (BOARDMEMBERDATERANGE.DATETO is null) or (@START is null))))
                        set @RETVAL = 1;
                end

                return @RETVAL;
            end