USP_KPI_MAJORGIVING_PROSPECTPLANSFORFUNDRAISER

Parameters

Parameter Parameter Type Mode Description
@VALUE int INOUT
@ASOFDATE datetime IN
@PROSPECTPLANTYPECODEID uniqueidentifier IN
@PROSPECTPLANSTATUSCODEID uniqueidentifier IN
@PROSPECTSTATUSCODEID uniqueidentifier IN
@DESIGNATIONID uniqueidentifier IN
@OPPORTUNITYAMOUNTBRACKETID uniqueidentifier IN
@FUNDRAISERID uniqueidentifier IN
@ORGPOSITIONSSELECTIONID uniqueidentifier IN
@CURRENTAPPUSERID uniqueidentifier IN

Definition

Copy


          CREATE procedure dbo.USP_KPI_MAJORGIVING_PROSPECTPLANSFORFUNDRAISER
            @VALUE int output,
            @ASOFDATE datetime
            @PROSPECTPLANTYPECODEID uniqueidentifier = null,
            @PROSPECTPLANSTATUSCODEID uniqueidentifier = null,
            @PROSPECTSTATUSCODEID uniqueidentifier = null,
            @DESIGNATIONID uniqueidentifier = null,
            @OPPORTUNITYAMOUNTBRACKETID uniqueidentifier = null,
            @FUNDRAISERID uniqueidentifier = null,
            @ORGPOSITIONSSELECTIONID uniqueidentifier = null,
            @CURRENTAPPUSERID uniqueidentifier = null
          as

            set nocount on;

            if @ORGPOSITIONSSELECTIONID is null
              select
                @VALUE = coalesce(count(distinct PP.ID), 0)
              from
                dbo.PROSPECTPLAN PP
                inner join dbo.PROSPECT P on PP.PROSPECTID=P.ID
                left outer join dbo.OPPORTUNITY O on O.PROSPECTPLANID = PP.ID
                left outer join dbo.UFN_OPPORTUNITYAMOUNTRANGES_BYGROUPANDUSER(@CURRENTAPPUSERID) R on dbo.UFN_OPPORTUNITY_AMOUNTINCURRENCY(O.ID,R.BASECURRENCYID) between R.LOWERLIMIT and R.UPPERLIMIT
                left outer join dbo.OPPORTUNITYDESIGNATION OD on OD.OPPORTUNITYID = O.ID
              where
                (@FUNDRAISERID is null or exists (select 1 from dbo.UFN_FUNDRAISER_PROSPECTPLANS(@FUNDRAISERID) FPP where PP.ID = FPP.ID))
                and PP.ISACTIVE = 1
                and (@PROSPECTSTATUSCODEID is null or P.PROSPECTSTATUSCODEID = @PROSPECTSTATUSCODEID)
                and (@PROSPECTPLANTYPECODEID is null or PP.PROSPECTPLANTYPECODEID = @PROSPECTPLANTYPECODEID)
                and (@PROSPECTPLANSTATUSCODEID is null or PP.PROSPECTPLANSTATUSCODEID = @PROSPECTPLANSTATUSCODEID)
                and (@DESIGNATIONID is null or OD.DESIGNATIONID = @DESIGNATIONID)
                and (@OPPORTUNITYAMOUNTBRACKETID is null or R.ID = @OPPORTUNITYAMOUNTBRACKETID)
            else
            begin
              declare @IDS as table(ID uniqueidentifier);
              insert into @IDS exec USP_ORGANIZATIONHIERARCHY_IDSET_POSITIONHOLDERS @ORGPOSITIONSSELECTIONID, null;

              select
                @VALUE = coalesce(count(distinct PP.ID), 0)
              from
                dbo.PROSPECTPLAN PP
                inner join dbo.PROSPECT P on PP.PROSPECTID=P.ID
                inner join dbo.ORGANIZATIONPOSITIONHOLDER OPH
                  on (OPH.CONSTITUENTID = PP.PRIMARYMANAGERFUNDRAISERID) or (OPH.CONSTITUENTID = PP.SECONDARYMANAGERFUNDRAISERID) or ((select count(ID) from dbo.SECONDARYFUNDRAISER SF where SF.PROSPECTPLANID = PP.ID and SF.FUNDRAISERID = OPH.CONSTITUENTID) > 0
                  and @ASOFDATE between OPH.DATEFROM and coalesce(OPH.DATETO, @ASOFDATE)
                inner join @IDS as SELECTION on OPH.[ID] = SELECTION.[ID]
                left outer join dbo.OPPORTUNITY O on O.PROSPECTPLANID = PP.ID
                left outer join dbo.UFN_OPPORTUNITYAMOUNTRANGES_BYGROUPANDUSER(@CURRENTAPPUSERID) R on dbo.UFN_OPPORTUNITY_AMOUNTINCURRENCY(O.ID,R.BASECURRENCYID) between R.LOWERLIMIT and R.UPPERLIMIT
                left outer join dbo.OPPORTUNITYDESIGNATION OD on OD.OPPORTUNITYID = O.ID
              where
                (@FUNDRAISERID is null or exists (select 1 from dbo.UFN_FUNDRAISER_PROSPECTPLANS(@FUNDRAISERID) FPP where PP.ID = FPP.ID))
                and PP.ISACTIVE = 1
                and (@PROSPECTSTATUSCODEID is null or P.PROSPECTSTATUSCODEID = @PROSPECTSTATUSCODEID)
                and (@PROSPECTPLANTYPECODEID is null or PP.PROSPECTPLANTYPECODEID = @PROSPECTPLANTYPECODEID)
                and (@PROSPECTPLANSTATUSCODEID is null or PP.PROSPECTPLANSTATUSCODEID = @PROSPECTPLANSTATUSCODEID)
                and (@DESIGNATIONID is null or OD.DESIGNATIONID = @DESIGNATIONID)
                and (@OPPORTUNITYAMOUNTBRACKETID is null or  R.ID = @OPPORTUNITYAMOUNTBRACKETID)
            end