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