Programmability objects from database

Removed commented code
Added fn_GetExpiredTECNByOriginator
This commit is contained in:
Mike Phares 2024-12-12 12:15:46 -07:00
parent b99b721458
commit ab800974b7
544 changed files with 39459 additions and 0 deletions

View File

@ -0,0 +1,16 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[EncodeHtml] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[EncodeHtml] (@RawStr varchar(max)) RETURNS varchar(max) AS BEGIN RETURN REPLACE(
REPLACE(REPLACE(@RawStr, '&', '&AMP;'), '<', '&lt;'),
'>',
'&gt;'
)
END
GO

View File

@ -0,0 +1,33 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fn8DConvertCANoToCADisplayFormat] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date, ,>
-- Description: <Description, ,>
-- =============================================
CREATE FUNCTION [dbo].[fn8DConvertCANoToCADisplayFormat] (
-- Add the parameters for the function here
@CANo INT
) RETURNS VARCHAR(10) AS BEGIN -- Declare the return variable here
DECLARE @CADisplay VARCHAR(10) -- Add the T-SQL statements to compute the return value here
SET
@CADisplay = LTRIM(
RTRIM(
CAST(
'C' + RIGHT(
'00000' + ISNULL(CAST(@CANo AS VARCHAR(10)), ''),
5
) AS VARCHAR(50)
)
)
) -- Return the result of the function
RETURN @CADisplay
END
GO

View File

@ -0,0 +1,28 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fnAuditConvertAuditNoToDisplayFormat] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[fnAuditConvertAuditNoToDisplayFormat] (
-- Add the parameters for the function here
@AuditNo INT
) RETURNS VARCHAR(10) AS BEGIN -- Declare the return variable here
DECLARE @Display VARCHAR(10) -- Add the T-SQL statements to compute the return value here
SET
@Display = LTRIM(
RTRIM(
CAST(
'A' + RIGHT(
'00000' + ISNULL(CAST(@AuditNo AS VARCHAR(10)), ''),
5
) AS VARCHAR(50)
)
)
) -- Return the result of the function
RETURN @Display
END
GO

View File

@ -0,0 +1,64 @@
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

View File

@ -0,0 +1,24 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fnGetITARUsers] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE FUNCTION [dbo].[fnGetITARUsers] () RETURNS TABLE AS RETURN (
SELECT
UserID,
HasITARAccess
FROM
SAMUsers
WHERE
HasITARAccess = 1
)
GO

View File

@ -0,0 +1,33 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fnGetLotCount_Fab] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date, ,>
-- Description: <Description, ,>
-- =============================================
CREATE FUNCTION [dbo].[fnGetLotCount_Fab] (
-- Add the parameters for the function here
@IssueID INT
) RETURNS FLOAT AS BEGIN DECLARE @FabCount INT -- Declare the return variable here
SET
@FabCount = 0
SET
@FabCount = (
SELECT
COUNT(*)
FROM
Lot L
WHERE
L.IssueID = @IssueID
AND L.Location NOT IN ('6300', '6400 ', '6600', 'QDB')
) -- Return the result of the function
RETURN @FabCount
END
GO

View File

@ -0,0 +1,33 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fnGetLotCount_Probe] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date, ,>
-- Description: <Description, ,>
-- =============================================
CREATE FUNCTION [dbo].[fnGetLotCount_Probe] (
-- Add the parameters for the function here
@IssueID INT
) RETURNS FLOAT AS BEGIN DECLARE @ProbeCount INT -- Declare the return variable here
SET
@ProbeCount = 0
SET
@ProbeCount = (
SELECT
COUNT(*)
FROM
Lot L
WHERE
L.IssueID = @IssueID
AND L.Location IN ('6300', '6400 ', '6600')
) -- Return the result of the function
RETURN @ProbeCount
END
GO

View File

@ -0,0 +1,33 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fnGetLotCount_QDB] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date, ,>
-- Description: <Description, ,>
-- =============================================
CREATE FUNCTION [dbo].[fnGetLotCount_QDB] (
-- Add the parameters for the function here
@IssueID INT
) RETURNS FLOAT AS BEGIN DECLARE @QDBCount INT -- Declare the return variable here
SET
@QDBCount = 0
SET
@QDBCount = (
SELECT
COUNT(*)
FROM
Lot L
WHERE
L.IssueID = @IssueID
AND L.Location = 'QDB'
) -- Return the result of the function
RETURN @QDBCount
END
GO

View File

@ -0,0 +1,37 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fnGetLotCount_RH_MA] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date, ,>
-- Description: <Description, ,>
-- =============================================
CREATE FUNCTION [dbo].[fnGetLotCount_RH_MA] (
-- Add the parameters for the function here
@IssueID INT
) RETURNS FLOAT AS BEGIN DECLARE @QDBCount INT -- Declare the return variable here
SET
@QDBCount = 0
SET
@QDBCount = (
SELECT
COUNT(*)
FROM
LotDisposition LD
INNER JOIN Lot L ON LD.IssueID = L.IssueID
WHERE
(
L.ProductFamily = 'RH'
OR L.ProductFamily = 'MA'
)
AND LD.IssueID = @IssueID
) -- Return the result of the function
RETURN @QDBCount
END
GO

View File

@ -0,0 +1,27 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fnGetLot_RH] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE FUNCTION [dbo].[fnGetLot_RH] (
-- Add the parameters for the function here
@IssueID INT
) RETURNS TABLE AS RETURN (
SELECT
L.IssueID
FROM
LotDisposition LD
INNER JOIN Lot L ON LD.IssueID = L.IssueID
WHERE
LD.IssueID = @IssueID
)
GO

View File

@ -0,0 +1,63 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fnGetMRB_SPN_HoldLots] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE FUNCTION [dbo].[fnGetMRB_SPN_HoldLots] (
-- Add the parameters for the function here
@MRBNumber INT
) RETURNS TABLE AS RETURN (
-- Add the SELECT statement with parameter references here
SELECT
L.LotNumber,
MD.MRBNumber
FROM
MRBDispositionByMRB MD
INNER JOIN MRBLot L ON MD.DispositionType = L.DispoType
INNER JOIN MRB M ON M.MRBNumber = MD.MRBNumber
WHERE
CloseToQDBOptionID = 1
AND L.MRBNumber = @MRBNumber
AND MD.MRBNumber = @MRBNumber
AND L.LotNumber + CONVERt(VARCHAR(10), MD.MRBNumber) NOT IN (
SELECT
LotNumber + CONVERt(VARCHAR(10), MRBNumber)
FROM
MRB_SPN_HoldFlagLot
)
UNION
SELECT
LotNumber,
MRBNumber
FROM
MRB_SPN_HoldFlagLot
WHERE
LotNumber IN (
SELECT
DISTINCT L.LotNumber
FROM
MRBDispositionByMRB MD
INNER JOIN MRBLot L ON MD.DispositionType = L.DispoType
INNER JOIN MRB M ON M.MRBNumber = MD.MRBNumber
WHERE
CloseToQDBOptionID = 1
AND L.MRBNumber = @MRBNumber
AND MD.MRBNumber = @MRBNumber
AND L.LotNumber + CONVERt(VARCHAR(10), MD.MRBNumber) NOT IN (
SELECT
LotNumber + CONVERt(VARCHAR(10), MRBNumber)
FROM
MRB_SPN_HoldFlagLot
)
)
)
GO

View File

@ -0,0 +1,70 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fnGetScrapCost] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date, ,>
-- Description: <Description, ,>
-- =============================================
CREATE FUNCTION [dbo].[fnGetScrapCost] (
-- Add the parameters for the function here
@IssueID INT
) RETURNS FLOAT AS BEGIN -- Declare the return variable here
DECLARE @WaferCount INT DECLARE @DieCount INT DECLARE @ScrapWaferCount INT DECLARE @ScrapCost FLOAT DECLARE @ScrapDieCount INT DECLARE @TotalCost FLOAT DECLARE @PerWaferCost FLOAT DECLARE @PerDieCost FLOAT DECLARE @TotalScrapCost FLOAT DECLARE @LotStatusOptionID INT
SET
@TotalScrapCost = 0 DECLARE ScrapCostCursor CURSOR FOR
SELECT
L.TotalCost,
L.WaferCount,
L.DieCount,
S.ScrapCount,
L.LotStatusOptionID
FROM
Lot L
INNER JOIN ScrapLot S ON L.IssueID = S.IssueID
AND L.LotNumber = S.LotNo
WHERE
L.IssueID = @IssueID OPEN ScrapCostCursor FETCH NEXT
FROM
ScrapCostCursor INTO @TotalCost,
@WaferCount,
@DieCount,
@ScrapWaferCount,
@LotStatusOptionID WHILE @ @FETCH_STATUS = 0 BEGIN
SET
@PerWaferCost = 0
SET
@PerDieCost = 0 IF @ScrapWaferCount > 0
AND @WaferCount > 0
AND @TotalCost > 0 BEGIN
SET
@PerWaferCost = @TotalCost / @WaferCount;
SET
@ScrapCost = @ScrapWaferCount * @PerWaferCost --PRINT @ScrapCost
SET
@TotalScrapCost = @TotalScrapCost + @ScrapCost
END
ELSE IF @DieCount > 0
AND @LotStatusOptionID = 2 BEGIN
SET
@ScrapCost = @TotalCost
SET
@TotalScrapCost = @TotalScrapCost + @ScrapCost
END FETCH NEXT
FROM
ScrapCostCursor INTO @TotalCost,
@WaferCount,
@ScrapDieCount,
@ScrapWaferCount,
@LotStatusOptionID
END CLOSE ScrapCostCursor DEALLOCATE ScrapCostCursor -- Return the result of the function
RETURN @TotalScrapCost
END
GO

View File

@ -0,0 +1,32 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fnGetScrapCount] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date, ,>
-- Description: <Description, ,>
-- =============================================
CREATE FUNCTION [dbo].[fnGetScrapCount] (
-- Add the parameters for the function here
@IssueID INT
) RETURNS INT AS BEGIN -- Declare the return variable here
DECLARE @ScrapCount INT -- Add the T-SQL statements to compute the return value here
SELECT
@ScrapCount = SUM(ScrapCount)
FROM
LotDisposition LD
INNER JOIN Lot L ON LD.IssueID = L.IssueID
INNER JOIN ScrapLot S ON L.IssueID = S.IssueID
AND L.LotNumber = S.LotNo
WHERE
LD.IssueID = @IssueID
AND ScrapCount > 0 -- Return the result of the function
RETURN @ScrapCount
END
GO

View File

@ -0,0 +1,109 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fnGetStep1Roles] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE FUNCTION [dbo].[fnGetStep1Roles] (
-- Add the parameters for the function here
@IssueID INT,
@CurrentDate DATETIME
) RETURNS TABLE AS RETURN (
-- Get Roles based on the Responibility
SELECT
DISTINCT IssueID,
R.RoleName,
SRC.SubRoleCategoryItem AS 'SubRole',
U.UserID,
SR.SubRoleID,
0 AS 'ItemStatus',
WS.WorkflowStepNumber AS 'Step',
@CurrentDate AS 'AssignedDate',
@CurrentDate AS 'NotifyDate',
@CurrentDate AS 'RoleAssignedDate',
1 AS ApprovalType
FROM
DocumentType D
INNER JOIN Workflows W ON D.DocumentTypeID = W.DocumentTypeID
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 ResponsibilityIssue RI ON LTRIM(RTRIM(SRC.SubRoleCategoryItem)) = LTRIM(RTRIM(RI.Issue))
INNER JOIN LotDisposition LD ON RI.ResponsibilityIssueID = LD.ResponsibilityIssueID -- Get the em
INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID
INNER JOIN Users U ON U.UserID = USR.UserID
WHERE
LD.IssueID = @IssueID
AND WorkflowStepNumber = LD.CurrentStep
AND DocumentType = 'LotDisposition'
UNION
ALL -- Get YE Roles Based on Product and Gen
SELECT
DISTINCT LD.IssueID,
R.RoleName,
SRC.SubRoleCategoryItem AS 'SubRole',
U.UserID,
SR.SubRoleID,
0 AS 'ItemStatus',
WS.WorkflowStepNumber AS 'Step',
@CurrentDate AS 'AssignedDate',
@CurrentDate AS 'NotifyDate',
@CurrentDate AS 'RoleAssignedDate',
1 AS ApprovalType
FROM
LotDisposition LD
INNER JOIN WorkflowSteps WS ON LD.CurrentStep = WS.WorkflowStepNumber
INNER JOIN Workflows W ON WS.WorkflowID = W.WorkflowID
INNER JOIN DocumentType D ON W.DocumentTypeID = D.DocumentTypeID
AND DocumentType = 'LotDisposition'
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 Lot L ON LD.IssueID = L.IssueID
INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID
INNER JOIN Users U ON U.UserID = USR.UserID
WHERE
LD.IssueID = @IssueID
AND LTRIM(RTRIM(L.ProductFamily)) + '-G' + LTRIM(RTRIM(CONVERT(CHAR(10), L.Gen))) = SRC.SubRoleCategoryItem
AND RoleName = 'Yield Engineer'
UNION
ALL -- M_Suffix
SELECT
DISTINCT Ld.IssueID,
R.RoleName,
SRC.SubRoleCategoryItem AS 'SubRole',
U.UserID,
SR.SubRoleID,
0 AS 'ItemStatus',
WS.WorkflowStepNumber AS 'Step',
@CurrentDate AS 'AssignedDate',
@CurrentDate AS 'NotifyDate',
@CurrentDate AS 'RoleAssignedDate',
1 AS ApprovalType
FROM
LotDisposition LD
INNER JOIN WorkflowSteps WS ON LD.CurrentStep = WS.WorkflowStepNumber
INNER JOIN Workflows W ON WS.WorkflowID = W.WorkflowID
INNER JOIN DocumentType D ON W.DocumentTypeID = D.DocumentTypeID
AND DocumentType = 'LotDisposition'
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 Lot L ON LD.IssueID = L.IssueID
INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID
INNER JOIN Users U ON U.UserID = USR.UserID
INNER JOIN LotStatusOption LSO ON L.LotStatusOptionID = LSO.LotStatusOptionID
WHERE
LD.IssueID = @IssueID
AND LSO.LotStatusOption = SRC.SubRoleCategoryItem
)
GO

View File

@ -0,0 +1,50 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fnGetStep1RolesMA_YE] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE FUNCTION [dbo].[fnGetStep1RolesMA_YE] (
-- Add the parameters for the function here
@IssueID INT,
@CurrentDate DATETIME
) RETURNS TABLE AS RETURN (
-- Add the SELECT statement with parameter references here
SELECT
DISTINCT LD.IssueID,
R.RoleName,
SRC.SubRoleCategoryItem AS 'SubRole',
U.UserID,
SR.SubRoleID,
0 AS 'ItemStatus',
WS.WorkflowStepNumber AS 'Step',
@CurrentDate AS 'AssignedDate',
@CurrentDate AS 'NotifyDate',
@CurrentDate AS 'RoleAssignedDate',
1 AS ApprovalType
FROM
LotDisposition LD
INNER JOIN WorkflowSteps WS ON LD.CurrentStep = WS.WorkflowStepNumber
INNER JOIN Workflows W ON WS.WorkflowID = W.WorkflowID
INNER JOIN DocumentType D ON W.DocumentTypeID = D.DocumentTypeID
AND DocumentType = 'LotDisposition'
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 Lot L ON LD.IssueID = L.IssueID
INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID
INNER JOIN Users U ON U.UserID = USR.UserID
WHERE
LD.IssueID = @IssueID
AND (SRC.SubRoleCategoryItem = 'MA-All')
AND (RoleName = 'Yield Engineer')
)
GO

View File

@ -0,0 +1,45 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fnGetStep1RolesMA_YE_PE] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE FUNCTION [dbo].[fnGetStep1RolesMA_YE_PE] (@IssueID INT, @CurrentDate DATETIME) RETURNS TABLE AS RETURN (
-- Add the SELECT statement with parameter references here
SELECT
DISTINCT LD.IssueID,
R.RoleName,
SRC.SubRoleCategoryItem AS 'SubRole',
U.UserID,
SR.SubRoleID,
0 AS 'ItemStatus',
WS.WorkflowStepNumber AS 'Step',
@CurrentDate AS 'AssignedDate',
@CurrentDate AS 'NotifyDate',
@CurrentDate AS 'RoleAssignedDate',
1 AS ApprovalType
FROM
LotDisposition LD
INNER JOIN WorkflowSteps WS ON LD.CurrentStep = WS.WorkflowStepNumber
INNER JOIN Workflows W ON WS.WorkflowID = W.WorkflowID
INNER JOIN DocumentType D ON W.DocumentTypeID = D.DocumentTypeID
AND DocumentType = 'LotDisposition'
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 Lot L ON LD.IssueID = L.IssueID
INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID
INNER JOIN Users U ON U.UserID = USR.UserID
WHERE
LD.IssueID = @IssueID
AND (SRC.SubRoleCategoryItem = 'MA-All')
)
GO

View File

@ -0,0 +1,50 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fnGetStep1RolesRH_YE] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE FUNCTION [dbo].[fnGetStep1RolesRH_YE] (
-- Add the parameters for the function here
@IssueID INT,
@CurrentDate DATETIME
) RETURNS TABLE AS RETURN (
-- Add the SELECT statement with parameter references here
SELECT
DISTINCT LD.IssueID,
R.RoleName,
SRC.SubRoleCategoryItem AS 'SubRole',
U.UserID,
SR.SubRoleID,
0 AS 'ItemStatus',
WS.WorkflowStepNumber AS 'Step',
@CurrentDate AS 'AssignedDate',
@CurrentDate AS 'NotifyDate',
@CurrentDate AS 'RoleAssignedDate',
1 AS ApprovalType
FROM
LotDisposition LD
INNER JOIN WorkflowSteps WS ON LD.CurrentStep = WS.WorkflowStepNumber
INNER JOIN Workflows W ON WS.WorkflowID = W.WorkflowID
INNER JOIN DocumentType D ON W.DocumentTypeID = D.DocumentTypeID
AND DocumentType = 'LotDisposition'
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 Lot L ON LD.IssueID = L.IssueID
INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID
INNER JOIN Users U ON U.UserID = USR.UserID
WHERE
LD.IssueID = @IssueID
AND (SRC.SubRoleCategoryItem = 'RH-All')
AND (RoleName = 'Yield Engineer')
)
GO

View File

@ -0,0 +1,45 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fnGetStep1RolesRH_YE_PE] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE FUNCTION [dbo].[fnGetStep1RolesRH_YE_PE] (@IssueID INT, @CurrentDate DATETIME) RETURNS TABLE AS RETURN (
-- Add the SELECT statement with parameter references here
SELECT
DISTINCT LD.IssueID,
R.RoleName,
SRC.SubRoleCategoryItem AS 'SubRole',
U.UserID,
SR.SubRoleID,
0 AS 'ItemStatus',
WS.WorkflowStepNumber AS 'Step',
@CurrentDate AS 'AssignedDate',
@CurrentDate AS 'NotifyDate',
@CurrentDate AS 'RoleAssignedDate',
1 AS ApprovalType
FROM
LotDisposition LD
INNER JOIN WorkflowSteps WS ON LD.CurrentStep = WS.WorkflowStepNumber
INNER JOIN Workflows W ON WS.WorkflowID = W.WorkflowID
INNER JOIN DocumentType D ON W.DocumentTypeID = D.DocumentTypeID
AND DocumentType = 'LotDisposition'
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 Lot L ON LD.IssueID = L.IssueID
INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID
INNER JOIN Users U ON U.UserID = USR.UserID
WHERE
LD.IssueID = @IssueID
AND (SRC.SubRoleCategoryItem = 'RH-All')
)
GO

View File

@ -0,0 +1,108 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fnGetStep1Roles_PERequired] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE FUNCTION [dbo].[fnGetStep1Roles_PERequired] (
-- Add the parameters for the function here
@IssueID INT,
@CurrentDate DATETIME
) RETURNS TABLE AS RETURN (
-- Add the SELECT statement with parameter references here
SELECT
DISTINCT IssueID,
R.RoleName,
SRC.SubRoleCategoryItem AS 'SubRole',
U.UserID,
SR.SubRoleID,
0 AS 'ItemStatus',
WS.WorkflowStepNumber AS 'Step',
@CurrentDate AS 'AssignedDate',
@CurrentDate AS 'NotifyDate',
@CurrentDate AS 'RoleAssignedDate',
1 AS ApprovalType
FROM
DocumentType D
INNER JOIN Workflows W ON D.DocumentTypeID = W.DocumentTypeID
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 ResponsibilityIssue RI ON LTRIM(RTRIM(SRC.SubRoleCategoryItem)) = LTRIM(RTRIM(RI.Issue))
INNER JOIN LotDisposition LD ON RI.ResponsibilityIssueID = LD.ResponsibilityIssueID -- Get the em
INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID
INNER JOIN Users U ON U.UserID = USR.UserID
WHERE
LD.IssueID = @IssueID
AND WorkflowStepNumber = LD.CurrentStep
AND DocumentType = 'LotDisposition'
UNION
ALL --YE and PE Rquired
SELECT
DISTINCT LD.IssueID,
R.RoleName,
SRC.SubRoleCategoryItem AS 'SubRole',
U.UserID,
SR.SubRoleID,
0 AS 'ItemStatus',
WS.WorkflowStepNumber AS 'Step',
@CurrentDate AS 'AssignedDate',
@CurrentDate AS 'NotifyDate',
@CurrentDate AS 'RoleAssignedDate',
1 AS ApprovalType
FROM
LotDisposition LD
INNER JOIN WorkflowSteps WS ON LD.CurrentStep = WS.WorkflowStepNumber
INNER JOIN Workflows W ON WS.WorkflowID = W.WorkflowID
INNER JOIN DocumentType D ON W.DocumentTypeID = D.DocumentTypeID
AND DocumentType = 'LotDisposition'
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 Lot L ON LD.IssueID = L.IssueID
INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID
INNER JOIN Users U ON U.UserID = USR.UserID
WHERE
LD.IssueID = @IssueID
AND LTRIM(RTRIM(L.ProductFamily)) + '-G' + LTRIM(RTRIM(CONVERT(CHAR(10), L.Gen))) = SRC.SubRoleCategoryItem
UNION
ALL -- M_Suffix
SELECT
DISTINCT LD.IssueID,
R.RoleName,
SRC.SubRoleCategoryItem AS 'SubRole',
U.UserID,
SR.SubRoleID,
0 AS 'ItemStatus',
WS.WorkflowStepNumber AS 'Step',
@CurrentDate AS 'AssignedDate',
@CurrentDate AS 'NotifyDate',
@CurrentDate AS 'RoleAssignedDate',
1 AS ApprovalType
FROM
LotDisposition LD
INNER JOIN WorkflowSteps WS ON LD.CurrentStep = WS.WorkflowStepNumber
INNER JOIN Workflows W ON WS.WorkflowID = W.WorkflowID
INNER JOIN DocumentType D ON W.DocumentTypeID = D.DocumentTypeID
AND DocumentType = 'LotDisposition'
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 Lot L ON LD.IssueID = L.IssueID
INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID
INNER JOIN Users U ON U.UserID = USR.UserID
INNER JOIN LotStatusOption LSO ON L.LotStatusOptionID = LSO.LotStatusOptionID
WHERE
LD.IssueID = @IssueID
AND LSO.LotStatusOption = SRC.SubRoleCategoryItem
)
GO

View File

@ -0,0 +1,45 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fnGetStep2Roles_GT_10Wafers] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE FUNCTION [dbo].[fnGetStep2Roles_GT_10Wafers] (@IssueID INT, @CurrentDate DATETIME) RETURNS TABLE AS RETURN (
-- Add the SELECT statement with parameter references here
SELECT
DISTINCT LD.IssueID,
R.RoleName,
SRC.SubRoleCategoryItem AS 'SubRole',
U.UserID,
SR.SubRoleID,
0 AS 'ItemStatus',
WS.WorkflowStepNumber AS 'Step',
@CurrentDate AS 'AssignedDate',
@CurrentDate AS 'NotifyDate',
@CurrentDate AS 'RoleAssignedDate',
1 AS ApprovalType
FROM
LotDisposition LD
INNER JOIN WorkflowSteps WS ON LD.CurrentStep = WS.WorkflowStepNumber
INNER JOIN Workflows W ON WS.WorkflowID = W.WorkflowID
INNER JOIN DocumentType D ON W.DocumentTypeID = D.DocumentTypeID
AND DocumentType = 'LotDisposition'
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 LotDispoDepartment LDD ON LD.IssueID = LDD.IssueID
AND SRC.SubRoleCategoryID = LDD.DepartmentID
INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID
INNER JOIN Users U ON U.UserID = USR.UserID
WHERE
LD.IssueID = @IssueID
)
GO

View File

@ -0,0 +1,45 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fnGetStep2Roles_PlantManager] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE FUNCTION [dbo].[fnGetStep2Roles_PlantManager] (@IssueID INT, @CurrentDate DATETIME) RETURNS TABLE AS RETURN (
-- Add the SELECT statement with parameter references here
SELECT
DISTINCT LD.IssueID,
R.RoleName,
SRC.SubRoleCategoryItem AS 'SubRole',
U.UserID,
SR.SubRoleID,
0 AS 'ItemStatus',
WS.WorkflowStepNumber AS 'Step',
@CurrentDate AS 'AssignedDate',
@CurrentDate AS 'NotifyDate',
@CurrentDate AS 'RoleAssignedDate',
1 AS ApprovalType
FROM
LotDisposition LD
INNER JOIN WorkflowSteps WS ON LD.CurrentStep = WS.WorkflowStepNumber
INNER JOIN Workflows W ON WS.WorkflowID = W.WorkflowID
INNER JOIN DocumentType D ON W.DocumentTypeID = D.DocumentTypeID
AND DocumentType = 'LotDisposition'
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
AND (SRC.SubRoleCategoryItem = 'Plant Manager')
INNER JOIN LotDispoDepartment LDD ON LD.IssueID = LDD.IssueID
INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID
INNER JOIN Users U ON U.UserID = USR.UserID
WHERE
LD.IssueID = @IssueID
)
GO

View File

@ -0,0 +1,49 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fnGetStep2Roles_RhMaQdbPeMRB] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE FUNCTION [dbo].[fnGetStep2Roles_RhMaQdbPeMRB] (@IssueID INT, @CurrentDate DATETIME) RETURNS TABLE AS RETURN (
-- Add the SELECT statement with parameter references here
SELECT
DISTINCT LD.IssueID,
R.RoleName,
SRC.SubRoleCategoryItem AS 'SubRole',
U.UserID,
SR.SubRoleID,
0 AS 'ItemStatus',
WS.WorkflowStepNumber AS 'Step',
@CurrentDate AS 'AssignedDate',
@CurrentDate AS 'NotifyDate',
@CurrentDate AS 'RoleAssignedDate',
1 AS ApprovalType
FROM
LotDisposition LD
INNER JOIN WorkflowSteps WS ON LD.CurrentStep = WS.WorkflowStepNumber
INNER JOIN Workflows W ON WS.WorkflowID = W.WorkflowID
INNER JOIN DocumentType D ON W.DocumentTypeID = D.DocumentTypeID
AND DocumentType = 'LotDisposition'
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
AND (
SRC.SubRoleCategoryItem <> 'Facilities'
AND SRC.SubRoleCategoryItem <> 'Plant Manager'
AND SRC.SubRoleCategoryItem <> 'M_Suffix'
)
INNER JOIN LotDispoDepartment LDD ON LD.IssueID = LDD.IssueID
INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID
INNER JOIN Users U ON U.UserID = USR.UserID
WHERE
LD.IssueID = @IssueID
)
GO

View File

@ -0,0 +1,44 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fnGetStep3Role_QDB] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[fnGetStep3Role_QDB] (
-- Add the parameters for the function here
@IssueID INT,
@Current DATETIME
) RETURNS TABLE AS RETURN (
-- Add the SELECT statement with parameter references here
SELECT
DISTINCT LD.IssueID,
R.RoleName,
SRC.SubRoleCategoryItem AS 'SubRole',
U.UserID,
SR.SubRoleID,
0 AS 'ItemStatus',
WS.WorkflowStepNumber AS 'Step',
@Current AS 'AssignedDate',
@Current AS 'NotifyDate',
@Current AS 'RoleAssignedDate',
2 AS ApprovalType
FROM
LotDisposition LD
INNER JOIN WorkflowSteps WS ON LD.CurrentStep = WS.WorkflowStepNumber
INNER JOIN Workflows W ON WS.WorkflowID = W.WorkflowID
INNER JOIN DocumentType D ON W.DocumentTypeID = D.DocumentTypeID
AND DocumentType = 'LotDisposition'
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 Lot L ON LD.IssueID = L.IssueID
AND SRC.SubRoleCategoryItem = 'QDB'
INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID
INNER JOIN Users U ON U.UserID = USR.UserID
WHERE
LD.IssueID = @IssueID
)
GO

View File

@ -0,0 +1,45 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fnGetStep3Roles_Fab] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE FUNCTION [dbo].[fnGetStep3Roles_Fab] (@IssueID INT, @Current DATETIME) RETURNS TABLE AS RETURN (
-- Add the SELECT statement with parameter references here
SELECT
DISTINCT LD.IssueID,
R.RoleName,
SRC.SubRoleCategoryItem AS 'SubRole',
U.UserID,
SR.SubRoleID,
0 AS 'ItemStatus',
WS.WorkflowStepNumber AS 'Step',
@Current AS 'AssignedDate',
@Current AS 'NotifyDate',
@Current AS 'RoleAssignedDate',
2 AS ApprovalType
FROM
LotDisposition LD
INNER JOIN WorkflowSteps WS ON LD.CurrentStep = WS.WorkflowStepNumber
INNER JOIN Workflows W ON WS.WorkflowID = W.WorkflowID
INNER JOIN DocumentType D ON W.DocumentTypeID = D.DocumentTypeID
AND DocumentType = 'LotDisposition'
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 Lot L ON LD.IssueID = L.IssueID
AND SRC.SubRoleCategoryItem = 'Fab'
INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID
INNER JOIN Users U ON U.UserID = USR.UserID
WHERE
LD.IssueID = @issueID
)
GO

View File

@ -0,0 +1,45 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fnGetStep3Roles_Probe] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE FUNCTION [dbo].[fnGetStep3Roles_Probe] (@IssueID INT, @Current DATETIME) RETURNS TABLE AS RETURN (
-- Add the SELECT statement with parameter references here
SELECT
DISTINCT LD.IssueID,
R.RoleName,
SRC.SubRoleCategoryItem AS 'SubRole',
U.UserID,
SR.SubRoleID,
0 AS 'ItemStatus',
WS.WorkflowStepNumber AS 'Step',
@Current AS 'AssignedDate',
@Current AS 'NotifyDate',
@Current AS 'RoleAssignedDate',
2 AS ApprovalType
FROM
LotDisposition LD
INNER JOIN WorkflowSteps WS ON LD.CurrentStep = WS.WorkflowStepNumber
INNER JOIN Workflows W ON WS.WorkflowID = W.WorkflowID
INNER JOIN DocumentType D ON W.DocumentTypeID = D.DocumentTypeID
AND DocumentType = 'LotDisposition'
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 Lot L ON LD.IssueID = L.IssueID
AND SRC.SubRoleCategoryItem = 'Probe'
INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID
INNER JOIN Users U ON U.UserID = USR.UserID
WHERE
LD.IssueID = @IssueID
)
GO

View File

@ -0,0 +1,27 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fnIsUserITARCompliant] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE FUNCTION [dbo].[fnIsUserITARCompliant] (@UserID INT) RETURNS TABLE AS RETURN (
-- Add the SELECT statement with parameter references here
--SELECT SAM.* FROM [TEM-CDB02].SAM.dbo.vwSamActiveUsersWithSupervisorID SAM
SELECT
SAM.*
FROM
SAMUsers SAM
INNER JOIN Users U ON SAM.UserID = U.LoginID
WHERE
HasITARAccess = 1
AND U.UserID = @UserID -- Return the result of the function
)
GO

View File

@ -0,0 +1,70 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fnLotDispositionLotSummary] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[fnLotDispositionLotSummary](@IssueID int) RETURNS TABLE AS RETURN (
SELECT
SUM(
CASE
WHEN L.LotStatusOptionID IN (1, 4, 6)
AND L.DieCount > 0 THEN L.TotalCost -- Release, M_Suffix, CloseToQDB
WHEN S.ReleaseCount > 0
AND L.WaferCount > 0
AND L.TotalCost > 0 THEN S.ReleaseCount * (L.TotalCost / L.WaferCount)
ELSE 0
END
) AS [TotalReleaseCost],
SUM(
CASE
WHEN S.ReleaseCount > 0
AND L.WaferCount > 0
AND L.TotalCost > 0 THEN S.ReleaseCount
ELSE 0
END
) AS [TotalReleaseWaferCount],
SUM(
CASE
WHEN L.LotStatusOptionID IN (1, 4, 6) -- Release, M_Suffix, CloseToQDB
AND L.DieCount > 0 THEN L.DieCount
ELSE 0
END
) AS [TotalDieReleaseCount],
SUM(
CASE
WHEN L.LotStatusOptionID = 2
AND L.DieCount > 0 THEN L.TotalCost -- Scrap
WHEN S.ScrapCount > 0
AND L.WaferCount > 0
AND L.TotalCost > 0 THEN S.ScrapCount * (L.TotalCost / L.WaferCount)
ELSE 0
END
) AS [TotalScrapCost],
SUM(
CASE
WHEN S.ScrapCount > 0
AND L.WaferCount > 0
AND L.TotalCost > 0 THEN S.ScrapCount
ELSE 0
END
) AS [TotalScrapWaferCount],
SUM(
CASE
WHEN L.LotStatusOptionID = 2
AND L.DieCount > 0 THEN L.DieCount -- Scrap
ELSE 0
END
) AS [TotalScrapDieCount],
COUNT(L.LotNumber) AS LotCount
FROM
ScrapLot S
INNER JOIN Lot L ON S.IssueID = L.IssueID
AND S.LotNo = L.LotNumber
WHERE
S.IssueID = @IssueID
)
GO

View File

@ -0,0 +1,30 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fnPartsRequestGetSubRolesForNextStep] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[fnPartsRequestGetSubRolesForNextStep] (@PRNumber int) RETURNS varchar(100) AS BEGIN DECLARE @NextStep int = 0 DECLARE @r varchar(100)
SELECT
@NextStep = CurrentStep + 1
FROM
PartsRequest
WHERE
PRNumber = @PRNumber
SET
@r = CASE
WHEN @NextStep = 1 THEN 'Part Assignment'
WHEN @NextStep = 2 THEN 'Pre-Approver'
WHEN @NextStep = 3 THEN 'Tech Lead'
WHEN @NextStep = 4 THEN 'Finance'
WHEN @NextStep = 5 THEN 'SAP'
WHEN @NextStep = 6 THEN 'Source List & Info Record'
WHEN @NextStep = 7 THEN 'Buyer/Planner'
WHEN @NextStep = 8 THEN 'Close to Folder'
ELSE 'Part Assignment'
END RETURN @r
END
GO

View File

@ -0,0 +1,28 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fnPlanConvertPlanNoToDisplayFormat] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[fnPlanConvertPlanNoToDisplayFormat] (
-- Add the parameters for the function here
@PlanNo INT
) RETURNS VARCHAR(10) AS BEGIN -- Declare the return variable here
DECLARE @Display VARCHAR(10) -- Add the T-SQL statements to compute the return value here
SET
@Display = LTRIM(
RTRIM(
CAST(
'P' + RIGHT(
'0000' + ISNULL(CAST(@PlanNo AS VARCHAR(10)), ''),
5
) AS VARCHAR(50)
)
)
) -- Return the result of the function
RETURN @Display
END
GO

View File

@ -0,0 +1,29 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fnSplitCSV] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[fnSplitCSV](@csv varchar(max)) RETURNS @r TABLE (Position int, Val varchar(max)) AS BEGIN DECLARE @I INT = 1 DECLARE @VAL VARCHAR(1000) DECLARE @SEPERATOR CHAR(1) = ',' DECLARE @SP INT DECLARE @WORK VARCHAR(MAX) = @csv WHILE PATINDEX('%' + @SEPERATOR + '%', @WORK) <> 0 BEGIN
SELECT
@SP = PATINDEX('%' + @SEPERATOR + '%', @WORK)
SELECT
@VAL = LEFT(@WORK, @SP - 1)
SELECT
@WORK = STUFF(@WORK, 1, @SP, '')
INSERT INTO
@r
VALUES
(@I, @VAL)
SET
@I = @I + 1
END IF @WORK <> ''
INSERT INTO
@r
VALUES
(@I, @WORK) RETURN
END
GO

View File

@ -0,0 +1,48 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fn_Get8DAuditByUser] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE FUNCTION [dbo].[fn_Get8DAuditByUser] (
-- Add the parameters for the function here
@UserID INT
) RETURNS TABLE AS RETURN (
-- Add the SELECT statement with parameter references here
-- M_Suffix
SELECT
DISTINCT 'Audit' AS DocumentType,
'Audit' AS SubDoc,
*
FROM
(
SELECT
DISTINCT A.AuditNo as IssueID,
A.AuditNo DocID,
A.AuditDate,
'' AS LotNos,
'' AS 'PendingApprovers',
A.AuditTitle AS Title,
'' AS IssueDescription,
U2.FirstName + ' ' + U2.LastName AS Originator,
A.AuditDate SubmitedDate,
NULL AS CloseDate,
'' AS ItemStatus,
NULL AS NextDueDate
FROM
_8DAudit A
INNER JOIN Users U2 ON A.OriginatorID = U2.UserID
WHERE
A.OriginatorID = @UserID
AND (A.AuditStatus = 0)
) AS A
)
GO

View File

@ -0,0 +1,132 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fn_Get8DCAByUser] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE FUNCTION [dbo].[fn_Get8DCAByUser] (
-- Add the parameters for the function here
@UserID INT
) RETURNS TABLE AS RETURN (
-- Add the SELECT statement with parameter references here
-- M_Suffix
SELECT
DISTINCT 'CorrectiveAction' AS DocumentType,
'CA' AS SubDoc,
*
FROM
(
SELECT
DISTINCT CA.CANo as IssueID,
CA.CANo as DocID,
CA.IssueDate,
'' AS LotNos,
pdg.Names AS 'PendingApprovers',
CA.CATitle AS Title,
CA.D2ProblemDescription IssueDescription,
U2.FirstName + ' ' + U2.LastName AS Originator,
CA.CACompleteDate SubmitedDate,
CA.ClosedDate CloseDate,
A.ItemStatus,
CASE
WHEN Status = 1 THEN NULL
WHEN Status IN (10, 9, 3) THEN CA.D3DueDate
WHEN Status IN (4, 5, 6, 7) THEN CA.D5D7DueDate
WHEN Status = 11 THEN CA.FollowUpDate
ELSE CA.D8DueDate
END AS NextDueDate
FROM
_8DCorrectiveAction CA
INNER JOIN Approval A ON A.IssueID = CA.CANo
AND DocumentTypeID = 9
LEFT JOIN Users U2 ON CA.RequestorID = U2.UserID
INNER JOIN Users U1 ON A.UserID = U1.UserID
LEFT JOIN (
SELECT
DISTINCT CA.CANo,
STUFF (
(
SELECT
'/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50))
FROM
Approval A
INNER JOIN Users U ON A.UserID = U.UserID
WHERE
DocumentTypeID = 9
AND A.IssueID = CA.CANo
AND ItemStatus = 0 FOR XML PATH('')
),
1,
1,
''
) AS Names
FROM
_8DCorrectiveAction CA
) AS pdg ON CA.CANo = pdg.CANo
WHERE
A.UserID = @UserID
AND Status NOT IN (1, 11)
AND CA.Deleted = 0
UNION
SELECT
DISTINCT CA.CANo as IssueID,
CA.CANo as DocID,
CA.IssueDate,
'' AS LotNos,
pdg.Names AS 'PendingApprovers',
CA.CATitle AS Title,
CA.D2ProblemDescription IssueDescription,
U2.FirstName + ' ' + U2.LastName AS Originator,
CA.CACompleteDate SubmitedDate,
CA.ClosedDate CloseDate,
A.ItemStatus,
CASE
WHEN Status = 1 THEN NULL
WHEN Status IN (10, 9, 3) THEN CA.D3DueDate
WHEN Status IN (4, 5, 6, 7) THEN CA.D5D7DueDate
WHEN Status = 11 THEN CA.FollowUpDate
ELSE CA.D8DueDate
END AS NextDueDate
FROM
_8DCorrectiveAction CA
LEFT JOIN Approval A ON A.IssueID = CA.CANo
AND DocumentTypeID = 9
INNER JOIN Users U2 ON CA.RequestorID = U2.UserID
LEFT JOIN (
SELECT
DISTINCT CA.CANo,
STUFF (
(
SELECT
'/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50))
FROM
Approval A
INNER JOIN Users U ON A.UserID = U.UserID
WHERE
DocumentTypeID = 9
AND A.IssueID = CA.CANo
AND ItemStatus = 0 FOR XML PATH('')
),
1,
1,
''
) AS Names
FROM
_8DCorrectiveAction CA
) AS pdg ON CA.CANo = pdg.CANo
WHERE
CA.QAID = @UserID
AND CA.ClosedDate IS NULL -- added the where clause below on 8/2/2019 RJK
AND Status <> 1
AND CA.Deleted = 0
) AS A
)
GO

View File

@ -0,0 +1,50 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fn_Get8DCASectionByUser] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE FUNCTION [dbo].[fn_Get8DCASectionByUser] (
-- Add the parameters for the function here
@UserID INT
) RETURNS TABLE AS RETURN (
-- Add the SELECT statement with parameter references here
-- M_Suffix
SELECT
DISTINCT 'CorrectiveAction' AS DocumentType,
'CA' AS SubDoc,
*
FROM
(
SELECT
DISTINCT CA.CANo as IssueID,
CA.CANo as DocID,
CA.IssueDate,
'' AS LotNos,
'' AS 'PendingApprovers',
CONCAT(A.DSection, ' Approval', ' - ', CA.CATitle) AS Title,
'' AS 'IssueDescription',
U2.FirstName + ' ' + U2.LastName AS Originator,
A.DateAssigned AS SubmitedDate,
'' AS CloseDate,
'' AS ItemStatus,
NULL AS NextDueDate
FROM
_8DCorrectiveAction CA
INNER JOIN _8DSectionApproval A ON A.CaNo = CA.CANo
LEFT JOIN Users U2 ON CA.RequestorID = U2.UserID
WHERE
A.Approved IS NULL
AND A.UserId = @UserID
AND CA.Deleted = 0
) AS A
)
GO

View File

@ -0,0 +1,45 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fn_GetChangeControl] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE FUNCTION [dbo].[fn_GetChangeControl] () RETURNS TABLE AS RETURN (
-- Add the SELECT statement with parameter references here
-- M_Suffix
SELECT
DISTINCT 'ChangeControl' AS DocumentType,
'ChangeControl' AS SubDoc,
CC.PlanNumber AS IssueID,
CC.PlanNumber AS DocID,
CC.InsertTimeStamp AS IssueDate,
'' AS LotNos,
'' AS 'PendingApprovers',
Title,
ChangeDescription AS IssueDescription,
U.FirstName + ' ' + U.LastName AS Originator,
Dates.StartDate AS SubmitedDate,
ClosedDate AS CloseDate
FROM
CCChangeControl CC
LEFT JOIN Users U ON CC.OwnerID = U.UserID
LEFT JOIN (
SELECT
PlanNumber,
MIN(MeetingDate) AS StartDate,
MAX(MeetingDate) AS StatusDate
FROM
CCMeeting
GROUP BY
PlanNumber
) AS Dates ON CC.PlanNumber = Dates.PlanNumber
)
GO

View File

@ -0,0 +1,67 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fn_GetECNs] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE FUNCTION [dbo].[fn_GetECNs] () RETURNS TABLE AS RETURN (
-- Add the SELECT statement with parameter references here
-- M_Suffix
SELECT
'ECN' AS DocumentType,
CASE
WHEN E.IsECN = 1 THEN 'ECN'
WHEN E.IsTECN = 1 THEN 'TECN'
WHEN E.IsEmergencyTECN = 1 THEN 'E-TECN'
ELSE 'ECN'
END AS SubDoc,
E.ECNNumber AS IssueID,
E.ECNNumber AS DocID,
IssueDate,
'' AS LotNos,
pdg.Names AS 'PendingApprovers',
Title,
DescriptionOfChange AS IssueDescription,
U.FirstName + ' ' + U.LastName AS Originator,
SubmitedDate,
CloseDate
FROM
ECN E
LEFT JOIN Users U ON E.OriginatorID = U.UserID
LEFT JOIN (
SELECT
DISTINCT E.ECNNumber AS IssueID,
STUFF (
(
SELECT
'/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50)) + '(' + A.RoleName + ')'
FROM
Approval A
INNER JOIN Users U ON A.UserID = U.UserID
WHERE
(
A.DocumentTypeID = 3
OR A.DocumentTypeID = 4
)
AND A.IssueID = E.ECNNumber
AND ItemStatus = 0 FOR XML PATH('')
),
1,
1,
''
) AS Names
FROM
ECN E
) AS pdg ON E.ECNNumber = pdg.IssueID
WHERE
E.Deleted = 0
)
GO

View File

@ -0,0 +1,170 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fn_GetECNsByUser] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE FUNCTION [dbo].[fn_GetECNsByUser] (
-- Add the parameters for the function here
@UserID INT
) RETURNS TABLE AS RETURN (
-- Add the SELECT statement with parameter references here
-- M_Suffix
SELECT
DISTINCT 'ECN' AS DocumentType,
*
FROM
(
SELECT
CASE
WHEN E.IsECN = 1 THEN 'ECN'
WHEN E.IsTECN = 1 THEN 'TECN'
WHEN E.IsEmergencyTECN = 1 THEN 'E-TECN'
ELSE 'ECN'
END AS SubDoc,
E.ECNNumber AS IssueID,
E.ECNNumber AS DocID,
IssueDate,
'' AS LotNos,
pdg.Names AS 'PendingApprovers',
Title,
DescriptionOfChange AS IssueDescription,
U2.FirstName + ' ' + U2.LastName AS Originator,
SubmitedDate,
CloseDate,
A.ItemStatus,
NULL AS NextDueDate
FROM
ECN E
INNER JOIN Approval A ON A.IssueID = E.ECNNumber
AND (
A.DocumentTypeID = 3
OR A.DocumentTypeID = 4
OR A.DocumentTypeID = 5
)
INNER JOIN Users U2 ON E.OriginatorID = U2.UserID
INNER JOIN Users U1 ON A.UserID = U1.UserID
LEFT JOIN (
SELECT
DISTINCT E.ECNNumber AS IssueID,
STUFF (
(
SELECT
'/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50)) + '(' + A.RoleName + ')'
FROM
Approval A
INNER JOIN Users U ON A.UserID = U.UserID
WHERE
(
A.DocumentTypeID = 3
OR A.DocumentTypeID = 4
OR A.DocumentTypeID = 5
)
AND A.IssueID = E.ECNNumber
AND ItemStatus = 0 FOR XML PATH('')
),
1,
1,
''
) AS Names
FROM
ECN E
) AS pdg ON E.ECNNumber = pdg.IssueID
WHERE
A.UserID = @UserID
AND E.Deleted = 0
AND (
ItemStatus = 0
OR (
ItemStatus = 2
AND DisplayDeniedDocument = 1
)
OR (
A.ItemStatus = 8
AND (
ExtensionDate > GETDATE()
OR ExpirationDate > GETDATE()
)
)
)
AND E.CancellationApproved = 0 --List of documents orginated by the user
UNION
ALL
SELECT
DISTINCT CASE
WHEN E.IsECN = 1 THEN 'ECN'
WHEN E.IsTECN = 1 THEN 'TECN'
WHEN E.IsEmergencyTECN = 1 THEN 'E-TECN'
ELSE 'ECN'
END AS SubDoc,
E.ECNNumber AS IssueID,
E.ECNNumber AS DocID,
IssueDate,
'' AS LotNos,
ISNULL(pdg.Names, '') AS 'PendingApprovers',
Title,
DescriptionOfChange AS IssueDescription,
U1.FirstName + ' ' + U1.LastName AS Originator,
SubmitedDate,
CloseDate,
AP.ItemStatus,
NULL AS NextDueDate
FROM
ECN E
INNER JOIN Users U1 ON E.OriginatorID = U1.UserID
LEFT JOIN Approval AP ON E.ECNNumber = AP.IssueID
LEFT JOIN (
SELECT
DISTINCT E.ECNNumber AS IssueID,
STUFF (
(
SELECT
'/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50)) + '(' + A.RoleName + ')'
FROM
Approval A
INNER JOIN Users U ON A.UserID = U.UserID
WHERE
(
A.DocumentTypeID = 3
OR A.DocumentTypeID = 4
OR A.DocumentTypeID = 5
)
AND A.IssueID = E.ECNNumber
AND ItemStatus = 0 FOR XML PATH('')
),
1,
1,
''
) AS Names
FROM
ECN E
) AS pdg ON E.ECNNumber = pdg.IssueID
WHERE
U1.UserID = @UserID
AND E.Deleted = 0
AND E.CancellationApproved = 0
AND E.ECNNumber NOT IN (
SELECT
IssueID
FROM
Approval
WHERE
IssueID = E.ECNNumber
AND ItemStatus <> 2
AND ItemStatus <> 8
AND (
DocumentTypeID = 3
OR DocumentTypeID = 4
)
)
) AS A
)
GO

View File

@ -0,0 +1,155 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fn_GetECNsByUserPrev] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE FUNCTION [dbo].[fn_GetECNsByUserPrev] (
-- Add the parameters for the function here
@UserID INT
) RETURNS TABLE AS RETURN (
-- Add the SELECT statement with parameter references here
-- M_Suffix
SELECT
DISTINCT 'ECN' AS DocumentType,
*
FROM
(
SELECT
CASE
WHEN E.IsECN = 1 THEN 'ECN'
WHEN E.IsTECN = 1 THEN 'TECN'
WHEN E.IsEmergencyTECN = 1 THEN 'E-TECN'
ELSE 'ECN'
END AS SubDoc,
E.ECNNumber AS IssueID,
IssueDate,
'' AS LotNos,
pdg.Names AS 'PendingApprovers',
Title,
DescriptionOfChange AS IssueDescription,
U2.FirstName + ' ' + U2.LastName AS Originator,
SubmitedDate,
CloseDate,
A.ItemStatus
FROM
ECN E
INNER JOIN Approval A ON A.IssueID = E.ECNNumber
AND (
A.DocumentTypeID = 3
OR A.DocumentTypeID = 4
OR A.DocumentTypeID = 5
)
INNER JOIN Users U2 ON E.OriginatorID = U2.UserID
INNER JOIN Users U1 ON A.UserID = U1.UserID
LEFT JOIN (
SELECT
DISTINCT E.ECNNumber AS IssueID,
STUFF (
(
SELECT
'/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50))
FROM
Approval A
INNER JOIN Users U ON A.UserID = U.UserID
WHERE
(
A.DocumentTypeID = 3
OR A.DocumentTypeID = 4
OR A.DocumentTypeID = 5
)
AND A.IssueID = E.ECNNumber
AND ItemStatus = 0 FOR XML PATH('')
),
1,
1,
''
) AS Names
FROM
ECN E
) AS pdg ON E.ECNNumber = pdg.IssueID
WHERE
A.UserID = @UserID
AND E.Deleted = 0
AND (
ItemStatus = 0
OR (
ItemStatus = 2
AND DisplayDeniedDocument = 1
)
) --List of documents orginated by the user
UNION
ALL
SELECT
DISTINCT CASE
WHEN E.IsECN = 1 THEN 'ECN'
WHEN E.IsTECN = 1 THEN 'TECN'
WHEN E.IsEmergencyTECN = 1 THEN 'E-TECN'
ELSE 'ECN'
END AS SubDoc,
E.ECNNumber AS IssueID,
IssueDate,
'' AS LotNos,
ISNULL(pdg.Names, '') AS 'PendingApprovers',
Title,
DescriptionOfChange AS IssueDescription,
U1.FirstName + ' ' + U1.LastName AS Originator,
SubmitedDate,
CloseDate,
AP.ItemStatus
FROM
ECN E
INNER JOIN Users U1 ON E.OriginatorID = U1.UserID
LEFT JOIN Approval AP ON E.ECNNumber = AP.IssueID
LEFT JOIN (
SELECT
DISTINCT E.ECNNumber AS IssueID,
STUFF (
(
SELECT
'/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50))
FROM
Approval A
INNER JOIN Users U ON A.UserID = U.UserID
WHERE
(
A.DocumentTypeID = 3
OR A.DocumentTypeID = 4
OR A.DocumentTypeID = 5
)
AND A.IssueID = E.ECNNumber
AND ItemStatus = 0 FOR XML PATH('')
),
1,
1,
''
) AS Names
FROM
ECN E
) AS pdg ON E.ECNNumber = pdg.IssueID
WHERE
U1.UserID = @UserID
AND E.ECNNumber NOT IN (
SELECT
IssueID
FROM
Approval
WHERE
IssueID = E.ECNNumber
AND ItemStatus <> 2
AND (
DocumentTypeID = 3
OR DocumentTypeID = 4
)
)
) AS A
)
GO

View File

@ -0,0 +1,88 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fn_GetExpiredTECNByOriginator] ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE FUNCTION [dbo].[fn_GetExpiredTECNByOriginator] (
-- Add the parameters for the function here
@UserID INT,
@MaxDays INT
) RETURNS TABLE AS RETURN (
SELECT
DISTINCT 'ECN' AS DocumentType,
CASE
WHEN E.IsECN = 1 THEN 'ECN'
WHEN E.IsTECN = 1 THEN 'TECN'
WHEN E.IsEmergencyTECN = 1 THEN 'E-TECN'
ELSE 'ECN'
END AS SubDoc,
E.ECNNumber AS IssueID,
E.ECNNumber AS DocID,
IssueDate,
'' AS LotNos,
ISNULL(pdg.Names, '') AS 'PendingApprovers',
Title,
DescriptionOfChange AS IssueDescription,
U1.FirstName + ' ' + U1.LastName AS Originator,
SubmitedDate,
CloseDate,
ItemStatus,
NULL AS NextDueDate
FROM
ECN E
INNER JOIN Users U1 ON E.OriginatorID = U1.UserID
LEFT JOIN Approval AP ON E.ECNNumber = AP.IssueID
LEFT JOIN (
SELECT
DISTINCT E.ECNNumber AS IssueID,
STUFF (
(
SELECT
'/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50))
FROM
Approval A
INNER JOIN Users U ON A.UserID = U.UserID
WHERE
(
A.DocumentTypeID = 3
OR A.DocumentTypeID = 4
OR A.DocumentTypeID = 5
)
AND A.IssueID = E.ECNNumber
AND ItemStatus = 0 FOR XML PATH('')
),
1,
1,
''
) AS Names
FROM
ECN E
) AS pdg ON E.ECNNumber = pdg.IssueID
WHERE
E.OriginatorID = @UserID
AND E.IsTECN = 1
AND (
(
ExtensionDate IS NULL
AND DATEDIFF(dd, ExpirationDate, GETDATE()) BETWEEN 0
AND @MaxDays
)
OR (
DATEDIFF(dd, ExtensionDate, GETDATE()) BETWEEN 0
AND @MaxDays
)
)
AND CloseDate IS NOT NULL
AND ExpirationDate < GETDATE()
AND Deleted = 0
)
GO

View File

@ -0,0 +1,59 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fn_GetLTWorkRequests] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE FUNCTION [dbo].[fn_GetLTWorkRequests] () RETURNS TABLE AS RETURN (
-- Add the SELECT statement with parameter references here
-- M_Suffix
SELECT
DISTINCT 'LotTraveler' AS DocumentType,
'LotTraveler' AS SubDoc,
W.SWRNumber AS IssueID,
W.ID AS DocID,
W.OriginatedDate AS IssueDate,
W.LotNumber AS LotNos,
pdg.Names AS 'PendingApprovers',
Title,
PurposeOfRequest,
U.FirstName + ' ' + U.LastName AS Originator,
SubmitedDate,
CloseDate
FROM
LTWorkRequest W
LEFT JOIN Users U ON W.OriginatorID = U.UserID
LEFT JOIN (
SELECT
DISTINCT W.ID,
STUFF (
(
SELECT
'/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50)) + '(' + A.RoleName + ')'
FROM
Approval A
INNER JOIN Users U ON A.UserID = U.UserID
WHERE
DocumentTypeID = 6
AND A.IssueID = W.ID
AND ItemStatus = 0 FOR XML PATH('')
),
1,
1,
''
) AS Names
FROM
LTWorkRequest W
) AS pdg ON W.ID = pdg.ID
WHERE
IsCurrentRevision = 1
)
GO

View File

@ -0,0 +1,140 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fn_GetLTWorkRequestsByUser] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE FUNCTION [dbo].[fn_GetLTWorkRequestsByUser] (
-- Add the parameters for the function here
@UserID INT
) RETURNS TABLE AS RETURN (
-- Add the SELECT statement with parameter references here
-- M_Suffix
SELECT
DISTINCT 'LotTraveler' AS DocumentType,
'LotTraveler' AS SubDoc,
*
FROM
(
SELECT
DISTINCT W.SWRNumber AS IssueID,
W.ID AS DocID,
W.OriginatedDate AS IssueDate,
W.LotNumber AS LotNos,
pdg.Names AS 'PendingApprovers',
Title,
PurposeOfRequest,
U2.FirstName + ' ' + U2.LastName AS Originator,
SubmitedDate,
CloseDate,
A.ItemStatus,
NULL AS NextDueDate
FROM
LTWorkRequest W WITH(NOLOCK)
INNER JOIN Approval A WITH(NOLOCK) ON A.IssueID = W.ID
AND DocumentTypeID = 6
INNER JOIN Users U2 WITH(NOLOCK) ON W.OriginatorID = U2.UserID
INNER JOIN Users U1 WITH(NOLOCK) ON A.UserID = U1.UserID --LEFT JOIN
--(SELECT DISTINCT M.MRBNumber, STUFF
-- ((SELECT '/' + CAST(L.LotNumber AS varchar(512))
-- FROM MRBLot L
-- WHERE L.MRBNumber = M.MRBNumber FOR XML PATH('')), 1, 1, '') AS LotNo
-- FROM MRB M) AS SQ
--ON M.MRBNumber = SQ.MRBNumber
LEFT JOIN (
SELECT
DISTINCT W.ID,
STUFF (
(
SELECT
'/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50)) + '(' + A.RoleName + ')'
FROM
Approval A WITH(NOLOCK)
INNER JOIN Users U WITH(NOLOCK) ON A.UserID = U.UserID
WHERE
DocumentTypeID = 6
AND A.IssueID = W.ID
AND ItemStatus = 0 FOR XML PATH('')
),
1,
1,
''
) AS Names
FROM
LTWorkRequest W WITH(NOLOCK)
) AS pdg ON W.ID = pdg.ID
WHERE
A.UserID = @UserID
AND (ItemStatus = 0)
AND IsCurrentRevision = 1
UNION
ALL
SELECT
DISTINCT W.SWRNumber AS IssueID,
W.ID AS DocID,
W.OriginatedDate AS IssueDate,
W.LotNumber AS LotNos,
ISNULL(pdg.Names, '') AS 'PendingApprovers',
Title,
PurposeOfRequest,
U1.FirstName + ' ' + U1.LastName AS Originator,
SubmitedDate,
CloseDate,
AP.ItemStatus,
NULL AS NextDueDate
FROM
LTWorkRequest W WITH(NOLOCK)
INNER JOIN Users U1 WITH(NOLOCK) ON W.OriginatorID = U1.UserID
LEFT JOIN Approval AP WITH(NOLOCK) ON W.ID = AP.IssueID --LEFT JOIN
--(SELECT DISTINCT LD.IssueID, STUFF
-- ((SELECT '/' + CAST(L.LotNumber AS varchar(512))
-- FROM Lot L
-- WHERE L.IssueID = LD.IssueID FOR XML PATH('')), 1, 1, '') AS LotNo
-- FROM LotDisposition LD) AS SQ
--ON LD.IssueID = SQ.IssueID
LEFT JOIN (
SELECT
DISTINCT W.ID,
STUFF (
(
SELECT
'/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50)) + '(' + A.RoleName + ')'
FROM
Approval A WITH(NOLOCK)
INNER JOIN Users U WITH(NOLOCK) ON A.UserID = U.UserID
WHERE
DocumentTypeID = 6
AND A.IssueID = W.ID
AND ItemStatus = 0 FOR XML PATH('')
),
1,
1,
''
) AS Names
FROM
LTWorkRequest W WITH(NOLOCK)
) AS pdg ON W.ID = pdg.ID
WHERE
U1.UserID = @UserID
AND W.ID NOT IN (
SELECT
IssueID
FROM
Approval WITH(NOLOCK)
WHERE
IssueID = W.ID
AND ItemStatus <> 2
AND DocumentTypeID = 6
)
AND IsCurrentRevision = 1
) AS A
)
GO

View File

@ -0,0 +1,76 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fn_GetLotDispositions] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE FUNCTION [dbo].[fn_GetLotDispositions] () RETURNS TABLE AS RETURN (
-- Add the SELECT statement with parameter references here
-- M_Suffix
SELECT
'LotDisposition' AS DocumentType,
'LotDisposition' AS SubDoc,
LD.IssueID,
LD.IssueID AS DocID,
IssueDate,
SQ.LotNo AS LotNos,
pdg.Names AS 'PendingApprovers',
Title,
IssueDescription,
U.FirstName + ' ' + U.LastName AS Originator,
SubmitedDate,
CloseDate
FROM
LotDisposition LD
LEFT JOIN Users U ON LD.OriginatorID = U.UserID
LEFT JOIN (
SELECT
DISTINCT LD.IssueID,
STUFF (
(
SELECT
'/' + CAST(L.LotNumber AS varchar(512))
FROM
Lot L
WHERE
L.IssueID = LD.IssueID FOR XML PATH('')
),
1,
1,
''
) AS LotNo
FROM
LotDisposition LD
) AS SQ ON LD.IssueID = SQ.IssueID
LEFT JOIN (
SELECT
DISTINCT LD.IssueID,
STUFF (
(
SELECT
'/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50)) + '(' + A.RoleName + ')'
FROM
Approval A
INNER JOIN Users U ON A.UserID = U.UserID
WHERE
A.DocumentTypeID = 1
AND A.IssueID = LD.IssueID
AND ItemStatus = 0 FOR XML PATH('')
),
1,
1,
''
) AS Names
FROM
LotDisposition LD
) AS pdg ON LD.IssueID = pdg.IssueID
)
GO

View File

@ -0,0 +1,170 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fn_GetLotDispositionsByUser] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE FUNCTION [dbo].[fn_GetLotDispositionsByUser] (
-- Add the parameters for the function here
@UserID INT
) RETURNS TABLE AS RETURN (
-- Add the SELECT statement with parameter references here
-- M_Suffix
SELECT
DISTINCT 'LotDisposition' AS DocumentType,
'LotDisposition' AS SubDoc,
*
FROM
(
SELECT
DISTINCT LD.IssueID,
LD.IssueID AS DocID,
IssueDate,
ISNULL(SQ.LotNo, '') AS LotNos,
ISNULL(pdg.Names, '') AS 'PendingApprovers',
Title,
IssueDescription,
U2.FirstName + ' ' + U2.LastName AS Originator,
SubmitedDate,
CloseDate,
A.ItemStatus,
NULL AS NextDueDate
FROM
LotDisposition LD
INNER JOIN Approval A ON A.IssueID = LD.IssueID
AND DocumentTypeID = 1
LEFT JOIN Users U2 ON LD.OriginatorID = U2.UserID
INNER JOIN Users U1 ON A.UserID = U1.UserID
LEFT JOIN (
SELECT
DISTINCT LD.IssueID,
STUFF (
(
SELECT
'/' + CAST(L.LotNumber AS varchar(512))
FROM
Lot L
WHERE
L.IssueID = LD.IssueID FOR XML PATH('')
),
1,
1,
''
) AS LotNo
FROM
LotDisposition LD
) AS SQ ON LD.IssueID = SQ.IssueID
LEFT JOIN (
SELECT
DISTINCT LD.IssueID,
STUFF (
(
SELECT
'/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50)) + '(' + A.RoleName + ')'
FROM
Approval A
INNER JOIN Users U ON A.UserID = U.UserID
WHERE
DocumentTypeID = 1
AND A.IssueID = LD.IssueID
AND ItemStatus = 0 FOR XML PATH('')
),
1,
1,
''
) AS Names
FROM
LotDisposition LD
) AS pdg ON LD.IssueID = pdg.IssueID
WHERE
A.UserID = @UserID
AND (
ItemStatus = 0
OR (
ItemStatus = 2
AND DisplayDeniedDocument = 1
)
)
UNION
ALL
SELECT
DISTINCT LD.IssueID,
LD.IssueID AS DocID,
IssueDate,
ISNULL(SQ.LotNo, '') AS LotNos,
ISNULL(pdg.Names, '') AS 'PendingApprovers',
Title,
IssueDescription,
U1.FirstName + ' ' + U1.LastName AS Originator,
SubmitedDate,
CloseDate,
AP.ItemStatus,
NULL AS NextDueDate
FROM
LotDisposition LD
INNER JOIN Users U1 ON LD.OriginatorID = U1.UserID
LEFT JOIN Approval AP ON LD.IssueID = AP.IssueID
LEFT JOIN (
SELECT
DISTINCT LD.IssueID,
STUFF (
(
SELECT
'/' + CAST(L.LotNumber AS varchar(512))
FROM
Lot L
WHERE
L.IssueID = LD.IssueID FOR XML PATH('')
),
1,
1,
''
) AS LotNo
FROM
LotDisposition LD
) AS SQ ON LD.IssueID = SQ.IssueID
LEFT JOIN (
SELECT
DISTINCT LD.IssueID,
STUFF (
(
SELECT
'/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50)) + '(' + A.RoleName + ')'
FROM
Approval A
INNER JOIN Users U ON A.UserID = U.UserID
WHERE
DocumentTypeID = 1
AND A.IssueID = LD.IssueID
AND ItemStatus = 0 FOR XML PATH('')
),
1,
1,
''
) AS Names
FROM
LotDisposition LD
) AS pdg ON LD.IssueID = pdg.IssueID
WHERE
U1.UserID = @UserID
AND LD.IssueID NOT IN (
SELECT
IssueID
FROM
Approval
WHERE
IssueID = LD.IssueID
AND ItemStatus <> 2
AND DocumentTypeID = 1
)
) AS A
)
GO

View File

@ -0,0 +1,166 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fn_GetLotDispositionsByUserPrev] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE FUNCTION [dbo].[fn_GetLotDispositionsByUserPrev] (
-- Add the parameters for the function here
@UserID INT
) RETURNS TABLE AS RETURN (
-- Add the SELECT statement with parameter references here
-- M_Suffix
SELECT
DISTINCT 'LotDisposition' AS DocumentType,
'LotDisposition' AS SubDoc,
*
FROM
(
SELECT
DISTINCT LD.IssueID,
IssueDate,
ISNULL(SQ.LotNo, '') AS LotNos,
ISNULL(pdg.Names, '') AS 'PendingApprovers',
Title,
IssueDescription,
U2.FirstName + ' ' + U2.LastName AS Originator,
SubmitedDate,
CloseDate,
A.ItemStatus
FROM
LotDisposition LD
INNER JOIN Approval A ON A.IssueID = LD.IssueID
AND DocumentTypeID = 1
INNER JOIN Users U2 ON LD.OriginatorID = U2.UserID
INNER JOIN Users U1 ON A.UserID = U1.UserID
LEFT JOIN (
SELECT
DISTINCT LD.IssueID,
STUFF (
(
SELECT
'/' + CAST(L.LotNumber AS varchar(512))
FROM
Lot L
WHERE
L.IssueID = LD.IssueID FOR XML PATH('')
),
1,
1,
''
) AS LotNo
FROM
LotDisposition LD
) AS SQ ON LD.IssueID = SQ.IssueID
LEFT JOIN (
SELECT
DISTINCT LD.IssueID,
STUFF (
(
SELECT
'/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50))
FROM
Approval A
INNER JOIN Users U ON A.UserID = U.UserID
WHERE
DocumentTypeID = 1
AND A.IssueID = LD.IssueID
AND ItemStatus = 0 FOR XML PATH('')
),
1,
1,
''
) AS Names
FROM
LotDisposition LD
) AS pdg ON LD.IssueID = pdg.IssueID
WHERE
A.UserID = @UserID
AND (
ItemStatus = 0
OR (
ItemStatus = 2
AND DisplayDeniedDocument = 1
)
)
UNION
ALL
SELECT
DISTINCT LD.IssueID,
IssueDate,
ISNULL(SQ.LotNo, '') AS LotNos,
ISNULL(pdg.Names, '') AS 'PendingApprovers',
Title,
IssueDescription,
U1.FirstName + ' ' + U1.LastName AS Originator,
SubmitedDate,
CloseDate,
AP.ItemStatus
FROM
LotDisposition LD
INNER JOIN Users U1 ON LD.OriginatorID = U1.UserID
LEFT JOIN Approval AP ON LD.IssueID = AP.IssueID
LEFT JOIN (
SELECT
DISTINCT LD.IssueID,
STUFF (
(
SELECT
'/' + CAST(L.LotNumber AS varchar(512))
FROM
Lot L
WHERE
L.IssueID = LD.IssueID FOR XML PATH('')
),
1,
1,
''
) AS LotNo
FROM
LotDisposition LD
) AS SQ ON LD.IssueID = SQ.IssueID
LEFT JOIN (
SELECT
DISTINCT LD.IssueID,
STUFF (
(
SELECT
'/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50))
FROM
Approval A
INNER JOIN Users U ON A.UserID = U.UserID
WHERE
DocumentTypeID = 1
AND A.IssueID = LD.IssueID
AND ItemStatus = 0 FOR XML PATH('')
),
1,
1,
''
) AS Names
FROM
LotDisposition LD
) AS pdg ON LD.IssueID = pdg.IssueID
WHERE
U1.UserID = @UserID
AND LD.IssueID NOT IN (
SELECT
IssueID
FROM
Approval
WHERE
IssueID = LD.IssueID
AND ItemStatus <> 2
AND DocumentTypeID = 1
)
) AS A
)
GO

View File

@ -0,0 +1,163 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fn_GetMRBByUser] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE FUNCTION [dbo].[fn_GetMRBByUser] (
-- Add the parameters for the function here
@UserID INT
) RETURNS TABLE AS RETURN (
-- Add the SELECT statement with parameter references here
-- M_Suffix
SELECT
DISTINCT 'MRB' AS DocumentType,
'MRB' AS SubDoc,
*
FROM
(
SELECT
DISTINCT M.MRBNumber as IssueID,
M.MRBNumber as DocID,
M.SubmittedDate AS IssueDate,
SQ.LotNo AS LotNos,
pdg.Names AS 'PendingApprovers',
Title,
IssueDescription,
U2.FirstName + ' ' + U2.LastName AS Originator,
SubmittedDate,
CloseDate,
A.ItemStatus,
NULL AS NextDueDate
FROM
MRB M
INNER JOIN Approval A ON A.IssueID = M.MRBNumber
INNER JOIN Users U2 ON M.OriginatorID = U2.UserID
INNER JOIN Users U1 ON A.UserID = U1.UserID
LEFT JOIN (
SELECT
DISTINCT M.MRBNumber,
STUFF (
(
SELECT
'/' + CAST(L.LotNumber AS varchar(512))
FROM
MRBAction L
WHERE
L.MRBNumber = M.MRBNumber FOR XML PATH('')
),
1,
1,
''
) AS LotNo
FROM
MRB M
) AS SQ ON M.MRBNumber = SQ.MRBNumber
LEFT JOIN (
SELECT
DISTINCT M.MRBNumber,
STUFF (
(
SELECT
'/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50))
FROM
Approval A
INNER JOIN Users U ON A.UserID = U.UserID
WHERE
A.IssueID = M.MRBNumber
AND ItemStatus = 0 FOR XML PATH('')
),
1,
1,
''
) AS Names
FROM
MRB M
) AS pdg ON M.MRBNumber = pdg.MRBNumber
WHERE
A.UserID = @UserID
AND (ItemStatus = 0) --List of documents orginated by the user
UNION
ALL
SELECT
DISTINCT M.MRBNumber AS IssueID,
M.MRBNumber as DocID,
M.SubmittedDate AS IssueDate,
SQ.LotNo AS LotNos,
pdg.Names AS 'PendingApprovers',
Title,
IssueDescription,
U1.FirstName + ' ' + U1.LastName AS Originator,
M.SubmittedDate AS SubmitedDate,
M.CloseDate AS CloseDate,
AP.ItemStatus,
NULL AS NextDueDate
FROM
MRB M
INNER JOIN Users U1 ON M.OriginatorID = U1.UserID
LEFT JOIN Approval AP ON M.MRBNumber = AP.IssueID
LEFT JOIN (
SELECT
DISTINCT M.MRBNumber,
STUFF (
(
SELECT
'/' + CAST(L.LotNumber AS varchar(512))
FROM
MRBAction L
WHERE
L.MRBNumber = M.MRBNumber FOR XML PATH('')
),
1,
1,
''
) AS LotNo
FROM
MRB M
) AS SQ ON M.MRBNumber = SQ.MRBNumber
LEFT JOIN (
SELECT
DISTINCT M.MRBNumber,
STUFF (
(
SELECT
'/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50))
FROM
Approval A
INNER JOIN Users U ON A.UserID = U.UserID
WHERE
DocumentTypeID = 2
AND A.IssueID = M.MRBNumber
AND ItemStatus = 0 FOR XML PATH('')
),
1,
1,
''
) AS Names
FROM
MRB M
) AS pdg ON M.MRBNumber = pdg.MRBNumber
WHERE
U1.UserID = @UserID
AND AP.DocumentTypeID = 2
AND M.MRBNumber NOT IN (
SELECT
IssueID
FROM
Approval
WHERE
IssueID = M.MRBNumber
AND ItemStatus = 1
AND DocumentTypeID = 2
)
) AS A
)
GO

View File

@ -0,0 +1,161 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fn_GetMRBByUserPrev] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE FUNCTION [dbo].[fn_GetMRBByUserPrev] (
-- Add the parameters for the function here
@UserID INT
) RETURNS TABLE AS RETURN (
-- Add the SELECT statement with parameter references here
-- M_Suffix
SELECT
DISTINCT 'MRB' AS DocumentType,
'MRB' AS SubDoc,
*
FROM
(
SELECT
DISTINCT M.MRBNumber as IssueID,
M.MRBRaisedDate AS IssueDate,
SQ.LotNo AS LotNos,
pdg.Names AS 'PendingApprovers',
Title,
IssueDescription,
U2.FirstName + ' ' + U2.LastName AS Originator,
SubmitedDate,
CloseDate,
A.ItemStatus
FROM
MRB M
INNER JOIN Approval A ON A.IssueID = M.MRBNumber
AND DocumentTypeID = 2
INNER JOIN Users U2 ON M.Owner = U2.UserID
INNER JOIN Users U1 ON A.UserID = U1.UserID
LEFT JOIN (
SELECT
DISTINCT M.MRBNumber,
STUFF (
(
SELECT
'/' + CAST(L.LotNumber AS varchar(512))
FROM
MRBLot L
WHERE
L.MRBNumber = M.MRBNumber FOR XML PATH('')
),
1,
1,
''
) AS LotNo
FROM
MRB M
) AS SQ ON M.MRBNumber = SQ.MRBNumber
LEFT JOIN (
SELECT
DISTINCT M.MRBNumber,
STUFF (
(
SELECT
'/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50))
FROM
Approval A
INNER JOIN Users U ON A.UserID = U.UserID
WHERE
DocumentTypeID = 2
AND A.IssueID = M.MRBNumber
AND ItemStatus = 0 FOR XML PATH('')
),
1,
1,
''
) AS Names
FROM
MRB M
) AS pdg ON M.MRBNumber = pdg.MRBNumber
WHERE
A.UserID = @UserID
AND (ItemStatus = 0) --List of documents orginated by the user
UNION
ALL
SELECT
DISTINCT M.MRBNumber AS IssueID,
M.MRBRaisedDate AS IssueDate,
SQ.LotNo AS LotNos,
pdg.Names AS 'PendingApprovers',
Title,
IssueDescription,
U1.FirstName + ' ' + U1.LastName AS Originator,
M.SubmitedDate AS SubmitedDate,
M.CloseDate AS CloseDate,
AP.ItemStatus
FROM
MRB M
INNER JOIN Users U1 ON M.Owner = U1.UserID
LEFT JOIN Approval AP ON M.MRBNumber = AP.IssueID
LEFT JOIN (
SELECT
DISTINCT M.MRBNumber,
STUFF (
(
SELECT
'/' + CAST(L.LotNumber AS varchar(512))
FROM
MRBLot L
WHERE
L.MRBNumber = M.MRBNumber FOR XML PATH('')
),
1,
1,
''
) AS LotNo
FROM
MRB M
) AS SQ ON M.MRBNumber = SQ.MRBNumber
LEFT JOIN (
SELECT
DISTINCT M.MRBNumber,
STUFF (
(
SELECT
'/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50))
FROM
Approval A
INNER JOIN Users U ON A.UserID = U.UserID
WHERE
DocumentTypeID = 2
AND A.IssueID = M.MRBNumber
AND ItemStatus = 0 FOR XML PATH('')
),
1,
1,
''
) AS Names
FROM
MRB M
) AS pdg ON M.MRBNumber = pdg.MRBNumber
WHERE
U1.UserID = @UserID
AND AP.DocumentTypeID = 2
AND M.MRBNumber NOT IN (
SELECT
IssueID
FROM
Approval
WHERE
IssueID = M.MRBNumber
AND ItemStatus = 1
AND DocumentTypeID = 2
)
) AS A
)
GO

View File

@ -0,0 +1,76 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fn_GetMRBs] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE FUNCTION [dbo].[fn_GetMRBs] () RETURNS TABLE AS RETURN (
-- Add the SELECT statement with parameter references here
-- M_Suffix
SELECT
'MRB' AS DocumentType,
'MRB' AS SubDoc,
M.MRBNumber AS IssueID,
M.MRBNumber AS DocID,
M.SubmittedDate IssueDate,
SQ.LotNo AS LotNos,
pdg.Names AS 'PendingApprovers',
Title,
M.IssueDescription,
U.FirstName + ' ' + U.LastName AS Originator,
SubmittedDate,
CloseDate
FROM
MRB M
LEFT JOIN Users U ON M.OriginatorID = U.UserID
LEFT JOIN (
SELECT
DISTINCT M.MRBNumber,
STUFF (
(
SELECT
'/' + CAST(L.LotNumber AS varchar(512))
FROM
MRBLot L
WHERE
L.MRBNumber = M.MRBNumber FOR XML PATH('')
),
1,
1,
''
) AS LotNo
FROM
MRB M
) AS SQ ON m.MRBNumber = SQ.MRBNumber
LEFT JOIN (
SELECT
DISTINCT m.MRBNumber,
STUFF (
(
SELECT
'/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50))
FROM
Approval A
INNER JOIN Users U ON A.UserID = U.UserID
WHERE
A.DocumentTypeID = 2
AND A.IssueID = m.MRBNumber
AND ItemStatus = 0 FOR XML PATH('')
),
1,
1,
''
) AS Names
FROM
MRB m
) AS pdg ON M.MRBNumber = pdg.MRBNumber
)
GO

View File

@ -0,0 +1,45 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fn_GetMeetingAI_Responsibles] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE FUNCTION [dbo].[fn_GetMeetingAI_Responsibles] (
-- Add the parameters for the function here
) RETURNS TABLE AS RETURN (
-- Add the SELECT statement with parameter references here
SELECT
DISTINCT AI.ID AS MeetingActionItemID,
STUFF (
(
SELECT
', ' + LTRIM(
RTRIM(
CAST(U.FirstName + ' ' + U.LastName AS VARCHAR(50))
)
)
FROM
CCMeetingActionItemResponsible AIR
INNER JOIN Users U ON AIR.ActionItemResponsible = U.UserID
WHERE
AI.ID = AIR.MeetingActionItemID
AND AI.ClosedDate IS NULL FOR XML PATH('')
),
1,
1,
''
) AS Responsibles
FROM
CCMeetingActionItem AI
WHERE
AI.ClosedDate IS NOT NULL
)
GO

View File

@ -0,0 +1,43 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fn_GetMeetingAI_Responsibles_ByCC] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE FUNCTION [dbo].[fn_GetMeetingAI_Responsibles_ByCC] (
-- Add the parameters for the function here
) RETURNS TABLE AS RETURN (
-- Add the SELECT statement with parameter references here
SELECT
DISTINCT M.MeetingID,
STUFF (
(
SELECT
', ' + LTRIM(
RTRIM(
CAST(U.FirstName + ' ' + U.LastName AS VARCHAR(50))
)
)
FROM
vCCMeetingActionResponsible AIR
INNER JOIN Users U ON AIR.ActionItemResponsible = U.UserID
INNER JOIN CCMeeting CM ON CM.MeetingID = AIR.MeetingID
WHERE
M.meetingID = AIR.MeetingID FOR XML PATH('')
),
1,
1,
''
) AS Responsibles
FROM
CCMeeting M
)
GO

View File

@ -0,0 +1,30 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fn_GetPRs] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[fn_GetPRs]() RETURNS TABLE AS RETURN (
SELECT
'PartsRequest' AS DocumentType,
'PR' AS SubDoc,
PR.PRNumber AS IssueID,
PR.PRNumber AS DocID,
CreateDate AS IssueDate,
'' AS LotNos,
dbo.fnGetApprovalFullNames(PR.PRNumber, 10, ' / ', 0, 1, 1, 0, 0) AS 'PendingApprovers',
Title,
Description AS IssueDescription,
U1.FirstName + ' ' + U1.LastName AS Originator,
SubmitDate AS SubmitedDate,
CloseDate
FROM
PartsRequest PR
INNER JOIN Users U1 ON PR.RequestorID = U1.UserID
WHERE
CurrentStep >= 0
)
GO

View File

@ -0,0 +1,47 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fn_GetPRsByUser] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[fn_GetPRsByUser] (@UserID INT) RETURNS TABLE AS RETURN (
SELECT
DISTINCT 'PartsRequest' AS DocumentType,
*
FROM
(
SELECT
'Parts Request' AS SubDoc,
PR.PRNumber AS IssueID,
PR.PRNumber AS DocID,
CreateDate AS IssueDate,
'' AS LotNos,
dbo.fnGetApprovalFullNames(PR.PRNumber, 10, ' / ', 0, 1, 1, 0, 0) AS 'PendingApprovers',
Title,
Description AS IssueDescription,
U1.FirstName + ' ' + U1.LastName AS Originator,
SubmitDate AS SubmitedDate,
CloseDate,
A.ItemStatus,
NULL AS NextDueDate
FROM
PartsRequest PR
INNER JOIN Approval A ON A.IssueID = PR.PRNumber
AND A.DocumentTypeID = 10 --INNER JOIN Users U2 ON PR.OriginatorID = U2.UserID
INNER JOIN Users U1 ON PR.RequestorID = U1.UserID
WHERE
(A.UserID = @UserID)
AND (
ItemStatus = 0
OR (
ItemStatus = 2
AND DisplayDeniedDocument = 1
)
)
AND CurrentStep >= 0
) AS A
)
GO

View File

@ -0,0 +1,48 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fn_GetRole_MSuffix] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE FUNCTION [dbo].[fn_GetRole_MSuffix] (
-- Add the parameters for the function here
@IssueID INT,
@CurrentDate DATETIME
) RETURNS TABLE AS RETURN (
-- Add the SELECT statement with parameter references here
-- M_Suffix
SELECT
DISTINCT Ld.IssueID,
R.RoleName,
SRC.SubRoleCategoryItem AS 'SubRole',
U.UserID,
SR.SubRoleID,
0 AS 'ItemStatus',
WS.WorkflowStepNumber AS 'Step',
@CurrentDate AS 'AssignedDate',
@CurrentDate AS 'NotifyDate',
@CurrentDate AS 'RoleAssignedDate',
1 AS ApprovalType
FROM
LotDisposition LD
INNER JOIN WorkflowSteps WS ON LD.CurrentStep = WS.WorkflowStepNumber
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 Lot L ON LD.IssueID = L.IssueID
INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID
INNER JOIN Users U ON U.UserID = USR.UserID
INNER JOIN LotStatusOption LSO ON L.LotStatusOptionID = LSO.LotStatusOptionID
WHERE
LD.IssueID = @IssueID
AND LSO.LotStatusOption = SRC.SubRoleCategoryItem
)
GO

View File

@ -0,0 +1,40 @@
USE [FabApprovalSystem]
GO
/****** Object: UserDefinedFunction [dbo].[fn_IsECNITAR] Script Date: 11/21/2024 11:31:55 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date, ,>
-- Description: <Description, ,>
-- =============================================
CREATE FUNCTION [dbo].[fn_IsECNITAR] (
-- Add the parameters for the function here
@ECNNumber INT
) RETURNS INT AS BEGIN -- Declare the return variable here
DECLARE @Count INT -- Add the T-SQL statements to compute the return value here
SET
@Count = (
SELECT
COUNT(*)
FROM
ECN E
WHERE
(
(
E.IsRH = 1
AND E.IsAU = 0
AND E.IsIndustrial = 0
AND E.IsMA = 0
)
OR (IsDocEC = 1)
)
AND E.ECNNumber = @ECNNumber
) -- Return the result of the function
RETURN @Count
END
GO

View File

@ -0,0 +1,29 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[AddUserToTrainingGroup] 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].[AddUserToTrainingGroup] -- Add the parameters for the stored procedure here
@GroupID INT,
@UserID INT,
@UserFullName VARCHAR(150) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
-- Insert statements for procedure here
INSERT INTO
TrainingGroupMembers (TrainingGroupID, UserID, FullName)
VALUES
(@GroupID, @UserID, @UserFullName)
END
GO

View File

@ -0,0 +1,329 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[AnalyzeLotAncestry] Script Date: 11/21/2024 11:29:04 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[AnalyzeLotAncestry] @LotNo varchar(20),
@IncidentTime datetime = NULL,
@LogIssueID int = NULL,
@LogDocumentType int = NULL,
@LogParms xml = NULL,
@AnalysisType CHAR(1) = NULL AS BEGIN
SET
NOCOUNT ON DECLARE @RootLotNo varchar(20) = @LotNo DECLARE @IncidentLotNo varchar(20) = @LotNo IF @LotNo LIKE '%.%' BEGIN
SET
@RootLotNo = LEFT(@LotNo, CHARINDEX('.', @LotNo)) + '1'
SET
@IncidentLotNo = @LotNo
END DECLARE @sql nvarchar(max) DECLARE @lots TABLE(LotNo varchar(20), Queried bit) DECLARE @results TABLE(
[WT_RECORD_CODE] [varchar](2) NULL,
[WT_LOT_NO] [varchar](10) NULL,
[WT_ACTION_DATE] [varchar](14) NULL,
[WT_LOT_1] [varchar](10) NULL,
[WT_LOT_2] [varchar](10) NULL,
[WT_LOT_3] [varchar](10) NULL,
[WT_LOT__4] [varchar](10) NULL,
[WT_LOT_5] [varchar](10) NULL
) DECLARE @transaction TABLE(
[WT_RECORD_CODE] [varchar](2) NULL,
[WT_LOT_NO] [varchar](10) NULL,
[WT_ACTION_DATE] [varchar](14) NULL,
[WT_LOT_TARGET] [varchar](10) NULL
) DECLARE @finalresults TABLE(
[ID] [int] NOT NULL IDENTITY(1, 1),
[ParentLotNo] [varchar](20) NOT NULL,
[LotNo] [varchar](20) NOT NULL,
[ActionTime] [datetime] NOT NULL,
[ActionType] [varchar](2) NOT NULL,
[IsAffected] bit NULL
) --INSERT INTO @lots(LotNo, Queried) VALUES (@RootLotNo, 0)
INSERT INTO
@lots(LotNo, Queried)
VALUES
(@IncidentLotNo, 0) WHILE EXISTS (
SELECT
1
FROM
@lots
WHERE
Queried = 0
) BEGIN
SELECT
TOP 1 @LotNo = LotNo
FROM
@lots
WHERE
Queried = 0
SET
@sql = FORMATMESSAGE(
'SELECT * FROM OPENQUERY(FAB2SPN, ' + '''SELECT WT_RECORD_CODE, WT_LOT_NO, WT_ACTION_DATE, WT_LOT_1, WT_LOT_2, WT_LOT_3, WT_LOT__4, WT_LOT_5 ' + 'FROM WT_RECORD ' + 'WHERE WT_WP_DIRECT_KEY = ''''3002%s '''' AND WT_RECORD_CODE IN (''''SP'''',''''CB'''')'') ',
@LotNo
)
DELETE FROM
@results
INSERT INTO
@results EXEC sp_executesql @sql
DELETE FROM
@transaction
INSERT INTO
@transaction(
[WT_RECORD_CODE],
[WT_LOT_NO],
[WT_ACTION_DATE],
[WT_LOT_TARGET]
)
SELECT
[WT_RECORD_CODE],
[WT_LOT_NO],
[WT_ACTION_DATE],
[WT_LOT_TARGET]
FROM
(
SELECT
[WT_RECORD_CODE],
[WT_LOT_NO],
[WT_ACTION_DATE],
WT_LOT_1 AS [WT_LOT_TARGET]
FROM
@results
UNION
SELECT
[WT_RECORD_CODE],
[WT_LOT_NO],
[WT_ACTION_DATE],
WT_LOT_2 AS [WT_LOT_TARGET]
FROM
@results
UNION
SELECT
[WT_RECORD_CODE],
[WT_LOT_NO],
[WT_ACTION_DATE],
WT_LOT_3 AS [WT_LOT_TARGET]
FROM
@results
UNION
SELECT
[WT_RECORD_CODE],
[WT_LOT_NO],
[WT_ACTION_DATE],
WT_LOT__4 AS [WT_LOT_TARGET]
FROM
@results
UNION
SELECT
[WT_RECORD_CODE],
[WT_LOT_NO],
[WT_ACTION_DATE],
WT_LOT_5 AS [WT_LOT_TARGET]
FROM
@results
) subtable
WHERE
[WT_LOT_TARGET] <> ''
INSERT INTO
@lots(LotNo, Queried)
SELECT
DISTINCT WT_LOT_TARGET,
0
FROM
@transaction
WHERE
NOT EXISTS (
SELECT
1
FROM
@lots l
WHERE
l.LotNo = WT_LOT_TARGET
)
UPDATE
@lots
SET
Queried = 1
WHERE
LotNo = @LotNo
INSERT INTO
@finalresults(
[ParentLotNo],
[LotNo],
[ActionTime],
[ActionType]
)
SELECT
RTRIM(WT_LOT_NO),
RTRIM(WT_LOT_TARGET),
CONVERT(
datetime,
STUFF(
STUFF(
STUFF(
STUFF(STUFF(WT_ACTION_DATE, 5, 0, '-'), 8, 0, '-'),
11,
0,
' '
),
14,
0,
':'
),
17,
0,
':'
),
20
),
WT_RECORD_CODE
FROM
@transaction
WHERE
WT_RECORD_CODE = 'SP'
INSERT INTO
@finalresults(
[ParentLotNo],
[LotNo],
[ActionTime],
[ActionType]
)
SELECT
RTRIM(WT_LOT_TARGET),
RTRIM(WT_LOT_NO),
CONVERT(
datetime,
STUFF(
STUFF(
STUFF(
STUFF(STUFF(WT_ACTION_DATE, 5, 0, '-'), 8, 0, '-'),
11,
0,
' '
),
14,
0,
':'
),
17,
0,
':'
),
20
),
WT_RECORD_CODE
FROM
@transaction
WHERE
WT_RECORD_CODE = 'CB'
END;
WITH relevantresults as (
SELECT
*
FROM
@finalresults
WHERE
(ActionTime >= @IncidentTime)
OR (@IncidentTime IS NULL)
),
affectedlots as (
SELECT
ID,
ParentLotNo,
LotNo,
ActionTime
FROM
relevantresults
WHERE
ParentLotNo = @IncidentLotNo
UNION
ALL
SELECT
rr.ID,
rr.ParentLotNo,
rr.LotNo,
rr.ActionTime
FROM
affectedlots
INNER JOIN relevantresults rr ON rr.ParentLotNo = affectedlots.LotNo
AND rr.ActionTime > affectedlots.ActionTime
)
UPDATE
@finalresults
SET
IsAffected = 1
WHERE
ID IN (
SELECT
ID
FROM
affectedlots
)
UPDATE
@finalresults
SET
IsAffected = 1
WHERE
LotNo = @IncidentLotNo
INSERT INTO
@finalresults(
ParentLotNo,
LotNo,
ActionTime,
ActionType,
IsAffected
)
SELECT
'',
@IncidentLotNo,
'01/01/2001',
'',
1
WHERE
NOT EXISTS (
SELECT
1
FROM
@finalresults
WHERE
LotNo = @IncidentLotNo
AND IsAffected = 1
)
SELECT
*
FROM
@finalresults
ORDER BY
ActionTime IF @LogIssueID IS NOT NULL
AND @LogDocumentType IS NOT NULL BEGIN
INSERT INTO
LotSplitAnalysisLog(
[IssueID],
[DocumentType],
[LotNumber],
AnalysisType,
[AnalysisTime],
[AnalysisData]
)
SELECT
@LogIssueID,
@LogDocumentType,
@LotNo,
@AnalysisType,
GETDATE(),
(
SELECT
@LogParms AS 'parms',
(
SELECT
*
FROM
@finalresults FOR XML PATH('results'),
TYPE
) FOR XML PATH('log')
)
END
END
GO

View File

@ -0,0 +1,61 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[CCAddPCRBAttendees] 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].[CCAddPCRBAttendees] @PCRBID INT,
@AttendeeID VARCHAR(300),
@JobTitle VARCHAR(50),
@Location VARCHAR(50) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
Declare @AttendeeName VARCHAR(200)
SET
@AttendeeName = CONCAT(
(
SELECT
FirstName
FROM
Users
WHERE
UserID = @AttendeeID
),
' ',
(
SELECT
LastName
FROM
Users
WHERE
UserID = @AttendeeID
)
) -- Insert statements for procedure here
INSERT INTO
CCPCRBAttendee (
AttendeeName,
PCRBID,
AttendeeID,
JobTitle,
Location
)
VALUES
(
@AttendeeName,
@PCRBID,
@AttendeeID,
@JobTitle,
@Location
)
END
GO

View File

@ -0,0 +1,30 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[CCCancelCC] 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].[CCCancelCC] -- Add the parameters for the stored procedure here
@PlanNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
-- Insert statements for procedure here
UPDATE
CCChangeControl
SET
Status = 2,
ClosedDate = GETDATE()
WHERE
PlanNumber = @PlanNumber
END
GO

View File

@ -0,0 +1,30 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[CCCompleteCC] 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].[CCCompleteCC] -- Add the parameters for the stored procedure here
@PlanNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
-- Insert statements for procedure here
UPDATE
CCChangeControl
SET
Status = 1,
ClosedDate = GETDATE()
WHERE
PlanNumber = @PlanNumber
END
GO

View File

@ -0,0 +1,26 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[CCDeleteCCAttachment] 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].[CCDeleteCCAttachment] -- Add the parameters for the stored procedure here
@ID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
-- Insert statements for procedure here
DELETE CCAttachment
WHERE
ID = @ID
END
GO

View File

@ -0,0 +1,25 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[CCDeleteDecisionSummary] 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].[CCDeleteDecisionSummary] @ID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
-- Insert statements for procedure here
DELETE CCDecisionSummary
WHERE
ID = @ID
END
GO

View File

@ -0,0 +1,24 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[CCDeleteGenerations] 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].[CCDeleteGenerations] @PlanNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
DELETE CCGeneration
WHERE
PlanNumber = @PlanNumber
END
GO

View File

@ -0,0 +1,24 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[CCDeleteLogistics] 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].[CCDeleteLogistics] @PlanNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
DELETE CCLogistics
WHERE
PlanNumber = @PlanNumber
END
GO

View File

@ -0,0 +1,27 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[CCDeleteMeetingActionItem] 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].[CCDeleteMeetingActionItem] @ID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
-- Insert statements for procedure here
DELETE CCMeetingActionItem
WHERE
ID = @ID DELETE CCMeetingActionItemResponsible
WHERE
MeetingActionItemID = @ID
END
GO

View File

@ -0,0 +1,25 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[CCDeleteMeetingAttachment] 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].[CCDeleteMeetingAttachment] @ID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
-- Insert statements for procedure here
DELETE CCMeetingAttachment
WHERE
ID = @ID
END
GO

View File

@ -0,0 +1,25 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[CCDeleteMeetingAttendee] 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].[CCDeleteMeetingAttendee] @ID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
-- Insert statements for procedure here
DELETE CCMeetingAttendee
WHERE
ID = @ID
END
GO

View File

@ -0,0 +1,24 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[CCDeleteMeetingPCRValues] 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].[CCDeleteMeetingPCRValues] @MeetingID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
DELETE CCMeetingPCRValue
WHERE
MeetingID = @MeetingID
END
GO

View File

@ -0,0 +1,28 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[CCDeletePCRBActionItem] 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].[CCDeletePCRBActionItem] -- Add the parameters for the stored procedure here
@ID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
-- Insert statements for procedure here
DELETE CCPCRBActionItem
WHERE
ID = @ID DELETE CCPCRBActionItemResponsible
WHERE
PCRBActionItemID = @ID
END
GO

View File

@ -0,0 +1,24 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[CCDeletePartNumbers] 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].[CCDeletePartNumbers] @PlanNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
DELETE CCPartNumber
WHERE
PlanNumber = @PlanNumber
END
GO

View File

@ -0,0 +1,24 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[CCDeleteProcesses] 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].[CCDeleteProcesses] @PlanNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
DELETE CCProcess
WHERE
PlanNumber = @PlanNumber
END
GO

View File

@ -0,0 +1,29 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[CCGetActionItemFileName] 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].[CCGetActionItemFileName] -- Add the parameters for the stored procedure here
@FileGUID VARCHAR(50) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
-- Insert statements for procedure here
SELECT
[FileName]
FROM
CCMeetingActionItem
WHERE
FileGUID = @FileGUID
END
GO

View File

@ -0,0 +1,31 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[CCGetActionItemResponsible] 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].[CCGetActionItemResponsible] -- Add the parameters for the stored procedure here
AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
-- Insert statements for procedure here
SELECT
LTRIM(RTRIM(CONVERT(VARCHAR(10), UserID))) AS ResponsibleID,
LTRIM(RTRIM(FirstName + ' ' + LastName)) AS ResponsibleName
FROM
Users
ORDER BY
FirstName,
LastName
END
GO

View File

@ -0,0 +1,36 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[CCGetCCAttachments] 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].[CCGetCCAttachments] @PlanNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
-- Insert statements for procedure here
SELECT
DISTINCT A.*,
U.FirstName + ' ' + U.LastName AS UploadedByName,
SUBSTRING(
FileName,
PATINDEX('%.%', FileName) + 1,
LEN(FileName)
) AS FileExtension
FROM
CCChangeControl CC
INNER JOIN CCAttachment A ON CC.PlanNumber = A.PlanNumber
LEFT JOIN Users U ON A.UploadedByID = U.UserID
WHERE
CC.PlanNumber = @PlanNumber
END
GO

View File

@ -0,0 +1,29 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[CCGetCCFileName] 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].[CCGetCCFileName] -- Add the parameters for the stored procedure here
@FileGUID VARCHAR(50) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
-- Insert statements for procedure here
SELECT
[FileName]
FROM
CCAttachment
WHERE
FileGUID = @FileGUID
END
GO

View File

@ -0,0 +1,110 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[CCGetChangeControl] 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].[CCGetChangeControl] -- Add the parameters for the stored procedure here
@PlanNumber INT,
@UserID INT,
@CanViewITAR INT OUTPUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
DECLARE @ITARRowCount INT IF NOT EXISTS (
SELECT
*
FROM
CCChangeControl
WHERE
RecordLockIndicator = 1
AND PlanNumber = @PlanNumber
) BEGIN
UPDATE
CCChangeControl
SET
RecordLockIndicator = 1,
RecordLockedBy = @UserID,
RecordLockedDate = GETDATE(),
LastUpdateDate = GETDATE()
WHERE
PlanNumber = @PlanNumber
END
SET
@CanViewITAR = 1 IF EXISTS (
SELECT
*
FROM
CCChangeControl
WHERE
PlanNumber = @PlanNumber
AND IsITAR = 1
) BEGIN
SELECT
@ITARRowCount = COUNT(*)
FROM
dbo.fnIsUserITARCompliant(@UserID) IF (@ITARRowCount > 0)
SET
@CanViewITAR = 1
ELSE
SET
@CanViewITAR = 0
END -- Insert statements for procedure here
SELECT
DISTINCT CC.*,
U.FirstName + ' ' + U.LastName AS OwnerName,
U1.FirstName + ' ' + U1.LastName AS RecordLockByName,
(
SELECT
COUNT(*)
FROM
CCMeeting
WHERE
Decision = -1
AND CCMeeting.PlanNumber = @PlanNumber
) AS MeetingExist,
PCR1ID,
PCR2ID,
PCR3ID,
--CAST('M-' + YEAR(InsertTimeStamp) + '-' + PlanYearlyIdentifier AS VARCHAR) AS PlanTitle,
--CONCAT('M-', YEAR(CC.InsertTimeStamp), '-', CC.PlanYearlyIdentifier) AS PlanTitle,
MesaPlanNo AS PlanTitle,
CASE
WHEN CC.ClosedDate IS NULL THEN 0
ELSE 1
END PCRBClosed
FROM
CCChangeControl CC
INNER JOIN Users U ON CC.OwnerID = U.UserID
LEFT JOIN Users U1 ON CC.RecordLockedBy = U1.UserID
WHERE
CC.PlanNumber = @PlanNumber
SELECT
GenerationID
FROM
CCGeneration
WHERE
PlanNumber = @PlanNumber
SELECT
LogisticsID
FROM
CCLogistics
WHERE
PlanNumber = @PlanNumber
SELECT
ProcessID
FROM
CCProcess
WHERE
PlanNumber = @PlanNumber
END
GO

View File

@ -0,0 +1,186 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[CCGetChangeControlList] 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].[CCGetChangeControlList] -- Add the parameters for the stored procedure here
@UserID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
-- UNLOCK all the CC records if there are any pending locks
UPDATE
CCChangeControl
SEt
RecordLocked = 0,
RecordLockedBy = NULL,
RecordLockedDate = NULL,
RecordLockIndicator = 0
WHERE
RecordLockedBy = @UserID
UPDATE
CCMeeting
SEt
RecordLockedBy = NULL,
RecordLockedDate = NULL,
RecordLockIndicator = 0
WHERE
RecordLockedBy = @UserID -- Insert statements for procedure here
SELECT
DISTINCT C.PlanNumber AS IssueID,
C.Title,
U.FirstName + ' ' + U.LastName AS Owner,
C.MesaPlanNo AS MesaIdTitle,
CASE
WHEN ChangeLevel = -1 THEN NULL
ELSE ChangeLevel
END AS ChangeLevel,
Dates.StartDate,
CASE
WHEN [STATUS] = 1
OR [STATUS] = 2 THEN ClosedDate
ELSE Dates.StatusDate
END AS StatusDate,
CPCRB.PCRBStatus,
CCGens.Generations,
CCLogs.Logistics,
CCProcess.Processes,
C.ToolTypes,
CASE
WHEN [STATUS] = 1
OR [STATUS] = 2 THEN ''
ELSE MAI1.Responsibles
END AS ActionItemResponsibility
FROM
CCChangeControl C
LEFT JOIN CCMeeting M ON C.PlanNumber = M.PlanNumber
LEFT JOIN Users U ON C.OwnerID = U.UserID
LEFT JOIN (
SELECT
PlanNumber,
MIN(MeetingDate) AS StartDate,
MAX(MeetingDate) AS StatusDate
FROM
CCMeeting
GROUP BY
PlanNumber
) AS Dates ON C.PlanNumber = Dates.PlanNumber -- Get Status
LEFT JOIN (
SELECT
PlanNumber,
CASE
WHEN [STATUS] = 1 THEN 'Closed'
WHEN [STATUS] = 2 THEN 'Cancelled'
WHEN [STATUS] = 0 THEN (
SELECT
PCRValues
FROM
vCCMeetingPCRs P
WHERE
MeetingDate = (
SELECT
MAX(MeetingDate)
FROM
CCMeeting
WHERE
PlanNumber = C.PlanNumber
)
AND P.PlanNumber = C.PlanNumber
)
ELSE ''
END AS PCRBStatus
FROM
CCChangeControl C
) AS CPCRB ON C.PlanNumber = CPCRB.PlanNumber -- Concatenate Gens
LEFT JOIN (
SELECT
DISTINCT CC.PlanNumber,
STUFF (
(
SELECT
', ' + LTRIM(RTRIM(CAST(Generation AS VARCHAR(50))))
FROM
CCGeneration CCG
LEFT JOIN CCGenerationMaster GM ON CCG.GenerationID = GM.GenerationID
WHERE
CCG.PlanNumber = CC.PlanNumber FOR XML PATH('')
),
1,
1,
''
) AS Generations
FROM
CCChangeControl CC
) AS CCGens ON C.PlanNumber = CCGens.PlanNumber
LEFT JOIN (
SELECT
DISTINCT CC.PlanNumber,
STUFF (
(
SELECT
', ' + LTRIM(RTRIM(CAST(Logistics AS VARCHAR(50))))
FROM
CCLogistics CCL
LEFT JOIN CCLogisticsMaster LM ON CCL.LogisticsID = LM.LogisticsID
WHERE
CCL.PlanNumber = CC.PlanNumber FOR XML PATH('')
),
1,
1,
''
) AS Logistics
FROM
CCChangeControl CC
) AS CCLogs ON C.PlanNumber = CCLogs.PlanNumber -- Concatenate process
LEFT JOIN (
SELECT
DISTINCT CC.PlanNumber,
STUFF (
(
SELECT
', ' + LTRIM(RTRIM(CAST(Process AS VARCHAR(50))))
FROM
CCProcess CCP
LEFT JOIN CCProcessMaster PM ON CCP.ProcessID = PM.ProcessID
WHERE
CCP.PlanNumber = CC.PlanNumber FOR XML PATH('')
),
1,
1,
''
) AS Processes
FROM
CCChangeControl CC
) AS CCProcess ON C.PlanNumber = CCProcess.PlanNumber --Contcatenate Responsible person
LEFT JOIN (
SELECT
DISTINCT CC.PlanNumber,
STUFF (
(
SELECT
DISTINCT ', ' + LTRIM(RTRIM(CAST(AIR.Responsibles AS VARCHAR(350))))
FROM
CCMeeting CM
LEFT JOIN dbo.fn_GetMeetingAI_Responsibles_ByCC() AIR ON CM.MeetingID = AIR.MeetingID
WHERE
CM.PlanNumber = CC.PlanNumber FOR XML PATH('')
),
1,
1,
''
) AS Responsibles
FROM
CCChangeControl CC
) AS MAI1 ON C.PlanNumber = MAI1.PlanNumber
END
GO

View File

@ -0,0 +1,75 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[CCGetChangeControlRead] 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].[CCGetChangeControlRead] -- Add the parameters for the stored procedure here
@PlanNumber INT,
@UserID INT,
@CanViewITAR INT OUTPUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
DECLARE @ITARRowCount INT
SET
@CanViewITAR = 1 IF EXISTS (
SELECT
*
FROM
CCChangeControl
WHERE
PlanNumber = @PlanNumber
AND IsITAR = 1
) BEGIN
SELECT
@ITARRowCount = COUNT(*)
FROM
dbo.fnIsUserITARCompliant(@UserID) IF (@ITARRowCount > 0)
SET
@CanViewITAR = 1
ELSE
SET
@CanViewITAR = 0
END -- Insert statements for procedure here
SELECT
DISTINCT CC.*,
U.FirstName + ' ' + U.LastName AS OwnerName,
U1.FirstName + ' ' + U1.LastName AS RecordLockByName,
--CONCAT('M-', YEAR(CC.InsertTimeStamp), '-', CC.PlanYearlyIdentifier) AS PlanTitle
MesaPlanNo AS PlanTitle --REPLICATE('0',6-LEN(RTRIM(EmployeeId))) + RTRIM(EmployeeId)
FROM
CCChangeControl CC
INNER JOIN Users U ON CC.OwnerID = U.UserID
LEFT JOIN Users U1 ON CC.RecordLockedBy = U1.UserID
WHERE
CC.PlanNumber = @PlanNumber
SELECT
GenerationID
FROM
CCGeneration
WHERE
PlanNumber = @PlanNumber
SELECT
LogisticsID
FROM
CCLogistics
WHERE
PlanNumber = @PlanNumber
SELECT
ProcessID
FROM
CCProcess
WHERE
PlanNumber = @PlanNumber
END
GO

View File

@ -0,0 +1,28 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[CCGetChangeControls] 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].[CCGetChangeControls] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
SELECT
*
FROM
dbo.fn_GetChangeControl()
ORDER BY
DocumentType,
IssueID DESC
END
GO

View File

@ -0,0 +1,29 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[CCGetDecisionsSummaryList] 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].[CCGetDecisionsSummaryList] -- Add the parameters for the stored procedure here
@MeetingID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
-- Insert statements for procedure here
SELECT
*
FROM
CCDecisionSummary
WHERE
MeetingID = @MeetingID
END
GO

View File

@ -0,0 +1,29 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[CCGetGenerations] 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].[CCGetGenerations] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
-- Insert statements for procedure here
SELECT
DISTINCT GenerationID,
Generation
FROM
CCGenerationMaster
ORDER BY
Generation
END
GO

View File

@ -0,0 +1,29 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[CCGetLogistics] 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].[CCGetLogistics] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
-- Insert statements for procedure here
SELECT
DISTINCT LogisticsID,
Logistics
FROM
CCLogisticsMaster
ORDER BY
Logistics
END
GO

View File

@ -0,0 +1,93 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[CCGetMeeting] 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].[CCGetMeeting] -- Add the parameters for the stored procedure here
@MeetingID INT,
@UserID INT,
@CanViewITAR INT OUTPUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
DECLARE @ITARRowCount INT IF NOT EXISTS (
SELECT
*
FROM
CCMeeting
WHERE
RecordLockIndicator = 1
AND MeetingDate = @MeetingID
) BEGIN
UPDATE
CCMeeting
SET
RecordLockIndicator = 1,
RecordLockedBy = @UserID,
RecordLockedDate = GETDATE(),
LastUpdateDate = GETDATE()
WHERE
MeetingID = @MeetingID
END
SET
@CanViewITAR = 1 IF EXISTS (
SELECT
*
FROM
CCMeeting M
INNER JOIN CCChangeControl C ON M.PlanNumber = C.PlanNumber
WHERE
MeetingID = @MeetingID
AND C.IsITAR = 1
) BEGIN
SELECT
@ITARRowCount = COUNT(*)
FROM
dbo.fnIsUserITARCompliant(@UserID) IF (@ITARRowCount > 0)
SET
@CanViewITAR = 1
ELSE
SET
@CanViewITAR = 0
END -- Insert statements for procedure here
SELECT
M.MeetingID,
ISNULL(LTRIM(RTRIM(M.PCRB)), 'Select') PCRB,
M.MeetingDate,
M.Decision,
M.Notes,
C.ChangeLevel,
C.Title,
C.PlanNumber,
C.CurrentStep,
M.RecordLockedBy,
M.RecordLockIndicator,
U1.FirstName + ' ' + U1.LastName AS RecordLockByName,
CASE
WHEN C.ClosedDate IS NULL THEN 0
ELSE 1
END PCRBClosed
FROM
CCMeeting M
INNER JOIN CCChangeControl C ON M.PlanNumber = C.PlanNumber
LEFT JOIN Users U1 ON M.RecordLockedBy = U1.UserID
WHERE
MeetingID = @MeetingID
SELECT
PCRValue AS PCRValueID
FROM
CCMeetingPCRValue
WHERE
MeetingID = @MeetingID
END
GO

View File

@ -0,0 +1,82 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[CCGetMeetingActionItems] 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].[CCGetMeetingActionItems] @MeetingID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
-- Insert statements for procedure here
SELECT
AI.ID,
AI.MeetingID,
ActionItemname,
CCResponsibles.Responsibles ResponsiblePerson,
CCResponsiblesID.ResponsiblesID ResponsibleID,
CASE
WHEN Gating = 1 THEN 'Yes'
ELSE 'No'
END AS Gating,
DueDate
FROM
CCMeetingActionItem AI
LEFT JOIN (
SELECT
DISTINCT AI.ID,
STUFF (
(
SELECT
',' + LTRIM(
RTRIM(
CAST(U.FirstName + ' ' + U.LastName AS VARCHAR(350))
)
)
FROM
CCMeetingActionItemResponsible AIR
INNER JOIN Users U ON AIR.ActionItemResponsible = U.UserID
WHERE
AI.ID = AIR.MeetingActionItemID FOR XML PATH('')
),
1,
1,
''
) AS Responsibles
FROM
CCMeetingActionItem AI
) AS CCResponsibles ON AI.ID = CCResponsibles.ID
LEFT JOIN (
SELECT
DISTINCT AI.ID,
STUFF (
(
SELECT
',' + LTRIM(
RTRIM(CAST(AIR.ActionItemResponsible AS VARCHAR(350)))
)
FROM
CCMeetingActionItemResponsible AIR
WHERE
AI.ID = AIR.MeetingActionItemID FOR XML PATH('')
),
1,
1,
''
) AS ResponsiblesID
FROM
CCMeetingActionItem AI
) AS CCResponsiblesID ON AI.ID = CCResponsiblesID.ID
WHERE
AI.MeetingID = @MeetingID
END
GO

View File

@ -0,0 +1,71 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[CCGetMeetingActionItems_All] 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].[CCGetMeetingActionItems_All] @PlanNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
-- Insert statements for procedure here
SELECT
MA.ID,
M.MeetingID,
P.PCRValues AS PCRB,
ActionItemname,
CCResponsibles.Responsibles ResponsiblePerson,
CASE
WHEN Gating = 1 THEN 'Yes'
ELSE 'No'
END AS Gating,
DueDate,
Updates,
ClosedStatus,
MA.ClosedDate,
FileGUID,
FileName,
UploadedByID,
U.FirstName + ' ' + U.LastName AS UploadedByName
FROM
CCMeetingActionItem MA
INNER JOIN CCMeeting M ON MA.MeetingID = M.MeetingID
LEFT JOIN Users U ON MA.UploadedByID = U.UserID
LEFT JOIN vCCMeetingPCRs P ON M.MeetingID = P.MeetingID
LEFT JOIN (
SELECT
DISTINCT AI.ID,
STUFF (
(
SELECT
', ' + LTRIM(
RTRIM(
CAST(U.FirstName + ' ' + U.LastName AS VARCHAR(550))
)
)
FROM
CCMeetingActionItemResponsible AIR
INNER JOIN Users U ON AIR.ActionItemResponsible = U.UserID
WHERE
AI.ID = AIR.MeetingActionItemID FOR XML PATH('')
),
1,
1,
''
) AS Responsibles
FROM
CCMeetingActionItem AI
) AS CCResponsibles ON MA.ID = CCResponsibles.ID
WHERE
M.PlanNumber = @PlanNumber
END
GO

View File

@ -0,0 +1,36 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[CCGetMeetingAttachments] 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].[CCGetMeetingAttachments] @MeetingID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
-- Insert statements for procedure here
SELECT
DISTINCT A.*,
U.FirstName + ' ' + U.LastName AS UploadedByName,
SUBSTRING(
FileName,
PATINDEX('%.%', FileName) + 1,
LEN(FileName)
) AS FileExtension
FROM
CCMeeting M
INNER JOIN CCMeetingAttachment A ON M.MeetingID = A.MeetingID
LEFT JOIN Users U ON A.UploadedByID = U.UserID
WHERE
M.MeetingID = @MeetingID
END
GO

View File

@ -0,0 +1,28 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[CCGetMeetingAttendees] 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].[CCGetMeetingAttendees] @MeetingID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
-- Insert statements for procedure here
SELECT
*
FROM
CCMeetingAttendee
WHERE
MeetingID = @MeetingID
END
GO

View File

@ -0,0 +1,94 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[CCGetMeetingDecisionSummaryList] 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].[CCGetMeetingDecisionSummaryList] -- Add the parameters for the stored procedure here
@PlanNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
-- Insert statements for procedure here
/****** Script for SelectTopNRows command from SSMS ******/
SELECT
DISTINCT P.PCRValues AS PCRB,
M.MeetingDate,
CCDecisionNotes.DecisionNotes,
CCECNLink.ECNs AS ECNLinks,
CCLDLink.LDs AS LotDispoLinks
FROM
CCChangeControl C
INNER JOIN CCMeeting M ON C.PlanNumber = M.PlanNumber
LEFT JOIN vCCMeetingPCRs P ON M.MeetingID = P.MeetingID
LEFT JOIN CCDecisionSummary D ON M.MeetingID = D.MeetingID
LEFT JOIN (
SELECT
DISTINCT MM.MeetingID,
STUFF (
(
SELECT
'~' + LTRIM(RTRIM(CAST(DecisionNotes AS VARCHAR(500))))
FROM
CCDecisionSummary CCD
WHERE
CCD.MeetingID = MM.MeetingID FOR XML PATH('')
),
1,
1,
''
) AS DecisionNotes
FROM
CCMeeting MM
) AS CCDecisionNotes ON M.MeetingID = CCDecisionNotes.MeetingID
LEFT JOIN (
SELECT
DISTINCT MM.MeetingID,
STUFF (
(
SELECT
'~ ' + LTRIM(RTRIM(CAST(ECNLinks AS VARCHAR(100))))
FROM
CCDecisionSummary CCD
WHERE
CCD.MeetingID = MM.MeetingID FOR XML PATH('')
),
1,
1,
''
) AS ECNs
FROM
CCMeeting MM
) AS CCECNLink ON M.MeetingID = CCECNLink.MeetingID
LEFT JOIN (
SELECT
DISTINCT MM.MeetingID,
STUFF (
(
SELECT
'~ ' + LTRIM(RTRIM(CAST(LotDispoLinks AS VARCHAR(100))))
FROM
CCDecisionSummary CCD
WHERE
CCD.MeetingID = MM.MeetingID FOR XML PATH('')
),
1,
1,
''
) AS LDs
FROM
CCMeeting MM
) AS CCLDLink ON M.MeetingID = CCLDLink.MeetingID
WHERE
C.PlanNumber = @PlanNumber
END
GO

View File

@ -0,0 +1,29 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[CCGetMeetingFileName] 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].[CCGetMeetingFileName] -- Add the parameters for the stored procedure here
@FileGUID VARCHAR(50) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
-- Insert statements for procedure here
SELECT
[FileName]
FROM
CCMeetingAttachment
WHERE
FileGUID = @FileGUID
END
GO

View File

@ -0,0 +1,34 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[CCGetMeetingList] 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].[CCGetMeetingList] -- Add the parameters for the stored procedure here
@PlanNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
SELECT
*
FROM
CCMeeting
WHERE
PlanNumber = @PlanNumber
SELECT
PCRValue AS PCRValueID
FROM
CCMeetingPCRValue
WHERE
MeetingID = @PlanNumber
END
GO

View File

@ -0,0 +1,75 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[CCGetMeetingRead] 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].[CCGetMeetingRead] -- Add the parameters for the stored procedure here
@MeetingID INT,
@UserID INT,
@CanViewITAR INT OUTPUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
DECLARE @ITARRowCount INT
SET
@CanViewITAR = 1 IF EXISTS (
SELECT
*
FROM
CCMeeting M
INNER JOIN CCChangeControl C ON M.PlanNumber = C.PlanNumber
WHERE
MeetingID = @MeetingID
AND C.IsITAR = 1
) BEGIN
SELECT
@ITARRowCount = COUNT(*)
FROM
dbo.fnIsUserITARCompliant(@UserID) IF (@ITARRowCount > 0)
SET
@CanViewITAR = 1
ELSE
SET
@CanViewITAR = 0
END -- Insert statements for procedure here
SELECT
M.MeetingID,
LTRIM(RTRIM(M.PCRB)) AS PCRB,
M.MeetingDate,
M.Decision,
M.Notes,
C.ChangeLevel,
C.Title,
C.PlanNumber,
C.CurrentStep,
M.RecordLockedBy,
M.RecordLockIndicator,
U1.FirstName + ' ' + U1.LastName AS RecordLockByName,
CASE
WHEN C.ClosedDate IS NULL THEN 0
ELSE 1
END PCRBClosed
FROM
CCMeeting M
INNER JOIN CCChangeControl C ON M.PlanNumber = C.PlanNumber
LEFT JOIN Users U1 ON M.RecordLockedBy = U1.UserID
WHERE
MeetingID = @MeetingID
SELECT
PCRValue AS PCRValueID
FROM
CCMeetingPCRValue
WHERE
MeetingID = @MeetingID
END
GO

View File

@ -0,0 +1,36 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[CCGetPCRB] 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].[CCGetPCRB] -- Add the parameters for the stored procedure here
@PlanNumber INT,
@PCRB VARCHAR(10) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
-- Insert statements for procedure here
SELECT
PCRBID,
PlanNumber,
PCRB,
Date,
Decision,
Notes
FROM
CCPCRB
WHERE
PlanNumber = @PlanNumber
AND @PCRB = PCRB
END
GO

View File

@ -0,0 +1,82 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[CCGetPCRBActionItems] 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].[CCGetPCRBActionItems] @PCRBID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
-- Insert statements for procedure here
SELECT
AI.ID,
AI.PCRBID,
ActionItemname,
CCResponsibles.Responsibles ResponsiblePerson,
CCResponsiblesID.ResponsiblesID ResponsibleID,
CASE
WHEN Gating = 1 THEN 'Yes'
ELSE 'No'
END AS Gating,
DueDate
FROM
CCPCRBActionItem AI
LEFT JOIN (
SELECT
DISTINCT AI.ID,
STUFF (
(
SELECT
',' + LTRIM(
RTRIM(
CAST(U.FirstName + ' ' + U.LastName AS VARCHAR(350))
)
)
FROM
CCPCRBActionItemResponsible AIR
INNER JOIN Users U ON AIR.ActionItemResponsible = U.UserID
WHERE
AI.ID = AIR.PCRBActionItemID FOR XML PATH('')
),
1,
1,
''
) AS Responsibles
FROM
CCPCRBActionItem AI
) AS CCResponsibles ON AI.ID = CCResponsibles.ID
LEFT JOIN (
SELECT
DISTINCT AI.ID,
STUFF (
(
SELECT
',' + LTRIM(
RTRIM(CAST(AIR.ActionItemResponsible AS VARCHAR(350)))
)
FROM
CCMeetingActionItemResponsible AIR
WHERE
AI.ID = AIR.MeetingActionItemID FOR XML PATH('')
),
1,
1,
''
) AS ResponsiblesID
FROM
CCMeetingActionItem AI
) AS CCResponsiblesID ON AI.ID = CCResponsiblesID.ID
WHERE
AI.PCRBID = @PCRBID
END
GO

View File

@ -0,0 +1,28 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[CCGetPCRBAttendees] 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].[CCGetPCRBAttendees] @PCRBID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
-- Insert statements for procedure here
SELECT
*
FROM
CCPCRBAttendee
WHERE
PCRBID = @PCRBID
END
GO

View File

@ -0,0 +1,30 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[CCGetPCRValues] 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].[CCGetPCRValues] -- Add the parameters for the stored procedure here
AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
-- Insert statements for procedure here
SELECT
PCRValue AS PCRValueID,
PCRValue AS PCRValueName
FROM
CCPCRValues
ORDER BY
PCRValue
END
GO

View File

@ -0,0 +1,29 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[CCGetPartNumbers] 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].[CCGetPartNumbers] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
-- Insert statements for procedure here
SELECT
DISTINCT PartNumberID,
PartNumber
FROM
CCPartNumberMaster
ORDER BY
PartNumber
END
GO

View File

@ -0,0 +1,29 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[CCGetProcesses] 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].[CCGetProcesses] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
-- Insert statements for procedure here
SELECT
DISTINCT ProcessID,
Process
FROM
CCProcessMaster
ORDER BY
Process
END
GO

View File

@ -0,0 +1,251 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[CCGetReport] Script Date: 11/21/2024 11:29:04 AM ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[CCGetReport] @PlanNumber varchar(50) = NULL,
@OwnerID int = NULL,
@Title varchar(100) = NULL,
@ChangeLevel int = NULL,
@PCRValue varchar(50) = NULL,
@GenerationIDs varchar(max) = NULL,
@Tool varchar(100) = NULL,
@ProcessIDs varchar(max) = NULL,
@StartDateFrom date = NULL,
@StartDateTo date = NULL,
@ClosedDateFrom date = NULL,
@ClosedDateTo date = NULL,
@LatestMeetingDateFrom date = NULL,
@LatestMeetingDateTo date = NULL,
@BaseURL varchar(100) = NULL,
@Username varchar(100) = '' AS BEGIN
SET
XACT_ABORT ON
INSERT INTO
ReportLog([ProcName], [Username], [Parms])
SELECT
OBJECT_NAME(@ @PROCID),
@Username,
(
SELECT
@PlanNumber AS PlanNumber,
@OwnerID AS OwnerID,
@Title AS Title,
@ChangeLevel AS ChangeLevel,
@PCRValue AS PCRValue,
@GenerationIDs AS GenerationIDs,
@Tool AS Tool,
@ProcessIDs AS ProcessIDs,
@StartDateFrom AS StartDateFrom,
@StartDateTo AS StartDateTo,
@ClosedDateFrom AS ClosedDateFrom,
@ClosedDateTo AS ClosedDateTo,
@LatestMeetingDateFrom AS LatestMeetingDateFrom,
@LatestMeetingDateTo AS LatestMeetingDateTo,
@BaseURL AS BaseURL FOR XML PATH
)
SELECT
dbo.fnPlanConvertPlanNoToDisplayFormat(C.PlanNumber) AS PlanNumber,
Dates.StartDate,
U.FirstName + ' ' + U.LastName AS [Owner],
C.Title,
CASE
WHEN ChangeLevel = -1 THEN NULL
ELSE ChangeLevel
END AS ChangeLevel,
CASE
WHEN [STATUS] = 1 THEN 'Closed'
WHEN [STATUS] = 2 THEN 'Cancelled'
WHEN [STATUS] = 0 THEN STUFF(
(
SELECT
', ' + LTRIM(RTRIM(CAST(PCRValue AS VARCHAR(50))))
FROM
CCMeetingPCRValue P
WHERE
P.MeetingID = LatestMeeting.MeetingID
ORDER BY
1 FOR XML PATH('')
),
1,
2,
''
)
ELSE ''
END AS PCRBStatus,
LatestMeeting.MeetingDate AS LatestMeetingDate,
CASE
WHEN LatestMeeting.Decision = 1 THEN 'Approved'
WHEN LatestMeeting.Decision = 0 THEN 'Not-Approved'
ELSE 'Open'
END AS LatestMeetingDecision,
LatestMeeting.DecisionNotes AS LatestMeetingDecisionNotes,
STUFF(
(
SELECT
', ' + LTRIM(RTRIM(CAST(Generation AS VARCHAR(50))))
FROM
CCGeneration CCG
LEFT JOIN CCGenerationMaster GM ON CCG.GenerationID = GM.GenerationID
WHERE
CCG.PlanNumber = C.PlanNumber FOR XML PATH('')
),
1,
2,
''
) AS Generations,
C.ToolTypes,
STUFF(
(
SELECT
', ' + LTRIM(RTRIM(CAST(Process AS VARCHAR(50))))
FROM
CCProcess CCP
LEFT JOIN CCProcessMaster PM ON CCP.ProcessID = PM.ProcessID
WHERE
CCP.PlanNumber = C.PlanNumber FOR XML PATH('')
),
1,
2,
''
) AS Processes,
C.ChangeDescription,
C.ReasonForChange,
ClosedDate,
@BaseURL + '/ChangeControl/Edit?IssueID=' + CONVERT(varchar(10), C.PlanNumber) AS [URL]
FROM
CCChangeControl C
LEFT JOIN Users U ON C.OwnerID = U.UserID
OUTER APPLY (
SELECT
MIN(MeetingDate) AS StartDate,
MAX(MeetingDate) AS StatusDate
FROM
CCMeeting
WHERE
CCMeeting.PlanNumber = C.PlanNumber
GROUP BY
PlanNumber
) AS Dates
OUTER APPLY (
SELECT
TOP 1 CCMeeting.*,
CCDecisionSummary.DecisionNotes
FROM
CCMeeting
LEFT OUTER JOIN CCDecisionSummary ON CCDecisionSummary.MeetingID = CCMeeting.MeetingID
WHERE
CCMeeting.PlanNumber = C.PlanNumber
ORDER BY
MeetingDate DESC
) AS LatestMeeting
WHERE
(
@PlanNumber IS NULL
OR dbo.fnPlanConvertPlanNoToDisplayFormat(C.PlanNumber) LIKE '%' + @PlanNumber + '%'
)
AND (
ISNULL(@OwnerID, -1) = -1
OR C.OwnerID = @OwnerID
)
AND (
ISNULL(@Title, '') = ''
OR C.Title LIKE '%' + @Title + '%'
)
AND (
ISNULL(@ChangeLevel, -1) = -1
OR C.ChangeLevel = @ChangeLevel
)
AND (
ISNULL(@PCRValue, '') = ''
OR (
@PCRValue = 'Closed'
AND [Status] = 1
)
OR (
@PCRValue = 'Cancelled'
AND [Status] = 2
)
OR (
[Status] = 0
AND EXISTS (
SELECT
1
FROM
CCMeetingPCRValue P
WHERE
P.MeetingID = LatestMeeting.MeetingID
AND P.PCRValue = @PCRValue
)
)
)
AND (
ISNULL(@GenerationIDs, '') = ''
OR EXISTS (
SELECT
1
FROM
CCGeneration CCG
WHERE
CCG.PlanNumber = C.PlanNumber
AND CCG.GenerationID IN (
SELECT
Val
FROM
dbo.fnSplitCSV(@GenerationIDs)
)
)
)
AND (
ISNULL(@Tool, '') = ''
OR C.ToolTypes LIKE '%' + @Tool + '%'
)
AND (
ISNULL(@ProcessIDs, '') = ''
OR EXISTS (
SELECT
1
FROM
CCProcess CCP
WHERE
CCP.PlanNumber = C.PlanNumber
AND CCP.ProcessID IN (
SELECT
Val
FROM
dbo.fnSplitCSV(@ProcessIDs)
)
)
)
AND (
@StartDateFrom IS NULL
OR @StartDateFrom <= CONVERT(date, Dates.StartDate)
)
AND (
@StartDateTo IS NULL
OR CONVERT(date, Dates.StartDate) <= @StartDateTo
)
AND (
@ClosedDateFrom IS NULL
OR @ClosedDateFrom <= CONVERT(date, ClosedDate)
)
AND (
@ClosedDateTo IS NULL
OR CONVERT(date, ClosedDate) <= @ClosedDateTo
)
AND (
@LatestMeetingDateFrom IS NULL
OR @LatestMeetingDateFrom <= CONVERT(date, LatestMeeting.MeetingDate)
)
AND (
@LatestMeetingDateTo IS NULL
OR CONVERT(date, LatestMeeting.MeetingDate) <= @LatestMeetingDateTo
)
ORDER BY
C.PlanNumber
END
GO

View File

@ -0,0 +1,30 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[CCGetSites] 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].[CCGetSites] -- Add the parameters for the stored procedure here
AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
-- Insert statements for procedure here
SELECT
SiteName AS SiteID,
SiteName
FROM
CCSite
ORDER BY
SiteName
END
GO

View File

@ -0,0 +1,29 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[CCGetToolTypes] 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].[CCGetToolTypes] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
-- Insert statements for procedure here
SELECT
DISTINCT ToolTypeID,
ToolType
FROM
CCToolTypeMaster
ORDER BY
ToolType
END
GO

View File

@ -0,0 +1,31 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[CCGetUsers] 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].[CCGetUsers] -- Add the parameters for the stored procedure here
AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
-- Insert statements for procedure here
SELECT
UserID AS AttendeeID,
FirstName + ' ' + LastName AS AttendeeName
FROM
Users
ORDER BY
FirstName,
LastName
END
GO

View File

@ -0,0 +1,31 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[CCInsertCCAttachment] 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].[CCInsertCCAttachment] @ID INT OUT,
@PlanNumber INT,
@Title VARCHAR(100) = '',
@RequirementsNotes VARCHAR(500) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
-- Insert statements for procedure here
INSERT INTO
CCAttachment (PlanNumber, Title, RequirementsNotes)
VALUES
(@PlanNumber, @Title, @RequirementsNotes)
SET
@ID = SCOPE_IDENTITY()
END
GO

View File

@ -0,0 +1,138 @@
USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[CCInsertChangeControl] 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].[CCInsertChangeControl] -- Add the parameters for the stored procedure here
@OwnerID INT,
@PlanNumber INT OUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
-- Insert statements for procedure here
BEGIN DECLARE @CurrentYear INT DECLARE @CurrentYearlyIdentifier INT DECLARE @NextYearlyIdentifier INT DECLARE @MesaPlanNo VARCHAR(20)
SET
@CurrentYear = YEAR(GETDATE()) IF EXISTS (
Select
*
FROM
CCCurrentSequence
WHERE
year = @CurrentYear
) BEGIN
SET
@CurrentYearlyIdentifier = (
SELECT
currentSequence
FROM
CCCurrentSequence
WHERE
year = @CurrentYear
) + 1
UPDATE
CCCurrentSequence
SET
currentSequence = @CurrentYearlyIdentifier
WHERE
year = @CurrentYear
END
ELSE BEGIN
SET
@CurrentYearlyIdentifier = 1
INSERT INTO
CCCurrentSequence (year, currentSequence)
VALUES
(@CurrentYear, @CurrentYearlyIdentifier)
END
END
SET
@MesaPlanNo = CONCAT(
'M-',
@CurrentYear,
'-',
REPLICATE('0', 4 - LEN(RTRIM(@CurrentYearlyIdentifier))) + RTRIM(@CurrentYearlyIdentifier)
)
INSERT INTO
CCChangeControl (OwnerID, PlanYearlyIdentifier, MesaPlanNo)
VALUES
(@OwnerID, @CurrentYearlyIdentifier, @MesaPlanNo)
SET
@PlanNumber = CAST(SCOPE_IDENTITY() AS INT)
INSERT INTO
CCAttachment (PlanNumber, Title, RequirementsNotes)
SELECT
@PlanNumber,
CCAttachmentTitle,
CCAttachmentRequirementNotes
FROM
CCAttachmentDefaults -- Add the three PCRB's automatically
-- PCR 1
INSERT INTO
CCPCRB (PlanNumber, PCRB)
VALUES
(@PlanNumber, 'PCR1')
UPDATE
CCChangeControl
set
PCR1ID = CAST(SCOPE_IDENTITY() AS INT)
WHERE
PlanNumber = @PlanNumber
INSERT INTO
CCPCRBAttendee (PCRBID, AttendeeName, JobTitle, Location)
SELECT
CAST(SCOPE_IDENTITY() AS INT),
AttendeeName,
PCRBAttendeeJobTtile,
Location
FROM
CCPCRBAttendeeJobTitle
INSERT INTO
CCPCRB (PlanNumber, PCRB)
VALUES
(@PlanNumber, 'PCR2')
UPDATE
CCChangeControl
set
PCR2ID = CAST(SCOPE_IDENTITY() AS INT)
WHERE
PlanNumber = @PlanNumber
INSERT INTO
CCPCRBAttendee (PCRBID, AttendeeName, JobTitle, Location)
SELECT
CAST(SCOPE_IDENTITY() AS INT),
AttendeeName,
PCRBAttendeeJobTtile,
Location
FROM
CCPCRBAttendeeJobTitle
INSERT INTO
CCPCRB (PlanNumber, PCRB)
VALUES
(@PlanNumber, 'PCR3')
UPDATE
CCChangeControl
set
PCR3ID = CAST(SCOPE_IDENTITY() AS INT)
WHERE
PlanNumber = @PlanNumber
INSERT INTO
CCPCRBAttendee (PCRBID, AttendeeName, JobTitle, Location)
SELECT
CAST(SCOPE_IDENTITY() AS INT),
AttendeeName,
PCRBAttendeeJobTtile,
Location
FROM
CCPCRBAttendeeJobTitle
END
GO

Some files were not shown because too many files have changed in this diff Show More