UFN_GLFISCALYEAR_GETLABEL
Return
Return Type |
---|
nvarchar(24) |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@DATE | datetime | IN |
Definition
Copy
create function dbo.UFN_GLFISCALYEAR_GETLABEL
(
@DATE datetime
)
returns nvarchar(24)
with execute as caller
as begin
declare @FISCALYEARLABEL nvarchar(24);
--Check table exists since this FN is platform and that BasicGL is installed
if object_id(N'dbo.GLFISCALPERIOD', N'U') is not null and dbo.UFN_INSTALLEDPRODUCTS_PRODUCTIS('0e85c527-e6e9-4c5f-a8e8-105fd0e18fe7') = 1
begin
declare @TODAYDATE date = cast(@DATE as date);
--Set Fiscal date based on Fiscal start date - if it starts before last quarter then returns First day of the Fiscal year otherwise last day of the Fiscal year
select @FISCALYEARLABEL = T1.YEARID
from
(
select YEARID,
(Select MIN(STARTDATE) from GLFISCALPERIOD as S1 where GLFISCALYEAR.ID=S1.GLFISCALYEARID ) as STARTDATE,
(Select MAX(ENDDATE) from GLFISCALPERIOD as S1 where GLFISCALYEAR.ID=S1.GLFISCALYEARID ) as ENDDATE
from GLFISCALYEAR
) T1
where @TODAYDATE between T1.STARTDATE and T1.ENDDATE
end
else
begin
declare @FISCALDATE datetime;
declare @FISCALYEARFINALMONTH tinyint;
select
@FISCALYEARFINALMONTH = FISCALYEARFINALMONTH
from
dbo.INSTALLATIONINFO
where
ID = 1;
set @FISCALDATE = dateadd(month, (@FISCALYEARFINALMONTH + 12 - month(@DATE)) % 12 - 11, dbo.UFN_DATE_THISMONTH_FIRSTDAY(@DATE, 0));
if datepart(month, @FISCALDATE) >= 10
set @FISCALDATE = dateadd(year, 1, @FISCALDATE);
set @FISCALYEARLABEL = YEAR(@FISCALDATE);
end
return @FISCALYEARLABEL;
end