fnFundRaiserTotalDonationAmountBySolicitorEmailID

Return

Return Type
money

Parameters

Parameter Parameter Type Mode Description
@FundRaiserSolicitorEmailID int IN

Definition

Copy

            CREATE FUNCTION [dbo].[fnFundRaiserTotalDonationAmountBySolicitorEmailID]
            (    
            @FundRaiserSolicitorEmailID int
            )
            RETURNS money
            /* Changes to this function should be mirrored in fnFundRaiserTotalDonationAmount */ 
            AS
            BEGIN
                DECLARE @Total money
                DECLARE @AthonTotal money
                DECLARE @FRETable table(FRDID int, Amount money, AthonUnits int, IsAthon bit)

                Insert Into @FRETable
                    SELECT  frd.ID, frd.Amount, frs.AthonUnits, frd.IsAthon
                    FROM  dbo.FundraiserSolicitorEmail frse 
                    inner join dbo.FundraiserSolicitors frs on frs.ID = frse.FundraiserSolicitorsID
                    inner join dbo.EmailJob_Recipient ejr on ejr.EmailJobID = frse.EmailJobID and frse.ID = @FundRaiserSolicitorEmailID
                    inner join dbo.FundRaiserSolicitorContactAction frsca on ejr.ID = isnull(frsca.EmailJobRecipientID, frsca.ForwardEmailJobRecipientID)
                    inner join FundRaiserDonations frd ON frd.id = frsca.FundRaiserDonationsID

                SELECT @Total=isnull(sum(Amount),0
                FROM @FRETable
                WHERE IsAthon = 0

                SELECT @AthonTotal=isnull(sum(Amount * AthonUnits),0)
                FROM @FRETable
                WHERE IsAthon = 1
                and not exists (select null from dbo.FundRaiserDonations frd2 where frd2.PledgeID = FRDID)

                RETURN(@Total+@AthonTotal

            END