USP_DATALIST_SCREENPLANSTEP_INPROGRESS

This datalist returns all pending steps for screening plans in progress.

Parameters

Parameter Parameter Type Mode Description
@SCREENPLANID uniqueidentifier IN Screening plan
@STEPCODEID uniqueidentifier IN Step
@DAYSOUT tinyint IN Due in

Definition

Copy


            CREATE procedure dbo.USP_DATALIST_SCREENPLANSTEP_INPROGRESS(@SCREENPLANID uniqueidentifier = null, @STEPCODEID uniqueidentifier = null, @DAYSOUT tinyint =  null)
            as
                set nocount on;

                declare @ENDDATE datetime;
                declare @TODAY datetime

                set @TODAY = dbo.UFN_DATE_GETEARLIESTTIME(getdate());

                set @ENDDATE = 
                    case COALESCE(@DAYSOUT, 2)
                        when 1 then --week

                            dateadd(d, 7, @TODAY)
                        when 2 then --month

                            dateadd(m, 1, @TODAY)
                        when 3 then --6 months

                            dateadd(m, 6, @TODAY)
                        when 4 then --1 year

                            dateadd(yy, 1, @TODAY)
                        else
                            @TODAY
                    end

                select     case when VSPS.DUEDATE < @TODAY then 'RES:warning' else '' end,
                        VSPS.ID,
                        VSPS.DUEDATE,
                        C.NAME,
                        VT.NAME,
                        SP.NAME,
                        SCREENPLANSTEPCODE.DESCRIPTION,
                        VSPS.SCREENPLANID,
                        VSP.VOLUNTEERID,
                        case 
                            when VSPS.DUEDATE < @TODAY  then 'Overdue'
                            when VSPS.DUEDATE <= dateadd(d, 7, @TODAY) then 'One week'
                            when VSPS.DUEDATE <= dateadd(m, 1, @TODAY) then 'One month'
                            when VSPS.DUEDATE <= dateadd(m, 6, @TODAY) then 'Six months'
                            when VSPS.DUEDATE <= dateadd(yy, 1, @TODAY) then 'One year'
                            else 'over one year' end
                from dbo.VOLUNTEERSCREENPLANSTEP VSPS
                inner join dbo.VOLUNTEERSCREENPLAN VSP
                    on VSP.ID = VSPS.SCREENPLANID
                inner join dbo.SCREENPLAN SP
                    on SP.ID = VSP.SCREENPLANID
                inner join dbo.CONSTITUENT C
                    on C.ID = VSP.VOLUNTEERID
                inner join dbo.SCREENPLANSTEPCODE
                    on SCREENPLANSTEPCODE.ID = VSPS.STEPCODEID
                left outer join dbo.VOLUNTEERVOLUNTEERTYPE VVT
                    on VVT.VOLUNTEERSCREENPLANID = VSP.ID
                left outer join dbo.VOLUNTEERTYPE VT
                    on VT.ID = VVT.VOLUNTEERTYPEID
                where   C.ISINACTIVE = 0 ---active constit

                        and dbo.UFN_CONSTITUENT_ISVOLUNTEER(C.ID) = 1 --active volunteer

                        and VSPS.STATUSCODE = 0 --pending

                        and SP.ID = COALESCE(@SCREENPLANID, SP.ID)
                        and VSPS.STEPCODEID  = COALESCE(@STEPCODEID, VSPS.STEPCODEID)
                        and VSPS.DUEDATE <= @ENDDATE
                order by VSPS.DUEDATE, C.NAME;