USP_DATAFORMTEMPLATE_DATALIST_OPPORTUNITIESSUMMARYGIFTTOTALS

Fetches summary information.

Parameters

Parameter Parameter Type Mode Description
@DATEFILTER tinyint IN
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@ORGPOSITIONSSELECTIONID uniqueidentifier IN
@PROSPECTPLANTYPECODEID uniqueidentifier 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.

Definition

Copy


        CREATE procedure dbo.USP_DATAFORMTEMPLATE_DATALIST_OPPORTUNITIESSUMMARYGIFTTOTALS
        (
          @DATEFILTER tinyint
          @CURRENTAPPUSERID uniqueidentifier = null
          @ORGPOSITIONSSELECTIONID uniqueidentifier = null,
          @PROSPECTPLANTYPECODEID uniqueidentifier = null,
          @SECURITYFEATUREID uniqueidentifier = null,
          @SECURITYFEATURETYPE tinyint = null
        )
        as begin
          set nocount on;

          declare @STARTDATE datetime;
          declare @ENDDATE datetime;

          exec dbo.USP_RESOLVEDATEFILTER @DATEFILTER, @STARTDATE output, @ENDDATE output;

          declare @TODAY datetime;
          set @TODAY=getdate();

          declare @TOTALREVENUECOMMITTEDCOUNT int;
          declare @TOTALREVENUECOMMITTEDAMOUNT money;
          declare @TOTALPAIDCOUNT int;
          declare @TOTALPAIDAMOUNT money;

          declare @PROSPECTPLANSFORUSER table (PROSPECTPLANID uniqueidentifier)
          insert into @PROSPECTPLANSFORUSER 
            select distinct PP.ID
            from dbo.PROSPECTPLAN PP
            where (
                select count(*
                from dbo.UFN_SITEID_MAPFROM_PROSPECTPLANID(PP.ID) as PROSPECTPLANSITE 
                where (dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[PROSPECTPLANSITE].[SITEID] or (SITEID is null and [PROSPECTPLANSITE].[SITEID] is null)))
              ) > 0

          if @ORGPOSITIONSSELECTIONID is null
            begin
              select
                @TOTALREVENUECOMMITTEDCOUNT = count(*),
                @TOTALREVENUECOMMITTEDAMOUNT = coalesce(sum(R.AMOUNT), 0)
              from 
                dbo.OPPORTUNITY O
                inner join dbo.PROSPECTPLAN PP on PP.ID = O.PROSPECTPLANID
                inner join dbo.REVENUEOPPORTUNITY RO on RO.OPPORTUNITYID = O.ID
                inner join dbo.REVENUESPLIT RS on RS.ID = RO.ID
                inner join dbo.REVENUE R on R.ID = RS.REVENUEID
                inner join @PROSPECTPLANSFORUSER PPS on PP.ID = PPS.PROSPECTPLANID
              where
                (
                  (O.STATUSCODE in (3,4) and O.RESPONSEDATE > @STARTDATE
                  or
                  (
                  O.STATUSCODE = 5 and 
                  (O.ASKDATE is null 
                    and 
                  (O.EXPECTEDASKDATE>convert(nvarchar(8), @STARTDATE, 112)) 
                    or 
                  (O.ASKDATE>convert(nvarchar(8), @STARTDATE, 112)))
                  )
                )
                and (@PROSPECTPLANTYPECODEID is null or PP.PROSPECTPLANTYPECODEID = @PROSPECTPLANTYPECODEID)
                and ((R.TRANSACTIONTYPECODE = 0 and RS.APPLICATIONCODE = 0 and RS.TYPECODE = 0) or
                   (R.TRANSACTIONTYPECODE in (1,2) and RS.APPLICATIONCODE = 0 and RS.TYPECODE = 0));

              select
                @TOTALPAIDCOUNT = count(*),
                @TOTALPAIDAMOUNT = coalesce(sum(R.AMOUNT), 0)
              from 
                dbo.OPPORTUNITY O
                inner join dbo.PROSPECTPLAN PP on PP.ID = O.PROSPECTPLANID
                inner join dbo.REVENUEOPPORTUNITY RO on RO.OPPORTUNITYID = O.ID
                inner join dbo.REVENUESPLIT RS on RS.ID = RO.ID
                inner join dbo.REVENUE R on R.ID = RS.REVENUEID
                inner join @PROSPECTPLANSFORUSER PPS on PP.ID = PPS.PROSPECTPLANID
              where
                (
                  (O.STATUSCODE in (3,4) and O.RESPONSEDATE > @STARTDATE
                  or
                  (
                  O.STATUSCODE = 5 and 
                  (O.ASKDATE is null 
                    and 
                  (O.EXPECTEDASKDATE>convert(nvarchar(8), @STARTDATE, 112)) 
                    or 
      (O.ASKDATE>convert(nvarchar(8), @STARTDATE, 112)))
                  )
                )
                and (@PROSPECTPLANTYPECODEID is null or PP.PROSPECTPLANTYPECODEID = @PROSPECTPLANTYPECODEID)
                and (R.TRANSACTIONTYPECODE = 0 and RS.APPLICATIONCODE in (0,2) and RS.TYPECODE =0);

            end
          else --@ORGPOSITIONSSELECTIONID is not null

            begin
              declare @IDS as table(ID uniqueidentifier);
              insert into @IDS exec USP_ORGANIZATIONHIERARCHY_IDSET_POSITIONHOLDERS @ORGPOSITIONSSELECTIONID, @CURRENTAPPUSERID;

              select
                @TOTALREVENUECOMMITTEDCOUNT = count(*),
                @TOTALREVENUECOMMITTEDAMOUNT = coalesce(sum(R.AMOUNT), 0)
              from 
                dbo.OPPORTUNITY O
                inner join dbo.PROSPECTPLAN PP on PP.ID = O.PROSPECTPLANID
                inner join dbo.REVENUEOPPORTUNITY RO on RO.OPPORTUNITYID = O.ID
                inner join dbo.REVENUESPLIT RS on RS.ID = RO.ID
                inner join dbo.REVENUE R on R.ID = RS.REVENUEID
                inner join @PROSPECTPLANSFORUSER PPS on PP.ID = PPS.PROSPECTPLANID
              where
                (
                  (O.STATUSCODE in (3,4) and O.RESPONSEDATE > @STARTDATE
                  or
                  (
                  O.STATUSCODE = 5 and 
                  (O.ASKDATE is null 
                    and 
                  (O.EXPECTEDASKDATE>convert(nvarchar(8), @STARTDATE, 112)) 
                    or 
                  (O.ASKDATE>convert(nvarchar(8), @STARTDATE, 112)))
                  )
                )
                and (@PROSPECTPLANTYPECODEID is null or PP.PROSPECTPLANTYPECODEID = @PROSPECTPLANTYPECODEID)
                and ((R.TRANSACTIONTYPECODE = 0 and RS.APPLICATIONCODE = 0 and RS.TYPECODE = 0) or
                   (R.TRANSACTIONTYPECODE in (1,2) and RS.APPLICATIONCODE = 0 and RS.TYPECODE = 0))
                and exists (
                  select SELECTION.ID
                  from @IDS as SELECTION
                  inner join dbo.ORGANIZATIONPOSITIONHOLDER as OPH on OPH.ID = SELECTION.ID
                  where
                    (OPH.CONSTITUENTID = PP.PRIMARYMANAGERFUNDRAISERID) or (OPH.CONSTITUENTID = PP.SECONDARYMANAGERFUNDRAISERID) or ((select count(SF.ID) from dbo.SECONDARYFUNDRAISER SF where SF.PROSPECTPLANID = PP.ID and SF.FUNDRAISERID = OPH.CONSTITUENTID) > 0)  
                    and (O.RESPONSEDATE between OPH.DATEFROM and coalesce(OPH.DATETO, O.RESPONSEDATE))
                );

              select
                @TOTALPAIDCOUNT = count(*),
                @TOTALPAIDAMOUNT = coalesce(sum(R.AMOUNT), 0)
              from 
                dbo.OPPORTUNITY O
                inner join dbo.PROSPECTPLAN PP on PP.ID = O.PROSPECTPLANID
                inner join dbo.REVENUEOPPORTUNITY RO on RO.OPPORTUNITYID = O.ID
                inner join dbo.REVENUESPLIT RS on RS.ID = RO.ID
                inner join dbo.REVENUE R on R.ID = RS.REVENUEID
                inner join @PROSPECTPLANSFORUSER PPS on PP.ID = PPS.PROSPECTPLANID
              where
                (
                  (O.STATUSCODE in (3,4) and O.RESPONSEDATE > @STARTDATE
                  or
                  (
                  O.STATUSCODE = 5 and 
                  (O.ASKDATE is null 
                    and 
                  (O.EXPECTEDASKDATE>convert(nvarchar(8), @STARTDATE, 112)) 
                    or 
                  (O.ASKDATE>convert(nvarchar(8), @STARTDATE, 112)))
                  )
                )
                and (@PROSPECTPLANTYPECODEID is null or PP.PROSPECTPLANTYPECODEID = @PROSPECTPLANTYPECODEID)
                and (R.TRANSACTIONTYPECODE = 0 and RS.APPLICATIONCODE in (0,2) and RS.TYPECODE =0)
                and exists (
                  select SELECTION.ID
                  from @IDS as SELECTION
inner join dbo.ORGANIZATIONPOSITIONHOLDER as OPH on OPH.ID = SELECTION.ID
                  where
                    (OPH.CONSTITUENTID = PP.PRIMARYMANAGERFUNDRAISERID) or (OPH.CONSTITUENTID = PP.SECONDARYMANAGERFUNDRAISERID) or ((select count(SF.ID) from dbo.SECONDARYFUNDRAISER SF where SF.PROSPECTPLANID = PP.ID and SF.FUNDRAISERID = OPH.CONSTITUENTID) > 0)  
                    and (O.RESPONSEDATE between OPH.DATEFROM and coalesce(OPH.DATETO, O.RESPONSEDATE))
                );
            end

          select 
            @TOTALREVENUECOMMITTEDCOUNT,
            @TOTALREVENUECOMMITTEDAMOUNT,
            @TOTALPAIDCOUNT,
            @TOTALPAIDAMOUNT;

          return 0;
        end