mesa-fab-approval/Programmability/Stored Procedures/GetApproversListByDocument.sql
Mike Phares ab800974b7 Programmability objects from database
Removed commented code
Added fn_GetExpiredTECNByOriginator
2024-12-12 12:15:46 -07:00

156 lines
4.2 KiB
Transact-SQL

USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[GetApproversListByDocument] Script Date: 11/21/2024 11:29:04 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[GetApproversListByDocument] -- Add the parameters for the stored procedure here
@DocumentTypeID INT,
@IssueID INT,
@Step INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
--IF @DocumentTypeID = 2 -- MRB
--BEGIN
-- SELECT U.UserID, U.FirstName + ' ' + U.LastName AS 'FullName'
-- FROM SubRoleCategory SRC
-- INNER JOIN SubRole SR ON SRC.SubRoleCategoryID = SR.SubRoleCategoryID
-- INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID
-- INNER JOIN Users U ON USR.UserID = U.UserID
-- WHERE SubRoleCategoryItem = 'MRBApprover'
--END
IF @DocumentTypeID = 2
OR @DocumentTypeID = 7 -- MRB/Change Control
BEGIN
SELECT
U.UserID,
U.FirstName + ' ' + U.LastName AS 'FullName'
FROM
DocumentType D
INNER JOIN Workflows W ON D.DocumentTypeID = W.DocumentTypeID
AND WorkFlowNumber = '1'
INNER JOIN WorkFlowSteps WS ON W.WorkflowID = WS.WorkflowID
INNER JOIN Role R ON WS.RoleID = R.RoleID
INNER JOIN SubRole SR ON R.RoleID = SR.RoleID
INNER JOIN SubRoleCategory SRC ON SR.SubRoleCategoryID = SRC.SubRoleCategoryID
INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID
INNER JOIN Users U ON U.UserID = USR.UserID
WHERE
D.DocumentTypeID = @DocumentTypeID
END
ELSE IF @DocumentTypeID = 5 -- Cancelled TECN
BEGIN
SELECT
U.UserID,
U.FirstName + ' ' + U.LastName AS 'FullName',
CASE
WHEN ItemStatus = 0
AND DocumentTypeID = 5 THEN 'Pending Cancellation/Expiration'
WHEN ItemStatus = 1
AND DocumentTypeID = 5 THEN 'Approved Cancellation/Expiration'
WHEN ItemStatus = 0
AND DocumentTypeID = 3 THEN 'Pending '
WHEN ItemStatus = 1
AND DocumentTypeID = 3 THEN 'Approved'
WHEN ItemStatus = 2 THEN 'Denied'
WHEN ItemStatus = 3 THEN 'Waiting'
WHEN ItemStatus = 4 THEN 'Skipped'
WHEN ItemStatus = 5 THEN 'ReAssigned'
WHEN ItemStatus = 6 THEN 'Terminated'
WHEN ItemStatus = 8 THEN 'Recalled'
END AS 'Status',
RoleName,
SubRole AS 'SubRoleName',
AssignedDate,
CompletedDate,
Comments
FROM
Approval A
INNER JOIN Users U ON A.UserID = U.UserID
WHERE
IssueID = @IssueID
AND (
DocumentTypeID = 3
OR DocumentTypeID = 5
) --(TECN and Cancelled TECN)
ORDER BY
ItemStatus
END
ELSE IF @DocumentTypeID = 12 -- In Progress CorrectiveAction
BEGIN
SELECT
U.UserID,
U.FirstName + ' ' + U.LastName AS 'FullName',
CASE
WHEN ItemStatus = 0
AND DocumentTypeID = 5 THEN 'Pending Cancellation/Expiration'
WHEN ItemStatus = 1
AND DocumentTypeID = 5 THEN 'Approved Cancellation/Expiration'
WHEN ItemStatus = 0
AND DocumentTypeID = 3 THEN 'Pending '
WHEN ItemStatus = 1
AND DocumentTypeID = 3 THEN 'Approved'
WHEN ItemStatus = 2 THEN 'Denied'
WHEN ItemStatus = 3 THEN 'Waiting'
WHEN ItemStatus = 4 THEN 'Skipped'
WHEN ItemStatus = 5 THEN 'ReAssigned'
WHEN ItemStatus = 6 THEN 'Terminated'
WHEN ItemStatus = 8 THEN 'Recalled'
END AS 'Status',
RoleName,
SubRole AS 'SubRoleName',
AssignedDate,
CompletedDate,
Comments
FROM
Approval A
INNER JOIN Users U ON A.UserID = U.UserID
WHERE
IssueID = @IssueID
AND (
DocumentTypeID = 3
OR DocumentTypeID = 5
) --(TECN and Cancelled TECN)
ORDER BY
ItemStatus
END
ELSE BEGIN -- Insert statements for procedure here
SELECT
U.UserID,
U.FirstName + ' ' + U.LastName AS 'FullName',
CASE
WHEN ItemStatus = 0 THEN 'Pending'
WHEN ItemStatus = 1 THEN 'Approved'
WHEN ItemStatus = 2 THEN 'Denied'
WHEN ItemStatus = 3 THEN 'Waiting'
WHEN ItemStatus = 4 THEN 'Skipped'
WHEN ItemStatus = 5 THEN 'ReAssigned'
WHEN ItemStatus = 6 THEN 'Terminated'
WHEN ItemStatus = 8 THEN 'Recalled'
END AS 'Status',
RoleName,
SubRole AS 'SubRoleName',
AssignedDate,
CompletedDate,
Comments
FROM
Approval A
INNER JOIN Users U ON A.UserID = U.UserID
WHERE
IssueID = @IssueID
AND DocumentTypeID = @DocumentTypeID -- Lot Dispostion
ORDER BY
ItemStatus
END
END
GO