8
0

The complete folder structure has been changed or updated

This commit is contained in:
2025-09-19 18:24:40 +02:00
parent 796473a8c9
commit 1f0d1613a5
216 changed files with 330971 additions and 809 deletions

View File

@@ -0,0 +1,109 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- [FNDD_GET_LICENSE_COUNT]
-- =================================================================
-- Reads the table [TBDD_USER_LOGIN_OUT] for used licenses
--
-- Returns: An integer value
-- =================================================================
-- Copyright (c) 2025 by Digital Data GmbH
--
-- Digital Data GmbH • Ludwig-Rinn-Strasse 16 • D-35452 Heuchelheim
-- Tel.: 0641/202360 • E-Mail: info-flow@digitaldata.works
-- =================================================================
-- Creation Date / Author: 13.06.2023 / MS
-- Version Date / Editor: 15.09.2025 / MK
-- Version Number: 2.0.0.0
-- =================================================================
-- History:
-- 13.06.2023 / MS - First Version
-- 15.09.2025 / MK - Enhanced functionality and parameters
CREATE OR ALTER FUNCTION [dbo].[FNDD_GET_LICENSE_COUNT](
@pCLIENT_ID TINYINT, -- Give the mandator ID from [TBDD_CLIENT] or 0, for all mandators.
@pMODULE_ID TINYINT, -- Give the module ID from [TBDD_MODULES] the get the module name.
@pLOOKBACK_IN_DAYS SMALLINT -- Give the timespan you want to monitor in the past.
-- By giving 0, function will check sql table [TBDD_CATALOG] for global variables: <MODULE_NAME>_LICENSE_LOOKBACK_IN_DAYS.
-- Failsafe value is 90 days.
)
RETURNS INTEGER
AS
BEGIN
-- declare new vars because of parameter sniffing
DECLARE @CLIENT_ID TINYINT = @pCLIENT_ID,
@MODULE_ID TINYINT = @pMODULE_ID,
@LOOKBACK_IN_DAYS SMALLINT = @pLOOKBACK_IN_DAYS;
-- declare runtime vars
DECLARE @USED_LICENSE_COUNT INTEGER = 0,
@MODULE_NAME NVARCHAR(50) = NULL,
@MODULE_SHORT_NAME NVARCHAR(50) = NULL,
@CATALOG_TITLE_TERM NVARCHAR(50) = '_LICENSE_LOOKBACK_IN_DAYS';
--=================================================-- Get module name --===================================================--
SELECT @MODULE_NAME = [NAME],
@MODULE_SHORT_NAME = [SHORT_NAME]
FROM [TBDD_MODULES] (NOLOCK)
WHERE [GUID] = @MODULE_ID AND [ACTIVE] = 1;
-----------------------------------------------------------------------------------------------------------------------------
--===========================================-- Exit because of missing data --============================================--
IF (LEN(@MODULE_NAME) = 0) AND (LEN(@MODULE_SHORT_NAME) = 0) BEGIN
RETURN ISNULL(@USED_LICENSE_COUNT,0);
END;
-----------------------------------------------------------------------------------------------------------------------------
--===================================-- Determ how long in the past we need to check --===================================--
IF (@LOOKBACK_IN_DAYS = 0) BEGIN
IF (EXISTS (SELECT * FROM [INFORMATION_SCHEMA].[TABLES] WHERE [TABLE_NAME] = 'TBDD_CATALOG')) BEGIN
SELECT TOP (1) @LOOKBACK_IN_DAYS = CONVERT(INTEGER,[CAT_STRING])
FROM [TBDD_CATALOG] (NOLOCK)
WHERE [CAT_TITLE] IN (CONCAT(@MODULE_NAME,@CATALOG_TITLE_TERM),CONCAT(@MODULE_SHORT_NAME,@CATALOG_TITLE_TERM));
END;
IF ((@LOOKBACK_IN_DAYS is null) or (@LOOKBACK_IN_DAYS = 0)) BEGIN -- Failsafe is 90 days
SET @LOOKBACK_IN_DAYS = 90;
END;
END;
-----------------------------------------------------------------------------------------------------------------------------
--===========================================-- Exit because of missing table --===========================================--
IF NOT (EXISTS (SELECT * FROM [INFORMATION_SCHEMA].[TABLES] WHERE [TABLE_NAME] = 'TBDD_USER_LOGIN_OUT')) BEGIN
RETURN ISNULL(@USED_LICENSE_COUNT,0);
END;
-----------------------------------------------------------------------------------------------------------------------------
--=====================================================-- main part --=====================================================--
IF (@CLIENT_ID = 0) BEGIN
SET @USED_LICENSE_COUNT = (SELECT COUNT(DISTINCT [USER_ID])
FROM [TBDD_USER_LOGIN_OUT] (NOLOCK)
WHERE LEN([MACHINE_NAME]) > 0
AND [CLIENT_ID] IS NOT NULL
AND [MODULE] IN (@MODULE_NAME,@MODULE_SHORT_NAME)
AND CONVERT(DATE,[LOGIN]) BETWEEN DATEADD(DAY, (@LOOKBACK_IN_DAYS*(-1)), GETDATE()) AND GETDATE());
END; ELSE BEGIN
SET @USED_LICENSE_COUNT = (SELECT COUNT(DISTINCT [USER_ID])
FROM [TBDD_USER_LOGIN_OUT] (NOLOCK)
WHERE LEN([MACHINE_NAME]) > 0
AND [CLIENT_ID] = @CLIENT_ID
AND [MODULE] IN (@MODULE_NAME,@MODULE_SHORT_NAME)
AND CONVERT(DATE,[LOGIN]) BETWEEN DATEADD(DAY, (@LOOKBACK_IN_DAYS*(-1)), GETDATE()) AND GETDATE());
END;
-----------------------------------------------------------------------------------------------------------------------------
--===============================================-- Returning final count --===============================================--
RETURN ISNULL(@USED_LICENSE_COUNT,0);
-----------------------------------------------------------------------------------------------------------------------------
END;
GO