UFN_CAMPAIGNPRIORITY_GETPLEDGEBALANCEINCURRENCY

Returns total revenue expected for a campaign priority converting amounts to the specified currency.

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@HIERARCHYPATH hierarchyid IN
@PRIORITYID uniqueidentifier IN
@STARTDATE datetime IN
@ENDDATE datetime IN
@CURRENCYID uniqueidentifier IN

Definition

Copy


      create function [dbo].UFN_CAMPAIGNPRIORITY_GETPLEDGEBALANCEINCURRENCY (
          @HIERARCHYPATH hierarchyid,
          @PRIORITYID uniqueidentifier,
          @STARTDATE datetime = null,
          @ENDDATE datetime = null,
          @CURRENCYID uniqueidentifier = null
      ) returns table as
      return
      (
          with CAMPAIGNSUBPRIORITY_CTE as (
              select 
                      ID
                  from
                      CAMPAIGNSUBPRIORITY
                  where
                      CAMPAIGNPRIORITYID = @PRIORITYID
          ),        
          CAMPAIGNPRIORITYREVENUESPLIT_CTE as (
              select 
                  distinct REVENUESPLITCAMPAIGN.REVENUESPLITID
              from
                  dbo.REVENUESPLITCAMPAIGN
              inner join
                  dbo.CAMPAIGN on REVENUESPLITCAMPAIGN.CAMPAIGNID = CAMPAIGN.ID
              inner join 
                  CAMPAIGNSUBPRIORITY_CTE on REVENUESPLITCAMPAIGN.CAMPAIGNSUBPRIORITYID = CAMPAIGNSUBPRIORITY_CTE.ID            
              where
                  CAMPAIGN.HIERARCHYPATH.IsDescendantOf(@HIERARCHYPATH) = 1
          ),
          CAMPAIGNREVENUE_CTE as (
              select
                  distinct REVENUE.ID [REVENUEID]
              from
                  dbo.REVENUE
              inner join
                  dbo.REVENUESPLIT on REVENUE.ID = REVENUESPLIT.REVENUEID
              inner join
                  CAMPAIGNPRIORITYREVENUESPLIT_CTE on REVENUESPLIT.ID = CAMPAIGNPRIORITYREVENUESPLIT_CTE.REVENUESPLITID
          )
          select 
              coalesce(sum(dbo.UFN_REVENUESPLIT_GETAMOUNTINCURRENCY(RDS.ID, @CURRENCYID)), 0)
                  -
              (
              coalesce(( --Subtract Writeoffs of the above pledges

                  select 
                      sum(dbo.UFN_WRITEOFFSPLIT_GETAMOUNTINCURRENCY(WOS.ID, @CURRENCYID))
                  from 
                      dbo.WRITEOFFSPLIT WOS
                  inner join 
                      dbo.WRITEOFF WO on WOS.WRITEOFFID = WO.ID
                  inner join 
                      dbo.REVENUE R on WO.REVENUEID = R.ID
                  inner join
                      CAMPAIGNREVENUE_CTE on R.ID = CAMPAIGNREVENUE_CTE.REVENUEID                            
                  where 
                      (R.DATE >= @STARTDATE or @STARTDATE is null
                  and
                      (R.DATE <= @ENDDATE or @ENDDATE is null
                  and  -- Bug 16153 - AdamBu - Remove matching gift claims from this calculation

                      R.TRANSACTIONTYPECODE in (1,6)
              ), 0)) [PLEDGEBALANCE]
              from 
                  dbo.REVENUESPLIT RDS
              inner join 
                  dbo.REVENUE R on R.ID = RDS.REVENUEID
              inner join
                  CAMPAIGNPRIORITYREVENUESPLIT_CTE on RDS.ID = CAMPAIGNPRIORITYREVENUESPLIT_CTE.REVENUESPLITID
              where
                  (R.DATE >= @STARTDATE or @STARTDATE is null
              and
                  (R.DATE <= @ENDDATE or @ENDDATE is null
              and -- Bug 16153 - AdamBu - Remove matching gift claims from this calculation and only include planned gifts if they also have a payment. (JamesWill Earth -- Remove planned gifts entirely)

                  R.TRANSACTIONTYPECODE in (1,6) --Pledges and Grant Awards

      )