USP_REPORT_APPEALPROFILE_REVENUESUMMARY

Returns the revenue summary for an appeal.

Parameters

Parameter Parameter Type Mode Description
@APPEALID uniqueidentifier IN
@SHOW bit IN
@CURRENCYCODE tinyint IN
@CURRENTAPPUSERID uniqueidentifier IN
@REPORTUSERID nvarchar(128) IN
@ALTREPORTUSERID nvarchar(128) IN

Definition

Copy


CREATE procedure dbo.[USP_REPORT_APPEALPROFILE_REVENUESUMMARY]
(
  @APPEALID uniqueidentifier = null,
  @SHOW bit = null,
  @CURRENCYCODE tinyint = null,
  @CURRENTAPPUSERID uniqueidentifier = null,
  @REPORTUSERID nvarchar(128) = null,
  @ALTREPORTUSERID nvarchar(128) = null
)
as
  begin
    set nocount on;

    declare @CURRENCYID uniqueidentifier;
    declare @ORGANIZATIONCURRENCYID uniqueidentifier;
    declare @CURRENCYISO nvarchar(3);
    declare @CURRENCYDECIMALDIGITS tinyint;
    declare @CURRENCYSYMBOL nvarchar(5);
    declare @CURRENCYSYMBOLDISPLAYSETTINGCODE tinyint;
    declare @CURRENCYROUNDINGTYPECODE tinyint;
    declare @ORGANIZATIONAMOUNTORIGINCODE tinyint;

    declare @REVENUECOUNT integer;
    declare @DONORCOUNT integer;
    declare @GOAL money;
    declare @REVENUE as money;

    begin try
      if @SHOW = 1
        begin
          -- NOTE: Be sure to update AppealProfileReportSectionsHaveData.View.xml if you modify

          -- the joins/constraints of the below query.


          exec dbo.[USP_REPORT_APPEALPROFILE_REVENUEPARAMETERS]
            @APPEALID,
            @REPORTUSERID,
            @ALTREPORTUSERID,
            @CURRENCYCODE,
            @CURRENTAPPUSERID output,
            @CURRENCYID output,
            @ORGANIZATIONCURRENCYID output,
            @CURRENCYISO output,
            @CURRENCYDECIMALDIGITS output,
            @CURRENCYSYMBOL output,
            @CURRENCYSYMBOLDISPLAYSETTINGCODE output,
            @CURRENCYROUNDINGTYPECODE output,
            @ORGANIZATIONAMOUNTORIGINCODE output;

          select
            @GOAL = sum(distinct [GOALINCURRENCY]) -- I've no idea why this sum(distinct is here...I'll bet it's copy-pasted...

          from dbo.[UFN_APPEAL_GETGOALINCURRENCY_BULK2](@CURRENCYID, @ORGANIZATIONCURRENCYID, @CURRENCYDECIMALDIGITS, @CURRENCYROUNDINGTYPECODE, 1)
          where [ID] = @APPEALID;

          select
            @REVENUECOUNT = count(distinct [REVENUEID]),
            @DONORCOUNT = count(distinct [CONSTITUENTID]),
            @REVENUE = sum([AMOUNT])
          from dbo.[UFN_REPORT_APPEALPROFILE_REVENUE] (
            @CURRENTAPPUSERID,
            @CURRENCYCODE,
            @CURRENCYID,
            @ORGANIZATIONCURRENCYID,
            @CURRENCYISO,
            @CURRENCYDECIMALDIGITS,
            @CURRENCYSYMBOL,
            @CURRENCYSYMBOLDISPLAYSETTINGCODE,
            @CURRENCYROUNDINGTYPECODE,
            @ORGANIZATIONAMOUNTORIGINCODE) as [REVENUE]
          where
            [REVENUE].[APPEALID] = @APPEALID
            and [REVENUE].[INCLUDEINSUMMARY] = 1;

          set @REVENUECOUNT = isnull(@REVENUECOUNT, 0);
          set @GOAL = isnull(@GOAL, 0);
          set @REVENUE = isnull(@REVENUE, 0);

          select
            @REVENUE as [TOTALREVENUE],
            case when @GOAL = 0 then 0 else @REVENUE / @GOAL end as [PERCENT],
            @REVENUECOUNT as [TOTALGIFTS],
            isnull(@DONORCOUNT, 0) as [TOTALDONORS],
            case when @REVENUECOUNT = 0 then 0 else @REVENUE / @REVENUECOUNT end as [AVERAGEGIFT],
            @CURRENCYID as [CURRENCYID],
            @CURRENCYISO as [CURRENCYISO],
            @CURRENCYDECIMALDIGITS as [CURRENCYDECIMALDIGITS],
            @CURRENCYSYMBOL as [CURRENCYSYMBOL],
            @CURRENCYSYMBOLDISPLAYSETTINGCODE as [CURRENCYSYMBOLDISPLAYSETTINGCODE]
        end
    end try

    begin catch
      exec dbo.[USP_RAISE_ERROR];
      return 1;
    end catch

    return 0;
  end