USP_DATALIST_STEPSOVERDUE

List of overdue prospect plan steps.

Parameters

Parameter Parameter Type Mode Description
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@ORGPOSITIONSSELECTIONID uniqueidentifier IN Show for
@DAYSOVERDUEFILTER smallint IN Days overdue
@SITEFILTERMODE tinyint IN Sites
@SITESSELECTED xml IN
@SECURITYFEATUREID uniqueidentifier IN Input parameter indicating the ID of the feature to use for site security checking.
@SECURITYFEATURETYPE tinyint IN Input parameter indicating the type of the feature to use for site security checking.
@ONLYOWNEDINTERACTIONS bit IN Only show steps owned by this fundraiser
@MAXROWS int IN

Definition

Copy


CREATE procedure dbo.USP_DATALIST_STEPSOVERDUE
(
    @CURRENTAPPUSERID uniqueidentifier,
    @ORGPOSITIONSSELECTIONID uniqueidentifier = null,
    @DAYSOVERDUEFILTER smallint = -1,
    @SITEFILTERMODE tinyint = 0,
    @SITESSELECTED xml = null,
    @SECURITYFEATUREID uniqueidentifier = null,
    @SECURITYFEATURETYPE tinyint = null,
    @ONLYOWNEDINTERACTIONS bit = 0,
    @MAXROWS int = null
)
with execute as owner
as begin
    set nocount on;

    declare @TODAY datetime = dbo.UFN_DATE_GETEARLIESTTIME(getdate());

    declare @temp table
    (
        INTERACTIONID uniqueidentifier,
        PROSPECTPLANID uniqueidentifier,
        PROSPECT nvarchar(154),
        EXPECTEDDATE datetime,
        DAYSOVERDUE integer,
        OWNER nvarchar(154),        
        OBJECTIVE nvarchar(100),        
        PLANTYPE nvarchar(100),
        PLANSTAGE nvarchar(100),
        TIMEFRAME nvarchar(100),
        ISSTEWARDSHIPSTEP bit,
        STEWARDSHIPFORGROUPORG bit,
        SITES nvarchar(1024),
        FUNDRAISER nvarchar(1024),
        ISFUNDINGREQUESTSTEP bit
    );

    if @ORGPOSITIONSSELECTIONID is null
        begin
            insert into @temp
                select 
                    I.ID,
                    PP.ID,
                    NF_PC.NAME,
                    I.EXPECTEDDATE,
                    datediff(day,I.EXPECTEDDATE,@TODAY),            
                    NF_FC.NAME,
                    I.OBJECTIVE,
                    dbo.UFN_PROSPECTPLANTYPECODE_GETDESCRIPTION(PP.PROSPECTPLANTYPECODEID),
                    dbo.UFN_PROSPECTPLANSTATUSCODE_GETDESCRIPTION(PP.PROSPECTPLANSTATUSCODEID),
                    case
                        when datediff(day,I.EXPECTEDDATE,@TODAY) <= 30 then
                            '30 days or less'
                        when datediff(day,I.EXPECTEDDATE,@TODAY) <= 60 then
                            'Over 30 days'
                        when datediff(day,I.EXPECTEDDATE,@TODAY) <= 90 then
                            'Over 60 days'
                        else
                            'Over 90 days'
                    end,
                    0,
                    0,
                    dbo.UFN_PROSPECTPLAN_GETSITELIST(PP.ID) SITES,
                    (select dbo.UDA_BUILDLIST(NF.NAME) from dbo.INTERACTIONADDITIONALFUNDRAISER outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(INTERACTIONADDITIONALFUNDRAISER.FUNDRAISERID) NF where INTERACTIONADDITIONALFUNDRAISER.INTERACTIONID = I.ID) as FUNDRAISER, 
                    0

                from
                    dbo.INTERACTION I
                    inner join dbo.PROSPECTPLAN PP on PP.ID = I.PROSPECTPLANID
                    cross apply dbo.UFN_CONSTITUENT_DISPLAYNAME(PP.PROSPECTID) NF_PC
                    outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(I.FUNDRAISERID) NF_FC
                where
                    I.COMPLETED=0 and
                    I.EXPECTEDDATE<@TODAY 
                    and (
                        select count(*
                        from dbo.UFN_SITEID_MAPFROM_PROSPECTPLANID(PP.ID) as SITEDRECORD 
                        where (dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[SITEDRECORD].[SITEID] or (SITEID is null and [SITEDRECORD].[SITEID] is null)))
                    ) > 0
                    and (
                        @SITEFILTERMODE = 0
                            or PP.ID in (
                                select PROSPECTPLANSITE.PROSPECTPLANID
                                from dbo.UFN_SITE_BUILDDATALISTSITEFILTER (@CURRENTAPPUSERID, @SITEFILTERMODE, @SITESSELECTED) SITEFILTER
                                    inner join dbo.PROSPECTPLANSITE on PROSPECTPLANSITE.SITEID = SITEFILTER.SITEID
                            )
                    )
                    and (
                        @DAYSOVERDUEFILTER = 0
                        or (
                            @DAYSOVERDUEFILTER = -1
                            and datediff(day,I.EXPECTEDDATE,@TODAY) <= 30
                        )
                        or (
                            @DAYSOVERDUEFILTER <> -1
                            and datediff(day,I.EXPECTEDDATE,@TODAY) > @DAYSOVERDUEFILTER
                        )
                    )


            insert into @temp
                select
                    STEP.ID,
                    STEP.PLANID,                                                        -- Prospect Plan ID

                    NF_PROSPECT.NAME,                                                        -- Prospect

                    STEP.TARGETDATE,                                                    -- Expected Date    

                    datediff(day,STEP.TARGETDATE,@TODAY),                                -- Days overdue

                    NF_OWNER.NAME,                                                            -- Fundraiser

                    STEP.OBJECTIVE,                                                        -- Objective

                    'Stewardship',                                                        -- Plan Type

                    null,                                                                -- Plan Stage

                    case
                        when datediff(day,STEP.TARGETDATE,@TODAY) <= 30 then
                            '30 days or less'
                        when datediff(day,STEP.TARGETDATE,@TODAY) <= 60 then
                            'Over 30 days'
                        when datediff(day,STEP.TARGETDATE,@TODAY) <= 90 then
                            'Over 60 days'
                        else
                            'Over 90 days'
                    end,                                                                -- Time Frame

                    1,                                                                    -- ISSTEWARDSHIPSTEP                

                    case                                                                -- STEWARDSHIPFORGROUPORG

                        when PROSPECT.ISGROUP = 1 or PROSPECT.ISORGANIZATION = 1 then 1
                        else 0
                    end,
                    dbo.UFN_STEWARDSHIPPLANSTEP_GETSITELIST(STEP.ID) SITES,
                    '' as FUNDRAISER, 
                    0
                from 
                    dbo.STEWARDSHIPPLANSTEP STEP
                    inner join dbo.STEWARDSHIPPLAN on STEWARDSHIPPLAN.ID = STEP.PLANID
                    inner join dbo.CONSTITUENT PROSPECT on STEWARDSHIPPLAN.CONSTITUENTID = PROSPECT.ID
                    left outer join dbo.INTERACTIONTYPECODE ITC on ITC.ID = STEP.CONTACTMETHODCODEID
                    outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(PROSPECT.ID) NF_PROSPECT
                    outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(STEP.CONSTITUENTID) NF_OWNER
                where
                    STEP.STATUSCODE = 0
                    and STEP.TARGETDATE < @TODAY
                    and
                    (
                        @DAYSOVERDUEFILTER = 0
                        or
                        (
                            @DAYSOVERDUEFILTER = -1
                            and datediff(day, STEP.TARGETDATE, @TODAY) <= 30
                        )
                        or
                        (
                            @DAYSOVERDUEFILTER <> -1
                            and datediff(day, STEP.TARGETDATE, @TODAY) > @DAYSOVERDUEFILTER
                        )
                    )
                    and
                    (
                        select count(*
                        from dbo.UFN_SITEID_MAPFROM_STEWARDSHIPPLANID(STEWARDSHIPPLAN.ID) as SITEDRECORD 
                        where (dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[SITEDRECORD].[SITEID] or (SITEID is null and [SITEDRECORD].[SITEID] is null)))
                    ) > 0
                    and 
                    (
                        @SITEFILTERMODE = 0
                        or
                        STEWARDSHIPPLAN.ID in
                        (
                            select STEWARDSHIPPLANSITE.STEWARDSHIPPLANID
                            from dbo.UFN_SITE_BUILDDATALISTSITEFILTER (@CURRENTAPPUSERID, @SITEFILTERMODE, @SITESSELECTED) SITEFILTER
                            inner join dbo.STEWARDSHIPPLANSITE on STEWARDSHIPPLANSITE.SITEID = SITEFILTER.SITEID
                        )
                    )

            --------

            --AdamBu - 11/9/09 - If flagged to, include funding request info

            --------

            if dbo.UFN_GETINCLUDEGRANTS() = 1
            begin
                insert into @temp
                    select 
                        I.ID,
                        FUNDINGREQUEST.ID,
                        NF_PC.NAME,
                        I.EXPECTEDDATE,
                        datediff(day,I.EXPECTEDDATE,@TODAY),            
                        NF_FC.NAME,
                        I.OBJECTIVE,
                        'Funding request',
                        dbo.UFN_FUNDINGREQUESTSTAGECODE_GETDESCRIPTION(FUNDINGREQUEST.FUNDINGREQUESTSTAGECODEID),
                        case
                            when datediff(day,I.EXPECTEDDATE,@TODAY) <= 30 then
                                '30 days or less'
                            when datediff(day,I.EXPECTEDDATE,@TODAY) <= 60 then
                                'Over 30 days'
                            when datediff(day,I.EXPECTEDDATE,@TODAY) <= 90 then
                                'Over 60 days'
                            else
                                'Over 90 days'
                        end,
                        0,
                        0,
                        SITE.NAME SITES,
                        (select dbo.UDA_BUILDLIST(NF.NAME) from dbo.INTERACTIONADDITIONALFUNDRAISER outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(INTERACTIONADDITIONALFUNDRAISER.FUNDRAISERID) NF where INTERACTIONADDITIONALFUNDRAISER.INTERACTIONID = I.ID) as FUNDRAISER, 
                        1

                    from
                        dbo.INTERACTION I
                        inner join dbo.FUNDINGREQUEST on FUNDINGREQUEST.ID = I.FUNDINGREQUESTID
                        inner join dbo.GRANTS on GRANTS.ID = FUNDINGREQUEST.GRANTSID
                        inner join dbo.FUNDINGPLAN SITEDRECORD on SITEDRECORD.ID = FUNDINGREQUEST.FUNDINGPLANID
                        left join dbo.SITE on SITE.ID = SITEDRECORD.SITEID
                        cross apply dbo.UFN_CONSTITUENT_DISPLAYNAME(GRANTS.GRANTORID) NF_PC
                        outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(I.FUNDRAISERID) NF_FC
                    where
                        I.COMPLETED=0 and
                        I.EXPECTEDDATE<@TODAY 
                        and  (dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[SITEDRECORD].[SITEID] or (SITEID is null and [SITEDRECORD].[SITEID] is null)))
                        and (
                            @SITEFILTERMODE = 0
                                or SITE.ID in (
                                    select SITEID from dbo.UFN_SITE_BUILDDATALISTSITEFILTER (@CURRENTAPPUSERID, @SITEFILTERMODE, @SITESSELECTED)
                                )
                        )
                        and (
                            @DAYSOVERDUEFILTER = 0
                            or (
                                @DAYSOVERDUEFILTER = -1
                                and datediff(day,I.EXPECTEDDATE,@TODAY) <= 30
                            )
                            or (
                                @DAYSOVERDUEFILTER <> -1
                                and datediff(day,I.EXPECTEDDATE,@TODAY) > @DAYSOVERDUEFILTER
                            )
                        )
            end
        end
    else
        begin
            declare @IDS as table(ID uniqueidentifier);
            insert into @IDS exec USP_ORGANIZATIONHIERARCHY_IDSET_POSITIONHOLDERS @ORGPOSITIONSSELECTIONID, @CURRENTAPPUSERID;

            insert into @temp
                select distinct
                    DATA.INTERACTIONID,
                    DATA.PROSPECTPLANID,
                    DATA.PROSPECTNAME,
                    DATA.EXPECTEDDATE,
                    DATA.DAYSOVERDUE,
                    DATA.FUNDRAISERNAME,
                    DATA.OBJECTIVE,
                    DATA.PLANTYPE,
                    DATA.PLANSTAGE,
                    DATA.TIMEFRAME,
                    DATA.ISSTEWARDSHIPSTEP,
                    DATA.STEWARDSHIPFORGROUPORG,
                    DATA.SITES,
                    DATA.FUNDRAISER,
                    DATA.ISFUNDINGREQUESTSTEP
                from
                (
                    select 
                        I.ID as INTERACTIONID,
                        PP.ID as PROSPECTPLANID,
                        NF_PC.NAME as PROSPECTNAME,
                        I.EXPECTEDDATE,
                        datediff(day,I.EXPECTEDDATE,@TODAY) as DAYSOVERDUE,            
                        NF_FC.NAME as FUNDRAISERNAME,
                        I.OBJECTIVE,
                        dbo.UFN_PROSPECTPLANTYPECODE_GETDESCRIPTION(PP.PROSPECTPLANTYPECODEID) as PLANTYPE,
                        dbo.UFN_PROSPECTPLANSTATUSCODE_GETDESCRIPTION(PP.PROSPECTPLANSTATUSCODEID) as PLANSTAGE,
                        case
                            when datediff(day,I.EXPECTEDDATE,@TODAY) <= 30 then
                                '30 days or less'
                            when datediff(day,I.EXPECTEDDATE,@TODAY) <= 60 then
                                'Over 30 days'
                            when datediff(day,I.EXPECTEDDATE,@TODAY) <= 90 then
                                'Over 60 days'
                            else
                                'Over 90 days'
                        end as TIMEFRAME,
                        0 as ISSTEWARDSHIPSTEP,
                        0 as STEWARDSHIPFORGROUPORG,
                        dbo.UFN_PROSPECTPLAN_GETSITELIST(PP.ID) SITES,
                        (select dbo.UDA_BUILDLIST(NF.NAME) from dbo.INTERACTIONADDITIONALFUNDRAISER outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(INTERACTIONADDITIONALFUNDRAISER.FUNDRAISERID) NF where INTERACTIONADDITIONALFUNDRAISER.INTERACTIONID = I.ID) as FUNDRAISER, 
                        0 as ISFUNDINGREQUESTSTEP

                    from
                        dbo.INTERACTION I
                        inner join dbo.ORGANIZATIONPOSITIONHOLDER OPH on OPH.CONSTITUENTID = I.FUNDRAISERID and I.DATE between OPH.DATEFROM and coalesce(OPH.DATETO, I.DATE)
                        inner join @IDS as SELECTION on OPH.[ID] = SELECTION.[ID]
                        inner join dbo.PROSPECTPLAN PP on PP.ID = I.PROSPECTPLANID
                        cross apply dbo.UFN_CONSTITUENT_DISPLAYNAME(PP.PROSPECTID) NF_PC
                        outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(I.FUNDRAISERID) NF_FC
                    where
                        I.COMPLETED=0 and
                        I.EXPECTEDDATE<@TODAY
                        and (
                            select count(*
                            from dbo.UFN_SITEID_MAPFROM_PROSPECTPLANID(PP.ID) as SITEDRECORD 
                            where (dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[SITEDRECORD].[SITEID] or (SITEID is null and [SITEDRECORD].[SITEID] is null)))
                        ) > 0
                        and (
                            @SITEFILTERMODE = 0
                                or PP.ID in (
                                    select PROSPECTPLANSITE.PROSPECTPLANID
                                    from dbo.UFN_SITE_BUILDDATALISTSITEFILTER (@CURRENTAPPUSERID, @SITEFILTERMODE, @SITESSELECTED) SITEFILTER
                                        inner join dbo.PROSPECTPLANSITE on PROSPECTPLANSITE.SITEID = SITEFILTER.SITEID
                                )
                        )
                        and (
                            @DAYSOVERDUEFILTER = 0
                            or (
                                @DAYSOVERDUEFILTER = -1
                                and datediff(day,I.EXPECTEDDATE,@TODAY) <= 30
                            )
                            or (
                                @DAYSOVERDUEFILTER <> -1
                                and datediff(day,I.EXPECTEDDATE,@TODAY) > @DAYSOVERDUEFILTER
                            )
                        )

                    union all

                    select 
                        I.ID as INTERACTIONID,
                        PP.ID as PROSPECTPLANID,
                        NF_PC.NAME as PROSPECTNAME,
                        I.EXPECTEDDATE,
                        datediff(day,I.EXPECTEDDATE,@TODAY) as DAYSOVERDUE,            
                        NF_FC.NAME as FUNDRAISERNAME,
                        I.OBJECTIVE,
                        dbo.UFN_PROSPECTPLANTYPECODE_GETDESCRIPTION(PP.PROSPECTPLANTYPECODEID) as PLANTYPE,
                        dbo.UFN_PROSPECTPLANSTATUSCODE_GETDESCRIPTION(PP.PROSPECTPLANSTATUSCODEID) as PLANSTAGE,
                        case
                            when datediff(day,I.EXPECTEDDATE,@TODAY) <= 30 then
                                '30 days or less'
                            when datediff(day,I.EXPECTEDDATE,@TODAY) <= 60 then
                                'Over 30 days'
                            when datediff(day,I.EXPECTEDDATE,@TODAY) <= 90 then
                                'Over 60 days'
                            else
                                'Over 90 days'
                        end as TIMEFRAME,
                        0 as ISSTEWARDSHIPSTEP,
                        0 as STEWARDSHIPFORGROUPORG,
                        dbo.UFN_PROSPECTPLAN_GETSITELIST(PP.ID) SITES,
                        (select dbo.UDA_BUILDLIST(NF.NAME) from dbo.INTERACTIONADDITIONALFUNDRAISER outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(INTERACTIONADDITIONALFUNDRAISER.FUNDRAISERID) NF where INTERACTIONADDITIONALFUNDRAISER.INTERACTIONID = I.ID) as FUNDRAISER, 
                        0 as ISFUNDINGREQUESTSTEP

                    from
                        dbo.INTERACTION I
                        inner join dbo.INTERACTIONADDITIONALFUNDRAISER on I.ID = INTERACTIONADDITIONALFUNDRAISER.INTERACTIONID
                        inner join dbo.ORGANIZATIONPOSITIONHOLDER OPH on OPH.CONSTITUENTID = INTERACTIONADDITIONALFUNDRAISER.FUNDRAISERID and I.DATE between OPH.DATEFROM and coalesce(OPH.DATETO, I.DATE)
                        inner join @IDS as SELECTION on OPH.[ID] = SELECTION.[ID]
                        inner join dbo.PROSPECTPLAN PP on PP.ID = I.PROSPECTPLANID
                        cross apply dbo.UFN_CONSTITUENT_DISPLAYNAME(PP.PROSPECTID) NF_PC
                        outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(I.FUNDRAISERID) NF_FC
                    where
                        @ONLYOWNEDINTERACTIONS = 0 and
                        I.COMPLETED=0 and
                        I.EXPECTEDDATE<@TODAY
                        and (
                            select count(*
                            from dbo.UFN_SITEID_MAPFROM_PROSPECTPLANID(PP.ID) as SITEDRECORD 
                            where (dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[SITEDRECORD].[SITEID] or (SITEID is null and [SITEDRECORD].[SITEID] is null)))
                        ) > 0
                        and (
                            @SITEFILTERMODE = 0
                                or PP.ID in (
                                    select PROSPECTPLANSITE.PROSPECTPLANID
                                    from dbo.UFN_SITE_BUILDDATALISTSITEFILTER (@CURRENTAPPUSERID, @SITEFILTERMODE, @SITESSELECTED) SITEFILTER
                                        inner join dbo.PROSPECTPLANSITE on PROSPECTPLANSITE.SITEID = SITEFILTER.SITEID
                                )
                        )
                        and (
                            @DAYSOVERDUEFILTER = 0
                            or (
                                @DAYSOVERDUEFILTER = -1
                                and datediff(day,I.EXPECTEDDATE,@TODAY) <= 30
                            )
                            or (
                                @DAYSOVERDUEFILTER <> -1
                                and datediff(day,I.EXPECTEDDATE,@TODAY) > @DAYSOVERDUEFILTER
                            )
                        )
                ) as DATA

            insert into @temp
                select
                    STEP.ID,
                    STEP.PLANID,                                                        -- Prospect Plan ID

                    NF_PROSPECT.NAME,                                                        -- Prospect

                    STEP.TARGETDATE,                                                    -- Expected Date    

                    datediff(day,STEP.TARGETDATE,@TODAY),                                -- Days overdue

                    NF_OWNER.NAME,                                                            -- Fundraiser

                    STEP.OBJECTIVE,                                                        -- Objective

                    'Stewardship',                                                        -- Plan Type

                    null,                                                                -- Plan Stage

                    case
                        when datediff(day,STEP.TARGETDATE,@TODAY) <= 30 then
                            '30 days or less'
                        when datediff(day,STEP.TARGETDATE,@TODAY) <= 60 then
                            'Over 30 days'
                        when datediff(day,STEP.TARGETDATE,@TODAY) <= 90 then
                            'Over 60 days'
                        else
                            'Over 90 days'
                    end,                                                                -- Time Frame

                    1,                                                                    -- ISSTEWARDSHIPSTEP                

                    case                                                                -- STEWARDSHIPFORGROUPORG

                        when PROSPECT.ISGROUP = 1 or PROSPECT.ISORGANIZATION = 1 then 1
                        else 0
                    end,
                    dbo.UFN_STEWARDSHIPPLANSTEP_GETSITELIST(STEP.ID) SITES,
                    '' as FUNDRAISER, 
                    0
                from 
                    dbo.STEWARDSHIPPLANSTEP STEP
                    inner join dbo.ORGANIZATIONPOSITIONHOLDER OPH on OPH.CONSTITUENTID = STEP.CONSTITUENTID and STEP.TARGETDATE between OPH.DATEFROM and coalesce(OPH.DATETO, STEP.TARGETDATE)
                    inner join @IDS as SELECTION on OPH.[ID] = SELECTION.[ID]
                    inner join dbo.STEWARDSHIPPLAN on STEWARDSHIPPLAN.ID = STEP.PLANID
                    inner join dbo.CONSTITUENT PROSPECT on STEWARDSHIPPLAN.CONSTITUENTID = PROSPECT.ID
                    left outer join dbo.INTERACTIONTYPECODE ITC on ITC.ID = STEP.CONTACTMETHODCODEID
                    outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(PROSPECT.ID) NF_PROSPECT
                    outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(STEP.CONSTITUENTID) NF_OWNER
                where
                    STEP.STATUSCODE = 0
                    and STEP.TARGETDATE < @TODAY
                    and
                    (
                        @DAYSOVERDUEFILTER = 0
                        or
                        (
                            @DAYSOVERDUEFILTER = -1
                            and datediff(day,STEP.TARGETDATE,@TODAY) <= 30
                        )
                        or
                        (
                            @DAYSOVERDUEFILTER <> -1
                            and datediff(day,STEP.TARGETDATE,@TODAY) > @DAYSOVERDUEFILTER
                        )
                    )
                    and
                    (
                        select count(*
                        from dbo.UFN_SITEID_MAPFROM_STEWARDSHIPPLANID(STEWARDSHIPPLAN.ID) as SITEDRECORD 
                        where (dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[SITEDRECORD].[SITEID] or (SITEID is null and [SITEDRECORD].[SITEID] is null)))
                    ) > 0
                    and 
                    (
                        @SITEFILTERMODE = 0
                        or
                        STEWARDSHIPPLAN.ID in
                        (
                            select STEWARDSHIPPLANSITE.STEWARDSHIPPLANID
                            from dbo.UFN_SITE_BUILDDATALISTSITEFILTER (@CURRENTAPPUSERID, @SITEFILTERMODE, @SITESSELECTED) SITEFILTER
                            inner join dbo.STEWARDSHIPPLANSITE on STEWARDSHIPPLANSITE.SITEID = SITEFILTER.SITEID
                        )
                    )


            --------

            --AdamBu - 11/9/09 - If flagged to, include funding request info

            --------

            if dbo.UFN_GETINCLUDEGRANTS() = 1
            begin            
                insert into @temp
                    select 
                        I.ID,
                        FUNDINGREQUEST.ID,
                        NF_PC.NAME,
                        I.EXPECTEDDATE,
                        datediff(day,I.EXPECTEDDATE,@TODAY),            
                        NF_FC.NAME,
                        I.OBJECTIVE,
                        'Funding request',
                        dbo.UFN_FUNDINGREQUESTSTAGECODE_GETDESCRIPTION(FUNDINGREQUEST.FUNDINGREQUESTSTAGECODEID),
                        case
                            when datediff(day,I.EXPECTEDDATE,@TODAY) <= 30 then
                                '30 days or less'
                            when datediff(day,I.EXPECTEDDATE,@TODAY) <= 60 then
                                'Over 30 days'
                            when datediff(day,I.EXPECTEDDATE,@TODAY) <= 90 then
                                'Over 60 days'
                            else
                                'Over 90 days'
                        end,
                        0,
                        0,
                        SITE.NAME SITES,
                        (select dbo.UDA_BUILDLIST(NF.NAME) from dbo.INTERACTIONADDITIONALFUNDRAISER outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(INTERACTIONADDITIONALFUNDRAISER.FUNDRAISERID) NF where INTERACTIONADDITIONALFUNDRAISER.INTERACTIONID = I.ID) as FUNDRAISER, 
                        1

                    from
                        dbo.INTERACTION I
                        inner join dbo.ORGANIZATIONPOSITIONHOLDER OPH on OPH.CONSTITUENTID = I.FUNDRAISERID and I.DATE between OPH.DATEFROM and coalesce(OPH.DATETO, I.DATE)
                        inner join @IDS as SELECTION on OPH.[ID] = SELECTION.[ID]
                        inner join dbo.FUNDINGREQUEST on FUNDINGREQUEST.ID = I.FUNDINGREQUESTID
                        inner join dbo.GRANTS on GRANTS.ID = FUNDINGREQUEST.GRANTSID
                        inner join dbo.FUNDINGPLAN SITEDRECORD on SITEDRECORD.ID = FUNDINGREQUEST.FUNDINGPLANID
                        left join dbo.SITE on SITE.ID = SITEDRECORD.SITEID
                        cross apply dbo.UFN_CONSTITUENT_DISPLAYNAME(GRANTS.GRANTORID) NF_PC
                        outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(I.FUNDRAISERID) NF_FC
                    where
                        I.COMPLETED=0 and
                        I.EXPECTEDDATE<@TODAY 
                        and  (dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[SITEDRECORD].[SITEID] or (SITEID is null and [SITEDRECORD].[SITEID] is null)))
                        and (
                            @SITEFILTERMODE = 0
                                or SITE.ID in (
                                    select SITEID from dbo.UFN_SITE_BUILDDATALISTSITEFILTER (@CURRENTAPPUSERID, @SITEFILTERMODE, @SITESSELECTED)
                                )
                        )
                        and (
                            @DAYSOVERDUEFILTER = 0
                            or (
                                @DAYSOVERDUEFILTER = -1
                                and datediff(day,I.EXPECTEDDATE,@TODAY) <= 30
                            )
                            or (
                                @DAYSOVERDUEFILTER <> -1
                                and datediff(day,I.EXPECTEDDATE,@TODAY) > @DAYSOVERDUEFILTER
                            )
                        )

                    union all

                    select 
                        I.ID,
                        FUNDINGREQUEST.ID,
                        NF_PC.NAME,
                        I.EXPECTEDDATE,
                        datediff(day,I.EXPECTEDDATE,@TODAY),            
                        NF_FC.NAME,
                        I.OBJECTIVE,
                        'Funding request',
                        dbo.UFN_FUNDINGREQUESTSTAGECODE_GETDESCRIPTION(FUNDINGREQUEST.FUNDINGREQUESTSTAGECODEID),
                        case
                            when datediff(day,I.EXPECTEDDATE,@TODAY) <= 30 then
                                '30 days or less'
                            when datediff(day,I.EXPECTEDDATE,@TODAY) <= 60 then
                                'Over 30 days'
                            when datediff(day,I.EXPECTEDDATE,@TODAY) <= 90 then
                                'Over 60 days'
                            else
                                'Over 90 days'
                        end,
                        0,
                        0,
                        SITE.NAME SITES,
                        (select dbo.UDA_BUILDLIST(NF.NAME) from dbo.INTERACTIONADDITIONALFUNDRAISER outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(INTERACTIONADDITIONALFUNDRAISER.FUNDRAISERID) NF where INTERACTIONADDITIONALFUNDRAISER.INTERACTIONID = I.ID) as FUNDRAISER, 
                        1

                    from
                        dbo.INTERACTION I
                        inner join dbo.INTERACTIONADDITIONALFUNDRAISER on I.ID = INTERACTIONADDITIONALFUNDRAISER.INTERACTIONID
                        inner join dbo.ORGANIZATIONPOSITIONHOLDER OPH on OPH.CONSTITUENTID = INTERACTIONADDITIONALFUNDRAISER.FUNDRAISERID and I.DATE between OPH.DATEFROM and coalesce(OPH.DATETO, I.DATE)
                        inner join @IDS as SELECTION on OPH.[ID] = SELECTION.[ID]
                        inner join dbo.FUNDINGREQUEST on FUNDINGREQUEST.ID = I.FUNDINGREQUESTID
                        inner join dbo.GRANTS on GRANTS.ID = FUNDINGREQUEST.GRANTSID
                        inner join dbo.FUNDINGPLAN SITEDRECORD on SITEDRECORD.ID = FUNDINGREQUEST.FUNDINGPLANID
                        left join dbo.SITE on SITE.ID = SITEDRECORD.SITEID
                        cross apply dbo.UFN_CONSTITUENT_DISPLAYNAME(GRANTS.GRANTORID) NF_PC
                        outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(I.FUNDRAISERID) NF_FC
                    where
                        @ONLYOWNEDINTERACTIONS = 0 and
                        I.COMPLETED=0 and
                        I.EXPECTEDDATE<@TODAY 
                        and  (dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[SITEDRECORD].[SITEID] or (SITEID is null and [SITEDRECORD].[SITEID] is null)))
                        and (
                            @SITEFILTERMODE = 0
                                or SITE.ID in (
                                    select SITEID from dbo.UFN_SITE_BUILDDATALISTSITEFILTER (@CURRENTAPPUSERID, @SITEFILTERMODE, @SITESSELECTED)
                                )
                        )
                        and (
                            @DAYSOVERDUEFILTER = 0
                            or (
                                @DAYSOVERDUEFILTER = -1
                                and datediff(day,I.EXPECTEDDATE,@TODAY) <= 30
                            )
                            or (
                                @DAYSOVERDUEFILTER <> -1
                                and datediff(day,I.EXPECTEDDATE,@TODAY) > @DAYSOVERDUEFILTER
                            )
                        )
            end
        end

    if @MAXROWS is not null
        set rowcount @MAXROWS;
    select 
        INTERACTIONID,
        PROSPECTPLANID,
        EXPECTEDDATE,
        DAYSOVERDUE,
        PROSPECT,
        OWNER,
        OBJECTIVE,
        PLANTYPE,
        PLANSTAGE,
        TIMEFRAME,
        ISSTEWARDSHIPSTEP,
        STEWARDSHIPFORGROUPORG,
        SITES,
        FUNDRAISER,
        ISFUNDINGREQUESTSTEP
    from @temp
    order by EXPECTEDDATE, PROSPECT

    set rowcount 0;
end