fnTransactions_GetUnprocessedGiftsForClient
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ClientID | int | IN |
Definition
Copy
CREATE function [dbo].[fnTransactions_GetUnprocessedGiftsForClient](@ClientID int)
returns table as
return (
select top 100 percent
dtran.DonationTransactionsID,
dtran.DateAdded,
dtran.LastName,
dtran.XMLObjectData,
dbo.fnGetRaisersEdgeRecordIDFromLinkedUserID(frs.ClientUsersID) ConstituentID,
frs.ID FundRaiserSolicitorID,
frd.IsAthon,
case isnull(frd.IsAthon,0) when 0 then frd.Amount else (frd.Amount * frs.AthonUnits) end as AthonTotal
from dbo.DonationTransactions dtran
left join dbo.FundRaiserDonations frd on frd.DonationTransactionsID=dtran.DonationTransactionsID
left join dbo.FundRaiserSolicitors frs on frd.SolicitorID=frs.ID
left join dbo.FundRaisers fr on dbo.fnGetFundRaiserIDForSolicitor(frs.ID) = fr.ID
left join dbo.ClientUsers cu on frs.ClientUsersID = cu.ID
where
dtran.ClientsID=@ClientID
and dtran.processed_date is null
and dtran.IsDeleted=0
and dtran.[Status] = 1
and (frs.ID is null or fr.IsCarePageManager=1 or (frs.ID is not null and (cu.Deleted=1 or (frs.BackOfficeID > 0 and dbo.fnGetRaisersEdgeRecordIDFromLinkedUserID(frs.ClientUsersID) > 0))))
and (fr.ID is null or fr.IsCarePageManager=1 or (fr.ID is not null
and ((frd.IsAthon=0
and (fr.AthonDownloadPledges=0
or (fr.AthonDownloadPledges=1
and not exists (select null from dbo.FundRaiserDonations frd2
inner join dbo.DonationTransactions dtran2 on dtran2.DonationTransactionsID=frd2.DonationTransactionsID
where frd2.ID=frd.PledgeID and dtran2.processed_date is null))))
or (frd.IsAthon=1 and fr.AthonDownloadPledges=1 and frs.AthonLocked=1 and frs.AthonUnits > 0))
))
order by dtran.DonationTransactionsID
)