USP_DATALIST_REVENUEMERGEDATA
Returns revenue merge data
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@EVENTID | uniqueidentifier | IN | Event ID |
@REVENUEID | uniqueidentifier | IN | Revenue ID |
@REGISTRANTID | uniqueidentifier | IN | Registrant ID |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_REVENUEMERGEDATA
(
@EVENTID uniqueidentifier,
@REVENUEID uniqueidentifier,
@REGISTRANTID uniqueidentifier = null
)
as
set nocount on;
--get the benefit field
declare @BENEFITSWAIVED bit
declare @benefit nvarchar(max)
set @benefit = ''
select @BENEFITSWAIVED = BENEFITSWAIVED from REGISTRANT WHERE ID = @REGISTRANTID
if @BENEFITSWAIVED = 0
begin
declare @BENEFITTABLE table(BenefitID uniqueidentifier, BenefitName nvarchar(200))
INSERT INTO @BENEFITTABLE
SELECT RB.BENEFITID,
CASE WHEN ISNULL(BO.NAME, '')= '' THEN ISNULL(dbo.UFN_BENEFIT_GETNAME (RB.BENEFITID),'')
WHEN ISNULL(BO.NAME, '')<> '' THEN ISNULL(dbo.UFN_BENEFIT_GETNAME (RB.BENEFITID),'') + '- ' + ISNULL(BO.NAME, '') + ':' + RBE.BENEFITPREFERENCE END
FROM dbo.REGISTRANT REG
INNER JOIN dbo.REGISTRANTBENEFITEXTENSION RBE ON RBE.REGISTRANTID = REG.ID
LEFT JOIN dbo.REGISTRANTBENEFIT RB ON RB.BENEFITID = RBE.BENEFITID AND RBE.REGISTRANTID = RB.REGISTRANTID
LEFT JOIN dbo.BENEFITOPTION BO ON RBE.BENEFITOPTIONID= BO.ID
WHERE REG.ID = @REGISTRANTID and REG.EVENTID = @EVENTID
order by BO.NAME DESC
INSERT INTO @BENEFITTABLE
SELECT RB.BENEFITID,B.NAME
FROM dbo.REGISTRANT REG
LEFT JOIN dbo.REGISTRANTBENEFIT RB ON RB.REGISTRANTID = REG.ID
LEFT JOIN dbo.BENEFIT B ON RB.BENEFITID = B.ID
INNER JOIN dbo.EVENT ON REG.EVENTID = EVENT.ID
LEFT JOIN dbo.EVENTHIERARCHY ON EVENTHIERARCHY.ID = EVENT.ID
WHERE REG.ID = @REGISTRANTID and REG.EVENTID = @EVENTID
AND RB.BENEFITID NOT IN (SELECT BENEFITID FROM @BENEFITTABLE)
if (select count(*) from @BENEFITTABLE) > 0
begin
SELECT @benefit=@benefit + '<div>' + BenefitName + '</div>'
FROM @BENEFITTABLE
end
end
--get the registration option field
declare @RegistrationOptionDetail nvarchar(2000)
if @REGISTRANTID is not null
begin
select @RegistrationOptionDetail = '<table><tr><td>Name</td><td>' + EP.NAME + '</td></tr><tr><td>Description</td><td>' + case FAF.DESCRIPTION when '' then 'None' else FAF.DESCRIPTION end
+ '</td></tr><tr><td>Amount</td><td>$' + convert(varchar(20), RO.AMOUNT)
+ '</td></tr><tr><td>Benefits</td><td>' + case when @BENEFITSWAIVED=1 then 'Declined' when isnull(@benefit,'') = '' then 'None' else @benefit end
+ '</td></tr><tr><td>Fundraising Groups </td><td>' + RL.Role
+ '</td></tr><tr><td>Number available</td><td>' + (
case when FAF.MAXQUANTITY=0 then 'Unlimited'
else
convert(varchar(10), FAF.MAXQUANTITY-
(select count(*) from dbo.REGISTRANT R1
inner join REGISTRANTREGISTRATION RO1 (nolock) on R1.ID = RO1.REGISTRANTID
inner join EVENTPRICE EP1 (nolock) on RO1.EVENTPRICEID = EP1.ID
where EP1.ID=FAF.EVENTPRICEID)) end
)
+ '</td></tr><tr><td>Active</td><td>' + case ET.ISACTIVE when 1 then 'Yes' else 'No' end + '</td></tr></table>'
from REGISTRANT R (nolock)
inner join REGISTRANTREGISTRATION RO (nolock) on R.ID = RO.REGISTRANTID
inner join EVENTPRICE EP (nolock) on RO.EVENTPRICEID = EP.ID
inner join EVENTREGISTRATIONTYPE ET on EP.EVENTREGISTRATIONTYPEID = ET.ID
inner join FAFREGISTRATIONTYPE FAF on FAF.EVENTPRICEID = EP.ID
left join dbo.UFN_REGISTRANT_GETFAFROLE(@EVENTID, NULL) RL ON RL.REGISTRANTID = R.ID
where R.ID= @REGISTRANTID
end
if @revenueid is not null
begin
select TOP 1
RegistrationOptionDetail = @RegistrationOptionDetail
,TransactionDate=R.Date
,AdditionalDonationAmount = case when isnull(RD.VOLUNTARYDONATION, 0) = 0 then isnull(SD.VOLUNTARYDONATION,0) else isnull(RD.VOLUNTARYDONATION, 0) end
,GiftType = case when r.transactionTypecode=0 then RS.APPLICATION else R.TRANSACTIONTYPE END
,TotalGiftAmount = R.AMOUNT * case when S.ENDDATE is not null then
case LOWER(S.FREQUENCYCODE) when 0 then (DATEDIFF(year, S.STARTDATE, S.ENDDATE) + 1)
when 1 then DATEDIFF(year, S.STARTDATE, S.ENDDATE) * 2
when 2 then (DATEDIFF(quarter, S.STARTDATE, S.ENDDATE) + 1)
when 3 then (DATEDIFF(month, S.STARTDATE, S.ENDDATE) + 1)
when 6 then ((DATEDIFF(month, S.STARTDATE, S.ENDDATE) + 1) / 2 + 1)
when 7 then DATEDIFF(month, S.STARTDATE, S.ENDDATE) * 2
when 8 then ((DATEDIFF(week, S.STARTDATE, S.ENDDATE) + 1) / 2 + 1)
when 9 then (DATEDIFF(week, S.STARTDATE, S.ENDDATE) + 1)
else 1
end
else 1 end
,PaymentID = R.LOOKUPID
,PaymentName = RPM.PAYMENTMETHOD
--RS.DESCRIPTION
,PaymentType = RPM.PAYMENTMETHOD
,PaymentAmount = R.AMOUNT
,PaymentDate = R.DATE
,CreditCard = CPM.CREDITCARDPARTIALNUMBER
,CreditCardType = CTC.DESCRIPTION
,CreditCardExpireson = CPM.EXPIRESON
,MatchingGiftCompayName = case when RELATIONSHIP.ID is not null then ORG.NAME else null end
,MatchingGiftAmount = MGR.AMOUNT
,RecurringPaymentAmount =case when r.TRANSACTIONTYPECODE = 2 then coalesce((select sum(RECURRINGGIFTINSTALLMENT.AMOUNT) from dbo.RECURRINGGIFTINSTALLMENT where RECURRINGGIFTINSTALLMENT.REVENUEID = R.ID), 0) else null end
,PledgePaymentAmount = case when r.TRANSACTIONTYPECODE=1 then dbo.UFN_PLEDGE_GETAMOUNTPAID(R.ID) else null end
,GiftFrequency = S.FREQUENCY
,GiftStartDate = S.STARTDATE
,OustandingGiftAmount = dbo.UFN_PLEDGE_GETBALANCE(R.ID)
,SHOWRECURRINGPAYMENTSECTION = 0 -- Obsolete (DO NOT USE IT)
,SHOWPLEDGEPAYMENTSECTION = 0 -- Obsolete (DO NOT USE IT)
,RR.RECEIPTNUMBER
,CS.VALUE+'Components/EReceipt.ashx?rid='+lower(convert(varchar(50),R.ID)) RECEIPTLINK
,RecipientConstituentName = case when TFT.NAME IS NULL OR Len(TFT.NAME)<0 then dbo.UFN_REGISTRANT_GETNAME(RGN.ID) else TFT.NAME end
,ISNULL(D.VANITYNAME, '') AS DESIGNATIONNAME
from REVENUE R
inner join [EVENT] EV on R.APPEALID = EV.APPEALID
LEFT outer join dbo.REVENUESCHEDULE S on S.ID = R.ID
LEFT outer join dbo.REGISTRANT RG on EV.ID = RG.EVENTID and RG.ID= @REGISTRANTID
left outer join dbo.REGISTRANTDONATION RD on RD.REGISTRANTID = RG.ID
left outer join dbo.EVENTSPONSOR ES ON ES.CONSTITUENTID=R.CONSTITUENTID
left outer join dbo.SPONSORDONATION SD ON SD.SPONSORID = ES.ID
left outer join dbo.REVENUESPLIT RS on R.ID = RS.REVENUEID
left outer join dbo.REVENUEPAYMENTMETHOD RPM on RPM.REVENUEID = R.ID
left outer join dbo.REVENUERECEIPT RR ON RR.REVENUEID=R.ID
left outer join dbo.EVENTEXTENSION EE ON EE.EVENTID=EV.ID
left outer join dbo.CMSSITESETTING CS ON CS.CLIENTSITESID=EE.CLIENTSITESID AND CS.SETTING='AppPathURL'
left outer join dbo.CREDITCARDPAYMENTMETHODDETAIL CPM on RPM.ID = CPM.ID
left outer join dbo.CREDITTYPECODE CTC ON CTC.ID = CPM.CREDITTYPECODEID
LEFT OUTER JOIN dbo.DESIGNATION D ON D.ID = RS.DESIGNATIONID AND RS.TYPECODE = 0
--Match gift
left join dbo.RELATIONSHIP on RELATIONSHIP.ISMATCHINGGIFTRELATIONSHIP =1
and R.CONSTITUENTID = RELATIONSHIP.RELATIONSHIPCONSTITUENTID
and RELATIONSHIP.RELATIONSHIPTYPECODEID = (select PRIMARYBUSINESSRELATIONSHIPTYPECODEID from dbo.NETCOMMUNITYDEFAULTCODEMAP)
left join dbo.REVENUEMATCHINGGIFT RMG on RMG.MGSOURCEREVENUEID = R.ID and RMG.RELATIONSHIPID=RELATIONSHIP.ID
left join dbo.MATCHINGGIFTCONDITION MGC on RMG.MATCHINGGIFTCONDITIONID = MGC.ID
left join dbo.REVENUE MGR on MGR.ID = RMG.ID
left join dbo.CONSTITUENT ORG ON ORG.ID = RELATIONSHIP.RECIPROCALCONSTITUENTID
--RecipientConstituentName
left outer join dbo.REVENUERECOGNITION RC on RC.REVENUESPLITID=RS.ID
left outer join dbo.TEAMEXTENSION TEH on TEH.HOUSEHOLDID = RC.CONSTITUENTID and TEH.EVENTID=EV.ID
left OUTER JOIN dbo.TEAMEXTENSION TET ON TET.TEAMCONSTITUENTID=RC.CONSTITUENTID and TET.EVENTID=EV.ID
left OUTER JOIN dbo.REGISTRANT RGN ON RGN.CONSTITUENTID = RC.CONSTITUENTID and RGN.EVENTID=EV.ID
left outer join dbo.TEAMFUNDRAISINGTEAM TFT on TFT.ID=TEH.TEAMFUNDRAISINGTEAMID or TFT.ID=TET.TEAMFUNDRAISINGTEAMID
where
R.ID = @REVENUEID
and EV.ID = @EVENTID
ORDER BY D.NAME DESC
end
if @revenueid is null
begin
select TOP 1
RegistrationOptionDetail = @RegistrationOptionDetail
end