64 lines
1.2 KiB
Transact-SQL
64 lines
1.2 KiB
Transact-SQL
USE [FabApprovalSystem]
|
|
GO
|
|
/****** Object: UserDefinedFunction [dbo].[fnGetApprovalFullNames] Script Date: 11/21/2024 11:31:55 AM ******/
|
|
SET
|
|
ANSI_NULLS ON
|
|
GO
|
|
SET
|
|
QUOTED_IDENTIFIER ON
|
|
GO
|
|
CREATE FUNCTION [dbo].[fnGetApprovalFullNames] (
|
|
@IssueID int,
|
|
@DocumentTypeID int,
|
|
@Separator varchar(10),
|
|
@IncludeRole bit,
|
|
@IncludeSubRole bit,
|
|
@IncludePending bit,
|
|
@IncludeApproved bit,
|
|
@IncludeOthers bit
|
|
) RETURNS varchar(max) AS BEGIN DECLARE @r varchar(max) DECLARE @t TABLE(u varchar(200))
|
|
INSERT INTO
|
|
@t
|
|
SELECT
|
|
@Separator + ISNULL(U.FirstName, '') + ' ' + ISNULL(U.LastName, '') + CASE
|
|
WHEN @IncludeRole <> 0 THEN ' (' + A.RoleName + ')'
|
|
ELSE ''
|
|
END + CASE
|
|
WHEN @IncludeSubRole <> 0 THEN ' (' + A.SubRole + ')'
|
|
ELSE ''
|
|
END
|
|
FROM
|
|
Approval A
|
|
LEFT OUTER JOIN Users U ON A.UserID = U.UserID
|
|
WHERE
|
|
A.IssueID = @IssueID
|
|
AND A.DocumentTypeID = @DocumentTypeID
|
|
AND (
|
|
(
|
|
@IncludeOthers <> 0
|
|
AND A.ItemStatus NOT IN (0, 1)
|
|
)
|
|
OR (
|
|
@IncludePending <> 0
|
|
AND A.ItemStatus = 0
|
|
)
|
|
OR (
|
|
@IncludeApproved <> 0
|
|
AND A.ItemStatus = 1
|
|
)
|
|
)
|
|
ORDER BY
|
|
A.Step,
|
|
U.FirstName,
|
|
U.LastName
|
|
SELECT
|
|
@r = (
|
|
SELECT
|
|
u + ''
|
|
FROM
|
|
@t FOR XML PATH('')
|
|
) IF @r <> ''
|
|
SET
|
|
@r = STUFF(@r, 1, LEN(@Separator), '') RETURN @r
|
|
END
|
|
GO |