Mike Phares ab800974b7 Programmability objects from database
Removed commented code
Added fn_GetExpiredTECNByOriginator
2024-12-12 12:15:46 -07:00

113 lines
2.6 KiB
Transact-SQL

USE [FabApprovalSystem]
GO
/****** Object: StoredProcedure [dbo].[_8DUpdateAuditFinding] 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].[_8DUpdateAuditFinding] -- Add the parameters for the stored procedure here
@AuditFindingsID INT,
@Findings VARCHAR(1000),
@ViolatedClause VARCHAR(500),
@FindingType VARCHAR(10),
@FindingCategories VARCHAR(200),
@CANo INT,
@Title VARCHAR(500) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET
NOCOUNT ON;
-- 11/26/2018 TR move update before audit score calculation to fix the calculation
UPDATE
_8DAuditFinding
SET
Findings = @Findings,
ViolatedClause = @ViolatedClause,
FindingType = @FindingType,
CANo = @CANo,
Title = @Title
WHERE
ID = @AuditFindingsID DECLARE @AuditNo INT DECLARE @NoOfMajorNonConformities INT DECLARE @NoOfMinorNonConformities INT DECLARE @AuditScore INT
SELECT
@AuditNo = AuditNo
FROM
_8DAuditFinding
WHERE
ID = @AuditFindingsID
SET
@NoOfMajorNonConformities = (
SELECT
COUNT(*)
FROM
_8DAuditFinding
WHERE
FindingType = 'Major'
AND AuditNo = @AuditNo
)
SET
@NoOfMinorNonConformities = (
SELECT
COUNT(*)
FROM
_8DAuditFinding
WHERE
FindingType = 'Minor'
AND AuditNo = @AuditNo
) -- IF Audit Type is either VDA or External the do not auto calculate the Audit Score
IF (
SELECT
COUNT(*)
FROM
_8DAuditTypeByAudit
WHERE
(
AuditTypeID = 4
OR AuditTypeID = 8
)
AND AuditNo = @AuditNo
) = 0 BEGIN
SET
@AuditScore = 100 - (
(@NoOfMajorNonConformities * 10) + (@NoOfMinorNonConformities)
)
UPDATE
_8DAudit
SET
AuditScore = @AuditScore
WHERE
AuditNo = @AuditNo
END -- calculate Audit Score
DECLARE @SEPERATOR as VARCHAR(1) DECLARE @SP INT DECLARE @VALUE VARCHAR(1000)
SET
@SEPERATOR = ',' CREATE TABLE #tempTab (AuditFindingCategory int not null)
WHILE PATINDEX('%' + @SEPERATOR + '%', @FindingCategories) <> 0 BEGIN
SELECT
@SP = PATINDEX('%' + @SEPERATOR + '%', @FindingCategories)
SELECT
@VALUE = LEFT(@FindingCategories, @SP - 1)
SELECT
@FindingCategories = STUFF(@FindingCategories, 1, @SP, '')
INSERT INTO
#tempTab (AuditFindingCategory) VALUES (@VALUE)
END
DELETE FROM
_8DAuditFindingCategoryByAuditFinding
WHERE
AuditFindingID = @AuditFindingsID
INSERT INTO
_8DAuditFindingCategoryByAuditFinding
SELECT
@AuditFindingsID,
AuditFindingCategory
FROM
#tempTab
DROP TABLE #tempTab
END
GO