UFN_QUERY_FAFDONATION_LISTBUILDER

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN

Definition

Copy


CREATE function dbo.UFN_QUERY_FAFDONATION_LISTBUILDER
(
  @ID uniqueidentifier
)
returns table as return(
  SELECT
    FAFDONATIONCONSTITUENT.ID,
    GIFTDATE, 
    FIRSTNAME, 
    LASTNAME, 
    FAFDONATION.AMOUNT,
    RECOGNITION, 
    TRANSACTIONTYPE,
    GROUPNAME, 
    GROUPTYPE,
    FAFDONATION.EMAIL,
    REVENUELOOKUPID, 
    INBOUNDCHANNEL,
    ADDRESS,
    ADDRESSTYPE,
    CITY,
    STATE,
    ZIP,
    COUNTRY,
    PHONENUMBER,
    PHONETYPE,
    TITLE,
    SUFFIX,
    ISANONYMOUSGIFT,
    DONOTCALL,
    DONOTMAIL,
    DONOTEMAIL,
    CREDITCARDTYPE,
    CHECKNUMBER,
    RECEIPTNUMBER,
    CHECKDATE,
    SOLICITATIONCHANNNEL,
    ISONLINEGIFT =
    case ISONLINEGIFT
    when 1 then 'Online'
    else 'Offline'
    end,
    PAYMENTMETHOD,
    POSTSTATUS,
    TRIBUTEE,
    TRIBUTEMESSAGE,
    TRIBUTETYPE,
    MATCHINGGIFTCLAIMED,
    MATCHINGGIFTPAID,
    MATCHINGGIFTORGANIZATION,
    ISPREVIOUSDONOR,
    REGISTRANTROLE,
    COMPANYNAME,
    COMPANYADDRESS,
    COMPANYADDRESSTYPE,
    COMPANYCITY,
    COMPANYSTATE,
    COMPANYZIP,
    COMPANYPHONE,
    FAFDONATION.COMPANYEMAIL,
    FAFDONATION.COMPANYWEBADDRESS,
    ISCOMPANYDONATION,
    REVENUEDATECHANGED,
    REVENUECHANGEDBY,
    DONORLOOKUPID,
    FAFDONATION.REVENUEID,
    ORGCONSTITUENTID = 
    case isnull(foir.ID, '00000000-0000-0000-0000-000000000000')
      when '00000000-0000-0000-0000-000000000000' then FAFDONATION.CONSTITUENTID
      else foir.ORGANIZATIONCONSTITUENTID
    end,
    rs.DESIGNATIONID

    /*#EXTENSION*/

  from dbo.FAFDONATION    
  left join dbo.FAFORGANIZATIONINDIVIDUALRELATION foir
    on foir.REVENUEID = FAFDONATION.REVENUEID
  left join dbo.REVENUESPLIT rs
    on rs.REVENUEID=FAFDONATION.REVENUEID and RS.APPLICATIONCODE in (0,7,17)
  inner join (
      select
        FD2.ID AS RECORDID,
        case isnull(foir2.ID, '00000000-0000-0000-0000-000000000000') when '00000000-0000-0000-0000-000000000000' then FD2.CONSTITUENTID else foir2.INDIVIDUALCONSTITUENTID END as ID
      from FAFDONATION FD2
      left join dbo.FAFORGANIZATIONINDIVIDUALRELATION foir2
        on foir2.REVENUEID = FD2.REVENUEID
  ) as FAFDONATIONCONSTITUENT
    on FAFDONATIONCONSTITUENT.RECORDID=FAFDONATION.ID

  where FAFDONATION.EVENTID = @ID
    and exists(select 1 from dbo.FAFDONATION where eventID=@ID)

  union all

  select
    FAFDONATIONCONSTITUENT.ID,
    GIFTDATE, 
    FIRSTNAME, 
    LASTNAME, 
    FAFDONATION.AMOUNT,
    RECOGNITION, 
    TRANSACTIONTYPE,
    GROUPNAME, 
    GROUPTYPE,
    FAFDONATION.EMAIL,
    REVENUELOOKUPID, 
    INBOUNDCHANNEL,
    ADDRESS,
    ADDRESSTYPE,
    CITY,
    STATE,
    ZIP,
    COUNTRY,
    PHONENUMBER,
    PHONETYPE,
    TITLE,
    SUFFIX,
    ISANONYMOUSGIFT,
    DONOTCALL,
    DONOTMAIL,
    DONOTEMAIL,
    CREDITCARDTYPE,
    CHECKNUMBER,
    RECEIPTNUMBER,
    CHECKDATE,
    SOLICITATIONCHANNNEL,
    ISONLINEGIFT =
    case ISONLINEGIFT
    when 1 then 'Online'
    else 'Offline'
    end,
    PAYMENTMETHOD,
    POSTSTATUS,
    TRIBUTEE,
    TRIBUTEMESSAGE,
    TRIBUTETYPE,
    MATCHINGGIFTCLAIMED,
    MATCHINGGIFTPAID,
    MATCHINGGIFTORGANIZATION,
    ISPREVIOUSDONOR,
    REGISTRANTROLE,
    COMPANYNAME,
    COMPANYADDRESS,
    COMPANYADDRESSTYPE,
    COMPANYCITY,
    COMPANYSTATE,
    COMPANYZIP,
    COMPANYPHONE,
    FAFDONATION.COMPANYEMAIL,
    FAFDONATION.COMPANYWEBADDRESS,
    ISCOMPANYDONATION,
    REVENUEDATECHANGED,
    REVENUECHANGEDBY,
    DONORLOOKUPID,
    FAFDONATION.REVENUEID,
    ORGCONSTITUENTID = 
      case isnull(foir.ID, '00000000-0000-0000-0000-000000000000')
      when '00000000-0000-0000-0000-000000000000' then FAFDONATION.CONSTITUENTID
      else foir.ORGANIZATIONCONSTITUENTID
    end,
    rs.DESIGNATIONID

        /*#EXTENSION*/

  from dbo.V_FAF_DONATION as FAFDONATION
  left join dbo.FAFORGANIZATIONINDIVIDUALRELATION foir
    on foir.REVENUEID = FAFDONATION.REVENUEID
  inner join (
      select
        FD2.ID as RECORDID,
        case isnull(foir2.ID, '00000000-0000-0000-0000-000000000000') when '00000000-0000-0000-0000-000000000000' then FD2.CONSTITUENTID else foir2.INDIVIDUALCONSTITUENTID END as ID
      from FAFDONATION FD2
      left join dbo.FAFORGANIZATIONINDIVIDUALRELATION foir2
        on foir2.REVENUEID = FD2.REVENUEID
  ) as FAFDONATIONCONSTITUENT
    on FAFDONATIONCONSTITUENT.RECORDID=FAFDONATION.ID
  left join dbo.REVENUESPLIT rs
    on rs.REVENUEID=FAFDONATION.REVENUEID and RS.APPLICATIONCODE in (0,7,17)    
  where FAFDONATION.EVENTID = @ID
  and not exists(select 1 from dbo.FAFDONATION where eventid = @ID)
)