EA7_spGetClientUsersIDList
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ClientSitesId | int | IN | |
@EEOnly | bit | IN | |
@All | bit | IN |
Definition
Copy
CREATE PROCEDURE [dbo].[EA7_spGetClientUsersIDList](@ClientSitesId integer, @EEOnly bit, @All bit)
AS BEGIN
SET NOCOUNT ON
DECLARE @tbl TABLE(
ID integer,
UserName nvarchar(50),
[Password] nvarchar(255),
BackofficeRecordID integer
)
if (@All = 1) -- everybody (undeleted)
BEGIN
INSERT INTO @tbl (ID, UserName, [Password], BackofficeRecordID)
SELECT DISTINCT a.ID, a.UserName, a.password, 0
FROM dbo.ClientUsers a
LEFT JOIN dbo.BackOfficeSystemUsers b ON b.ClientUsersID = a.ID
LEFT JOIN dbo.BackOfficeSystemPeople c ON b.BackofficePeopleID = c.ID
WHERE a.ClientsID = @ClientSitesId AND a.InternalUser = 0 AND a.Deleted = 0
UPDATE @tbl SET BackofficeRecordID = coalesce(cc.BackofficeRecordID, 0)
FROM @tbl aa
INNER JOIN dbo.BackOfficeSystemUsers bb ON bb.ClientUsersID = aa.ID
INNER JOIN dbo.BackOfficeSystemPeople cc ON bb.BackofficePeopleID = cc.ID
WHERE cc.BackOfficeSystemID = 1
END
else
BEGIN
if (@EEOnly = 1) -- only EE BackOffice users that are CURRENT
INSERT INTO @tbl (ID, UserName, [Password], BackofficeRecordID)
SELECT a.ID, a.UserName, a.password, c.BackofficeRecordID FROM dbo.ClientUsers a
INNER JOIN dbo.BackOfficeSystemUsers b ON b.ClientUsersID = a.ID
INNER JOIN dbo.BackOfficeSystemPeople c ON b.BackofficePeopleID = c.ID
WHERE a.ClientsID = @ClientSitesId AND a.InternalUser = 0 AND a.Deleted = 0 AND c.BackOfficeSystemID = 1 AND b.[Current] = 1
ELSE -- only non-EE BackOffice users that are CURRENT
INSERT INTO @tbl (ID, UserName, [Password], BackofficeRecordID)
SELECT a.ID, a.UserName, a.password, 0 AS 'BackofficeRecordID' FROM dbo.ClientUsers a
WHERE a.ClientsID = @ClientSitesId AND a.InternalUser = 0 AND a.Deleted = 0
AND NOT EXISTS
(SELECT b.ClientUsersID FROM dbo.BackOfficeSystemUsers b
INNER JOIN dbo.BackOfficeSystemPeople c ON b.BackofficePeopleID = c.ID
WHERE c.BackOfficeSystemID = 1 AND b.[Current] = 1 AND a.ID = b.ClientUsersID)
END
SELECT * FROM @tbl ORDER BY UserName
END