USP_DATALIST_VOLUNTEERSCHEDULE_1_1

This datalist returns all assignments for a volunteer.

Parameters

Parameter Parameter Type Mode Description
@VOLUNTEERID uniqueidentifier IN Volunteer
@FROM datetime IN From
@TO datetime IN To
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.

Definition

Copy


            create procedure dbo.USP_DATALIST_VOLUNTEERSCHEDULE_1_1
            (
                @VOLUNTEERID uniqueidentifier = null
                @FROM datetime
                @TO datetime
                @CURRENTAPPUSERID uniqueidentifier = null
            )
            as
                set nocount on;

                declare @ISADMIN bit;
                declare @APPUSER_IN_NONRACROLE bit;
                declare @APPUSER_IN_NOSECGROUPROLE bit;
                declare @APPUSER_IN_NONSITEROLE bit;
                declare @APPUSER_IN_NOSITEROLE bit;

                set @ISADMIN = dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID);
                set @APPUSER_IN_NONRACROLE = dbo.UFN_SECURITY_APPUSER_IN_NONRACROLE(@CURRENTAPPUSERID);
                set @APPUSER_IN_NOSECGROUPROLE = dbo.UFN_SECURITY_APPUSER_IN_NO_SECURITY_GROUP_ROLE(@CURRENTAPPUSERID);
                set @APPUSER_IN_NONSITEROLE = dbo.UFN_SECURITY_APPUSER_IN_NONSITEROLE(@CURRENTAPPUSERID);
                set @APPUSER_IN_NOSITEROLE = dbo.UFN_SECURITY_APPUSER_IN_NO_SITE_ROLE(@CURRENTAPPUSERID);

                select    VOLUNTEERASSIGNMENT.DATE,
                        JOB.NAME,
                        JOBOCCURRENCE.STARTTIME,
                        JOBOCCURRENCE.ENDTIME,
                        ltrim(replace(dbo.UDA_BUILDLIST(distinct '|' + CONSTITUENT.NAME), '|', char(10))),
                        count(CONSTITUENT.ID),
                        JOBOCCURRENCE.ID,
                        JOBOCCURRENCE.VOLUNTEERSNEEDED
                from dbo.VOLUNTEERASSIGNMENT
                inner join dbo.JOBOCCURRENCE 
                    on dbo.VOLUNTEERASSIGNMENT.JOBOCCURRENCEID = dbo.JOBOCCURRENCE.ID
                inner join dbo.JOB
                    on dbo.JOBOCCURRENCE.JOBID = dbo.JOB.ID
                left outer join dbo.VOLUNTEERASSIGNMENT VA
                    on VA.JOBOCCURRENCEID = JOBOCCURRENCE.ID
                        and VOLUNTEERASSIGNMENT.DATE = VA.DATE
                left outer join dbo.CONSTITUENT
                    on VA.VOLUNTEERID = CONSTITUENT.ID
                        and (@ISADMIN = 1 or 
                                (@APPUSER_IN_NONRACROLE = 1 or
                                dbo.UFN_SECURITY_APPUSER_GRANTED_CONSTITID_FORREPORT(@CURRENTAPPUSERID, CONSTITUENT.ID, @APPUSER_IN_NOSECGROUPROLE) = 1)
                                and
                                (@APPUSER_IN_NONSITEROLE = 1 or
                                dbo.UFN_SECURITY_APPUSER_GRANTED_CONSTITID_FORREPORT_BYSITE(@CURRENTAPPUSERID, CONSTITUENT.ID, @APPUSER_IN_NOSITEROLE) = 1)
                            )
                where VOLUNTEERASSIGNMENT.VOLUNTEERID = @VOLUNTEERID
                        and VOLUNTEERASSIGNMENT.DATE between @FROM and @TO
                        and (dbo.UFN_SITEALLOWEDFORUSER(@CURRENTAPPUSERID,JOBOCCURRENCE.SITEID) = 1)
                        and (dbo.UFN_SITEALLOWEDFORUSER(@CURRENTAPPUSERID,JOB.SITEID) = 1)
                group by JOB.NAME,
                        VOLUNTEERASSIGNMENT.DATE,
                        JOBOCCURRENCE.STARTTIME,
                        JOBOCCURRENCE.ENDTIME,
                        JOBOCCURRENCE.ID,
                        JOBOCCURRENCE.VOLUNTEERSNEEDED
                order by VOLUNTEERASSIGNMENT.DATE;