UFN_CORPORATION_GETGIVINGTOTAL
Returns the giving total for the given corporation and time period.
Return
Return Type |
---|
money |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CONSTITUENTID | uniqueidentifier | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN | |
@STARTDATE | datetime | IN | |
@ENDDATE | datetime | IN |
Definition
Copy
CREATE function [dbo].[UFN_CORPORATION_GETGIVINGTOTAL]
(
@CONSTITUENTID uniqueidentifier,
@CURRENTAPPUSERID uniqueidentifier = null,
@STARTDATE datetime = null,
@ENDDATE datetime = null
)
returns money
as
begin
declare @d money;
select @STARTDATE = dbo.UFN_DATE_GETEARLIESTTIME(@STARTDATE),
@ENDDATE = dbo.UFN_DATE_GETLATESTTIME(@ENDDATE);
select @d = sum(coalesce(REVENUESPLIT.BASEAMOUNT,0)) - sum(coalesce(IWO.AMOUNT, 0))
from dbo.FINANCIALTRANSACTION REVENUE
inner join (select distinct REVENUEID from dbo.UFN_SITEACCESSABLE_REVENUESPLITID_FORUSER(@CURRENTAPPUSERID)) SITEFILTER on SITEFILTER.REVENUEID = REVENUE.ID
inner join dbo.FINANCIALTRANSACTIONLINEITEM REVENUESPLIT on REVENUESPLIT.FINANCIALTRANSACTIONID = REVENUE.ID
inner join dbo.REVENUESPLIT_EXT on REVENUESPLIT_EXT.ID = REVENUESPLIT.ID
left join (select INSTALLMENTSPLIT.PLEDGEID, INSTALLMENTSPLIT.DESIGNATIONID, sum(IWO.AMOUNT) as AMOUNT
from dbo.INSTALLMENTSPLIT
inner join dbo.INSTALLMENTSPLITWRITEOFF IWO on IWO.INSTALLMENTSPLITID = INSTALLMENTSPLIT.ID
group by INSTALLMENTSPLIT.PLEDGEID, INSTALLMENTSPLIT.DESIGNATIONID) IWO
on IWO.PLEDGEID = REVENUESPLIT.FINANCIALTRANSACTIONID and IWO.DESIGNATIONID = REVENUESPLIT_EXT.DESIGNATIONID
left join dbo.INSTALLMENTSPLITPAYMENT on REVENUESPLIT.ID = INSTALLMENTSPLITPAYMENT.PAYMENTID
where
REVENUE.CONSTITUENTID = @CONSTITUENTID and
(@STARTDATE is null or cast(REVENUE.DATE as datetime) >= dbo.UFN_DATE_GETEARLIESTTIME(@STARTDATE)) and
(@ENDDATE is null or cast(REVENUE.DATE as datetime) <= dbo.UFN_DATE_GETLATESTTIME(@ENDDATE)) and
(REVENUE.TYPECODE in (1,3) or --Pledge or MG claim
(REVENUE.TYPECODE = 0 and
(REVENUESPLIT_EXT.APPLICATIONCODE in (0,1,3,4,5,6,18,19) or
(REVENUESPLIT_EXT.APPLICATIONCODE = 7 and INSTALLMENTSPLITPAYMENT.ID is null) -- unapplied MG claim payments
)
)
) --Payments
return @d;
end