UFN_GETBILLINGCYCLES
Gets all the billing cycles in the system with unique dates and names.
Return
Return Type |
---|
table |
Definition
Copy
CREATE function dbo.UFN_GETBILLINGCYCLES()
returns table
as return
select (select top 1 ACADEMICYEAR_INNER.ID
from dbo.ACADEMICYEAR as ACADEMICYEAR_INNER
where (ACADEMICYEAR_INNER.ACADEMICYEARNAMECODEID = ACADEMICYEARNAMECODE.ID) and
(ACADEMICYEAR_INNER.BILLINGSTARTDATE = ACADEMICYEAR.BILLINGSTARTDATE) and
(ACADEMICYEAR_INNER.BILLINGENDDATE = ACADEMICYEAR.BILLINGENDDATE)
order by ACADEMICYEAR_INNER.DATEADDED desc) as ACADEMICYEARID,
case when (COUNT(ACADEMICYEAR.ID) < ACADEMICYEARCOUNTS.COUNT) then
-- If there are less AYs with this name as there are with these dates and name then we DO need the school names
ACADEMICYEARNAMECODE.DESCRIPTION + ' - ' + dbo.UDA_BUILDLISTWITHDELIMITER(CONSTITUENT.KEYNAME, ', ')
else
-- If there are as many AYs with this name as there are with these dates and name then we DO NOT need the school names
ACADEMICYEARNAMECODE.DESCRIPTION
end as NAME,
ACADEMICYEAR.BILLINGSTARTDATE as BILLINGSTARTDATE,
ACADEMICYEAR.BILLINGENDDATE as BILLINGENDDATE
from dbo.ACADEMICYEAR
inner join dbo.ACADEMICYEARNAMECODE
on ACADEMICYEARNAMECODE.ID = ACADEMICYEAR.ACADEMICYEARNAMECODEID
inner join dbo.CONSTITUENT
on CONSTITUENT.ID = ACADEMICYEAR.SCHOOLID
inner join (select ACADEMICYEAR_INNER.ACADEMICYEARNAMECODEID, COUNT(ACADEMICYEAR_INNER.ID) as COUNT
from dbo.ACADEMICYEAR as ACADEMICYEAR_INNER
group by ACADEMICYEAR_INNER.ACADEMICYEARNAMECODEID) as ACADEMICYEARCOUNTS
on ACADEMICYEARCOUNTS.ACADEMICYEARNAMECODEID = ACADEMICYEAR.ACADEMICYEARNAMECODEID
where ((not ACADEMICYEAR.BILLINGSTARTDATE is null) and
(not ACADEMICYEAR.BILLINGENDDATE is null))
group by ACADEMICYEARNAMECODE.ID,
ACADEMICYEARNAMECODE.DESCRIPTION,
ACADEMICYEAR.BILLINGSTARTDATE,
ACADEMICYEAR.BILLINGENDDATE,
ACADEMICYEARCOUNTS.COUNT