UFN_REVENUE_GETRECOGNITIONS_FORREVENUE

Returns all recognitions for a given revenue record.

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@REVENUEID uniqueidentifier IN

Definition

Copy


CREATE function dbo.UFN_REVENUE_GETRECOGNITIONS_FORREVENUE(@REVENUEID uniqueidentifier)
returns table
as
  return 
  (
    select 
        REVENUERECOGNITION.[ID],
        REVENUERECOGNITION.[CONSTITUENTID],
        CONSTITUENT.NAME,
        REVENUERECOGNITION.[AMOUNT],
        -- If this is a recurring gift, just use the revenue date as the effective date.  If the actual

        -- recognition effective date were used then the sorting could be off since the effective date isn't displayed

        -- for that revenue type.

        case when FINANCIALTRANSACTION.TYPECODE <> 2 then [EFFECTIVEDATE] else convert(datetime,FINANCIALTRANSACTION.DATE) end 'EFFECTIVEDATE',
        [REVENUERECOGNITIONTYPECODEID],
        REVENUERECOGNITIONTYPECODE.DESCRIPTION as RECOGNITIONTYPE,
      case FINANCIALTRANSACTIONLINEITEM.BASEAMOUNT
      when 0 then 0
      else
        case FINANCIALTRANSACTION.TYPECODE 
                when 1 then 
            case when REVENUERECOGNITION.AMOUNT > FINANCIALTRANSACTIONLINEITEM.BASEAMOUNT then dbo.UFN_GIFTAIDREVENUESPLIT_CALCULATEPLEDGESPLITGROSSAMOUNT_2(FINANCIALTRANSACTIONLINEITEM.ID, REVENUERECOGNITION.BASECURRENCYID) - FINANCIALTRANSACTIONLINEITEM.BASEAMOUNT + REVENUERECOGNITION.AMOUNT 
            else REVENUERECOGNITION.AMOUNT/FINANCIALTRANSACTIONLINEITEM.BASEAMOUNT * (dbo.UFN_GIFTAIDREVENUESPLIT_CALCULATEPLEDGESPLITGROSSAMOUNT_2(FINANCIALTRANSACTIONLINEITEM.ID, REVENUERECOGNITION.BASECURRENCYID) - FINANCIALTRANSACTIONLINEITEM.BASEAMOUNT) + REVENUERECOGNITION.AMOUNT end
          when 2 then 
            case when REVENUERECOGNITION.AMOUNT > FINANCIALTRANSACTIONLINEITEM.BASEAMOUNT then dbo.UFN_GIFTAIDREVENUESPLIT_GETSPLITTAXCLAIMAMOUNT_2(FINANCIALTRANSACTIONLINEITEM.ID, 1, 0) + REVENUERECOGNITION.AMOUNT 
            else REVENUERECOGNITION.AMOUNT/FINANCIALTRANSACTIONLINEITEM.BASEAMOUNT * dbo.UFN_GIFTAIDREVENUESPLIT_GETSPLITTAXCLAIMAMOUNT_2(FINANCIALTRANSACTIONLINEITEM.ID, 1, 0) + REVENUERECOGNITION.AMOUNT end
          else REVENUERECOGNITION.AMOUNT
        end
          end as GROSSAMOUNT,
          REVENUERECOGNITION.BASECURRENCYID,
          REVENUERECOGNITION.ORGANIZATIONAMOUNT,
          REVENUERECOGNITION.ORGANIZATIONEXCHANGERATEID,
      FINANCIALTRANSACTIONLINEITEM.ID REVENUESPLITID
    from 
          dbo.REVENUERECOGNITION
          inner join dbo.CONSTITUENT on CONSTITUENT.ID = REVENUERECOGNITION.CONSTITUENTID
          inner join dbo.FINANCIALTRANSACTIONLINEITEM on FINANCIALTRANSACTIONLINEITEM.ID = REVENUERECOGNITION.REVENUESPLITID
          inner join dbo.REVENUESPLIT_EXT on FINANCIALTRANSACTIONLINEITEM.ID = REVENUESPLIT_EXT.ID
          inner join dbo.FINANCIALTRANSACTION on FINANCIALTRANSACTION.ID = FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID
          left join dbo.REVENUERECOGNITIONTYPECODE on REVENUERECOGNITION.REVENUERECOGNITIONTYPECODEID = REVENUERECOGNITIONTYPECODE.ID
    where 
          FINANCIALTRANSACTION.ID = @REVENUEID
          and FINANCIALTRANSACTIONLINEITEM.DELETEDON is null
  )