USP_GET_LOGIN_USAGE_TRACKING_DATA
Parameters
| Parameter | Parameter Type | Mode | Description |
|---|---|---|---|
| @ProductName | varchar(4) | IN |
Definition
Copy
CREATE procedure dbo.USP_GET_LOGIN_USAGE_TRACKING_DATA (
@ProductName varchar(4)
)
as
BEGIN
DECLARE @TotalUsers INT;
DECLARE @TotalDeletedUsers INT;
DECLARE @TotalDefaultSupervisors INT;
DECLARE @TotalDefaultSupervisorsLoginsInCurrentYear INT;
DECLARE @LastLoginDateDefaultSupervisors DATE;
DECLARE @TotalSupervisorUsers INT;
DECLARE @TotalSupervisorsLoginsInCurrentYear INT;
DECLARE @LastLoginDateSupervisorUsers DATE;
DECLARE @TotalAdminUsers INT;
DECLARE @TotalAdminUsersLoginsInCurrentYear INT;
DECLARE @LastLoginDateAdminUsers DATE;
DECLARE @TotalRegularUsers INT;
DECLARE @TotalRegularUsersLoginsInCurrentYear INT;
DECLARE @LastLoginDateRegularUsers DATE;
DECLARE @CurrentYear INT;
DECLARE @MostRecentAdminUserLogin DATE;
DECLARE @MostRecentRegularUserLogin DATE;
SET @MostRecentAdminUserLogin = Cast('1753-1-1' AS DATE)
SET @MostRecentRegularUserLogin = Cast('1753-1-1' AS DATE)
SET @CurrentYear =Year(Getutcdate())
SELECT @TotalUsers = Count(ID)
FROM Clientusers
SELECT @TotalDeletedUsers = Count(ID)
FROM Clientusers WHERE Deleted = 1
DECLARE @DefaultSupervisors TABLE
(
ID INT,
DateLastLogin DATETIME NULL
)
INSERT INTO @DefaultSupervisors
SELECT ID,
DateLastLogin
FROM dbo.ClientUsers
WHERE InternalUser = 1
DECLARE @SupervisorUsers TABLE
(
ID INT,
DateLastLogin DATETIME NULL
)
INSERT INTO @SupervisorUsers
SELECT ID,
DateLastLogin
FROM dbo.ClientUsers
WHERE IsSupervisor = 1
DECLARE @AdminUsers TABLE
(
ID INT
)
INSERT INTO @AdminUsers
SELECT DISTINCT CLIENTUSERS.ID
FROM dbo.CLIENTUSERS
INNER JOIN dbo.USERROLES
ON USERROLES.ClientUsersID = CLIENTUSERS.ID
INNER JOIN dbo.CLIENTROLES
ON CLIENTROLES.ID = USERROLES.ClientRolesID
INNER JOIN dbo.CMSSECURITYGROUPCLIENTROLECLIENTSITE
ON CMSSECURITYGROUPCLIENTROLECLIENTSITE.CLIENTROLESID = CLIENTROLES.ID
INNER JOIN dbo.CMSSECURITYGROUP
ON CMSSECURITYGROUP.ID = CMSSECURITYGROUPCLIENTROLECLIENTSITE.CMSSECURITYGROUPID
INNER JOIN dbo.CMSSECURITYGROUPTASK
ON CMSSECURITYGROUPTASK.CMSSECURITYGROUPID = CMSSecurityGroup.ID
WHERE CLIENTUSERS.InternalUser = 0
AND CLIENTUSERS.IsSupervisor = 0
DECLARE @RegularUsers TABLE
(
ID INT,
DateLastLogin DATETIME NULL
)
INSERT INTO @RegularUsers
SELECT ID,
DateLastLogin
FROM dbo.ClientUsers
WHERE ClientUsers.id NOT IN (SELECT ID
FROM @DefaultSupervisors
UNION
SELECT ID
FROM @SupervisorUsers
UNION
SELECT ID
FROM @AdminUsers)
SELECT @TotalDefaultSupervisors = Count(ID),
@LastLoginDateDefaultSupervisors = Max(DateLastLogin)
FROM @DefaultSupervisors
SELECT @TotalDefaultSupervisorsLoginsInCurrentYear = Count(ID)
FROM @DefaultSupervisors DS
WHERE DS.DateLastLogin IS NOT NULL
AND Year(DS.DateLastLogin) = @CurrentYear
SELECT @TotalSupervisorUsers = Count(ID),
@LastLoginDateSupervisorUsers = Max(DateLastLogin)
FROM @SupervisorUsers
SELECT @TotalSupervisorsLoginsInCurrentYear = Count(ID)
FROM @SupervisorUsers
WHERE DateLastLogin IS NOT NULL
AND Year(DateLastLogin) = @CurrentYear
SELECT @TotalAdminUsers = Count(DISTINCT CLIENTUSERS.UserName),
@LastLoginDateAdminUsers = Max(CLIENTUSERS.DateLastLogin)
FROM dbo.CLIENTUSERS
INNER JOIN @AdminUsers AU
ON AU.ID = Clientusers.ID
SELECT @TotalAdminUsersLoginsInCurrentYear = Count(CLIENTUSERS.ID)
FROM dbo.CLIENTUSERS
INNER JOIN @AdminUsers AU
ON AU.ID = Clientusers.ID
WHERE DateLastLogin IS NOT NULL
AND Year(DateLastLogin) = @CurrentYear
SELECT @TotalRegularUsers = Count(ID),
@LastLoginDateRegularUsers = Max(DateLastLogin)
FROM @RegularUsers
SELECT @TotalRegularUsersLoginsInCurrentYear = Count(ID)
FROM @RegularUsers
WHERE DateLastLogin IS NOT NULL
AND Year(DateLastLogin) = @CurrentYear
DECLARE @OrganizationDetails NVARCHAR(400)
SELECT @OrganizationDetails = CLARIFYSITEID,
@OrganizationDetails = @OrganizationDetails + ' - ' + INSTALLATIONNAME
FROM dbo.INSTALLATIONINFO;
IF @LastLoginDateDefaultSupervisors IS NOT NULL
AND @LastLoginDateDefaultSupervisors > @MostRecentAdminUserLogin
BEGIN
SET @MostRecentAdminUserLogin = @LastLoginDateDefaultSupervisors
END
IF @LastLoginDateSupervisorUsers IS NOT NULL
AND @LastLoginDateSupervisorUsers > @MostRecentAdminUserLogin
BEGIN
SET @MostRecentAdminUserLogin = @LastLoginDateSupervisorUsers
END
IF @LastLoginDateAdminUsers IS NOT NULL
AND @LastLoginDateAdminUsers > @MostRecentAdminUserLogin
BEGIN
SET @MostRecentAdminUserLogin = @LastLoginDateAdminUsers
END
IF @LastLoginDateRegularUsers IS NOT NULL
BEGIN
SET @MostRecentRegularUserLogin = @LastLoginDateRegularUsers
END
SELECT @ProductName + '-' + 'UserLogins' + '-'
+ @OrganizationDetails AS 'Group',
@TotalUsers AS TotalUsers,
@TotalDeletedUsers AS TotalDeletedUsers,
@TotalDefaultSupervisors AS TotalDefaultSupervisors,
@TotalSupervisorUsers AS TotalSupervisorUsers,
@TotalAdminUsers AS TotalAdminUsers,
@TotalRegularUsers AS TotalRegularUsers,
@TotalDefaultSupervisorsLoginsInCurrentYear AS TotalDefaultSupervisorsLoginsInCurrentYear,
@TotalSupervisorsLoginsInCurrentYear AS TotalSupervisorsLoginsInCurrentYear,
@TotalAdminUsersLoginsInCurrentYear AS TotalAdminUsersLoginsInCurrentYear,
@MostRecentAdminUserLogin AS MostRecentAdminUserLogin,
@TotalRegularUsersLoginsInCurrentYear AS TotalRegularUsersLoginsInCurrentYear,
@MostRecentRegularUserLogin AS MostRecentRegularUserLogin,
'Organization has '
+ CONVERT(VARCHAR(max), @TotalUsers)
+ ' users out which ' + CONVERT(VARCHAR(max), @TotalDeletedUsers) + ' are in deleted state.'
+ CONVERT(VARCHAR(max), @TotalDefaultSupervisors +@TotalSupervisorUsers+@TotalAdminUsers )
+ ' have organizational rights and '
+ CONVERT(VARCHAR(max), @TotalRegularUsers)
+ ' regular BBIS Users.'
+ CONVERT(VARCHAR(max), @TotalDefaultSupervisorsLoginsInCurrentYear + @TotalSupervisorsLoginsInCurrentYear + @TotalAdminUsersLoginsInCurrentYear)
+ '/'
+ CONVERT(VARCHAR(max), @TotalDefaultSupervisors +@TotalSupervisorUsers+@TotalAdminUsers )
+ ' users with organizational rights logged-in in the current year('
+ CONVERT(VARCHAR(max), @CurrentYear)
+ ') and the most recent login was on '
+ CONVERT(VARCHAR(10), @MostRecentAdminUserLogin, 101)
+ '. '
+ CONVERT(VARCHAR(max), @TotalRegularUsersLoginsInCurrentYear)
+ '/'
+ CONVERT(VARCHAR(max), @TotalRegularUsers )
+ ' regular users logged-in in the current year('
+ CONVERT(VARCHAR(max), @CurrentYear)
+ ') and the most recent login was on '
+ CONVERT(VARCHAR(10), @MostRecentRegularUserLogin, 101)
+ '. ' as LoginDetails
end