fnFundRaiserTotalDonationAmount

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@FundRaiserID int IN

Definition

Copy


            CREATE function [dbo].[fnFundRaiserTotalDonationAmount]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
            (@FundRaiserID int)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
            RETURNS @retTotalDonation TABLE (FREmailID int,Total money)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
            /* Changes to this function should be mirrored in fnFundRaiserTotalDonationAmountBySolicitorEmailID */ 
            AS
            BEGIN   
                DECLARE @temp TABLE (FREmailID int, Total money)
                DECLARE @FRETable table(EmailID int, FRDID int, SolicitorID int, Amount money, AthonUnits int, IsAthon bit)

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


                insert into @temp (FREmailID, Total)
                SELECT  EmailID, isnull(sum(Amount),0)
                FROM  @FRETable
                WHERE IsAthon = 0
                Group By EmailID

                insert into @temp (FREmailID, Total)
                SELECT  EmailID, isnull(sum(Amount * AthonUnits),0)
                FROM  @FRETable
                WHERE IsAthon = 1 and not exists (select null from dbo.FundRaiserDonations frd where frd.PledgeID = FRDID)
                Group By EmailID

                insert into @retTotalDonation (FREmailID,Total)
                select FREmailID, sum(Total) Total from @temp group by FREmailID order by 2 desc

                return
            END