Programmability objects from database

Removed commented code
Added fn_GetExpiredTECNByOriginator
This commit is contained in:
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