USP_DATALIST_SPONSORSHIP

List of all the sponsorships associated with one constituent.

Parameters

Parameter Parameter Type Mode Description
@CONSTITUENTID uniqueidentifier IN Input parameter indicating the context ID for the data list.
@SHOWHISTORY bit IN Show commitment history

Definition

Copy


CREATE procedure dbo.USP_DATALIST_SPONSORSHIP(
    @CONSTITUENTID uniqueidentifier,
    @SHOWHISTORY bit = 0
)
as
    set nocount on;

    -- Commitments

    select
      SPONSORSHIPCOMMITMENT.ID,
      null PARENTID,
      null SPONSORSHIPID,
      isnull(LASTTRANSACTION.TARGETSPONSORSHIPID,LASTTRANSACTION.CONTEXTSPONSORSHIPID) CONTEXTSPONSORSHIPID,
      SPONSORSHIPCOMMITMENT.COMMITMENTSEQUENCE,
      -1 SPONSORSHIPSEQUENCE,
      null SPONSORSHIPOPPORTUNITYID,
      null NAME,
    null PROGRAMID,
      '' PROGRAM,
      (select min(STARTDATE) from dbo.SPONSORSHIP where SPONSORSHIP.SPONSORSHIPCOMMITMENTID = SPONSORSHIPCOMMITMENT.ID) STARTDATE,
      case when LASTTRANSACTION.ACTIONCODE in(2,3,5) then LASTSPONSORSHIP.ENDDATE end ENDDATE,
      case when LASTTRANSACTION.ACTIONCODE in(2,3) or (LASTTRANSACTION.ACTIONCODE = 5 and LASTSPONSORSHIP.ENDDATE is not null) then 'Inactive'
           when LASTTRANSACTION.ACTIONCODE = 6 then 'Active (Transfer pending)'
           else 'Active' end STATUS,
      '' REASON,
      LASTTRANSACTION.ID TRANSACTIONID,
      LASTTRANSACTION.ACTIONCODE ACTIONCODE,
      0 DELETEALLOWED,
      dbo.UFN_SPONSORSHIP_REACTIVATEALLOWED(isnull(LASTTRANSACTION.TARGETSPONSORSHIPID,LASTTRANSACTION.CONTEXTSPONSORSHIPID)) REACTIVATEALLOWED,
      null REASSIGNEDCONSTITUENTID,
      '' REASSIGNEDCONSTITUENTNAME,
      PAIDFORBY_NF.NAME PAIDFORBY,
      dbo.UFN_SPONSORSHIP_GIFTFINANCIALSPONSORID(LASTSPONSORSHIP.ID) PAIDFORBYID,
      REVENUE.ID REVENUEID,
      SPONSORSHIPCOMMITMENT.LOOKUPID COMMITMENTID
    from dbo.SPONSORSHIPCOMMITMENT
    inner join dbo.SPONSORSHIPTRANSACTION LASTTRANSACTION on LASTTRANSACTION.SPONSORSHIPCOMMITMENTID = SPONSORSHIPCOMMITMENT.ID and LASTTRANSACTION.TRANSACTIONSEQUENCE = (select max(TRANSACTIONSEQUENCE) from dbo.SPONSORSHIPTRANSACTION MAXSEQUENCE where MAXSEQUENCE.SPONSORSHIPCOMMITMENTID = SPONSORSHIPCOMMITMENT.ID and MAXSEQUENCE.ACTIONCODE <> 9)
    left outer join dbo.SPONSORSHIP LASTSPONSORSHIP on LASTSPONSORSHIP.SPONSORSHIPCOMMITMENTID = SPONSORSHIPCOMMITMENT.ID and ((LASTTRANSACTION.ACTIONCODE = 5 and LASTSPONSORSHIP.ID in(LASTTRANSACTION.TARGETSPONSORSHIPID,LASTTRANSACTION.CONTEXTSPONSORSHIPID)) or (LASTTRANSACTION.ACTIONCODE <> 5 and LASTSPONSORSHIP.ID = isnull(LASTTRANSACTION.TARGETSPONSORSHIPID,LASTTRANSACTION.CONTEXTSPONSORSHIPID)))
    left outer join dbo.REVENUESPLIT on REVENUESPLIT.ID = LASTSPONSORSHIP.REVENUESPLITID
    left outer join dbo.REVENUE on REVENUE.ID = REVENUESPLIT.REVENUEID
    outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(dbo.UFN_SPONSORSHIP_GIFTFINANCIALSPONSORID(LASTSPONSORSHIP.ID)) PAIDFORBY_NF
    where SPONSORSHIPCOMMITMENT.CONSTITUENTID = @CONSTITUENTID
    and @SHOWHISTORY = 1
    union all
    -- Sponsorships

    select
      SPONSORSHIP.ID ID,
      case when @SHOWHISTORY = 1 then SPONSORSHIP.SPONSORSHIPCOMMITMENTID end PARENTID,
      SPONSORSHIP.ID SPONSORSHIPID,
      SPONSORSHIP.ID CONTEXTSPONSORSHIPID,
      SPONSORSHIPCOMMITMENT.COMMITMENTSEQUENCE,
      CREATETRANSACTION.TRANSACTIONSEQUENCE SPONSORSHIPSEQUENCE,
      SPONSORSHIPOPPORTUNITY.ID,
      dbo.UFN_SPONSORSHIPOPPORTUNITY_TRANSLATIONFUNCTION(SPONSORSHIP.SPONSORSHIPOPPORTUNITYID) NAME,
      SPONSORSHIPPROGRAM.ID PROGRAMID,
    SPONSORSHIPPROGRAM.NAME PROGRAM,
    SPONSORSHIP.STARTDATE,
      SPONSORSHIP.ENDDATE,
      case SPONSORSHIP.STATUSCODE 
        when 1 then
          case LASTTRANSACTION.ACTIONCODE
            when 6 then 'Active (Transfer pending)'
            when 5 then 'Active (Reassigned from ' + REASSIGNEDCONSTITUENTNAME_NF.NAME + ')'
            else 'Active' end
        when 2 then
          case LASTTRANSACTION.ACTIONCODE
            when 1 then 'Transferred'
            when 2 then
              case SPONSORSHIP.ID
                when LASTTRANSACTION.CONTEXTSPONSORSHIPID then
                  case SPONSORSHIPREASON.REASONTYPECODE when 11 then 'Expired' else 'Cancelled' end
                when LASTTRANSACTION.DECLINEDSPONSORSHIPID then 'Declined' end
            when 3 then 'Terminated'
            when 5 then 'Reassigned to ' + REASSIGNEDCONSTITUENTNAME_NF.NAME
            when 7 then 
              case SPONSORSHIP.ID
                when LASTTRANSACTION.CONTEXTSPONSORSHIPID then 'Transferred'
                when LASTTRANSACTION.DECLINEDSPONSORSHIPID then 'Declined' end
            when 8 then 'Transferred' end
        else SPONSORSHIP.STATUS end STATUS,
      case when SPONSORSHIP.STATUSCODE = 2 or (SPONSORSHIP.STATUSCODE = 1 and LASTTRANSACTION.ACTIONCODE = 6) then SPONSORSHIPREASON.REASON end REASON,
      LASTTRANSACTION.ID TRANSACTIONID,
      LASTTRANSACTION.ACTIONCODE ACTIONCODE,
      dbo.UFN_SPONSORSHIP_DELETEALLOWED(SPONSORSHIP.ID) DELETEALLOWED,
      dbo.UFN_SPONSORSHIP_REACTIVATEALLOWED(SPONSORSHIP.ID) REACTIVATEALLOWED,
      REASSIGNED.CONSTITUENTID REASSIGNEDCONSTITUENTID,
      REASSIGNEDCONSTITUENTNAME_NF.NAME REASSIGNEDCONSTITUENTNAME,
      PAIDFORBY_NF.NAME PAIDFORBY,
      dbo.UFN_SPONSORSHIP_GIFTFINANCIALSPONSORID(SPONSORSHIP.ID) PAIDFORBYID,
      REVENUE.ID,
      case  @SHOWHISTORY
        when 0 then SPONSORSHIPCOMMITMENT.LOOKUPID
        else null
      end COMMITMENTID
  from dbo.SPONSORSHIP
    inner join dbo.SPONSORSHIPCOMMITMENT on SPONSORSHIPCOMMITMENT.ID = SPONSORSHIP.SPONSORSHIPCOMMITMENTID
    inner join dbo.SPONSORSHIPOPPORTUNITY on SPONSORSHIPOPPORTUNITY.ID = SPONSORSHIP.SPONSORSHIPOPPORTUNITYID
    inner join dbo.SPONSORSHIPPROGRAM on SPONSORSHIPPROGRAM.ID = SPONSORSHIP.SPONSORSHIPPROGRAMID
    inner join dbo.SPONSORSHIPTRANSACTION CREATETRANSACTION on CREATETRANSACTION.SPONSORSHIPCOMMITMENTID = SPONSORSHIP.SPONSORSHIPCOMMITMENTID and CREATETRANSACTION.TRANSACTIONSEQUENCE = (select min(TRANSACTIONSEQUENCE) from dbo.SPONSORSHIPTRANSACTION MINSEQUENCE where MINSEQUENCE.SPONSORSHIPCOMMITMENTID = SPONSORSHIP.SPONSORSHIPCOMMITMENTID and MINSEQUENCE.TARGETSPONSORSHIPID = SPONSORSHIP.ID)
    inner join dbo.SPONSORSHIPTRANSACTION LASTTRANSACTION on LASTTRANSACTION.SPONSORSHIPCOMMITMENTID = SPONSORSHIP.SPONSORSHIPCOMMITMENTID 
      and LASTTRANSACTION.TRANSACTIONSEQUENCE = (
        select max(TRANSACTIONSEQUENCE) 
        from dbo.SPONSORSHIPTRANSACTION MAXSEQUENCE 
        where MAXSEQUENCE.SPONSORSHIPCOMMITMENTID = SPONSORSHIP.SPONSORSHIPCOMMITMENTID 
          and (SPONSORSHIP.ID in(MAXSEQUENCE.TARGETSPONSORSHIPID,MAXSEQUENCE.DECLINEDSPONSORSHIPID) 
            or (SPONSORSHIP.ID = MAXSEQUENCE.CONTEXTSPONSORSHIPID and MAXSEQUENCE.DECLINEDSPONSORSHIPID is null) )
          and MAXSEQUENCE.ACTIONCODE <> 9)    left outer join dbo.SPONSORSHIP REASSIGNED on REASSIGNED.ID = case SPONSORSHIP.STATUSCODE when 1 then LASTTRANSACTION.CONTEXTSPONSORSHIPID when 2 then LASTTRANSACTION.TARGETSPONSORSHIPID end and LASTTRANSACTION.ACTIONCODE = 5
    left outer join dbo.SPONSORSHIPREASON on SPONSORSHIPREASON.ID = LASTTRANSACTION.SPONSORSHIPREASONID
    left outer join dbo.REVENUESPLIT on REVENUESPLIT.ID = SPONSORSHIP.REVENUESPLITID
    left outer join dbo.REVENUE on REVENUE.ID = REVENUESPLIT.REVENUEID
    outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(REASSIGNED.CONSTITUENTID) REASSIGNEDCONSTITUENTNAME_NF
    outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(dbo.UFN_SPONSORSHIP_GIFTFINANCIALSPONSORID(SPONSORSHIP.ID)) PAIDFORBY_NF
    where SPONSORSHIPCOMMITMENT.CONSTITUENTID = @CONSTITUENTID
    and (@SHOWHISTORY = 1 or SPONSORSHIP.STATUSCODE = 1)
    order by COMMITMENTSEQUENCE, SPONSORSHIPSEQUENCE;