UFN_CAMPAIGN_GETTOTALRECOGNITIONRECEIVEDINCURRENCY

Returns total recognition received for a campaign converting amounts to the specified currency.

Return

Return Type
table

Parameters

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

Definition

Copy


            CREATE function dbo.UFN_CAMPAIGN_GETTOTALRECOGNITIONRECEIVEDINCURRENCY (
                @HIERARCHYPATH hierarchyid,
                @STARTDATE datetime = null,
                @ENDDATE datetime = null,
                @RECOGNITIONTYPEID uniqueidentifier,
                @CURRENCYID uniqueidentifier = null,
                @ORGANIZATIONCURRENCYID uniqueidentifier =null
            ) returns table as
            return
                select
          case when @CURRENCYID = coalesce(@ORGANIZATIONCURRENCYID,dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY()) then
            coalesce(sum(RECOGNITIONS.ORGANIZATIONAMOUNT),0)
          when @CURRENCYID = RECOGNITIONS.BASECURRENCYID then
            coalesce(sum(RECOGNITIONS.AMOUNT),0)
          else
                      coalesce(sum(RECOGNITIONS.AMOUNTINCURRENCY), 0)
          end TOTALRECEIVED
                from
                    dbo.REVENUESPLIT
                inner join (
                    select 
                        distinct REVENUESPLITCAMPAIGN.REVENUESPLITID
                    from
                        dbo.REVENUESPLITCAMPAIGN
                    inner join
                        dbo.CAMPAIGN on REVENUESPLITCAMPAIGN.CAMPAIGNID = CAMPAIGN.ID
                    where
                        CAMPAIGN.HIERARCHYPATH.IsDescendantOf(@HIERARCHYPATH) = 1
                ) as CAMPAIGNREVENUESPLIT on REVENUESPLIT.ID = CAMPAIGNREVENUESPLIT.REVENUESPLITID    
                cross apply 
                    dbo.UFN_RECOGNITIONCREDIT_GETRECOGNITIONS_3(1, @RECOGNITIONTYPEID, @CURRENCYID, REVENUESPLIT.ID, @STARTDATE, @ENDDATE) RECOGNITIONS
                left outer join 
                    dbo.REVENUE on REVENUESPLIT.REVENUEID = REVENUE.ID
                where
                    ((REVENUE.TRANSACTIONTYPECODE = 0) or
            (REVENUE.TRANSACTIONTYPECODE = 8 and 
              exists (select 1 from DONORCHALLENGEENCUMBERED 
                      inner join dbo.REVENUESPLITCAMPAIGN on DONORCHALLENGEENCUMBERED.REVENUESPLITID = REVENUESPLITCAMPAIGN.REVENUESPLITID 
                      inner join dbo.CAMPAIGN on REVENUESPLITCAMPAIGN.CAMPAIGNID = CAMPAIGN.ID
                      where MATCHEDREVENUEID = REVENUE.ID and 
                        CAMPAIGN.HIERARCHYPATH.IsDescendantOf(@HIERARCHYPATH) = 1 and
                        DONORCHALLENGEENCUMBERED.DESIGNATIONID = REVENUESPLIT.DESIGNATIONID)))
                and
                    REVENUESPLIT.APPLICATIONCODE in (0, 6, 7, 3, 10)
                and 
                    (REVENUESPLIT.APPLICATIONCODE <> 10 or REVENUESPLIT.TYPECODE = 0)
                and
                    (RECOGNITIONS.REVENUERECOGNITIONTYPECODEID = @RECOGNITIONTYPEID or @RECOGNITIONTYPEID is null)
        group by RECOGNITIONS.BASECURRENCYID