fnFundRaiserTotalDonationAmountBySolicitorContactID
Return
Return Type |
---|
money |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@FundRaiserSolicitorContactID | int | IN |
Definition
Copy
CREATE FUNCTION [dbo].[fnFundRaiserTotalDonationAmountBySolicitorContactID]
(
@FundRaiserSolicitorContactID int
)
RETURNS money
AS
BEGIN
DECLARE @Total money
DECLARE @AthonTotal money
DECLARE @Temp TABLE(FRDID int, Amount money, IsAthon bit, AthonUnits int)
INSERT INTO @Temp
SELECT frd.ID, frd.Amount, frd.IsAthon, frs.AthonUnits
FROM
dbo.FundRaiserSolicitorContactAction frsca
inner join dbo.FundRaiserDonations frd ON frd.id = frsca.FundRaiserDonationsID
inner join dbo.FundRaiserSolicitors frs ON frs.id = frd.SolicitorID
inner join dbo.DonationTransactions dt on dt.DonationTransactionsID = frd.DonationTransactionsID and dt.IsDeleted = 0 and dt.Status = 1
where frsca.FundraiserSolicitorContactID = @FundRaiserSolicitorContactID
SELECT @Total=isnull(sum(Amount),0)
FROM @Temp
WHERE IsAthon = 0
SELECT @AthonTotal=isnull(sum(Amount * AthonUnits),0)
FROM @Temp
where not exists (select null from dbo.FundRaiserDonations frd where frd.PledgeID = FRDID)
and IsAthon = 1
RETURN(@Total+@AthonTotal)
END