spFundRaiserSolicitorDonorsByAction
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@FundRaiserSolicitorsID | int | IN | |
@Action | int | IN |
Definition
Copy
CREATE PROCEDURE [dbo].[spFundRaiserSolicitorDonorsByAction]
(
@FundRaiserSolicitorsID int,
@Action int
)
AS
BEGIN
SELECT
actions.AddressbookContactsID as 'AddressBookContactID',
actions.FundraiserSolicitorContactID as 'SolicitorContactID',
sum(donations.amount) as 'TotalAmountDonated',
count(donations.ID) as 'DonationCount',
donations.IsAthon,
null as 'FundRaiserDonationID'
FROM
dbo.FundraiserSolicitorContactAction actions
inner join dbo.FundRaiserDonations donations on donations.id = actions.FundRaiserDonationsID
inner join dbo.DonationTransactions donationTran on donations.DonationTransactionsID = donationTran.DonationTransactionsID
WHERE
actions.FundraiserSolicitorsID = @FundRaiserSolicitorsID
AND (
(@Action=8 and donations.ThankedDate is null)
OR
(@Action=2 and donations.ThankedDate is not null)
)
AND
donationTran.isDeleted = 0
GROUP BY
actions.FundraiserSolicitorContactID, actions.AddressbookContactsID, donations.IsAthon
UNION
SELECT
actions.AddressbookContactsID as 'AddressBookContactID',
actions.FundraiserSolicitorContactID as 'SolicitorContactID',
sum(donations.amount * solicitors.athonunits) as 'TotalAmountDonated',
count(donations.ID) as 'DonationCount',
donations.IsAthon,
donations.ID as 'FundRaiserDonationID'
FROM
dbo.FundraiserSolicitorContactAction actions
inner join dbo.FundRaiserDonations donations on donations.id = actions.FundRaiserDonationsID
inner join dbo.FundRaiserSolicitors solicitors on solicitors.id = donations.SolicitorID
WHERE
actions.FundraiserSolicitorsID = @FundRaiserSolicitorsID
AND
donations.IsAthon=1
AND (
(@Action=13 and donations.InvoiceDate is null and donations.InvoicePaid=0)
OR
(@Action=14 and donations.InvoiceDate is not null)
OR
(@Action=15 and donations.InvoiceDate is not null and exists(select null from dbo.FundRaiserDonations frd where frd.PledgeID=donations.ID))
OR
(@Action=16 and donations.InvoiceDate is not null and not exists(select null from dbo.FundRaiserDonations frd where frd.PledgeID=donations.ID))
)
GROUP BY
actions.FundraiserSolicitorContactID, actions.AddressbookContactsID, donations.IsAthon, donations.amount, donations.ID
ORDER BY
TotalAmountDonated
END