USP_DATALIST_FAFHONORROLL

Friends Asking Friends Honor Roll data list.

Parameters

Parameter Parameter Type Mode Description
@RECORDID uniqueidentifier IN Record ID
@EVENTID uniqueidentifier IN Event ID
@RECORDTYPE tinyint IN Record type
@APPLICATIONCODE bit IN Application code
@TOTALROWS int IN Total rows

Definition

Copy


CREATE procedure dbo.USP_DATALIST_FAFHONORROLL
(
@RECORDID uniqueidentifier,  -- constituent id

@EVENTID uniqueidentifier,
@RECORDTYPE tinyint = 0,
@APPLICATIONCODE bit = -1,
@TOTALROWS int = 50
)
as
    set nocount on;
  declare @TEAMFUNDRAISINGTEAMID uniqueidentifier
  select @TEAMFUNDRAISINGTEAMID=TEAMFUNDRAISINGTEAMID from dbo.TEAMEXTENSION where TEAMCONSTITUENTID = @RECORDID

  DECLARE @RevenueSplit TABLE
  (
    REVENUESPLITID uniqueidentifier,
    CONSTITUENTID uniqueidentifier
  )


  ;With [Groups] (TEAMID, PARENTTEAMID, CONSTITUENTID)
  AS 
  (    select TFT.ID, TFT.PARENTTEAMID, TX.TEAMCONSTITUENTID AS CONSTITUENTID
      from dbo.TEAMFUNDRAISINGTEAM TFT (nolock)
      join dbo.TEAMEXTENSION TX (nolock) ON TFT.ID = TX.TEAMFUNDRAISINGTEAMID
      where TFT.ID = @TEAMFUNDRAISINGTEAMID

      union all

      select TFT.ID, TFT.PARENTTEAMID, TX.TEAMCONSTITUENTID AS CONSTITUENTID
      from [Groups] C 
      join dbo.TEAMFUNDRAISINGTEAM TFT (nolock) ON TFT.parentTEAMID = C.TEAMID
      join dbo.TEAMEXTENSION TX (nolock) on TFT.ID = TX.TEAMFUNDRAISINGTEAMID
  ),
  [Members] 
  AS 
  (
      select TFT.TEAMID, TFT.PARENTTEAMID, TF.CONSTITUENTID
      from [Groups] TFT
      join dbo.TEAMFUNDRAISINGTEAMMEMBER TFTM (nolock) on TFT.TEAMID = TFTM.TEAMFUNDRAISINGTEAMID
      join dbo.TEAMFUNDRAISER TF (nolock) on TFTM.TEAMFUNDRAISERID = TF.ID  
  ),
  [All]
  AS
  (
      Select CONSTITUENTID from [Groups] where @RECORDTYPE <> 0
      Union All
      Select CONSTITUENTID from [Members] where @RECORDTYPE <> 0
      Union All
      Select @RECORDID as CONSTITUENTID where @RECORDTYPE = 0
  )
  insert into @RevenueSplit
      select RC.REVENUESPLITID, RC.CONSTITUENTID from [All] A 
          join dbo.REVENUERECOGNITION RC (nolock) on RC.CONSTITUENTID = A.CONSTITUENTID

  select top (@TOTALROWS)
      R.ID as REVENUEID,
          participant.NAME as PARTICIPANTNAME, 
            FTLI.TRANSACTIONAMOUNT AS DONATEAMOUNT,
              case RX.GIVENANONYMOUSLY when 1 Then 'Anonymous' else donor.NAME end AS DONORNAME,
              case RT.ISTRIBUTEANONYMOUS when 1 Then null else TC.[DESCRIPTION] end AS TRIBUTETYPE, 
              case RT.ISTRIBUTEANONYMOUS when 1 Then null else ISNULL(tributee.NAME, TEX.TRIBUTEEFIRSTNAME + ' ' + TEX.TRIBUTEELASTNAME) end AS TRIBUTEENAME, 
              case RT.ISTRIBUTEANONYMOUS when 1 Then null else T.TRIBUTETEXT end as TRIBUTETEXT
      from @RevenueSplit A
      join dbo.CONSTITUENT participant (nolock) on A.CONSTITUENTID = participant.ID
    join dbo.FINANCIALTRANSACTIONLINEITEM FTLI (nolock) on FTLI.ID = A.REVENUESPLITID
      join dbo.REVENUESPLIT_EXT RS (nolock) on FTLI.ID = RS.ID AND RS.TYPECODE = 0 
      join dbo.FINANCIALTRANSACTION R (nolock) on FTLI.FINANCIALTRANSACTIONID = R.ID AND (R.TYPECODE = 0 and RS.APPLICATIONCODE in (0, 7, 17) OR R.TYPECODE IN (1,2) )
    join dbo.REVENUE_EXT RX (nolock) on RX.ID = R.ID 
    join dbo.EVENT E on RX.APPEALID = E.APPEALID and E.ID = @EVENTID
      left join dbo.CONSTITUENT (nolock) donor on donor.ID = R.CONSTITUENTID
      left join dbo.REVENUETRIBUTE RT (nolock) on R.ID = RT.REVENUEID
      left join dbo.TRIBUTE T (nolock) on RT.TRIBUTEID = T.ID
      left join dbo.TRIBUTEEXTENSION TEX (nolock) on TEX.TRIBUTEID = T.ID 
      left join dbo.TRIBUTETYPECODE TC (nolock) on T.TRIBUTETYPECODEID = TC.ID
      left join dbo.CONSTITUENT tributee (nolock) on T.TRIBUTEEID = tributee.ID
      order by R.DATEADDED desc