USP_GETEVENTDONATION

Get Donation Amount for FAF Event

Parameters

Parameter Parameter Type Mode Description
@EVENTID uniqueidentifier IN
@REGISTRANTID uniqueidentifier IN
@TEAMFUNDRAISINGTEAMID uniqueidentifier IN
@ROLETYPE tinyint IN

Definition

Copy


        create procedure dbo.USP_GETEVENTDONATION
        ( @EVENTID uniqueidentifier,
          @REGISTRANTID uniqueidentifier = NULL,
          @TEAMFUNDRAISINGTEAMID uniqueidentifier = NULL,
          @ROLETYPE tinyint = 0 -- 0: ind / TM 1:Team 2:Company

        )WITH EXECUTE AS CALLER
        as
        BEGIN
            SET NOCOUNT ON;

            DECLARE @TOTALDONATION money
            DECLARE @REGISTRANTRAISED money
            DECLARE @TEAMRAISED money
            DECLARE @TEAMDONATION money
            DECLARE @REGISTRANTDONATION money

            IF @ROLETYPE = 0 AND @REGISTRANTID IS NOT NULL
            BEGIN
                SELECT @REGISTRANTDONATION = ISNULL(VOLUNTARYDONATION,0
                FROM dbo.REGISTRANTDONATION WHERE REGISTRANTID = @REGISTRANTID

                SELECT @REGISTRANTRAISED = SUM(ISNULL(DONATIONAMOUNT,0))
                FROM dbo.EVENTDONOR WHERE REGISTRANTID = @REGISTRANTID

                SET @TOTALDONATION = ISNULL(@REGISTRANTDONATION,0) + ISNULL(@REGISTRANTRAISED,0)
            END

            IF @ROLETYPE = 1 AND @TEAMFUNDRAISINGTEAMID IS NOT NULL
            BEGIN

                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 = @TEAMFUNDRAISINGTEAMID
                AND R.EVENTID = @EVENTID

                SELECT @TEAMRAISED = SUM(ISNULL(ED.DONATIONAMOUNT,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.EVENTDONOR ED
                ON ED.REGISTRANTID = R.ID
                WHERE TM.TEAMFUNDRAISINGTEAMID = @TEAMFUNDRAISINGTEAMID
                AND R.EVENTID = @EVENTID

                SELECT @TEAMDONATION = SUM(ISNULL(DONATIONAMOUNT,0))
                FROM dbo.EVENTDONOR WHERE EVENTID = @EVENTID AND TEAMFUNDRAISINGTEAMID = @TEAMFUNDRAISINGTEAMID AND REGISTRANTID IS NULL

                SET @TOTALDONATION = ISNULL(@REGISTRANTDONATION,0) + ISNULL(@TEAMRAISED,0) + ISNULL(@TEAMDONATION,0)

            END

            SELECT ISNULL(@TOTALDONATION,0) AS TOTALDONATION

        END