UFN_REGISTRANT_GETFUNDRAISINGAMOUNTRAISED
Get Amount Raised for Individual Participants, Team, Company, or Household on FAF event
Return
Return Type |
---|
money |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@REGISTRANTID | uniqueidentifier | IN | |
@EVENTID | uniqueidentifier | IN |
Definition
Copy
create function dbo.UFN_REGISTRANT_GETFUNDRAISINGAMOUNTRAISED
(
@REGISTRANTID uniqueidentifier,
@EVENTID uniqueidentifier
)
returns money
with execute as caller
as
begin
--Tu Phan 01/20/2010 my bday :)
--Input Parameter: REGISTRANTID and EVENTID
--Return the AMOUNT RAISED for Individual/Team/Company
----Info and build--
DECLARE @TEAMID uniqueidentifier
DECLARE @HOSTCONSTITUENTID uniqueidentifier
DECLARE @AmountRaised money
DECLARE @RecordType nvarchar(100)
--May not need all of these var
DECLARE @TOTALDONATION money
DECLARE @REGISTRANTRAISED money
DECLARE @TEAMRAISED money
DECLARE @COMPANIESRAISED money
DECLARE @TEAMDONATION money
DECLARE @REGISTRANTDONATION money
DECLARE @GOAL money
SET @HOSTCONSTITUENTID = (SELECT REGISTRANT.CONSTITUENTID FROM dbo.REGISTRANT WHERE REGISTRANT.ID=@REGISTRANTID)
SET @AmountRaised = 0
SET @RecordType = dbo.UFN_FAFEVENTREGISTRANT_GETREGISTRANTRECORDTYPE(@REGISTRANTID)
IF (@RecordType = 'A-Individual Participants' AND @REGISTRANTID IS NOT NULL)
BEGIN
SELECT @GOAL = FUNDRAISINGGOAL from dbo.REGISTRANTEXTENSION WHERE REGISTRANTID = @REGISTRANTID
SELECT @REGISTRANTDONATION = ISNULL(VOLUNTARYDONATION,0)
FROM dbo.REGISTRANTDONATION WHERE REGISTRANTID = @REGISTRANTID
SELECT @REGISTRANTRAISED = SUM(ISNULL(DONATIONAMOUNT,0)) --Amount Raised for Individual Participant
FROM dbo.EVENTDONOR WHERE REGISTRANTID = @REGISTRANTID
SET @TOTALDONATION = ISNULL(@REGISTRANTDONATION,0) + ISNULL(@REGISTRANTRAISED,0)
SET @AmountRaised = coalesce(@REGISTRANTRAISED,0)
END
ELSE IF (@RecordType = 'B-Teams' AND @REGISTRANTID IS NOT NULL)
BEGIN
--Identifies this is the Host record for team, else return 0 for team members
IF @HOSTCONSTITUENTID IS NOT NULL
BEGIN
SET @TEAMID=(SELECT ID AS TEAMFUNDRAISEID FROM TEAMFUNDRAISER WHERE CONSTITUENTID=@HOSTCONSTITUENTID)
IF @TEAMID IS NOT NULL --1-is he/she is a team/company record (host/team leader record) ?
BEGIN
--May not need all of these but may be useful in the future
SELECT @GOAL = GOAL from dbo.TEAMFUNDRAISINGTEAM WHERE ID = @TEAMID
SELECT @REGISTRANTDONATION = ISNULL(RD.VOLUNTARYDONATION,0)
FROM dbo.TEAMFUNDRAISINGTEAMMEMBER TM
INNER JOIN dbo.TEAMFUNDRAISER TF
ON TM.TEAMFUNDRAISERID = TF.ID
INNER JOIN dbo.REGISTRANT R
ON TF.CONSTITUENTID = R.CONSTITUENTID
INNER JOIN dbo.REGISTRANTDONATION RD
ON RD.REGISTRANTID = R.ID
WHERE TM.TEAMFUNDRAISINGTEAMID = @TEAMID
AND R.EVENTID = @EVENTID
SELECT @TEAMRAISED = SUM(ISNULL(ED.DONATIONAMOUNT,0)) --AMOUNTRAISED FOR TEAM
FROM dbo.TEAMFUNDRAISINGTEAMMEMBER TM
INNER JOIN dbo.TEAMFUNDRAISER TF
ON TM.TEAMFUNDRAISERID = TF.ID
INNER JOIN dbo.REGISTRANT R
ON TF.CONSTITUENTID = R.CONSTITUENTID
INNER JOIN dbo.EVENTDONOR ED
ON ED.REGISTRANTID = R.ID
WHERE TM.TEAMFUNDRAISINGTEAMID = @TEAMID
AND R.EVENTID = @EVENTID
SELECT @TEAMDONATION = SUM(ISNULL(DONATIONAMOUNT,0))
FROM dbo.EVENTDONOR WHERE EVENTID = @EVENTID AND TEAMFUNDRAISINGTEAMID = @TEAMID AND REGISTRANTID IS NULL
SET @TOTALDONATION = ISNULL(@REGISTRANTDONATION,0) + ISNULL(@TEAMRAISED,0) + ISNULL(@TEAMDONATION,0)
SET @AmountRaised = coalesce(@TEAMRAISED,0)
END
ELSE
SET @AmountRaised = 0
END
ELSE
SET @AmountRaised = 0
END
ELSE IF (@RecordType = 'C-Companies' AND @REGISTRANTID IS NOT NULL) --Amount Raised for Company till not in correct DB design yet include in Frontend BBNC
BEGIN
SELECT @COMPANIESRAISED = SUM(ISNULL(DONATIONAMOUNT,0)) --For now the Amount Raised is calculated similar the Individual Participants
FROM dbo.EVENTDONOR WHERE REGISTRANTID = @REGISTRANTID
SET @AmountRaised = coalesce(@COMPANIESRAISED,0)
END
IF @AmountRaised IS NULL
SET @AmountRaised = 0
return @AmountRaised
end