43 lines
1.1 KiB
Transact-SQL
43 lines
1.1 KiB
Transact-SQL
-- dbo.ef_Vyroba_VratCisloSarze
|
|
CREATE FUNCTION dbo.ef_Vyroba_VratCisloSarze (@Datum DATETIME=NULL, @Typ TINYINT=1, @iso BIT=1)
|
|
RETURNS NVARCHAR(5)
|
|
AS
|
|
BEGIN
|
|
|
|
DECLARE
|
|
@smena TINYINT=0,
|
|
@pracDen NCHAR(1)=N'',
|
|
@tyden NCHAR(2)=N'',
|
|
@retVal NVARCHAR(5),
|
|
@den TINYINT,
|
|
@NYden TINYINT
|
|
|
|
|
|
SET @Datum = ISNULL(@Datum, GETDATE())
|
|
SELECT @smena=Smena, @Datum=Datum FROM dbo.ef_GetDatumASmenu (@Datum)
|
|
|
|
SET @NYden = DATEPART(weekday, '20240101') -- pondeli
|
|
|
|
--SET @pracDen = CONVERT(nchar(1), (DATEPART(weekday, @Datum) + @@DATEFIRST - 2) % 7 + 1)
|
|
SET @den = DATEPART(weekday, @Datum)
|
|
IF (@NYden=1) -- system ma nastaveno pondeli=1, Rootvin potrebuje nedele=1
|
|
BEGIN
|
|
IF (@den=7) -- nedele=7 -> nedele=1
|
|
SET @den = 1
|
|
ELSE
|
|
SET @den = @den + 1
|
|
END
|
|
SET @pracDen = CONVERT(nchar(1), @den)
|
|
|
|
|
|
IF (@typ=1)
|
|
SET @tyden = IIF(@iso=0, FORMAT(DATEPART(week, @Datum), '00', 'cs-cz'), FORMAT(DATEPART(iso_week, @Datum), '00', 'cs-cz'))
|
|
|
|
IF (@typ=2)
|
|
SET @tyden = IIF(@iso=0, FORMAT(DATEPART(week, @Datum), '00', 'en-gb'), FORMAT(DATEPART(iso_week, @Datum), '00', 'en-gb'))
|
|
|
|
|
|
SET @retVal = RIGHT(FORMAT(@Datum, 'yy'), 1) + @tyden + @pracDen + FORMAT(@smena, '0')
|
|
RETURN @retVal
|
|
|
|
END |